librairie pour robot Zumo

Revision:
12:d9c9ef63c5ff
Parent:
11:1082c5b3b418
--- a/zumo.cpp	Mon Jan 10 08:59:37 2022 +0000
+++ b/zumo.cpp	Mon Jan 10 23:00:47 2022 +0000
@@ -35,6 +35,71 @@
     return v;
 }
 
+// angle envoyé au centime de deg  rot  et sens trigo
+char zumo::rotate_speed_gyro_wait (short spd,short rot){
+    char v;
+    _ser.putc(SEND_ROTATE_GYRO);
+    _ser.putc(spd&0xff);
+    _ser.putc((spd>>8)&0xff);
+    _ser.putc(rot&0xff);
+    _ser.putc((rot>>8)&0xff);
+    v=_ser.getc();
+    v=_ser.getc();
+    return v;
+}
+
+char zumo::Calibrate_line_sensor_wait (){
+    char v;
+    _ser.putc(SEND_CALIBRE_LIGNE);
+    v=_ser.getc(); //accusé commande prise
+    v=_ser.getc(); // accusé commande terminée
+    return v;
+}
+
+
+char zumo::read_data_wait (char whatdata,char*tab){
+    char v;
+    _ser.putc(SEND_ROTATE_GYRO);
+    _ser.putc(whatdata&0xff);
+    v=_ser.getc();
+/*#define DATA_SENSOR_GYRO    0x12
+#define DATA_SENSOR_MEANDIST  0x24
+#define DATA_SENSOR_LRDIST   0x38
+#define DATA_SENSOR_LIGNE 0x42
+#define DATA_SENSOR_LIGNE_5BIT 0x51
+#define DATA_SENSOR_OBSTACLE 0x62*/
+    v=v&0x0F;
+    if(v!=0){
+        for(char i=0;i<v;i++){
+                tab[i]= _ser.getc();
+        }
+        return 0x0A;
+    // retour de donnée
+    }else{
+        return 0x0E;
+    }   
+}
+
+
+// avance tout droit de dist mm  limite de 3000mm
+ // avec speed positif (car calcul sens par dist)
+ // angle envoyé au centime de deg  rot  et sens trigo
+char zumo::avance_wait(short spd, short dist){
+    char v;
+    if(dist<=3000) {
+            _ser.putc(SEND_AVANCE);
+            _ser.putc(spd&0xff);
+            _ser.putc((spd>>8)&0xff);
+            _ser.putc(dist&0xff);
+            _ser.putc((dist>>8)&0xff);
+            v=_ser.getc();
+            v=_ser.getc(); // 0x0B  bloquant jusqu'à fin trajectoire
+            return v;
+    }else{
+        return (0x0E);
+    }
+}
+
 float zumo::battery() {
    
 }
@@ -48,10 +113,6 @@
     
 }
 
-char zumo::sensor_auto_calibrate() {
-    
-}
-
 
 void zumo::PID_start(int max_speed, int a, int b, int c, int d) {