programma commando motori

Dependencies:   mbed HCSR04 mbed-rtos

Committer:
Wonderjack996
Date:
Tue May 23 10:46:00 2017 +0000
Revision:
1:009a67d6875f
Parent:
0:637e2ec8d164
Child:
2:7df0fc7d8d3c
programma per il comando bluethoot di steve

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wonderjack996 0:637e2ec8d164 1 #include "mbed.h"
Wonderjack996 0:637e2ec8d164 2
Wonderjack996 1:009a67d6875f 3 /*I pin utilizzati per TX e RX sono pin morfo, a livello hardware collegare il pin TX dell HC05 al PA_12 e quello RX a PA_11 ( a livello harware vanno invertiti )*/
Wonderjack996 1:009a67d6875f 4 #define TX PA_11
Wonderjack996 1:009a67d6875f 5 #define RX PA_12
Wonderjack996 1:009a67d6875f 6
Wonderjack996 0:637e2ec8d164 7 #define PWMB PC_7 //D9
Wonderjack996 0:637e2ec8d164 8 #define DIRB D8 //D8
Wonderjack996 0:637e2ec8d164 9
Wonderjack996 0:637e2ec8d164 10 #define PWMA PB_4 //D5
Wonderjack996 0:637e2ec8d164 11 #define DIRA D4 //D4
Wonderjack996 0:637e2ec8d164 12
Wonderjack996 0:637e2ec8d164 13 PwmOut motorBpower(PWMB);
Wonderjack996 0:637e2ec8d164 14 DigitalOut motorBdirection(DIRB);
Wonderjack996 0:637e2ec8d164 15
Wonderjack996 0:637e2ec8d164 16 PwmOut motorApower(PWMA);
Wonderjack996 0:637e2ec8d164 17 DigitalOut motorAdirection(DIRA);
Wonderjack996 0:637e2ec8d164 18
Wonderjack996 1:009a67d6875f 19 Serial pc(USBTX, USBRX); //istanzio oggetto per utilizzo monitor seriale
Wonderjack996 1:009a67d6875f 20
Wonderjack996 1:009a67d6875f 21 Serial device(TX, RX); //oggetto per gestione seriale bluethoot
Wonderjack996 1:009a67d6875f 22
Wonderjack996 0:637e2ec8d164 23 void avanti();
Wonderjack996 0:637e2ec8d164 24 void indietro();
Wonderjack996 0:637e2ec8d164 25 void destra();
Wonderjack996 0:637e2ec8d164 26 void sinistra();
Wonderjack996 0:637e2ec8d164 27 void fermo();
Wonderjack996 0:637e2ec8d164 28
Wonderjack996 0:637e2ec8d164 29 int main() {
Wonderjack996 0:637e2ec8d164 30
Wonderjack996 1:009a67d6875f 31 unsigned char rx;
Wonderjack996 1:009a67d6875f 32
Wonderjack996 0:637e2ec8d164 33 motorBpower.period_ms(10);
Wonderjack996 0:637e2ec8d164 34 motorApower.period_ms(10);
Wonderjack996 0:637e2ec8d164 35
Wonderjack996 1:009a67d6875f 36 while(true){
Wonderjack996 1:009a67d6875f 37 if( device.readable() ) { //funzione simile alla Serial.available() di arduino, solo se il monitor e` attivo permette di utilizzarlo
Wonderjack996 1:009a67d6875f 38 rx = device.getc(); //funzione simile alla Serial.read() di arduino, legge il carattere dal seriale del bluethoot
Wonderjack996 1:009a67d6875f 39 pc.printf("recived: %c \r\n",rx); //stampa a video
Wonderjack996 1:009a67d6875f 40 switch(rx){ //in base alla lettera che riceve sa cosa deve fare
Wonderjack996 1:009a67d6875f 41 case 'a':
Wonderjack996 1:009a67d6875f 42 avanti();
Wonderjack996 1:009a67d6875f 43 break;
Wonderjack996 1:009a67d6875f 44 case 'b':
Wonderjack996 1:009a67d6875f 45 indietro();
Wonderjack996 1:009a67d6875f 46 break;
Wonderjack996 1:009a67d6875f 47 case 'c':
Wonderjack996 1:009a67d6875f 48 destra();
Wonderjack996 1:009a67d6875f 49 break;
Wonderjack996 1:009a67d6875f 50 case 'd':
Wonderjack996 1:009a67d6875f 51 sinistra();
Wonderjack996 1:009a67d6875f 52 break;
Wonderjack996 1:009a67d6875f 53 case 'e':
Wonderjack996 1:009a67d6875f 54 fermo();
Wonderjack996 1:009a67d6875f 55 break;
Wonderjack996 1:009a67d6875f 56 }
Wonderjack996 1:009a67d6875f 57 }
Wonderjack996 1:009a67d6875f 58 }
Wonderjack996 0:637e2ec8d164 59
Wonderjack996 0:637e2ec8d164 60 }
Wonderjack996 0:637e2ec8d164 61
Wonderjack996 0:637e2ec8d164 62 void avanti()
Wonderjack996 0:637e2ec8d164 63 {
Wonderjack996 0:637e2ec8d164 64 motorBdirection = 1;
Wonderjack996 0:637e2ec8d164 65 motorAdirection = 0;
Wonderjack996 0:637e2ec8d164 66 motorBpower.pulsewidth(0.01); // 100%
Wonderjack996 0:637e2ec8d164 67 motorApower.pulsewidth(0.01); // 100%
Wonderjack996 0:637e2ec8d164 68 }
Wonderjack996 0:637e2ec8d164 69
Wonderjack996 0:637e2ec8d164 70 void indietro()
Wonderjack996 0:637e2ec8d164 71 {
Wonderjack996 0:637e2ec8d164 72 motorBdirection = 0;
Wonderjack996 0:637e2ec8d164 73 motorAdirection = 1;
Wonderjack996 0:637e2ec8d164 74 motorBpower.pulsewidth(0.01); // 100%
Wonderjack996 0:637e2ec8d164 75 motorApower.pulsewidth(0.01); // 100%
Wonderjack996 0:637e2ec8d164 76 }
Wonderjack996 0:637e2ec8d164 77
Wonderjack996 0:637e2ec8d164 78 void destra()
Wonderjack996 0:637e2ec8d164 79 {
Wonderjack996 0:637e2ec8d164 80 motorBdirection = 0;
Wonderjack996 0:637e2ec8d164 81 motorAdirection = 0;
Wonderjack996 0:637e2ec8d164 82 motorBpower.pulsewidth(0.01); // 100%
Wonderjack996 0:637e2ec8d164 83 motorApower.pulsewidth(0.007); // 70%
Wonderjack996 0:637e2ec8d164 84 }
Wonderjack996 0:637e2ec8d164 85
Wonderjack996 0:637e2ec8d164 86 void sinistra()
Wonderjack996 0:637e2ec8d164 87 {
Wonderjack996 0:637e2ec8d164 88 motorBdirection = 1;
Wonderjack996 0:637e2ec8d164 89 motorAdirection = 1;
Wonderjack996 0:637e2ec8d164 90 motorBpower.pulsewidth(0.007); // 100%
Wonderjack996 0:637e2ec8d164 91 motorApower.pulsewidth(0.01); // 100%
Wonderjack996 0:637e2ec8d164 92 }
Wonderjack996 0:637e2ec8d164 93
Wonderjack996 0:637e2ec8d164 94 void fermo()
Wonderjack996 0:637e2ec8d164 95 {
Wonderjack996 0:637e2ec8d164 96 motorBpower.pulsewidth(0); // fermo
Wonderjack996 0:637e2ec8d164 97 motorApower.pulsewidth(0); // fermo
Wonderjack996 0:637e2ec8d164 98 }