La version deux est de virer les bloc de contact et de rajouter 3 capteur sharp sur le devant. 1 capteur en face et un autre a gauche et un autre a droite pour améliorer d'avantage la directions.
j'ai modifier le code pour installer deux autre capteur sharp, j'aurai aimer avoir l’avis des experts pour voir si j'ai fait des erreurs ou des conseils, étant donner que je suis pas un grand expert de la programmation en c++
Voici le code que j'ai modifier:
#include <Servo.h> #define AVANT 1 #define ARRIERE 0 #define GAUCHE 2 #define DROITE 3 #define SERVOG 1 #define SERVOD 0 #define SHARPG 5 #define SHARPD 3 #define SHARP 4 #define VMAX 5 Servo servog; Servo servod; int vLdr = 5; int getNeutral(int s) { if(s == SERVOG) return 86; else return 84; } void handleS(int s, int speed) { //Vitesse : // 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30 int tab[6] = {0,1,3,8,10,30}; int pos = getNeutral(s); int acc; if (speed < 0) acc = - tab[abs(speed)]; else acc = tab[speed]; if(s == SERVOG) servog.write(pos += acc); else servod.write(pos -= acc); } void move(int direction) { int m1 = 0, m2 = 0; switch(direction) { case DROITE: m1 = 1; m2 = -1; break; case GAUCHE: m1 = -1; m2 = 1; break; case AVANT: m1 = 1; m2 = 1; break; case ARRIERE: m1 = -1; m2 = -1; break; } handleS(SERVOG, m1*VMAX); handleS(SERVOD, m2*VMAX); } void sharp() { int v = analogRead(4); if (v >= 180) { move(ARRIERE); delay(300); move(DROITE); delay(900); } else if (v >= 100) { handleS(SERVOG, VMAX); handleS(SERVOD, 0); delay(1500); } } void sharpD() { int v = analogRead(3); if (v >= 90) { move(ARRIERE); delay(300); move(GAUCHE); delay(900); } else if (v >= 50) { handleS(SERVOD, VMAX); handleS(SERVOG, 0); delay(1500); } } void sharpG() { int v = analogRead(3); if (v >= 90) { move(ARRIERE); delay(300); move(DROITE); delay(900); } else if (v >= 50) { handleS(SERVOG, VMAX); handleS(SERVOD, 0); delay(1500); } } void setup() { Serial.begin(9600); servog.attach(10); servod.attach(9); move(AVANT); } void loop() { sharp(); sharpD(); sharpG(); move(AVANT); delay(100); }