Code

Dependencies:   mbed QEI MPU6050 TextLCD

Committer:
belsarekaiwalya
Date:
Wed Mar 22 06:42:53 2017 +0000
Revision:
3:86145fd89b45
Parent:
2:156f4732fbf1
Child:
4:b084af72f9a6
Checked and tested with the corresponding pwm pins for left and right.; Includes front,back,left,right,clock and anticlock motion.Includes LCD, Bluetooth HC-05.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
belsarekaiwalya 0:c9c8c027609e 1 #include "mbed.h"
belsarekaiwalya 0:c9c8c027609e 2 #include "TextLCD.h"
belsarekaiwalya 0:c9c8c027609e 3 TextLCD lcd(PA_0,PA_1,PA_4,PB_0,PC_1,PC_0); // rs, e, d4-d7
belsarekaiwalya 3:86145fd89b45 4 Serial serial(USBTX, USBRX);
belsarekaiwalya 3:86145fd89b45 5 Serial bt(PC_6,PC_7);//tx,rx
belsarekaiwalya 1:59c416ccba42 6 DigitalOut dirRa(PB_3);
belsarekaiwalya 1:59c416ccba42 7 DigitalOut dirRb(PB_5);
belsarekaiwalya 1:59c416ccba42 8 DigitalOut dirLa(PB_4);
belsarekaiwalya 1:59c416ccba42 9 DigitalOut dirLb(PB_10);
belsarekaiwalya 1:59c416ccba42 10 PwmOut pwmL(PA_8);//left
belsarekaiwalya 1:59c416ccba42 11 PwmOut pwmR(PA_9);//right
belsarekaiwalya 0:c9c8c027609e 12
belsarekaiwalya 3:86145fd89b45 13 void InitSerial();
belsarekaiwalya 3:86145fd89b45 14 void front(float xpwmL,float xpwmR);
belsarekaiwalya 3:86145fd89b45 15 void back(float xpwm,float xpwmR);
belsarekaiwalya 3:86145fd89b45 16 void left(float xpwm, float xpwmR);
belsarekaiwalya 3:86145fd89b45 17 void right(float xpwm,float xpwmR);
belsarekaiwalya 3:86145fd89b45 18 void clockWise(float xpwm,float xpwmR);
belsarekaiwalya 3:86145fd89b45 19 void antiClock(float xpwm,float xpwmR);
belsarekaiwalya 3:86145fd89b45 20 void Brake();
belsarekaiwalya 0:c9c8c027609e 21
belsarekaiwalya 3:86145fd89b45 22 int ch;
belsarekaiwalya 3:86145fd89b45 23
belsarekaiwalya 3:86145fd89b45 24 void InitSerial()
belsarekaiwalya 0:c9c8c027609e 25 {
belsarekaiwalya 0:c9c8c027609e 26 bt.baud(9600);
belsarekaiwalya 0:c9c8c027609e 27 serial.baud(9600);
belsarekaiwalya 3:86145fd89b45 28 }
belsarekaiwalya 3:86145fd89b45 29 void SetPwmf_kHz(float freq)
belsarekaiwalya 3:86145fd89b45 30 {
belsarekaiwalya 3:86145fd89b45 31
belsarekaiwalya 3:86145fd89b45 32 pwmL.period_ms(freq);
belsarekaiwalya 3:86145fd89b45 33 pwmR.period_ms(freq);
belsarekaiwalya 3:86145fd89b45 34
belsarekaiwalya 3:86145fd89b45 35 }
belsarekaiwalya 3:86145fd89b45 36 int main()
belsarekaiwalya 3:86145fd89b45 37 {
belsarekaiwalya 3:86145fd89b45 38 InitSerial();
belsarekaiwalya 3:86145fd89b45 39 SetPwmf_kHz(1);
belsarekaiwalya 3:86145fd89b45 40 Brake();
belsarekaiwalya 0:c9c8c027609e 41 while(1)
belsarekaiwalya 0:c9c8c027609e 42 {
belsarekaiwalya 0:c9c8c027609e 43 if(bt.readable())
belsarekaiwalya 0:c9c8c027609e 44 {
belsarekaiwalya 0:c9c8c027609e 45 ch = bt.getc();
belsarekaiwalya 0:c9c8c027609e 46 lcd.cls();
belsarekaiwalya 0:c9c8c027609e 47 switch(ch)
belsarekaiwalya 0:c9c8c027609e 48 {
belsarekaiwalya 1:59c416ccba42 49 case 'w'://Front
belsarekaiwalya 3:86145fd89b45 50 front(0.5,0.5);
belsarekaiwalya 3:86145fd89b45 51 serial.printf("Forward\n");
belsarekaiwalya 3:86145fd89b45 52 lcd.cls();
belsarekaiwalya 3:86145fd89b45 53 lcd.locate(1,0);
belsarekaiwalya 3:86145fd89b45 54 lcd.printf("Forward\n");
belsarekaiwalya 3:86145fd89b45 55 break;
belsarekaiwalya 3:86145fd89b45 56
belsarekaiwalya 1:59c416ccba42 57 case 'a'://Left
belsarekaiwalya 3:86145fd89b45 58 left(0,0.5);
belsarekaiwalya 3:86145fd89b45 59 serial.printf("Left\n");
belsarekaiwalya 3:86145fd89b45 60 lcd.cls();
belsarekaiwalya 3:86145fd89b45 61 lcd.locate(1,0);
belsarekaiwalya 3:86145fd89b45 62 lcd.printf("Left\n");
belsarekaiwalya 3:86145fd89b45 63 break;
belsarekaiwalya 3:86145fd89b45 64
belsarekaiwalya 1:59c416ccba42 65 case 's'://Back
belsarekaiwalya 3:86145fd89b45 66 back(0.5,0.5);
belsarekaiwalya 3:86145fd89b45 67 serial.printf("Back\n");
belsarekaiwalya 3:86145fd89b45 68 lcd.cls();
belsarekaiwalya 3:86145fd89b45 69 lcd.locate(1,0);
belsarekaiwalya 3:86145fd89b45 70 lcd.printf("Back\n");
belsarekaiwalya 3:86145fd89b45 71 break;
belsarekaiwalya 3:86145fd89b45 72
belsarekaiwalya 1:59c416ccba42 73 case 'd'://Right
belsarekaiwalya 3:86145fd89b45 74 right(0.5,0);
belsarekaiwalya 3:86145fd89b45 75 serial.printf("Right\n");
belsarekaiwalya 3:86145fd89b45 76 lcd.cls();
belsarekaiwalya 3:86145fd89b45 77 lcd.locate(1,0);
belsarekaiwalya 3:86145fd89b45 78 lcd.printf("Right\n");
belsarekaiwalya 3:86145fd89b45 79 break;
belsarekaiwalya 3:86145fd89b45 80
belsarekaiwalya 1:59c416ccba42 81 case 'O'://Stop
belsarekaiwalya 3:86145fd89b45 82 Brake();
belsarekaiwalya 3:86145fd89b45 83 serial.printf("STOP\n");
belsarekaiwalya 3:86145fd89b45 84 lcd.cls();
belsarekaiwalya 3:86145fd89b45 85 lcd.locate(1,0);
belsarekaiwalya 3:86145fd89b45 86 lcd.printf("STOP\n");
belsarekaiwalya 3:86145fd89b45 87 break;
belsarekaiwalya 3:86145fd89b45 88
belsarekaiwalya 1:59c416ccba42 89 case 'A'://Anticlock
belsarekaiwalya 3:86145fd89b45 90 antiClock(0.5,0.5);
belsarekaiwalya 3:86145fd89b45 91 serial.printf("AntiClock\n");
belsarekaiwalya 3:86145fd89b45 92 lcd.cls();
belsarekaiwalya 3:86145fd89b45 93 lcd.locate(1,0);
belsarekaiwalya 3:86145fd89b45 94 lcd.printf("AntiClock\n");
belsarekaiwalya 3:86145fd89b45 95 break;
belsarekaiwalya 3:86145fd89b45 96
belsarekaiwalya 1:59c416ccba42 97 case 'C'://Clock
belsarekaiwalya 3:86145fd89b45 98 clockWise(0.5,0.5);
belsarekaiwalya 3:86145fd89b45 99 serial.printf("Clock\n");
belsarekaiwalya 3:86145fd89b45 100 lcd.cls();
belsarekaiwalya 3:86145fd89b45 101 lcd.locate(1,0);
belsarekaiwalya 3:86145fd89b45 102 lcd.printf("Clock\n");
belsarekaiwalya 3:86145fd89b45 103 break;
belsarekaiwalya 1:59c416ccba42 104
belsarekaiwalya 0:c9c8c027609e 105 default:
belsarekaiwalya 3:86145fd89b45 106 Brake();
belsarekaiwalya 3:86145fd89b45 107 serial.printf("Brake");
belsarekaiwalya 3:86145fd89b45 108 lcd.cls();
belsarekaiwalya 3:86145fd89b45 109 lcd.locate(1,0);
belsarekaiwalya 3:86145fd89b45 110 lcd.printf("Brake");
belsarekaiwalya 3:86145fd89b45 111 }
belsarekaiwalya 0:c9c8c027609e 112 }
belsarekaiwalya 0:c9c8c027609e 113 }
belsarekaiwalya 0:c9c8c027609e 114 }
belsarekaiwalya 3:86145fd89b45 115 void front(float xpwmL,float xpwmR)
belsarekaiwalya 3:86145fd89b45 116 {
belsarekaiwalya 3:86145fd89b45 117 dirLa = 1;
belsarekaiwalya 3:86145fd89b45 118 dirLb = 0;
belsarekaiwalya 3:86145fd89b45 119 pwmL= xpwmL;
belsarekaiwalya 1:59c416ccba42 120
belsarekaiwalya 1:59c416ccba42 121 dirRa = 1;
belsarekaiwalya 1:59c416ccba42 122 dirRb = 0;
belsarekaiwalya 3:86145fd89b45 123 pwmR= xpwmR;
belsarekaiwalya 3:86145fd89b45 124 }
belsarekaiwalya 3:86145fd89b45 125 void back(float xpwmL,float xpwmR)
belsarekaiwalya 3:86145fd89b45 126 {
belsarekaiwalya 3:86145fd89b45 127 dirLa = 0;
belsarekaiwalya 3:86145fd89b45 128 dirLb = 1;
belsarekaiwalya 3:86145fd89b45 129 pwmL= xpwmL;
belsarekaiwalya 3:86145fd89b45 130
belsarekaiwalya 3:86145fd89b45 131 dirRa = 0;
belsarekaiwalya 3:86145fd89b45 132 dirRb = 1;
belsarekaiwalya 3:86145fd89b45 133 pwmR= xpwmR;
belsarekaiwalya 3:86145fd89b45 134 }
belsarekaiwalya 3:86145fd89b45 135 void left(float xpwmL,float xpwmR)
belsarekaiwalya 3:86145fd89b45 136 {
belsarekaiwalya 3:86145fd89b45 137 dirLa = 0;
belsarekaiwalya 3:86145fd89b45 138 dirLb = 0;
belsarekaiwalya 3:86145fd89b45 139 pwmL= xpwmL;
belsarekaiwalya 3:86145fd89b45 140
belsarekaiwalya 3:86145fd89b45 141 dirRa = 1;
belsarekaiwalya 3:86145fd89b45 142 dirRb = 0;
belsarekaiwalya 3:86145fd89b45 143 pwmR= xpwmR;
belsarekaiwalya 3:86145fd89b45 144 }
belsarekaiwalya 3:86145fd89b45 145 void right(float xpwmL,float xpwmR)
belsarekaiwalya 3:86145fd89b45 146 {
belsarekaiwalya 1:59c416ccba42 147 dirLa = 1;
belsarekaiwalya 1:59c416ccba42 148 dirLb = 0;
belsarekaiwalya 3:86145fd89b45 149 pwmL = xpwmL;
belsarekaiwalya 0:c9c8c027609e 150
belsarekaiwalya 3:86145fd89b45 151 dirRa = 0;
belsarekaiwalya 3:86145fd89b45 152 dirRb = 0;
belsarekaiwalya 3:86145fd89b45 153 pwmR = xpwmR;
belsarekaiwalya 0:c9c8c027609e 154 }
belsarekaiwalya 3:86145fd89b45 155 void Brake()
belsarekaiwalya 0:c9c8c027609e 156 {
belsarekaiwalya 1:59c416ccba42 157 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 158 dirRb = 0;
belsarekaiwalya 1:59c416ccba42 159 dirLa = 0;
belsarekaiwalya 1:59c416ccba42 160 dirLb = 0;
belsarekaiwalya 1:59c416ccba42 161 pwmL=0.0;
belsarekaiwalya 1:59c416ccba42 162 pwmR=0.0;
belsarekaiwalya 0:c9c8c027609e 163 }
belsarekaiwalya 3:86145fd89b45 164 void antiClock(float xpwmL,float xpwmR)
belsarekaiwalya 3:86145fd89b45 165 {
belsarekaiwalya 3:86145fd89b45 166 dirRa = 1;
belsarekaiwalya 3:86145fd89b45 167 dirRb = 0;
belsarekaiwalya 3:86145fd89b45 168 dirLa = 0;
belsarekaiwalya 3:86145fd89b45 169 dirLb = 1;
belsarekaiwalya 3:86145fd89b45 170 pwmL = xpwmL;
belsarekaiwalya 3:86145fd89b45 171 pwmR = xpwmR;
belsarekaiwalya 3:86145fd89b45 172 }
belsarekaiwalya 3:86145fd89b45 173 void clockWise(float xpwmL,float xpwmR)
belsarekaiwalya 0:c9c8c027609e 174 {
belsarekaiwalya 1:59c416ccba42 175 dirRa = 0;
belsarekaiwalya 1:59c416ccba42 176 dirRb = 1;
belsarekaiwalya 3:86145fd89b45 177 dirLa = 1;
belsarekaiwalya 1:59c416ccba42 178 dirLb = 0;
belsarekaiwalya 3:86145fd89b45 179 pwmL = xpwmL;
belsarekaiwalya 3:86145fd89b45 180 pwmR = xpwmR;
belsarekaiwalya 3:86145fd89b45 181 }