Revision 5ea63f0d
ID | 5ea63f0d950a9dca70d33f48d0f0e68a8e28f0d2 |
Parent | eb7af729 |
Working version before truck weekend
arduino/RadioBuggyMega/RadioBuggyMega.ino | ||
---|---|---|
74 | 74 |
} |
75 | 75 |
|
76 | 76 |
int convert_rc_to_steering(int rc_angle) { |
77 |
int out = (rc_angle/4)+(90*3/4)+39; |
|
78 |
if(out < 105 || out > 160) { |
|
77 |
//Inverter for 2.4 GHz racecar received |
|
78 |
rc_angle = 180-rc_angle; |
|
79 |
int out = (rc_angle/4)+(90*3/4)+36; |
|
80 |
if(out < 100 || out > 155) { |
|
79 | 81 |
Serial.println("FAKFAKFAK SERVO OUT OF RANGE"); |
80 | 82 |
Serial.println(out); |
81 |
out = 129;
|
|
83 |
out = 125;
|
|
82 | 84 |
} |
83 | 85 |
return out; |
84 | 86 |
} |
... | ... | |
109 | 111 |
raw_thr = receiver_get_angle(THR_INDEX); |
110 | 112 |
smoothed_thr = filter_loop(&thr_state, raw_thr); |
111 | 113 |
// TODO make this code...less...something |
112 |
if(smoothed_thr < 90) {
|
|
114 |
if(smoothed_thr < 70) {
|
|
113 | 115 |
brake_drop(); |
114 | 116 |
} else { |
115 | 117 |
brake_raise(); |
arduino/RadioBuggyMega/receiver.c | ||
---|---|---|
26 | 26 |
#define THR_RECEIVER_PIN 3 |
27 | 27 |
#define THR_RECEIVER_INT 1 |
28 | 28 |
|
29 |
#define PWM_TIME 21800 |
|
29 |
//For 72 MHz RC reciever |
|
30 |
//#define PWM_TIME 21800 |
|
31 |
//#define PWM_THRESH 130 |
|
32 |
//#define BIG_PULSE 10 |
|
33 |
//High pulse lasts over 1/10 of period |
|
34 |
//#define SHORT_PULSE 21 |
|
35 |
//High pulse lasts under 1/21 of period |
|
36 |
|
|
37 |
//For 2.4 GHz racecar reciever |
|
38 |
#define PWM_TIME 18370 |
|
30 | 39 |
#define PWM_THRESH 130 |
40 |
#define BIG_PULSE 8 |
|
41 |
//High pulse lasts over 1/8 of period |
|
42 |
#define SHORT_PULSE 19 |
|
43 |
//High pulse lasts under 1/19 of period |
|
31 | 44 |
|
32 | 45 |
// Defined in receiver.h |
33 | 46 |
// #define THR_INDEX 0 |
... | ... | |
60 | 73 |
rc_value[AIL_INDEX] = (down_switch_time[AIL_INDEX] - |
61 | 74 |
up_switch_time[AIL_INDEX]); |
62 | 75 |
rc_available[AIL_INDEX] = 1; |
63 |
if(rc_value[AIL_INDEX]/(PWM_TIME/10) >= 1 || rc_value[AIL_INDEX]/(PWM_TIME/21) == 0)
|
|
76 |
if(rc_value[AIL_INDEX]/(PWM_TIME/BIG_PULSE) >= 1 || rc_value[AIL_INDEX]/(PWM_TIME/SHORT_PULSE) == 0)
|
|
64 | 77 |
rc_available[AIL_INDEX] == 0; |
65 | 78 |
} |
66 | 79 |
} |
Also available in: Unified diff