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:
Fri Sep 22 11:29:54 2017 +0000
Revision:
0:5cefadfd5898
Child:
1:3a5a074b39e0
1 release, bugs;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
edy05 0:5cefadfd5898 1 #include "mbed.h"
edy05 0:5cefadfd5898 2 #include "PPMOut.h"
edy05 0:5cefadfd5898 3 #include "PPMIn.h"
edy05 0:5cefadfd5898 4 //#include "PPMIn.h"
edy05 0:5cefadfd5898 5 //#include "ultrasonic.h"
edy05 0:5cefadfd5898 6 //#include "MyPID.h"
edy05 0:5cefadfd5898 7
edy05 0:5cefadfd5898 8
edy05 0:5cefadfd5898 9 #define AUX1 4
edy05 0:5cefadfd5898 10 #define PIEZZO_START 0.1
edy05 0:5cefadfd5898 11 #define PIEZZO_STOP 0.0
edy05 0:5cefadfd5898 12 #define PPMOUT_CHANNELS 6
edy05 0:5cefadfd5898 13 #define PPMIN_CHANNELS 8
edy05 0:5cefadfd5898 14
edy05 0:5cefadfd5898 15 Serial pc(USBTX, USBRX); // tx, rx
edy05 0:5cefadfd5898 16 PpmOut ppmOut(p26, PPMOUT_CHANNELS);
edy05 0:5cefadfd5898 17 PpmIn ppmIn(p21);
edy05 0:5cefadfd5898 18
edy05 0:5cefadfd5898 19
edy05 0:5cefadfd5898 20 uint16_t ppmOutChannelsValue[PPMOUT_CHANNELS];
edy05 0:5cefadfd5898 21 uint16_t ppmInChannelsValue[PPMIN_CHANNELS];
edy05 0:5cefadfd5898 22
edy05 0:5cefadfd5898 23 //FUNCTIONS
edy05 0:5cefadfd5898 24 void print_ppmOut(void);
edy05 0:5cefadfd5898 25 void print_ppmIn(void);
edy05 0:5cefadfd5898 26
edy05 0:5cefadfd5898 27 int main(){
edy05 0:5cefadfd5898 28
edy05 0:5cefadfd5898 29 while(1){
edy05 0:5cefadfd5898 30 print_ppmIn();
edy05 0:5cefadfd5898 31 print_ppmOut();
edy05 0:5cefadfd5898 32
edy05 0:5cefadfd5898 33 if(ppmIn.rise_captured()){
edy05 0:5cefadfd5898 34 pc.printf("Rise captured \n\r");
edy05 0:5cefadfd5898 35 }
edy05 0:5cefadfd5898 36
edy05 0:5cefadfd5898 37 }
edy05 0:5cefadfd5898 38
edy05 0:5cefadfd5898 39 }
edy05 0:5cefadfd5898 40
edy05 0:5cefadfd5898 41
edy05 0:5cefadfd5898 42
edy05 0:5cefadfd5898 43
edy05 0:5cefadfd5898 44
edy05 0:5cefadfd5898 45
edy05 0:5cefadfd5898 46
edy05 0:5cefadfd5898 47
edy05 0:5cefadfd5898 48
edy05 0:5cefadfd5898 49
edy05 0:5cefadfd5898 50 void print_ppmOut(){
edy05 0:5cefadfd5898 51 ppmOut.getAllChannels(ppmOutChannelsValue);
edy05 0:5cefadfd5898 52
edy05 0:5cefadfd5898 53 for(uint8_t channel= 0; channel < PPMOUT_CHANNELS; channel++){
edy05 0:5cefadfd5898 54 pc.printf("PPM Out Channel %d: %d \n\r", channel, ppmOutChannelsValue[channel]);
edy05 0:5cefadfd5898 55 }
edy05 0:5cefadfd5898 56 }
edy05 0:5cefadfd5898 57
edy05 0:5cefadfd5898 58 void print_ppmIn(){
edy05 0:5cefadfd5898 59 ppmIn.getAllChannels(ppmInChannelsValue);
edy05 0:5cefadfd5898 60 for(uint8_t channel= 0; channel < PPMIN_CHANNELS; channel++){
edy05 0:5cefadfd5898 61 pc.printf("PPM In Channel %d: %d \n\r", channel, ppmInChannelsValue[channel]);
edy05 0:5cefadfd5898 62 }
edy05 0:5cefadfd5898 63 pc.printf("\n\r");
edy05 0:5cefadfd5898 64 }
edy05 0:5cefadfd5898 65
edy05 0:5cefadfd5898 66
edy05 0:5cefadfd5898 67