diff --git a/libraries/RC_Channel/examples/RC_Channel/RC_Channel.pde b/libraries/RC_Channel/examples/RC_Channel/RC_Channel.pde index d62e1348e7..9c3a4cc0f2 100644 --- a/libraries/RC_Channel/examples/RC_Channel/RC_Channel.pde +++ b/libraries/RC_Channel/examples/RC_Channel/RC_Channel.pde @@ -1,20 +1,20 @@ /* - Example of RC_Channel library. - Code by Jason Short. 2010 - DIYDrones.com - -*/ + * Example of RC_Channel library. + * Code by Jason Short. 2010 + * DIYDrones.com + * + */ #include -#include // ArduPilot Mega Common Library +#include // ArduPilot Mega Common Library #include #include // ArduPilot Mega Vector/Matrix math Library -#include // ArduPilot Mega RC Library -#include // ArduPilot Mega RC Library +#include // ArduPilot Mega RC Library +#include // ArduPilot Mega RC Library // define APM1 or APM2 -#define APM_HARDWARE_APM1 1 -#define APM_HARDWARE_APM2 2 +#define APM_HARDWARE_APM1 1 +#define APM_HARDWARE_APM2 2 // set your hardware type here #define CONFIG_APM_HARDWARE APM_HARDWARE_APM2 @@ -37,9 +37,9 @@ FastSerialPort3(Serial3); // Telemetry port // RC Hardware //////////////////////////////////////////// #if CONFIG_APM_HARDWARE == APM_HARDWARE_APM2 - APM_RC_APM2 APM_RC; +APM_RC_APM2 APM_RC; #else - APM_RC_APM1 APM_RC; +APM_RC_APM1 APM_RC; #endif RC_Channel rc_1; @@ -62,219 +62,219 @@ RC_Channel rc_8; void setup() { - Serial.begin(115200); - Serial.println("ArduPilot RC Channel test"); - APM_RC.Init( &isr_registry ); // APM Radio initialization + Serial.begin(115200); + Serial.println("ArduPilot RC Channel test"); + APM_RC.Init( &isr_registry ); // APM Radio initialization - - delay(500); - - // setup radio - - // read eepom or set manually - /* - rc_1.radio_min = 1100; - rc_1.radio_max = 1900; - - rc_2.radio_min = 1100; - rc_2.radio_max = 1900; - rc_3.radio_min = 1100; - rc_3.radio_max = 1900; + delay(500); - rc_4.radio_min = 1100; - rc_4.radio_max = 1900; + // setup radio - // or - - rc_1.load_eeprom(); - rc_2.load_eeprom(); - rc_3.load_eeprom(); - rc_4.load_eeprom(); - rc_5.load_eeprom(); - rc_6.load_eeprom(); - rc_7.load_eeprom(); - rc_8.load_eeprom(); + // read eepom or set manually + /* + * rc_1.radio_min = 1100; + * rc_1.radio_max = 1900; + * + * rc_2.radio_min = 1100; + * rc_2.radio_max = 1900; + * + * rc_3.radio_min = 1100; + * rc_3.radio_max = 1900; + * + * rc_4.radio_min = 1100; + * rc_4.radio_max = 1900; + * + * // or + * + * rc_1.load_eeprom(); + * rc_2.load_eeprom(); + * rc_3.load_eeprom(); + * rc_4.load_eeprom(); + * rc_5.load_eeprom(); + * rc_6.load_eeprom(); + * rc_7.load_eeprom(); + * rc_8.load_eeprom(); + * + */ - */ + // interactive setup + setup_radio(); - // interactive setup - setup_radio(); + print_radio_values(); - print_radio_values(); - - // set type of output, symmetrical angles or a number range; - rc_1.set_angle(4500); - rc_1.set_dead_zone(80); - rc_2.set_angle(4500); - rc_2.set_dead_zone(80); - rc_3.set_range(0,1000); - rc_3.set_dead_zone(20); - rc_3.scale_output = .8; // gives more dynamic range to quads - rc_4.set_angle(6000); - rc_4.set_dead_zone(500); - rc_5.set_range(0,1000); - rc_5.set_filter(false); - rc_6.set_range(200,800); - rc_7.set_range(0,1000); - rc_8.set_range(0,1000); - - for (byte i = 0; i < 30; i++){ - read_radio(); - } - rc_1.trim(); - rc_2.trim(); - rc_4.trim(); + // set type of output, symmetrical angles or a number range; + rc_1.set_angle(4500); + rc_1.set_dead_zone(80); + rc_2.set_angle(4500); + rc_2.set_dead_zone(80); + rc_3.set_range(0,1000); + rc_3.set_dead_zone(20); + rc_3.scale_output = .8; // gives more dynamic range to quads + rc_4.set_angle(6000); + rc_4.set_dead_zone(500); + rc_5.set_range(0,1000); + rc_5.set_filter(false); + rc_6.set_range(200,800); + rc_7.set_range(0,1000); + rc_8.set_range(0,1000); + + for (byte i = 0; i < 30; i++) { + read_radio(); + } + rc_1.trim(); + rc_2.trim(); + rc_4.trim(); } -void loop() +void loop() { - delay(20); - read_radio(); - print_pwm(); + delay(20); + read_radio(); + print_pwm(); } void read_radio() { - rc_1.set_pwm(APM_RC.InputCh(CH_1)); - rc_2.set_pwm(APM_RC.InputCh(CH_2)); - rc_3.set_pwm(APM_RC.InputCh(CH_3)); - rc_4.set_pwm(APM_RC.InputCh(CH_4)); - rc_5.set_pwm(APM_RC.InputCh(CH_5)); - rc_6.set_pwm(APM_RC.InputCh(CH_6)); - rc_7.set_pwm(APM_RC.InputCh(CH_7)); - rc_8.set_pwm(APM_RC.InputCh(CH_8)); - //Serial.printf_P(PSTR("OUT 1: %d\t2: %d\t3: %d\t4: %d \n"), rc_1.control_in, rc_2.control_in, rc_3.control_in, rc_4.control_in); + rc_1.set_pwm(APM_RC.InputCh(CH_1)); + rc_2.set_pwm(APM_RC.InputCh(CH_2)); + rc_3.set_pwm(APM_RC.InputCh(CH_3)); + rc_4.set_pwm(APM_RC.InputCh(CH_4)); + rc_5.set_pwm(APM_RC.InputCh(CH_5)); + rc_6.set_pwm(APM_RC.InputCh(CH_6)); + rc_7.set_pwm(APM_RC.InputCh(CH_7)); + rc_8.set_pwm(APM_RC.InputCh(CH_8)); + //Serial.printf_P(PSTR("OUT 1: %d\t2: %d\t3: %d\t4: %d \n"), rc_1.control_in, rc_2.control_in, rc_3.control_in, rc_4.control_in); } void print_pwm() { - Serial.print("ch1 "); - Serial.print(rc_1.control_in, DEC); - Serial.print("\tch2: "); - Serial.print(rc_2.control_in, DEC); - Serial.print("\tch3 :"); - Serial.print(rc_3.control_in, DEC); - Serial.print("\tch4 :"); - Serial.print(rc_4.control_in, DEC); - Serial.print("\tch5 :"); - Serial.print(rc_5.control_in, DEC); - Serial.print("\tch6 :"); - Serial.print(rc_6.control_in, DEC); - Serial.print("\tch7 :"); - Serial.print(rc_7.control_in, DEC); - Serial.print("\tch8 :"); - Serial.println(rc_8.control_in, DEC); + Serial.print("ch1 "); + Serial.print(rc_1.control_in, DEC); + Serial.print("\tch2: "); + Serial.print(rc_2.control_in, DEC); + Serial.print("\tch3 :"); + Serial.print(rc_3.control_in, DEC); + Serial.print("\tch4 :"); + Serial.print(rc_4.control_in, DEC); + Serial.print("\tch5 :"); + Serial.print(rc_5.control_in, DEC); + Serial.print("\tch6 :"); + Serial.print(rc_6.control_in, DEC); + Serial.print("\tch7 :"); + Serial.print(rc_7.control_in, DEC); + Serial.print("\tch8 :"); + Serial.println(rc_8.control_in, DEC); } -void +void print_radio_values() { - Serial.print("CH1: "); - Serial.print(rc_1.radio_min, DEC); - Serial.print(" | "); - Serial.println(rc_1.radio_max, DEC); + Serial.print("CH1: "); + Serial.print(rc_1.radio_min, DEC); + Serial.print(" | "); + Serial.println(rc_1.radio_max, DEC); - Serial.print("CH2: "); - Serial.print(rc_2.radio_min, DEC); - Serial.print(" | "); - Serial.println(rc_2.radio_max, DEC); + Serial.print("CH2: "); + Serial.print(rc_2.radio_min, DEC); + Serial.print(" | "); + Serial.println(rc_2.radio_max, DEC); - Serial.print("CH3: "); - Serial.print(rc_3.radio_min, DEC); - Serial.print(" | "); - Serial.println(rc_3.radio_max, DEC); + Serial.print("CH3: "); + Serial.print(rc_3.radio_min, DEC); + Serial.print(" | "); + Serial.println(rc_3.radio_max, DEC); - Serial.print("CH4: "); - Serial.print(rc_4.radio_min, DEC); - Serial.print(" | "); - Serial.println(rc_4.radio_max, DEC); + Serial.print("CH4: "); + Serial.print(rc_4.radio_min, DEC); + Serial.print(" | "); + Serial.println(rc_4.radio_max, DEC); - Serial.print("CH5: "); - Serial.print(rc_5.radio_min, DEC); - Serial.print(" | "); - Serial.println(rc_5.radio_max, DEC); + Serial.print("CH5: "); + Serial.print(rc_5.radio_min, DEC); + Serial.print(" | "); + Serial.println(rc_5.radio_max, DEC); - Serial.print("CH6: "); - Serial.print(rc_6.radio_min, DEC); - Serial.print(" | "); - Serial.println(rc_6.radio_max, DEC); + Serial.print("CH6: "); + Serial.print(rc_6.radio_min, DEC); + Serial.print(" | "); + Serial.println(rc_6.radio_max, DEC); - Serial.print("CH7: "); - Serial.print(rc_7.radio_min, DEC); - Serial.print(" | "); - Serial.println(rc_7.radio_max, DEC); + Serial.print("CH7: "); + Serial.print(rc_7.radio_min, DEC); + Serial.print(" | "); + Serial.println(rc_7.radio_max, DEC); - Serial.print("CH8: "); - Serial.print(rc_8.radio_min, DEC); - Serial.print(" | "); - Serial.println(rc_8.radio_max, DEC); + Serial.print("CH8: "); + Serial.print(rc_8.radio_min, DEC); + Serial.print(" | "); + Serial.println(rc_8.radio_max, DEC); } void setup_radio() { - Serial.println("\n\nRadio Setup:"); - uint8_t i; - - for(i = 0; i < 100;i++){ - delay(20); - read_radio(); - } - - rc_1.radio_min = rc_1.radio_in; - rc_2.radio_min = rc_2.radio_in; - rc_3.radio_min = rc_3.radio_in; - rc_4.radio_min = rc_4.radio_in; - rc_5.radio_min = rc_5.radio_in; - rc_6.radio_min = rc_6.radio_in; - rc_7.radio_min = rc_7.radio_in; - rc_8.radio_min = rc_8.radio_in; + Serial.println("\n\nRadio Setup:"); + uint8_t i; - rc_1.radio_max = rc_1.radio_in; - rc_2.radio_max = rc_2.radio_in; - rc_3.radio_max = rc_3.radio_in; - rc_4.radio_max = rc_4.radio_in; - rc_5.radio_max = rc_5.radio_in; - rc_6.radio_max = rc_6.radio_in; - rc_7.radio_max = rc_7.radio_in; - rc_8.radio_max = rc_8.radio_in; + for(i = 0; i < 100; i++) { + delay(20); + read_radio(); + } - rc_1.radio_trim = rc_1.radio_in; - rc_2.radio_trim = rc_2.radio_in; - rc_4.radio_trim = rc_4.radio_in; - // 3 is not trimed - rc_5.radio_trim = 1500; - rc_6.radio_trim = 1500; - rc_7.radio_trim = 1500; - rc_8.radio_trim = 1500; - - Serial.println("\nMove all controls to each extreme. Hit Enter to save:"); - while(1){ - - delay(20); - // Filters radio input - adjust filters in the radio.pde file - // ---------------------------------------------------------- - read_radio(); + rc_1.radio_min = rc_1.radio_in; + rc_2.radio_min = rc_2.radio_in; + rc_3.radio_min = rc_3.radio_in; + rc_4.radio_min = rc_4.radio_in; + rc_5.radio_min = rc_5.radio_in; + rc_6.radio_min = rc_6.radio_in; + rc_7.radio_min = rc_7.radio_in; + rc_8.radio_min = rc_8.radio_in; - rc_1.update_min_max(); - rc_2.update_min_max(); - rc_3.update_min_max(); - rc_4.update_min_max(); - rc_5.update_min_max(); - rc_6.update_min_max(); - rc_7.update_min_max(); - rc_8.update_min_max(); - - if(Serial.available() > 0){ - //rc_3.radio_max += 250; - Serial.flush(); - - Serial.println("Radio calibrated, Showing control values:"); - break; - } - } - return; + rc_1.radio_max = rc_1.radio_in; + rc_2.radio_max = rc_2.radio_in; + rc_3.radio_max = rc_3.radio_in; + rc_4.radio_max = rc_4.radio_in; + rc_5.radio_max = rc_5.radio_in; + rc_6.radio_max = rc_6.radio_in; + rc_7.radio_max = rc_7.radio_in; + rc_8.radio_max = rc_8.radio_in; + + rc_1.radio_trim = rc_1.radio_in; + rc_2.radio_trim = rc_2.radio_in; + rc_4.radio_trim = rc_4.radio_in; + // 3 is not trimed + rc_5.radio_trim = 1500; + rc_6.radio_trim = 1500; + rc_7.radio_trim = 1500; + rc_8.radio_trim = 1500; + + Serial.println("\nMove all controls to each extreme. Hit Enter to save:"); + while(1) { + + delay(20); + // Filters radio input - adjust filters in the radio.pde file + // ---------------------------------------------------------- + read_radio(); + + rc_1.update_min_max(); + rc_2.update_min_max(); + rc_3.update_min_max(); + rc_4.update_min_max(); + rc_5.update_min_max(); + rc_6.update_min_max(); + rc_7.update_min_max(); + rc_8.update_min_max(); + + if(Serial.available() > 0) { + //rc_3.radio_max += 250; + Serial.flush(); + + Serial.println("Radio calibrated, Showing control values:"); + break; + } + } + return; } \ No newline at end of file