Kaiwalya Belsare / Mbed 2 deprecated TennisBall_PickingRobot

Dependencies:   mbed QEI MPU6050 TextLCD

Committer:
belsarekaiwalya
Date:
Tue Mar 14 15:31:21 2017 +0000
Revision:
1:59c416ccba42
Parent:
0:c9c8c027609e
Child:
2:156f4732fbf1
Tested with L298N motor driver, set according to code conventions of Sumedh

Who changed what in which revision?

UserRevisionLine numberNew contents of line
belsarekaiwalya 1:59c416ccba42 1 #include "mbed.h"
belsarekaiwalya 1:59c416ccba42 2 /*DigitalOut myled(LED1);
belsarekaiwalya 1:59c416ccba42 3 DigitalOut m2dir1(PB_4);
belsarekaiwalya 1:59c416ccba42 4 DigitalOut m2dir2(PB_10);
belsarekaiwalya 1:59c416ccba42 5 DigitalOut m1dir1(PB_3);
belsarekaiwalya 1:59c416ccba42 6 DigitalOut m1dir2(PB_5);
belsarekaiwalya 1:59c416ccba42 7 PwmOut pwm1(PA_8);
belsarekaiwalya 1:59c416ccba42 8 PwmOut pwm2(PA_9);
belsarekaiwalya 0:c9c8c027609e 9
belsarekaiwalya 0:c9c8c027609e 10 int main() {
belsarekaiwalya 1:59c416ccba42 11
belsarekaiwalya 1:59c416ccba42 12 pwm1.period_ms(1);
belsarekaiwalya 1:59c416ccba42 13 pwm1 = 1;
belsarekaiwalya 1:59c416ccba42 14
belsarekaiwalya 1:59c416ccba42 15 pwm2.period_ms(1);
belsarekaiwalya 1:59c416ccba42 16 pwm2 = 1;
belsarekaiwalya 1:59c416ccba42 17
belsarekaiwalya 0:c9c8c027609e 18 while(1)
belsarekaiwalya 0:c9c8c027609e 19 {
belsarekaiwalya 1:59c416ccba42 20 m2dir1 = 1;
belsarekaiwalya 1:59c416ccba42 21 m2dir2 = 0;
belsarekaiwalya 1:59c416ccba42 22 m1dir1 = 1;
belsarekaiwalya 1:59c416ccba42 23 m1dir2 = 0;
belsarekaiwalya 1:59c416ccba42 24
belsarekaiwalya 1:59c416ccba42 25
belsarekaiwalya 1:59c416ccba42 26 //lcd.locate(1,0);
belsarekaiwalya 1:59c416ccba42 27 //lcd.printf("Hello\n");
belsarekaiwalya 0:c9c8c027609e 28 //myled = 1; // LED is ON
belsarekaiwalya 0:c9c8c027609e 29 //wait(0.2); // 200 ms
belsarekaiwalya 0:c9c8c027609e 30 //myled = 0; // LED is OFF
belsarekaiwalya 0:c9c8c027609e 31 //wait(1.0); // 1 sec
belsarekaiwalya 0:c9c8c027609e 32
belsarekaiwalya 0:c9c8c027609e 33 }
belsarekaiwalya 0:c9c8c027609e 34 }
belsarekaiwalya 0:c9c8c027609e 35 */
belsarekaiwalya 0:c9c8c027609e 36 #include "mbed.h"
belsarekaiwalya 0:c9c8c027609e 37 #include "TextLCD.h"
belsarekaiwalya 0:c9c8c027609e 38 TextLCD lcd(PA_0,PA_1,PA_4,PB_0,PC_1,PC_0); // rs, e, d4-d7
belsarekaiwalya 1:59c416ccba42 39 DigitalOut dirRa(PB_3);
belsarekaiwalya 1:59c416ccba42 40 DigitalOut dirRb(PB_5);
belsarekaiwalya 1:59c416ccba42 41 DigitalOut dirLa(PB_4);
belsarekaiwalya 1:59c416ccba42 42 DigitalOut dirLb(PB_10);
belsarekaiwalya 1:59c416ccba42 43 PwmOut pwmL(PA_8);//left
belsarekaiwalya 1:59c416ccba42 44 PwmOut pwmR(PA_9);//right
belsarekaiwalya 0:c9c8c027609e 45
belsarekaiwalya 0:c9c8c027609e 46 Serial bt(PC_6,PC_7);//tx,rx
belsarekaiwalya 0:c9c8c027609e 47 PwmOut mypwm(LED1);
belsarekaiwalya 0:c9c8c027609e 48 DigitalOut myled(LED1);
belsarekaiwalya 0:c9c8c027609e 49 Serial serial(USBTX, USBRX);
belsarekaiwalya 0:c9c8c027609e 50
belsarekaiwalya 0:c9c8c027609e 51 int ch ;
belsarekaiwalya 0:c9c8c027609e 52 int main()
belsarekaiwalya 0:c9c8c027609e 53 {
belsarekaiwalya 0:c9c8c027609e 54 bt.baud(9600);
belsarekaiwalya 0:c9c8c027609e 55 serial.baud(9600);
belsarekaiwalya 1:59c416ccba42 56 void brake();
belsarekaiwalya 0:c9c8c027609e 57 while(1)
belsarekaiwalya 0:c9c8c027609e 58 {
belsarekaiwalya 0:c9c8c027609e 59 if(bt.readable())
belsarekaiwalya 0:c9c8c027609e 60 {
belsarekaiwalya 0:c9c8c027609e 61 ch = bt.getc();
belsarekaiwalya 0:c9c8c027609e 62 lcd.cls();
belsarekaiwalya 0:c9c8c027609e 63 switch(ch)
belsarekaiwalya 0:c9c8c027609e 64 {
belsarekaiwalya 1:59c416ccba42 65 case 'w'://Front
belsarekaiwalya 1:59c416ccba42 66 void front();
belsarekaiwalya 1:59c416ccba42 67 dirRa = 1;
belsarekaiwalya 1:59c416ccba42 68 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 69 dirLa = 1;
belsarekaiwalya 1:59c416ccba42 70 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 71 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 72 pwmL=0.5;
belsarekaiwalya 1:59c416ccba42 73 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 74 pwmR=0.5;
belsarekaiwalya 1:59c416ccba42 75
belsarekaiwalya 0:c9c8c027609e 76 lcd.cls();
belsarekaiwalya 0:c9c8c027609e 77 serial.printf("Forward\n");
belsarekaiwalya 0:c9c8c027609e 78 lcd.locate(1,0);
belsarekaiwalya 0:c9c8c027609e 79 lcd.printf("Forward\n");
belsarekaiwalya 0:c9c8c027609e 80 break;
belsarekaiwalya 0:c9c8c027609e 81
belsarekaiwalya 1:59c416ccba42 82 case 'a'://Left
belsarekaiwalya 1:59c416ccba42 83 dirRa = 1;
belsarekaiwalya 1:59c416ccba42 84 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 85 dirLa = 0;
belsarekaiwalya 1:59c416ccba42 86 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 87 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 88 pwmL=0;
belsarekaiwalya 1:59c416ccba42 89 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 90 pwmR=0.5;
belsarekaiwalya 1:59c416ccba42 91
belsarekaiwalya 1:59c416ccba42 92 lcd.cls();
belsarekaiwalya 1:59c416ccba42 93 serial.printf("Left\n");
belsarekaiwalya 1:59c416ccba42 94 lcd.locate(1,0);
belsarekaiwalya 1:59c416ccba42 95 lcd.printf("Left\n");
belsarekaiwalya 1:59c416ccba42 96 //void left();
belsarekaiwalya 0:c9c8c027609e 97 break;
belsarekaiwalya 0:c9c8c027609e 98
belsarekaiwalya 1:59c416ccba42 99 case 's'://Back
belsarekaiwalya 1:59c416ccba42 100 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 101 dirRb = 1;
belsarekaiwalya 1:59c416ccba42 102 dirLa = 0;
belsarekaiwalya 1:59c416ccba42 103 dirLb = 1;
belsarekaiwalya 1:59c416ccba42 104 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 105 pwmL=0.5;
belsarekaiwalya 1:59c416ccba42 106 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 107 pwmR=0.5;
belsarekaiwalya 1:59c416ccba42 108
belsarekaiwalya 0:c9c8c027609e 109 lcd.cls();
belsarekaiwalya 0:c9c8c027609e 110 serial.printf("Back\n");
belsarekaiwalya 0:c9c8c027609e 111 lcd.locate(1,0);
belsarekaiwalya 0:c9c8c027609e 112 lcd.printf("Back\n");
belsarekaiwalya 0:c9c8c027609e 113 void back();
belsarekaiwalya 0:c9c8c027609e 114 break;
belsarekaiwalya 0:c9c8c027609e 115
belsarekaiwalya 1:59c416ccba42 116 case 'd'://Right
belsarekaiwalya 1:59c416ccba42 117 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 118 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 119 dirLa = 1;
belsarekaiwalya 1:59c416ccba42 120 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 121 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 122 pwmL=0.5f;
belsarekaiwalya 1:59c416ccba42 123 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 124 pwmR=0;
belsarekaiwalya 1:59c416ccba42 125
belsarekaiwalya 0:c9c8c027609e 126 lcd.cls();
belsarekaiwalya 0:c9c8c027609e 127 serial.printf("Right\n");
belsarekaiwalya 0:c9c8c027609e 128 lcd.locate(1,0);
belsarekaiwalya 0:c9c8c027609e 129 lcd.printf("Right\n");
belsarekaiwalya 0:c9c8c027609e 130 void right();
belsarekaiwalya 0:c9c8c027609e 131 break;
belsarekaiwalya 0:c9c8c027609e 132
belsarekaiwalya 1:59c416ccba42 133 case 'O'://Stop
belsarekaiwalya 1:59c416ccba42 134 dirRa = 1;
belsarekaiwalya 1:59c416ccba42 135 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 136 dirLa = 1;
belsarekaiwalya 1:59c416ccba42 137 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 138 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 139 pwmL=0;
belsarekaiwalya 1:59c416ccba42 140 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 141 pwmR=0;
belsarekaiwalya 1:59c416ccba42 142
belsarekaiwalya 1:59c416ccba42 143 lcd.cls();
belsarekaiwalya 1:59c416ccba42 144 serial.printf("STOP\n");
belsarekaiwalya 1:59c416ccba42 145 lcd.locate(1,0);
belsarekaiwalya 1:59c416ccba42 146 lcd.printf("STOP\n");
belsarekaiwalya 1:59c416ccba42 147 void Brake();
belsarekaiwalya 1:59c416ccba42 148 break;
belsarekaiwalya 1:59c416ccba42 149
belsarekaiwalya 1:59c416ccba42 150 case 'A'://Anticlock
belsarekaiwalya 1:59c416ccba42 151 dirRa = 1;
belsarekaiwalya 1:59c416ccba42 152 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 153 dirLa = 0;
belsarekaiwalya 1:59c416ccba42 154 dirLb = 1;
belsarekaiwalya 1:59c416ccba42 155 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 156 pwmL=0.5;
belsarekaiwalya 1:59c416ccba42 157 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 158 pwmR=0.5;
belsarekaiwalya 1:59c416ccba42 159
belsarekaiwalya 1:59c416ccba42 160 lcd.cls();
belsarekaiwalya 1:59c416ccba42 161 serial.printf("AntiClock\n");
belsarekaiwalya 1:59c416ccba42 162 lcd.locate(1,0);
belsarekaiwalya 1:59c416ccba42 163 lcd.printf("AntiClock\n");
belsarekaiwalya 1:59c416ccba42 164 break;
belsarekaiwalya 1:59c416ccba42 165
belsarekaiwalya 1:59c416ccba42 166 case 'C'://Clock
belsarekaiwalya 1:59c416ccba42 167 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 168 dirRb = 1;
belsarekaiwalya 1:59c416ccba42 169 dirLa = 1;
belsarekaiwalya 1:59c416ccba42 170 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 171 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 172 pwmL=0.5f;
belsarekaiwalya 1:59c416ccba42 173 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 174 pwmR=0.5f;
belsarekaiwalya 1:59c416ccba42 175
belsarekaiwalya 1:59c416ccba42 176 lcd.cls();
belsarekaiwalya 1:59c416ccba42 177 serial.printf("Clock\n");
belsarekaiwalya 1:59c416ccba42 178 lcd.locate(1,0);
belsarekaiwalya 1:59c416ccba42 179 lcd.printf("Clock\n");
belsarekaiwalya 1:59c416ccba42 180 break;
belsarekaiwalya 1:59c416ccba42 181
belsarekaiwalya 1:59c416ccba42 182
belsarekaiwalya 1:59c416ccba42 183
belsarekaiwalya 1:59c416ccba42 184
belsarekaiwalya 1:59c416ccba42 185
belsarekaiwalya 0:c9c8c027609e 186 default:
belsarekaiwalya 0:c9c8c027609e 187 serial.printf("Brake");
belsarekaiwalya 0:c9c8c027609e 188 lcd.cls();
belsarekaiwalya 0:c9c8c027609e 189 lcd.locate(1,0);
belsarekaiwalya 0:c9c8c027609e 190 lcd.printf("Brake");
belsarekaiwalya 0:c9c8c027609e 191 void brake();
belsarekaiwalya 0:c9c8c027609e 192
belsarekaiwalya 0:c9c8c027609e 193 }
belsarekaiwalya 0:c9c8c027609e 194
belsarekaiwalya 0:c9c8c027609e 195 }
belsarekaiwalya 0:c9c8c027609e 196
belsarekaiwalya 0:c9c8c027609e 197 //serial.printf("%c\n",ch);
belsarekaiwalya 0:c9c8c027609e 198 }
belsarekaiwalya 0:c9c8c027609e 199 }
belsarekaiwalya 0:c9c8c027609e 200 void front()
belsarekaiwalya 0:c9c8c027609e 201 {
belsarekaiwalya 1:59c416ccba42 202
belsarekaiwalya 1:59c416ccba42 203 dirRa = 1;
belsarekaiwalya 1:59c416ccba42 204 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 205 dirLa = 1;
belsarekaiwalya 1:59c416ccba42 206 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 207 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 208 pwmL=0.5;
belsarekaiwalya 1:59c416ccba42 209 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 210 pwmR=0.5;
belsarekaiwalya 0:c9c8c027609e 211
belsarekaiwalya 0:c9c8c027609e 212 }
belsarekaiwalya 0:c9c8c027609e 213 void brake()
belsarekaiwalya 0:c9c8c027609e 214 {
belsarekaiwalya 1:59c416ccba42 215 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 216 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 217 dirLa = 0;
belsarekaiwalya 1:59c416ccba42 218 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 219 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 220 pwmL=0.0;
belsarekaiwalya 1:59c416ccba42 221 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 222 pwmR=0.0;
belsarekaiwalya 0:c9c8c027609e 223
belsarekaiwalya 0:c9c8c027609e 224 }
belsarekaiwalya 0:c9c8c027609e 225 void back()
belsarekaiwalya 0:c9c8c027609e 226 {
belsarekaiwalya 1:59c416ccba42 227 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 228 dirRb = 1;
belsarekaiwalya 1:59c416ccba42 229 dirLa = 0;
belsarekaiwalya 1:59c416ccba42 230 dirLb = 1;
belsarekaiwalya 1:59c416ccba42 231 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 232 pwmL=0.5;
belsarekaiwalya 1:59c416ccba42 233 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 234 pwmR=0.5;
belsarekaiwalya 0:c9c8c027609e 235
belsarekaiwalya 0:c9c8c027609e 236 }
belsarekaiwalya 0:c9c8c027609e 237 void left()
belsarekaiwalya 0:c9c8c027609e 238 {
belsarekaiwalya 1:59c416ccba42 239 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 240 dirRb = 1;
belsarekaiwalya 1:59c416ccba42 241 dirLa = 0;
belsarekaiwalya 1:59c416ccba42 242 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 243 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 244 pwmL=0.5;
belsarekaiwalya 1:59c416ccba42 245 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 246 pwmR=0.0;
belsarekaiwalya 0:c9c8c027609e 247
belsarekaiwalya 0:c9c8c027609e 248 }
belsarekaiwalya 0:c9c8c027609e 249 void right()
belsarekaiwalya 0:c9c8c027609e 250 {
belsarekaiwalya 1:59c416ccba42 251 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 252 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 253 dirLa = 0;
belsarekaiwalya 1:59c416ccba42 254 dirLb = 1;
belsarekaiwalya 1:59c416ccba42 255 pwmL.period_ms(1);
belsarekaiwalya 1:59c416ccba42 256 pwmL=0.0f;
belsarekaiwalya 1:59c416ccba42 257 pwmR.period_ms(1);
belsarekaiwalya 1:59c416ccba42 258 pwmR=0.5f;
belsarekaiwalya 0:c9c8c027609e 259
belsarekaiwalya 0:c9c8c027609e 260 }