tp1
Dependencies: mbed
main.cpp
- Committer:
- Maximousse
- Date:
- 2020-10-11
- Revision:
- 1:236ac79b07d7
- Parent:
- 0:727643d2c6ef
File content as of revision 1:236ac79b07d7:
#include "mbed.h" #include "m3pi.h" #define BUFF_SIZE 200 Serial pc(USBTX, USBRX); DigitalOut myled(LED1); DigitalOut m (LED4); InterruptIn Msg(USBRX,PullUp); m3pi pi; int flag; char clavier; char buffer[BUFF_SIZE]; void readBattery() { char s[500]; char* s2 = "Battery:%f V\n"; sprintf(s, s2, pi.battery()); for (int i=0; i<strlen(s); i++) { pc.putc(s[i]); } pc.printf("\r"); } void readSensors() { char s[500]; char* s2 = "Sensors:(%u,%u,%u,%u,%u) \n"; unsigned short val[5]; pi.calibrated_sensors(val); sprintf(s, s2, val[0],val[1],val[2],val[3],val[4]); for (int i=0; i<strlen(s); i++) { pc.putc(s[i]); } pc.printf("\r"); } void Interrupt() { //printf("%c",pc.getc()); //Command(pc.getc()); flag=1; m=1; } void Command(char c){ switch (c) { case 'z': pi.forward(0.5); wait(0.5); pi.stop(); break; case 'q': pi.left(0.5); wait(0.5); pi.stop(); break; case 's': pi.backward(0.5); wait(0.5); pi.stop(); break; case 'd': pi.right(0.5); wait(0.5); pi.stop(); break; case 'b': readBattery(); break; case 'c': readSensors(); break; } } int main() { pc.attach(&Interrupt); pc.baud(9600); pi.sensor_auto_calibrate(); //clavier='a'; //flag = 0; while(1) { ///BLINK LEDS myled = 1; wait(0.1); myled = 0; wait(0.1); ///GET INPUT int i = 0; while (pc.readable()) { if (i < BUFF_SIZE) buffer[i++] = pc.getc(); } while (i > 0) { Command(buffer[i]); pi.cls(); pi.locate(0,0); pi.print(&buffer[i], 1); i--; } /* if(flag) { clavier+=1; pi.print(&clavier,1); //clavier = pc.getc(); switch (clavier) { case 'z': pi.forward(0.5); wait(0.5); pi.stop(); break; case 'q': pi.left(0.5); wait(0.5); pi.stop(); break; case 's': pi.backward(0.5); wait(0.5); pi.stop(); break; case 'd': pi.right(0.5); wait(0.5); pi.stop(); break; case 'b': readBattery(); break; case 'c': readSensors(); break; } flag=0; } */ } }