123123123123123123123123123

Dependencies:   mbed

Committer:
TonyYI
Date:
Tue Jul 01 10:59:33 2014 +0000
Revision:
0:3417ca0a36c0
Child:
3:4306d042af6f
2014

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TonyYI 0:3417ca0a36c0 1 /******************************************************
TonyYI 0:3417ca0a36c0 2
TonyYI 0:3417ca0a36c0 3 ****┏┓ ┏┓
TonyYI 0:3417ca0a36c0 4 **┏┛┻━━━━━━┛┻┓
TonyYI 0:3417ca0a36c0 5 **┃ ┃
TonyYI 0:3417ca0a36c0 6 **┃ ━━━ ┃
TonyYI 0:3417ca0a36c0 7 **┃ ┳┛ ┗┳ ┃
TonyYI 0:3417ca0a36c0 8 **┃ ┃
TonyYI 0:3417ca0a36c0 9 **┃ ''' ┻ ''' ┃
TonyYI 0:3417ca0a36c0 10 **┃ ┃
TonyYI 0:3417ca0a36c0 11 **┗━━┓ ┏━━┛
TonyYI 0:3417ca0a36c0 12 *******┃ ┃
TonyYI 0:3417ca0a36c0 13 *******┃ ┃
TonyYI 0:3417ca0a36c0 14 *******┃ ┃
TonyYI 0:3417ca0a36c0 15 *******┃ ┗━━━━━━━━┓
TonyYI 0:3417ca0a36c0 16 *******┃ ┃━┓
TonyYI 0:3417ca0a36c0 17 *******┃ NO BUG ┏━┛
TonyYI 0:3417ca0a36c0 18 *******┃ ┃
TonyYI 0:3417ca0a36c0 19 *******┗━┓ ┓ ┏━┏━┓ ━┛
TonyYI 0:3417ca0a36c0 20 ***********┃ ┛ ┛ ┃ ┛ ┛
TonyYI 0:3417ca0a36c0 21 ***********┃ ┃ ┃ ┃ ┃ ┃
TonyYI 0:3417ca0a36c0 22 ***********┗━┛━┛ ┗━┛━┛
TonyYI 0:3417ca0a36c0 23
TonyYI 0:3417ca0a36c0 24 This part is added by project ESDC2014 of CUHK team.
TonyYI 0:3417ca0a36c0 25 All the code with this header are under GPL open source license.
TonyYI 0:3417ca0a36c0 26 This program is running on Mbed Platform 'mbed LPC1768' avaliable in 'http://mbed.org'.
TonyYI 0:3417ca0a36c0 27 **********************************************************/
TonyYI 0:3417ca0a36c0 28 #include "mbed.h"
TonyYI 0:3417ca0a36c0 29 #include "define.h"
TonyYI 0:3417ca0a36c0 30
TonyYI 0:3417ca0a36c0 31 #ifndef _PORT_H
TonyYI 0:3417ca0a36c0 32 #define _PORT_H
TonyYI 0:3417ca0a36c0 33
TonyYI 0:3417ca0a36c0 34 MyDigitalOut IntelToMbed_LED(LED1); //uart port LED between Intel Board and Mbed
TonyYI 0:3417ca0a36c0 35 MyDigitalOut MbedToArduino_LED(LED2); //uart port LED between Mbed and Arduino
TonyYI 0:3417ca0a36c0 36 MySerial DEBUG(USBTX, USBRX); //usb serial port between computer and Mbed
TonyYI 0:3417ca0a36c0 37 MySerial IntelToMbed(p13, p14); //uart port between Intel Board and Mbed
TonyYI 0:3417ca0a36c0 38 MySerial MbedToArduino(p28, p27); //uart port between Mbed and Arduino
TonyYI 0:3417ca0a36c0 39 MyPwmOut lifter_pwmUp(p21);
TonyYI 0:3417ca0a36c0 40 MyPwmOut lifter_pwmDown(p22);
TonyYI 0:3417ca0a36c0 41 MyDigitalOut lifter_enable(p23);
TonyYI 0:3417ca0a36c0 42 MyInterruptIn lifter_encoder_A(p18);
TonyYI 0:3417ca0a36c0 43 MyDigitalIn lifter_encoder_B(p17);
TonyYI 0:3417ca0a36c0 44
TonyYI 0:3417ca0a36c0 45 MyPwmOut camera_platform_pwmRoll(p24);//roll min counter clockwise, max clockwise
TonyYI 0:3417ca0a36c0 46 MyPwmOut camera_platform_pwmPitch(p26);//pitch min down, max up, mid 1700
TonyYI 0:3417ca0a36c0 47 MyPwmOut camera_platform_pwmYaw(p25);//yaw min right, max left, mid 1500
TonyYI 0:3417ca0a36c0 48
TonyYI 0:3417ca0a36c0 49 MyDigitalOut buzzer_pin(p29);
TonyYI 0:3417ca0a36c0 50 Buzzer buzzer(&buzzer_pin);
TonyYI 0:3417ca0a36c0 51
TonyYI 0:3417ca0a36c0 52 Communication com(&DEBUG, &IntelToMbed, &MbedToArduino);
TonyYI 0:3417ca0a36c0 53 Lifter lifter(&lifter_enable, &lifter_pwmUp, &lifter_pwmDown, &lifter_encoder_A, &lifter_encoder_B);
TonyYI 0:3417ca0a36c0 54 Camera_platform camera_platform(&camera_platform_pwmRoll, &camera_platform_pwmPitch, &camera_platform_pwmYaw);
TonyYI 0:3417ca0a36c0 55
TonyYI 0:3417ca0a36c0 56 void IntelToMbedRxHandler()
TonyYI 0:3417ca0a36c0 57 {
TonyYI 0:3417ca0a36c0 58 //__disable_irq();//disable interupt when receiving data from XBEE_UART
TonyYI 0:3417ca0a36c0 59 uint8_t _x = IntelToMbed.getc();
TonyYI 0:3417ca0a36c0 60 com.putToBuffer(_x, 0); //function inside Communication::
TonyYI 0:3417ca0a36c0 61 //__enable_irq();
TonyYI 0:3417ca0a36c0 62 }
TonyYI 0:3417ca0a36c0 63 void MbedToArduinoRxHandler()
TonyYI 0:3417ca0a36c0 64 {
TonyYI 0:3417ca0a36c0 65 //__disable_irq();//disable interupt when receiving data from XBEE_UART
TonyYI 0:3417ca0a36c0 66 uint8_t _x = MbedToArduino.getc();
TonyYI 0:3417ca0a36c0 67 com.putToBuffer(_x, 1); //function inside Communication::
TonyYI 0:3417ca0a36c0 68 //__enable_irq();
TonyYI 0:3417ca0a36c0 69 }
TonyYI 0:3417ca0a36c0 70
TonyYI 0:3417ca0a36c0 71 void LifterPulseHandler()
TonyYI 0:3417ca0a36c0 72 {
TonyYI 0:3417ca0a36c0 73 if(lifter.pulseCount < lifter.targetPulseCount)
TonyYI 0:3417ca0a36c0 74 {
TonyYI 0:3417ca0a36c0 75 lifter.pulseCount++;
TonyYI 0:3417ca0a36c0 76 if(lifter.getDir() == 0) //up
TonyYI 0:3417ca0a36c0 77 {
TonyYI 0:3417ca0a36c0 78 lifter.setLifterUp();
TonyYI 0:3417ca0a36c0 79 }
TonyYI 0:3417ca0a36c0 80 else if(lifter.getDir() == 2)//down
TonyYI 0:3417ca0a36c0 81 {
TonyYI 0:3417ca0a36c0 82 lifter.setLifterDown();
TonyYI 0:3417ca0a36c0 83 }
TonyYI 0:3417ca0a36c0 84 }
TonyYI 0:3417ca0a36c0 85 else
TonyYI 0:3417ca0a36c0 86 {
TonyYI 0:3417ca0a36c0 87 lifter.targetPulseCount = 0;
TonyYI 0:3417ca0a36c0 88 lifter.pulseCount = 0;
TonyYI 0:3417ca0a36c0 89 lifter.setLifterStop();
TonyYI 0:3417ca0a36c0 90 }
TonyYI 0:3417ca0a36c0 91 }
TonyYI 0:3417ca0a36c0 92
TonyYI 0:3417ca0a36c0 93 void init_PORT() //used in main() function
TonyYI 0:3417ca0a36c0 94 {
TonyYI 0:3417ca0a36c0 95 DEBUG.baud(9600);
TonyYI 0:3417ca0a36c0 96
TonyYI 0:3417ca0a36c0 97 IntelToMbed.baud(9600);
TonyYI 0:3417ca0a36c0 98 IntelToMbed.attach(&IntelToMbedRxHandler); //serial interrupt function
TonyYI 0:3417ca0a36c0 99
TonyYI 0:3417ca0a36c0 100 MbedToArduino.baud(9600);
TonyYI 0:3417ca0a36c0 101 MbedToArduino.attach(&MbedToArduinoRxHandler); //serial interrupt function
TonyYI 0:3417ca0a36c0 102
TonyYI 0:3417ca0a36c0 103 lifter_encoder_A.fall(&LifterPulseHandler); //interrupt
TonyYI 0:3417ca0a36c0 104
TonyYI 0:3417ca0a36c0 105 camera_platform_pwmRoll.period_ms(20); //20ms periodic, 1000us to 2000us
TonyYI 0:3417ca0a36c0 106 camera_platform_pwmPitch.period_ms(20); //20ms periodic, 1000us to 2000us
TonyYI 0:3417ca0a36c0 107 camera_platform_pwmYaw.period_ms(20); //20ms periodic, 1000us to 2000us
TonyYI 0:3417ca0a36c0 108
TonyYI 0:3417ca0a36c0 109 camera_platform_pwmRoll.pulsewidth_us(ROLL_MID);
TonyYI 0:3417ca0a36c0 110 camera_platform_pwmPitch.pulsewidth_us(PITCH_MID);
TonyYI 0:3417ca0a36c0 111 camera_platform_pwmYaw.pulsewidth_us(YAW_MID);
TonyYI 0:3417ca0a36c0 112 }
TonyYI 0:3417ca0a36c0 113
TonyYI 0:3417ca0a36c0 114 #endif