fatboyslim / Mbed 2 deprecated buttontest

Dependencies:   FRDM-TFC mbed

Committer:
bbbobbbieo
Date:
Mon Feb 23 20:08:25 2015 +0000
Revision:
9:2b028ee421ad
Parent:
8:946806df7347
Child:
10:6d9d70a240fd
got the camera to see one pixel of black vs white with led response;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bbbobbbieo 3:c7caa058fc50 1 //#include "mbed.h"
bbbobbbieo 1:21d40d90b2f0 2 #include "TFC.h"
bbbobbbieo 0:d57117b2188d 3
bbbobbbieo 0:d57117b2188d 4 DigitalOut myled(LED1);
bbbobbbieo 0:d57117b2188d 5
bbbobbbieo 1:21d40d90b2f0 6 int main()
bbbobbbieo 1:21d40d90b2f0 7 {
bbbobbbieo 7:455e7dd338ee 8 //run this before anything
bbbobbbieo 2:d8a51492b646 9 TFC_Init();
bbbobbbieo 2:d8a51492b646 10
bbbobbbieo 7:455e7dd338ee 11 //variables
bbbobbbieo 4:7584ff0426f1 12 float current_servo_position = 0;
bbbobbbieo 6:44d1079f076c 13 float current_left_motor_speed = 0;
bbbobbbieo 6:44d1079f076c 14 float current_right_motor_speed = 0;
bbbobbbieo 6:44d1079f076c 15 bool rear_motor_enable_flag = true;
bbbobbbieo 7:455e7dd338ee 16 bool linescan_ping_pong = false;
bbbobbbieo 9:2b028ee421ad 17 bool linescan_enable = true;
bbbobbbieo 4:7584ff0426f1 18
bbbobbbieo 9:2b028ee421ad 19 //uint16_t MyImage0Buffer[2][128];
bbbobbbieo 9:2b028ee421ad 20 //uint16_t MyImage1Buffer[2][128];
bbbobbbieo 7:455e7dd338ee 21
bbbobbbieo 7:455e7dd338ee 22
bbbobbbieo 7:455e7dd338ee 23 // major loop
bbbobbbieo 1:21d40d90b2f0 24 while(1)
bbbobbbieo 1:21d40d90b2f0 25 {
bbbobbbieo 2:d8a51492b646 26
bbbobbbieo 3:c7caa058fc50 27 if (TFC_ReadPushButton(0) != 0 )
bbbobbbieo 3:c7caa058fc50 28 {
bbbobbbieo 9:2b028ee421ad 29 /*(TFC_BAT_LED0_ON;
bbbobbbieo 6:44d1079f076c 30 wait(0.004);
bbbobbbieo 3:c7caa058fc50 31 TFC_BAT_LED0_OFF;
bbbobbbieo 9:2b028ee421ad 32 wait(0.004);*/
bbbobbbieo 4:7584ff0426f1 33
bbbobbbieo 6:44d1079f076c 34 current_servo_position = current_servo_position-.005;
bbbobbbieo 6:44d1079f076c 35 if(current_servo_position <= -0.4)
bbbobbbieo 6:44d1079f076c 36 current_servo_position = -0.4;
bbbobbbieo 5:e7e4f1967fb8 37 TFC_SetServo(0, current_servo_position);
bbbobbbieo 7:455e7dd338ee 38 }// end check button0
bbbobbbieo 4:7584ff0426f1 39
bbbobbbieo 3:c7caa058fc50 40 else
bbbobbbieo 3:c7caa058fc50 41 {
bbbobbbieo 9:2b028ee421ad 42 //TFC_BAT_LED0_ON;
bbbobbbieo 3:c7caa058fc50 43 }
bbbobbbieo 4:7584ff0426f1 44
bbbobbbieo 4:7584ff0426f1 45 if (TFC_ReadPushButton(1) != 0 )
bbbobbbieo 4:7584ff0426f1 46 {
bbbobbbieo 9:2b028ee421ad 47 /*TFC_BAT_LED1_ON;
bbbobbbieo 6:44d1079f076c 48 wait(0.004);
bbbobbbieo 4:7584ff0426f1 49 TFC_BAT_LED1_OFF;
bbbobbbieo 9:2b028ee421ad 50 wait(0.004);*/
bbbobbbieo 4:7584ff0426f1 51
bbbobbbieo 6:44d1079f076c 52 current_servo_position = current_servo_position+.005;
bbbobbbieo 6:44d1079f076c 53 if(current_servo_position >= 0.4)
bbbobbbieo 6:44d1079f076c 54 current_servo_position = 0.4;
bbbobbbieo 5:e7e4f1967fb8 55 TFC_SetServo(0, current_servo_position);
bbbobbbieo 7:455e7dd338ee 56 }// end check button1
bbbobbbieo 4:7584ff0426f1 57
bbbobbbieo 4:7584ff0426f1 58 else
bbbobbbieo 4:7584ff0426f1 59 {
bbbobbbieo 9:2b028ee421ad 60 //TFC_BAT_LED1_ON;
bbbobbbieo 4:7584ff0426f1 61 }
bbbobbbieo 4:7584ff0426f1 62
bbbobbbieo 6:44d1079f076c 63 if(rear_motor_enable_flag)
bbbobbbieo 6:44d1079f076c 64 {
bbbobbbieo 7:455e7dd338ee 65 TFC_HBRIDGE_ENABLE;
bbbobbbieo 6:44d1079f076c 66 //current_left_motor_speed = current_left_motor_speed + .3*(TFC_ReadPot(0));
bbbobbbieo 6:44d1079f076c 67 //current_right_motor_speed = current_right_motor_speed + .3*(TFC_ReadPot(1));
bbbobbbieo 6:44d1079f076c 68
bbbobbbieo 7:455e7dd338ee 69 //current_left_motor_speed = .3*(TFC_ReadPot(0));
bbbobbbieo 7:455e7dd338ee 70 //current_right_motor_speed = .3*(TFC_ReadPot(1));
bbbobbbieo 7:455e7dd338ee 71
bbbobbbieo 7:455e7dd338ee 72 current_left_motor_speed = (TFC_ReadPot(0));
bbbobbbieo 7:455e7dd338ee 73 current_right_motor_speed = (TFC_ReadPot(1));
bbbobbbieo 6:44d1079f076c 74
bbbobbbieo 6:44d1079f076c 75 if(current_left_motor_speed >= 0.4)
bbbobbbieo 6:44d1079f076c 76 current_left_motor_speed= 0.4;
bbbobbbieo 6:44d1079f076c 77 if(current_right_motor_speed >= 0.4)
bbbobbbieo 6:44d1079f076c 78 current_right_motor_speed= 0.4;
bbbobbbieo 6:44d1079f076c 79 if(current_left_motor_speed <= -0.4)
bbbobbbieo 6:44d1079f076c 80 current_left_motor_speed= -0.4;
bbbobbbieo 6:44d1079f076c 81 if(current_right_motor_speed <= -0.4)
bbbobbbieo 6:44d1079f076c 82 current_right_motor_speed= -0.4;
bbbobbbieo 6:44d1079f076c 83
bbbobbbieo 6:44d1079f076c 84 TFC_SetMotorPWM(current_left_motor_speed, current_right_motor_speed);
bbbobbbieo 7:455e7dd338ee 85 }// end motor enabled
bbbobbbieo 7:455e7dd338ee 86 else
bbbobbbieo 7:455e7dd338ee 87 {
bbbobbbieo 7:455e7dd338ee 88 TFC_HBRIDGE_DISABLE;
bbbobbbieo 7:455e7dd338ee 89 }// end motor disabled
bbbobbbieo 7:455e7dd338ee 90
bbbobbbieo 7:455e7dd338ee 91 if (linescan_enable)
bbbobbbieo 7:455e7dd338ee 92 {
bbbobbbieo 7:455e7dd338ee 93 if (TFC_LineScanImageReady !=0)
bbbobbbieo 7:455e7dd338ee 94 {
bbbobbbieo 9:2b028ee421ad 95 // this block sucks
bbbobbbieo 7:455e7dd338ee 96 if (linescan_ping_pong) //checking channel 0
bbbobbbieo 7:455e7dd338ee 97 {
bbbobbbieo 7:455e7dd338ee 98 //...
bbbobbbieo 9:2b028ee421ad 99 //uint8_t shitnum = uint8_t(*TFC_LineScanImage0>>3);
bbbobbbieo 9:2b028ee421ad 100 uint8_t shitnum = 1;
bbbobbbieo 9:2b028ee421ad 101 if (*(TFC_LineScanImage0+64) > 400)
bbbobbbieo 9:2b028ee421ad 102 shitnum = 15;
bbbobbbieo 9:2b028ee421ad 103 else if((*TFC_LineScanImage0 > 350))
bbbobbbieo 9:2b028ee421ad 104 shitnum = 7;
bbbobbbieo 9:2b028ee421ad 105 else if((*TFC_LineScanImage0 > 300))
bbbobbbieo 9:2b028ee421ad 106 shitnum = 3;
bbbobbbieo 9:2b028ee421ad 107 else
bbbobbbieo 9:2b028ee421ad 108 shitnum = 1;
bbbobbbieo 9:2b028ee421ad 109
bbbobbbieo 9:2b028ee421ad 110 TFC_SetBatteryLED(shitnum);
bbbobbbieo 7:455e7dd338ee 111 linescan_ping_pong = false;
bbbobbbieo 7:455e7dd338ee 112 }
bbbobbbieo 7:455e7dd338ee 113 else //checking channel 1
bbbobbbieo 7:455e7dd338ee 114 {
bbbobbbieo 7:455e7dd338ee 115 //...
bbbobbbieo 9:2b028ee421ad 116 //TFC_SetBatteryLED(*TFC_LineScanImage1+4);
bbbobbbieo 7:455e7dd338ee 117 linescan_ping_pong = true;
bbbobbbieo 7:455e7dd338ee 118 }
bbbobbbieo 9:2b028ee421ad 119 // end of this block sucks
bbbobbbieo 9:2b028ee421ad 120
bbbobbbieo 9:2b028ee421ad 121 /* this block sucks too
bbbobbbieo 9:2b028ee421ad 122 if ((* TFC_LineScanImage0) > (* TFC_LineScanImage1))
bbbobbbieo 9:2b028ee421ad 123 TFC_SetBatteryLED(*TFC_LineScanImage0);
bbbobbbieo 9:2b028ee421ad 124 else
bbbobbbieo 9:2b028ee421ad 125 TFC_SetBatteryLED(*TFC_LineScanImage1);
bbbobbbieo 9:2b028ee421ad 126 */
bbbobbbieo 9:2b028ee421ad 127
bbbobbbieo 9:2b028ee421ad 128 //TFC_SetBatteryLED(*TFC_LineScanImage0+4);
bbbobbbieo 9:2b028ee421ad 129
bbbobbbieo 7:455e7dd338ee 130
bbbobbbieo 7:455e7dd338ee 131 TFC_LineScanImageReady ==0; // since we used it, we reset the flag
bbbobbbieo 7:455e7dd338ee 132 }// end imageready
bbbobbbieo 7:455e7dd338ee 133 }// end linescan stuff
bbbobbbieo 0:d57117b2188d 134 }
bbbobbbieo 0:d57117b2188d 135 }
bbbobbbieo 8:946806df7347 136
bbbobbbieo 8:946806df7347 137
bbbobbbieo 8:946806df7347 138
bbbobbbieo 8:946806df7347 139 // shit code
bbbobbbieo 8:946806df7347 140
bbbobbbieo 8:946806df7347 141 //this block is the worst image processing algorithm ever
bbbobbbieo 8:946806df7347 142 /*
bbbobbbieo 8:946806df7347 143 black_values_list[];
bbbobbbieo 8:946806df7347 144 black_value_count = 0;
bbbobbbieo 8:946806df7347 145 black_center_value = 0;
bbbobbbieo 8:946806df7347 146 sum_black = 0;
bbbobbbieo 8:946806df7347 147
bbbobbbieo 8:946806df7347 148 for (int i=0; i<128; i++)
bbbobbbieo 8:946806df7347 149 {
bbbobbbieo 8:946806df7347 150 if (camera_data[i]< 100)
bbbobbbieo 8:946806df7347 151 {
bbbobbbieo 8:946806df7347 152 black_values_list[black_value_count] = i;
bbbobbbieo 8:946806df7347 153 black_value_count++;
bbbobbbieo 8:946806df7347 154 }
bbbobbbieo 8:946806df7347 155 }
bbbobbbieo 8:946806df7347 156
bbbobbbieo 8:946806df7347 157 for(int i=0; i<black_value_count; i++)
bbbobbbieo 8:946806df7347 158 {
bbbobbbieo 8:946806df7347 159 sum_black += black_values_list[i];
bbbobbbieo 8:946806df7347 160 }
bbbobbbieo 8:946806df7347 161
bbbobbbieo 8:946806df7347 162 black_center_value= sum_black / black_value_count;
bbbobbbieo 8:946806df7347 163
bbbobbbieo 8:946806df7347 164 if (black_center_value > 64)
bbbobbbieo 8:946806df7347 165 servo_left();
bbbobbbieo 8:946806df7347 166
bbbobbbieo 8:946806df7347 167 if (black_center_value < 64)
bbbobbbieo 8:946806df7347 168 servo_right();
bbbobbbieo 8:946806df7347 169 */
bbbobbbieo 8:946806df7347 170
bbbobbbieo 8:946806df7347 171