RioBotz / Mbed 2 deprecated PapacurasBluetooth

Dependencies:   mbed

Committer:
amaral99
Date:
Tue Aug 27 19:09:49 2019 +0000
Revision:
0:8ee013fa99a5
Child:
1:7198bf0747eb
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
amaral99 0:8ee013fa99a5 1 #include "mbed.h"
amaral99 0:8ee013fa99a5 2
amaral99 0:8ee013fa99a5 3 PwmOut pwm(p25);
amaral99 0:8ee013fa99a5 4 DigitalOut dir (p26);
amaral99 0:8ee013fa99a5 5 PwmOut pwm1(p24);
amaral99 0:8ee013fa99a5 6 DigitalOut dir1 (p23);
amaral99 0:8ee013fa99a5 7 DigitalIn button(p18);
amaral99 0:8ee013fa99a5 8 DigitalOut led(p20);
amaral99 0:8ee013fa99a5 9
amaral99 0:8ee013fa99a5 10 Serial bt(p28, p27);
amaral99 0:8ee013fa99a5 11
amaral99 0:8ee013fa99a5 12 InterruptIn A (p21);
amaral99 0:8ee013fa99a5 13 DigitalIn B (p22);
amaral99 0:8ee013fa99a5 14
amaral99 0:8ee013fa99a5 15 Ticker END;
amaral99 0:8ee013fa99a5 16
amaral99 0:8ee013fa99a5 17 int rightCount = 0;
amaral99 0:8ee013fa99a5 18 int lastCount = 0;
amaral99 0:8ee013fa99a5 19
amaral99 0:8ee013fa99a5 20
amaral99 0:8ee013fa99a5 21 void rightEncoderEvent (){
amaral99 0:8ee013fa99a5 22 if (B.read() == 0){
amaral99 0:8ee013fa99a5 23 rightCount++;
amaral99 0:8ee013fa99a5 24 }
amaral99 0:8ee013fa99a5 25
amaral99 0:8ee013fa99a5 26 else{
amaral99 0:8ee013fa99a5 27 rightCount--;
amaral99 0:8ee013fa99a5 28 }
amaral99 0:8ee013fa99a5 29 }
amaral99 0:8ee013fa99a5 30
amaral99 0:8ee013fa99a5 31 void Speed (void) {
amaral99 0:8ee013fa99a5 32
amaral99 0:8ee013fa99a5 33 int realSpeed = (rightCount - lastCount);
amaral99 0:8ee013fa99a5 34 lastCount = rightCount;
amaral99 0:8ee013fa99a5 35 bt.printf("\n\rCount: %d ## Speed: %d",rightCount,realSpeed);
amaral99 0:8ee013fa99a5 36
amaral99 0:8ee013fa99a5 37 }
amaral99 0:8ee013fa99a5 38
amaral99 0:8ee013fa99a5 39 int main() {
amaral99 0:8ee013fa99a5 40
amaral99 0:8ee013fa99a5 41 char ch;
amaral99 0:8ee013fa99a5 42 int speed = 1;
amaral99 0:8ee013fa99a5 43 bt.baud(9600);
amaral99 0:8ee013fa99a5 44 A.rise(&rightEncoderEvent);
amaral99 0:8ee013fa99a5 45
amaral99 0:8ee013fa99a5 46 END.attach(&Speed, 1.0);
amaral99 0:8ee013fa99a5 47
amaral99 0:8ee013fa99a5 48 pwm.period(0.01f);
amaral99 0:8ee013fa99a5 49 pwm1.period(0.01f);
amaral99 0:8ee013fa99a5 50
amaral99 0:8ee013fa99a5 51 while (button.read()) {led = 1; wait(0.2); led=0; wait(0.2); }
amaral99 0:8ee013fa99a5 52
amaral99 0:8ee013fa99a5 53 wait(2);
amaral99 0:8ee013fa99a5 54
amaral99 0:8ee013fa99a5 55 pwm.write(0.0f);
amaral99 0:8ee013fa99a5 56 pwm1.write(0.0f);
amaral99 0:8ee013fa99a5 57
amaral99 0:8ee013fa99a5 58 while(1) {
amaral99 0:8ee013fa99a5 59
amaral99 0:8ee013fa99a5 60 if(bt.readable())
amaral99 0:8ee013fa99a5 61 {
amaral99 0:8ee013fa99a5 62 ch=bt.getc();
amaral99 0:8ee013fa99a5 63
amaral99 0:8ee013fa99a5 64 if (ch == 'l') { led = !led;}
amaral99 0:8ee013fa99a5 65 if (ch == 'w') { dir = 0; dir1 = 0; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait (0.02);}
amaral99 0:8ee013fa99a5 66 if (ch == 's') { dir = 1; dir1 = 1; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
amaral99 0:8ee013fa99a5 67 if (ch == 'a') { dir = 0; dir1 = 1; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
amaral99 0:8ee013fa99a5 68 if (ch == 'd') { dir = 1; dir1 = 0; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
amaral99 0:8ee013fa99a5 69 if (ch == 'r') {
amaral99 0:8ee013fa99a5 70 bt.printf("\n\rChose speed: ");
amaral99 0:8ee013fa99a5 71
amaral99 0:8ee013fa99a5 72 while(bt.readable()) {}
amaral99 0:8ee013fa99a5 73 ch = bt.getc();
amaral99 0:8ee013fa99a5 74 speed = (int)ch - 48;
amaral99 0:8ee013fa99a5 75 bt.printf("\n\rActual speed: %d\n",speed);}
amaral99 0:8ee013fa99a5 76
amaral99 0:8ee013fa99a5 77 //bt.printf("%c",ch);
amaral99 0:8ee013fa99a5 78
amaral99 0:8ee013fa99a5 79
amaral99 0:8ee013fa99a5 80 }
amaral99 0:8ee013fa99a5 81 //bt.printf("Count: ");
amaral99 0:8ee013fa99a5 82 //bt.printf("%d",rightCount);
amaral99 0:8ee013fa99a5 83 //bt.printf("\r\n");
amaral99 0:8ee013fa99a5 84 /*
amaral99 0:8ee013fa99a5 85 if (ch == 'S') { dir = 0; dir1 = 0; pwm.write(0.0f); pwm1.write(0.0f); }
amaral99 0:8ee013fa99a5 86 if (ch == 'F') { dir = 0; dir1 = 0; pwm.write(0.2f); pwm1.write(0.2f); }
amaral99 0:8ee013fa99a5 87 if (ch == 'G') { dir = 1; dir1 = 1; pwm.write(0.2f); pwm1.write(0.2f); }
amaral99 0:8ee013fa99a5 88 if (ch == 'L') { dir = 0; dir1 = 1; pwm.write(0.2f); pwm1.write(0.2f); }
amaral99 0:8ee013fa99a5 89 if (ch == 'R') { dir = 1; dir1 = 0; pwm.write(0.2f); pwm1.write(0.2f); }
amaral99 0:8ee013fa99a5 90 */
amaral99 0:8ee013fa99a5 91 pwm.write(0.0f);
amaral99 0:8ee013fa99a5 92 pwm1.write(0.0f);
amaral99 0:8ee013fa99a5 93
amaral99 0:8ee013fa99a5 94
amaral99 0:8ee013fa99a5 95 /*wait(0.5);
amaral99 0:8ee013fa99a5 96 dir = 1;
amaral99 0:8ee013fa99a5 97 dir1 = 1;
amaral99 0:8ee013fa99a5 98 pwm.write(0.5f);
amaral99 0:8ee013fa99a5 99 pwm1.write(0.5f);
amaral99 0:8ee013fa99a5 100 wait(0.5);
amaral99 0:8ee013fa99a5 101 dir = 0;
amaral99 0:8ee013fa99a5 102 dir1 = 0;
amaral99 0:8ee013fa99a5 103 pwm.write(0.5f);
amaral99 0:8ee013fa99a5 104 wait(0.5);*/
amaral99 0:8ee013fa99a5 105
amaral99 0:8ee013fa99a5 106 }
amaral99 0:8ee013fa99a5 107 }