Étape 8: Programmation Arduino
Il s’agit d’arduino code à lire et exécuter les commandes :
#define echoPin 10 / / Echo Pin
#define trigPin 11 / / l’ergot #include #include / / o Inicializa aucune endereco 0 x 27 LiquidCrystal_I2C d’affichage lcd (0 x 27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE) ;
longue durée, distance ; long randomPisca ; type int ; int IN1 = 4 ; int IN2 = 5 ; int IN3 = 6 ; int IN4 = 7 ; Mode de chaîne = « rover » ;
void setup() {delay(650) ; Serial.Begin(9600) ; LCD.Begin (20, 4) ; pinMode (trigPin, sortie) ; pinMode (echoPin, entrée) ; pinMode (IN1, sortie) ; pinMode (IN2, sortie) ; pinMode (IN3, sortie) ; pinMode (IN4, sortie) ; randomSeed(analogRead(A0)) ; engage() ; }
void loop() {si (mode == « rover ») {randomPisca = random(1000) ; if (randomPisca < = 12,0) {pisca();} ElseIf (randomPisca > = 13,0 & & randomPisca < = 20,0) {olhaDireita() ; delay(500) ; olhaEsquerda() ; delay(500);} else olhaFrente();} si (mode == « vanessa ») {cls() digitalWrite (trigPin, LOW); delayMicroseconds(2) ; digitalWrite (trigPin, HIGH); delayMicroseconds(10) ; digitalWrite (trigPin, LOW); durée = pulseIn (echoPin, HIGH); distance = durée / 58.2 ; Serial.Print(distance) ; lcd.setCursor (0, 0) ; LCD.Print ("ATX 2.0") ; lcd.setCursor (1, 1) ; LCD.Print(distance) ; lcd.setCursor (1, 2) ; LCD.Print("cm") ; lcd.setCursor (0, 3) ; LCD.Print ("Modo VERONIAINA") ; Delay(400) ; } Si (mode == « medo ») {digitalWrite (trigPin, LOW); delayMicroseconds(2) ; delayMicroseconds(10) ; digitalWrite (trigPin, LOW); digitalWrite (trigPin, HIGH), durée = pulseIn (echoPin, HIGH); distance = durée / 58.2 ; Serial.Print(distance) ; Serial.Print ("cm") ; Serial.println() ; Si (distance < = 20) {olhaCima() ; tras();} else olhaFrente() ; } Si (Serial.available() > 0) {type = Serial.read() ; if (mode == « rover ») {si (type == « 1 ») {digitalWrite (trigPin, LOW); delayMicroseconds(2) ; delayMicroseconds(10) ; digitalWrite (trigPin, LOW); digitalWrite (trigPin, HIGH), durée = pulseIn (echoPin, HIGH); distance = durée / 58.2 ; Serial.Print(distance) ; {} Si (type == '2') {olhaBugado() ; tras();} si (type == '5') {olhaFrente() ; frente();} si (type == '6') {olhaEsquerda() ; esquerda();} si (type == '4') {olhaDireita() ; direita();} else {}} si (type == avait ') {lcd.setBacklight(LOW);} si (type == "l") {lcd.setBacklight(HIGH);} si (type ' t ==') {mode = "Vanessa";} si (type == 'r') {mode = "rover";} si (type == suis ') {mode = "medo";}} } void tras() {//Tras digitalWrite (IN1, faible); digitalWrite (IN2, élevée); digitalWrite (IN3, élevée); digitalWrite (IN4, faible); digitalWrite (IN1, élevé); digitalWrite (IN2, élevé); digitalWrite (IN3, HIGH); digitalWrite (IN4, élevé), delay(200) ; delay(10);} void frente() {//Frente digitalWrite (IN1, élevée); digitalWrite (IN2, faible); digitalWrite (IN3, faible); digitalWrite (IN4, élevé); digitalWrite (IN1, élevé); digitalWrite (IN2, élevé); digitalWrite (IN3, HIGH); digitalWrite (IN4, élevé), delay(200) ; delay(10);} void direita() {//Direita digitalWrite (IN1 ÉLEVÉ) ; digitalWrite (IN2, faible) ; digitalWrite (IN3, élevé) ; digitalWrite (IN4, faible) ; Delay(200) ; digitalWrite (IN1, élevé) ; digitalWrite (IN2, élevé) ; digitalWrite (IN3, élevé) ; digitalWrite (IN4, élevé) ; Delay(10) ; } void esquerda() {//Esquerda digitalWrite (IN1, faible); digitalWrite (IN2, HIGH); digitalWrite (IN3, faible); digitalWrite (IN4, élevée); digitalWrite (IN1, élevé); digitalWrite (IN2, élevé); digitalWrite (IN3, HIGH); digitalWrite (IN4, élevé), delay(200) ; delay(10);} void engage() {lcd.setBacklight(HIGH) ; lcd.print("*---*") ; lcd.setCursor (0, 0), lcd.setCursor (0, 1); lcd.print("| ATX 2.0 | ") ; lcd.setCursor (0, 2) ; LCD.Print("| (ALS Robots) | ") ; lcd.setCursor (0, 3) ; LCD.Print("*---*") ; Delay(3000) ; lcd.setCursor (0, 0) ; LCD.Print ("---") ; lcd.setCursor (0, 1) ; LCD.Print ("ATX 2.0") ; lcd.setCursor (0, 2) ; LCD.Print ("(ALS Robots)") ; lcd.setCursor (0, 3) ; LCD.Print ("---") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("---") ; lcd.setCursor (0, 1) ; LCD.Print ("ATX 2.0") ; lcd.setCursor (0, 2) ; LCD.Print ("(ALS Robots)") ; lcd.setCursor (0, 3) ; LCD.Print ("---") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("---") ; lcd.setCursor (0, 1) ; LCD.Print ("ATX 2.0") ; lcd.setCursor (0, 2) ; LCD.Print ("(ALS Robots)") ; lcd.setCursor (0, 3) ; LCD.Print ("---") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("---") ; lcd.setCursor (0, 1) ; LCD.Print ("ATX 2.0") ; lcd.setCursor (0, 2) ; LCD.Print ("(ALS Robots)") ; lcd.setCursor (0, 3) ; LCD.Print ("---") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("---") ; lcd.setCursor (0, 1) ; LCD.Print ("ATX 2.0") ; lcd.setCursor (0, 2) ; LCD.Print ("ALS Robots") ; lcd.setCursor (0, 3) ; LCD.Print ("---") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("---") ; lcd.setCursor (0, 1) ; LCD.Print ("ATX 2.0") ; lcd.setCursor (0, 2) ; LCD.Print ("LS Robot") ; lcd.setCursor (0, 3) ; LCD.Print ("---") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("---") ; lcd.setCursor (0, 1) ; LCD.Print ("TX 2.0") ; lcd.setCursor (0, 2) ; LCD.Print (« S Robo") ; lcd.setCursor (0, 3) ; LCD.Print ("---") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("---") ; lcd.setCursor (0, 1) ; LCD.Print ("X 2. "); lcd.setCursor (0, 2) ; LCD.Print ("Rob") ; lcd.setCursor (0, 3) ; LCD.Print ("---") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("--") ; lcd.setCursor (0, 1) ; LCD.Print ("2") ; lcd.setCursor (0, 2) ; LCD.Print ("Ro") ; lcd.setCursor (0, 3) ; LCD.Print ("--") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print("") ; lcd.setCursor (0, 1) ; LCD.Print("") ; lcd.setCursor (0, 2) ; LCD.Print("") ; lcd.setCursor (0, 3) ; LCD.Print("") ; Delay(200) ; lcd.setCursor (0, 0) ; LCD.Print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||||") ; lcd.setCursor (0, 2) ; LCD.Print("| O| | O| "); lcd.setCursor (0, 3) ; LCD.Print ("------") ; Delay(700) ; lcd.setCursor (0, 0) ; LCD.Print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||||") ; lcd.setCursor (0, 2) ; LCD.Print("| O | | O | "); lcd.setCursor (0, 3) ; LCD.Print ("------") ; Delay(700) ; lcd.setCursor (0, 0) ; LCD.Print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("| O | | O | "); lcd.setCursor (0, 2) ; LCD.Print("||||") ; lcd.setCursor (0, 3) ; LCD.Print ("------") ; Delay(700) ; lcd.setCursor (0, 0) ; LCD.Print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("| O| | O| "); lcd.setCursor (0, 2) ; LCD.Print("||||") ; lcd.setCursor (0, 3) ; LCD.Print ("------") ; Delay(700) ; Pisca() ; } void pisca() {delay(100) ; lcd.setCursor (0, 0); lcd.print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print ("|___| |___|") ; lcd.setCursor (0, 2) ; LCD.Print("| O | | O | "); lcd.setCursor (0, 3) ; LCD.Print ("------") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||||") ; lcd.setCursor (0, 2) ; LCD.Print ("|___| |___|") ; lcd.setCursor (0, 3) ; LCD.Print ("------") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print ("|___| |___|") ; lcd.setCursor (0, 2) ; LCD.Print("| O | | O | "); lcd.setCursor (0, 3) ; LCD.Print ("------") ; Delay(100) ; lcd.setCursor (0, 0) ; LCD.Print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||||") ; lcd.setCursor (0, 2) ; LCD.Print("| O | | O | "); lcd.setCursor (0, 3) ; LCD.Print ("------") ; Delay(1000) ; } void olhaDireita() {lcd.setCursor (0, 0); lcd.print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||||") ; lcd.setCursor (0, 2) ; LCD.Print("| O| | O| "); lcd.setCursor (0, 3) ; LCD.Print ("------");} void olhaEsquerda() {lcd.setCursor (0, 0); lcd.print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||||") ; lcd.setCursor (0, 2) ; LCD.Print("| O | | O | "); lcd.setCursor (0, 3) ; LCD.Print ("------");} void olhaFrente() {lcd.setCursor (0, 0); lcd.print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||||") ; lcd.setCursor (0, 2) ; LCD.Print("| O | | O | "); lcd.setCursor (0, 3) ; LCD.Print ("------");} void olhaBugado() {lcd.setCursor (0, 0); lcd.print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||| O| "); lcd.setCursor (0, 2) ; LCD.Print("| O | | | "); lcd.setCursor (0, 3) ; LCD.Print ("------");} void olhaVesgo() {lcd.setCursor (0, 0); lcd.print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("||||") ; lcd.setCursor (0, 2) ; LCD.Print("| O| | O | "); lcd.setCursor (0, 3) ; LCD.Print ("------");} void olhaCima() {lcd.setCursor (0, 0); lcd.print ("___ ___") ; lcd.setCursor (0, 1) ; LCD.Print("| O | | O | "); lcd.setCursor (0, 2) ; LCD.Print("||||") ; lcd.setCursor (0, 3) ; LCD.Print ("------");} void cls() {lcd.setCursor (0, 0); lcd.print("") ; lcd.setCursor (0, 1) ; LCD.Print("") ; lcd.setCursor (0, 2) ; LCD.Print("") ; lcd.setCursor (0, 3) ; LCD.Print("");}