chia-hsun wu / Mbed 2 deprecated Boboobooov6

Dependencies:   mbed-rtos mbed

Fork of Boboobooov5 by kao yi

Committer:
fhcrcmars
Date:
Fri Jul 11 07:44:10 2014 +0000
Revision:
22:25602957d6bf
Parent:
21:9b00595af99a
test camera line bits

Who changed what in which revision?

UserRevisionLine numberNew contents of line
backman 0:68c173249c01 1 #include "mbed.h"
backman 11:418e39749f48 2 #include "rtos.h"
fhcrcmars 21:9b00595af99a 3 //#include "controller.h"
fhcrcmars 21:9b00595af99a 4 //#include "servo_api.h"
backman 1:82bc25a7b68b 5 #include "camera_api.h"
fhcrcmars 21:9b00595af99a 6 //#include "motor_api.h"
fhcrcmars 21:9b00595af99a 7 //#include "pot.h"
fhcrcmars 21:9b00595af99a 8 //#include "TSISensor.h"
fhcrcmars 21:9b00595af99a 9 //#include "Stack.h"
backman 3:c5f2281b3ed2 10
backman 3:c5f2281b3ed2 11 #define Debug_cam_uart
fhcrcmars 21:9b00595af99a 12 #define L_eye
fhcrcmars 21:9b00595af99a 13 #define R_eye
fhcrcmars 21:9b00595af99a 14 //#define motor_on
fhcrcmars 21:9b00595af99a 15 //#define Pcontroller
backman 19:4869b10a962e 16 //#define task_ma_time
backman 11:418e39749f48 17
fhcrcmars 21:9b00595af99a 18 //#define R_target 64
fhcrcmars 21:9b00595af99a 19 //#define L_target 64
backman 14:2d90b0066fc6 20
fhcrcmars 21:9b00595af99a 21 #define t_cam 6
fhcrcmars 21:9b00595af99a 22
fhcrcmars 21:9b00595af99a 23 //#define black_center 64
fhcrcmars 21:9b00595af99a 24
fhcrcmars 21:9b00595af99a 25
fhcrcmars 21:9b00595af99a 26 Serial pc(USBTX, USBRX); // tx, rx
backman 14:2d90b0066fc6 27
backman 14:2d90b0066fc6 28
backman 14:2d90b0066fc6 29
fhcrcmars 21:9b00595af99a 30 //BX_servo servo;
backman 6:5a39bde2e016 31
backman 14:2d90b0066fc6 32 BX_camera cam(0);
backman 0:68c173249c01 33
fhcrcmars 21:9b00595af99a 34 //BX_motor MotorA('A');
fhcrcmars 21:9b00595af99a 35 //BX_motor MotorB('B');
backman 3:c5f2281b3ed2 36
fhcrcmars 21:9b00595af99a 37 //BX_pot pot1('1');
fhcrcmars 21:9b00595af99a 38 //BX_pot pot2('2');
backman 7:fd976e1ced33 39
backman 9:33b99cb45e99 40 // 90/30=3
fhcrcmars 21:9b00595af99a 41 //PID cam_to_M_ctrlr(10.0,118.0,0.046,0.083,0.083-0.046,0.00,0.00,10);
backman 7:fd976e1ced33 42
fhcrcmars 21:9b00595af99a 43 /*#ifdef task_ma_time
backman 19:4869b10a962e 44 DigitalOut cam_p(PTE5); //cam black
backman 19:4869b10a962e 45 DigitalOut servo_p(PTE4); //servo coffee
backman 19:4869b10a962e 46 DigitalOut idle_p (PTE3);
backman 19:4869b10a962e 47 //DigitalOut de_p(PTD3); // red
backman 18:eb675df59c7f 48 #endif
backman 9:33b99cb45e99 49 TSISensor tsi;
fhcrcmars 21:9b00595af99a 50 */
backman 11:418e39749f48 51 //os
backman 11:418e39749f48 52 Mutex stdio_mutex;
backman 11:418e39749f48 53
backman 11:418e39749f48 54
backman 14:2d90b0066fc6 55
backman 18:eb675df59c7f 56 //global resource
backman 18:eb675df59c7f 57
fhcrcmars 21:9b00595af99a 58 //static int pre_b_r_c;
backman 15:585df3979be8 59
backman 11:418e39749f48 60 void cam_thread(void const *args){
backman 9:33b99cb45e99 61
backman 11:418e39749f48 62 while(true){
fhcrcmars 21:9b00595af99a 63 cam.read();
backman 19:4869b10a962e 64
backman 19:4869b10a962e 65 int b_r_c,b_l_c;
backman 19:4869b10a962e 66 b_r_c=cam.black_centerR();
fhcrcmars 21:9b00595af99a 67 b_l_c=cam.black_centerL();
fhcrcmars 21:9b00595af99a 68
fhcrcmars 21:9b00595af99a 69 Thread::wait(t_cam);
fhcrcmars 21:9b00595af99a 70 }
backman 11:418e39749f48 71 }
backman 19:4869b10a962e 72
backman 11:418e39749f48 73 void de_thread(void const *args){
backman 9:33b99cb45e99 74
backman 11:418e39749f48 75 while(1){
backman 11:418e39749f48 76
backman 18:eb675df59c7f 77
fhcrcmars 21:9b00595af99a 78 cam.read();
backman 11:418e39749f48 79 stdio_mutex.lock();
backman 11:418e39749f48 80 #ifdef Debug_cam_uart
backman 11:418e39749f48 81 #ifdef L_eye
backman 17:3dac99cf2b89 82 pc.printf("L: ");
fhcrcmars 21:9b00595af99a 83 for(int i=127;i>=0;i--){
fhcrcmars 21:9b00595af99a 84 if(i==64||i==0||i==127)
backman 12:fdada4af384a 85 pc.printf("X");
backman 11:418e39749f48 86 else
backman 13:63f9a5101205 87 pc.printf("%c", cam.sign_line_imageL[i]);
backman 11:418e39749f48 88 }
backman 13:63f9a5101205 89
fhcrcmars 21:9b00595af99a 90 pc.printf(" || ");
backman 11:418e39749f48 91 #endif
backman 11:418e39749f48 92 #ifdef R_eye
backman 12:fdada4af384a 93 pc.printf("R: ");
fhcrcmars 21:9b00595af99a 94 for(int i=127;i>=0;i--){
fhcrcmars 21:9b00595af99a 95 if(i==64||i==0||i==127)
backman 12:fdada4af384a 96 pc.printf("X");
backman 11:418e39749f48 97 else
backman 12:fdada4af384a 98 pc.printf("%c", cam.sign_line_imageR[i]);
backman 11:418e39749f48 99 }
backman 17:3dac99cf2b89 100 #endif
fhcrcmars 21:9b00595af99a 101 //pc.printf("\r\n");
fhcrcmars 21:9b00595af99a 102 pc.printf(" \r\n Lcenter :%d Rcenter :%d \r\n",cam.black_centerL(),cam.black_centerR());
backman 17:3dac99cf2b89 103
backman 15:585df3979be8 104
backman 19:4869b10a962e 105
backman 11:418e39749f48 106 stdio_mutex.unlock();
backman 1:82bc25a7b68b 107
backman 1:82bc25a7b68b 108
backman 18:eb675df59c7f 109
backman 18:eb675df59c7f 110 #ifdef task_ma_time
backman 19:4869b10a962e 111 //de_p=1;
backman 18:eb675df59c7f 112 #endif
backman 11:418e39749f48 113
backman 7:fd976e1ced33 114
backman 7:fd976e1ced33 115
backman 11:418e39749f48 116 #endif
backman 19:4869b10a962e 117 Thread::wait(10);
backman 7:fd976e1ced33 118
backman 11:418e39749f48 119
backman 11:418e39749f48 120 }
backman 11:418e39749f48 121
backman 11:418e39749f48 122 }
backman 11:418e39749f48 123
backman 11:418e39749f48 124
backman 11:418e39749f48 125 int main() {
backman 11:418e39749f48 126
backman 11:418e39749f48 127 // baud rate init --- no function
backman 12:fdada4af384a 128
fhcrcmars 21:9b00595af99a 129 //servo.set_angle(0.055);
backman 12:fdada4af384a 130 pc.baud(115200);
backman 20:30799cbda86b 131
fhcrcmars 22:25602957d6bf 132 Thread th_c(cam_thread);
fhcrcmars 21:9b00595af99a 133 Thread th_de(de_thread);
backman 12:fdada4af384a 134
fhcrcmars 21:9b00595af99a 135 while(1){
fhcrcmars 21:9b00595af99a 136 Thread::wait(500);
fhcrcmars 21:9b00595af99a 137 }
backman 1:82bc25a7b68b 138 return 0;
backman 0:68c173249c01 139
backman 0:68c173249c01 140
backman 0:68c173249c01 141 }