RioBotz / Mbed 2 deprecated PapacurasBluetooth

Dependencies:   mbed

Committer:
bispomat
Date:
Thu Nov 21 20:21:34 2019 +0000
Revision:
1:7198bf0747eb
Parent:
0:8ee013fa99a5
.

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
bispomat 1:7198bf0747eb 12 InterruptIn A (p29);
bispomat 1:7198bf0747eb 13 DigitalIn B (p30);
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;
bispomat 1:7198bf0747eb 19 int aux = 0;
amaral99 0:8ee013fa99a5 20
amaral99 0:8ee013fa99a5 21
amaral99 0:8ee013fa99a5 22 void rightEncoderEvent (){
amaral99 0:8ee013fa99a5 23 if (B.read() == 0){
amaral99 0:8ee013fa99a5 24 rightCount++;
amaral99 0:8ee013fa99a5 25 }
amaral99 0:8ee013fa99a5 26
amaral99 0:8ee013fa99a5 27 else{
amaral99 0:8ee013fa99a5 28 rightCount--;
amaral99 0:8ee013fa99a5 29 }
amaral99 0:8ee013fa99a5 30 }
amaral99 0:8ee013fa99a5 31
amaral99 0:8ee013fa99a5 32 void Speed (void) {
amaral99 0:8ee013fa99a5 33
amaral99 0:8ee013fa99a5 34 int realSpeed = (rightCount - lastCount);
amaral99 0:8ee013fa99a5 35 lastCount = rightCount;
bispomat 1:7198bf0747eb 36 //bt.printf("\n\rCount: %d ## Speed: %d",rightCount,realSpeed);
amaral99 0:8ee013fa99a5 37
amaral99 0:8ee013fa99a5 38 }
amaral99 0:8ee013fa99a5 39
amaral99 0:8ee013fa99a5 40 int main() {
amaral99 0:8ee013fa99a5 41
amaral99 0:8ee013fa99a5 42 char ch;
amaral99 0:8ee013fa99a5 43 int speed = 1;
amaral99 0:8ee013fa99a5 44 bt.baud(9600);
amaral99 0:8ee013fa99a5 45 A.rise(&rightEncoderEvent);
amaral99 0:8ee013fa99a5 46
amaral99 0:8ee013fa99a5 47 END.attach(&Speed, 1.0);
amaral99 0:8ee013fa99a5 48
amaral99 0:8ee013fa99a5 49 pwm.period(0.01f);
amaral99 0:8ee013fa99a5 50 pwm1.period(0.01f);
amaral99 0:8ee013fa99a5 51
amaral99 0:8ee013fa99a5 52 while (button.read()) {led = 1; wait(0.2); led=0; wait(0.2); }
amaral99 0:8ee013fa99a5 53
amaral99 0:8ee013fa99a5 54 wait(2);
amaral99 0:8ee013fa99a5 55
amaral99 0:8ee013fa99a5 56 pwm.write(0.0f);
amaral99 0:8ee013fa99a5 57 pwm1.write(0.0f);
amaral99 0:8ee013fa99a5 58
bispomat 1:7198bf0747eb 59 bt.printf("Funcionando!");
bispomat 1:7198bf0747eb 60
amaral99 0:8ee013fa99a5 61 while(1) {
amaral99 0:8ee013fa99a5 62
amaral99 0:8ee013fa99a5 63 if(bt.readable())
amaral99 0:8ee013fa99a5 64 {
amaral99 0:8ee013fa99a5 65 ch=bt.getc();
amaral99 0:8ee013fa99a5 66
amaral99 0:8ee013fa99a5 67 if (ch == 'l') { led = !led;}
amaral99 0:8ee013fa99a5 68 if (ch == 'w') { dir = 0; dir1 = 0; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait (0.02);}
amaral99 0:8ee013fa99a5 69 if (ch == 's') { dir = 1; dir1 = 1; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
amaral99 0:8ee013fa99a5 70 if (ch == 'a') { dir = 0; dir1 = 1; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
amaral99 0:8ee013fa99a5 71 if (ch == 'd') { dir = 1; dir1 = 0; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
bispomat 1:7198bf0747eb 72 if (ch == 'g') {
bispomat 1:7198bf0747eb 73 //bt.printf("\n\rChose speed: ");
bispomat 1:7198bf0747eb 74 //bt.printf("Entrei no Go");
amaral99 0:8ee013fa99a5 75
bispomat 1:7198bf0747eb 76 while(aux == 0) {
bispomat 1:7198bf0747eb 77 dir = 0; dir1 = 0; pwm.write(1); pwm1.write(1); wait (0.02);
bispomat 1:7198bf0747eb 78 ch = bt.getc();
bispomat 1:7198bf0747eb 79 if (ch == 'q') { bt.printf("Entrei no if pra sair do Go"); pwm.write(0); pwm1.write(0); aux = 1; }
bispomat 1:7198bf0747eb 80 }
bispomat 1:7198bf0747eb 81 bt.printf("Sai do while");
bispomat 1:7198bf0747eb 82 aux = 0;
bispomat 1:7198bf0747eb 83
bispomat 1:7198bf0747eb 84 }
bispomat 1:7198bf0747eb 85 //speed = (int)ch - 48;
bispomat 1:7198bf0747eb 86 //bt.printf("\n\rActual speed: %d\n",speed);}
amaral99 0:8ee013fa99a5 87
amaral99 0:8ee013fa99a5 88 //bt.printf("%c",ch);
amaral99 0:8ee013fa99a5 89
amaral99 0:8ee013fa99a5 90
amaral99 0:8ee013fa99a5 91 }
amaral99 0:8ee013fa99a5 92 //bt.printf("Count: ");
amaral99 0:8ee013fa99a5 93 //bt.printf("%d",rightCount);
amaral99 0:8ee013fa99a5 94 //bt.printf("\r\n");
amaral99 0:8ee013fa99a5 95 /*
amaral99 0:8ee013fa99a5 96 if (ch == 'S') { dir = 0; dir1 = 0; pwm.write(0.0f); pwm1.write(0.0f); }
amaral99 0:8ee013fa99a5 97 if (ch == 'F') { dir = 0; dir1 = 0; pwm.write(0.2f); pwm1.write(0.2f); }
amaral99 0:8ee013fa99a5 98 if (ch == 'G') { dir = 1; dir1 = 1; pwm.write(0.2f); pwm1.write(0.2f); }
amaral99 0:8ee013fa99a5 99 if (ch == 'L') { dir = 0; dir1 = 1; pwm.write(0.2f); pwm1.write(0.2f); }
amaral99 0:8ee013fa99a5 100 if (ch == 'R') { dir = 1; dir1 = 0; pwm.write(0.2f); pwm1.write(0.2f); }
amaral99 0:8ee013fa99a5 101 */
amaral99 0:8ee013fa99a5 102 pwm.write(0.0f);
amaral99 0:8ee013fa99a5 103 pwm1.write(0.0f);
amaral99 0:8ee013fa99a5 104
amaral99 0:8ee013fa99a5 105
amaral99 0:8ee013fa99a5 106 /*wait(0.5);
amaral99 0:8ee013fa99a5 107 dir = 1;
amaral99 0:8ee013fa99a5 108 dir1 = 1;
amaral99 0:8ee013fa99a5 109 pwm.write(0.5f);
amaral99 0:8ee013fa99a5 110 pwm1.write(0.5f);
amaral99 0:8ee013fa99a5 111 wait(0.5);
amaral99 0:8ee013fa99a5 112 dir = 0;
amaral99 0:8ee013fa99a5 113 dir1 = 0;
amaral99 0:8ee013fa99a5 114 pwm.write(0.5f);
amaral99 0:8ee013fa99a5 115 wait(0.5);*/
amaral99 0:8ee013fa99a5 116
amaral99 0:8ee013fa99a5 117 }
bispomat 1:7198bf0747eb 118
bispomat 1:7198bf0747eb 119 //bt.printf("Sai do while");
amaral99 0:8ee013fa99a5 120 }