Regenerating PPM signal based on distances from ultrasonic sensors, ESP8266 for connectin via wifi. Autonomous quadcopter behaviour, autonomou height holding. Flying direction based on front and back ultrasonic sensors.

Dependencies:   ConfigFile HCSR04 PID PPM2 mbed-rtos mbed

Committer:
edy05
Date:
Wed Sep 27 17:06:19 2017 +0000
Revision:
1:3a5a074b39e0
Parent:
0:5cefadfd5898
Child:
2:d172c9963f87
Stable release PpmRegen class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
edy05 0:5cefadfd5898 1 #include "mbed.h"
edy05 1:3a5a074b39e0 2 #include "PpmRegen.h"
edy05 0:5cefadfd5898 3 //#include "ultrasonic.h"
edy05 0:5cefadfd5898 4 //#include "MyPID.h"
edy05 0:5cefadfd5898 5
edy05 0:5cefadfd5898 6
edy05 0:5cefadfd5898 7 #define AUX1 4
edy05 0:5cefadfd5898 8 #define PIEZZO_START 0.1
edy05 0:5cefadfd5898 9 #define PIEZZO_STOP 0.0
edy05 0:5cefadfd5898 10 #define PPMOUT_CHANNELS 6
edy05 0:5cefadfd5898 11 #define PPMIN_CHANNELS 8
edy05 1:3a5a074b39e0 12 #define PPMIN_FILTERS 5
edy05 0:5cefadfd5898 13
edy05 1:3a5a074b39e0 14 #define ROLL 0
edy05 1:3a5a074b39e0 15 #define PITCH 1
edy05 1:3a5a074b39e0 16 #define YAW 2
edy05 1:3a5a074b39e0 17 #define THROTTLE 3
edy05 1:3a5a074b39e0 18
edy05 1:3a5a074b39e0 19 //PPM SETTINGS
edy05 1:3a5a074b39e0 20 PpmRegen ppmRegen(p28, p21, p22, p23, p24, p25, p26);
edy05 0:5cefadfd5898 21 Serial pc(USBTX, USBRX); // tx, rx
edy05 0:5cefadfd5898 22
edy05 0:5cefadfd5898 23 uint16_t ppmInChannelsValue[PPMIN_CHANNELS];
edy05 0:5cefadfd5898 24
edy05 0:5cefadfd5898 25 //FUNCTIONS
edy05 0:5cefadfd5898 26 void print_ppmIn(void);
edy05 0:5cefadfd5898 27
edy05 0:5cefadfd5898 28 int main(){
edy05 1:3a5a074b39e0 29 //PPMIN SETTINGS
edy05 1:3a5a074b39e0 30 /*
edy05 1:3a5a074b39e0 31 NVIC_SetPriority(TIMER0_IRQn, 0);
edy05 1:3a5a074b39e0 32 NVIC_SetPriority(TIMER1_IRQn, 1);
edy05 1:3a5a074b39e0 33 NVIC_SetPriority(TIMER2_IRQn, 2);
edy05 1:3a5a074b39e0 34 NVIC_SetPriority(TIMER3_IRQn, 3);
edy05 1:3a5a074b39e0 35 */
edy05 1:3a5a074b39e0 36
edy05 0:5cefadfd5898 37 while(1){
edy05 1:3a5a074b39e0 38 //print_ppmIn();
edy05 1:3a5a074b39e0 39 //print_ppmOut();
edy05 0:5cefadfd5898 40
edy05 0:5cefadfd5898 41 }
edy05 0:5cefadfd5898 42
edy05 0:5cefadfd5898 43 }
edy05 0:5cefadfd5898 44
edy05 0:5cefadfd5898 45 void print_ppmIn(){
edy05 1:3a5a074b39e0 46 ppmRegen.getAllChannels(ppmInChannelsValue);
edy05 0:5cefadfd5898 47 for(uint8_t channel= 0; channel < PPMIN_CHANNELS; channel++){
edy05 0:5cefadfd5898 48 pc.printf("PPM In Channel %d: %d \n\r", channel, ppmInChannelsValue[channel]);
edy05 0:5cefadfd5898 49 }
edy05 0:5cefadfd5898 50 pc.printf("\n\r");
edy05 0:5cefadfd5898 51 }