Accueil › Forums › Forum Robotique › Projet "robot car" en Arduino / étape 2 : programmation des modules
- Ce sujet contient 1 réponse, 1 participant et a été mis à jour pour la dernière fois par xavadam, le il y a 7 années et 4 mois.
-
AuteurMessages
-
16 juin 2017 à 14 h 45 min #8161xavadamMaître des clés
Avant de se lancer dans « l’intelligence du robot car« , je poste ici un résumé rapide de la programmation unitaire des différents modules (capteur de distance, servoMoteur, Moteurs des 2 roues…).
Programme 1 : Hello world !
Pour valider l’upload du programme à travers l’IDE, notre premier programme sera le mythique « hello world ». L’affichage est « poussée » vers la console via serie9600 bps.
void setup() { Serial.begin(9600); // ouvre le port serie 9600 bps: } void loop() { Serial.print("Hello world !!"); }
Programme 2 : Module capteur de distance
Un premier module assez simple à programmer. 2 PINs à configurer. 1 pour l’envoie d’un echo et un 2eme pour écouter le retour.
const byte PIN_TRIGGER = 5; const byte PIN_ECHO = 4; void setup() { Serial.begin(9600); /* Initialisation du capteur*/ pinMode(PIN_TRIGGER, OUTPUT); pinMode(PIN_ECHO, INPUT); } void loop() { /* 1. Lance une mesure de distance */ digitalWrite(PIN_TRIGGER, HIGH); delayMicroseconds(10); digitalWrite(PIN_TRIGGER, LOW); /* 2. Mesure le temps entre l'envoi */ long measure = pulseIn(PIN_ECHO, HIGH); /* 3. Calcul la distance */ float distance = measure / 58; /* résultat */ Serial.print("Distance de retour : "); Serial.print(distance); }
Programmation 3 : Moteurs du Robot.
La connexion est simple via le module L298N. Seulement 6 Pins sur l’arduino permettent de commander les 2 moteurs.
La fonction digitalWrite(pin,[LOW|HIGH]); permet d’arrêter un moteur, le faire avancer ou reculer.// motor one int enA = 10; int PIN_1 = 9; int PIN_2 = 8; // motor two int enB = 5; int PIN_3 = 7; int PIN_4 = 6; void setup() { // initialisation des pins du controle Moteur pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(PIN_1, OUTPUT); pinMode(PIN_2, OUTPUT); pinMode(PIN_3, OUTPUT); pinMode(PIN_4, OUTPUT); } void loop() { // démarre les 2 moteurs digitalWrite(PIN_1, HIGH); digitalWrite(PIN_2, LOW); digitalWrite(PIN_3, HIGH); digitalWrite(PIN_4, LOW); delay(2000); // avance pendant 2 sec. // stop le moteur 1 pour faire pivoter le robot digitalWrite(PIN_1, HIGH); digitalWrite(PIN_2, LOW); delay(500); // tourne pendant 500ms. // arret du robot digitalWrite(PIN_1, LOW); digitalWrite(PIN_2, LOW); digitalWrite(PIN_3, LOW); digitalWrite(PIN_4, LOW); delay(1000); // arrêt pendant 1sec. }
//Code Extrait de maxi-pratique.com
- Ce sujet a été modifié le il y a 7 années et 4 mois par xavadam.
- Ce sujet a été modifié le il y a 7 années et 4 mois par xavadam.
- Ce sujet a été modifié le il y a 7 années et 4 mois par xavadam.
- Ce sujet a été modifié le il y a 7 années et 4 mois par xavadam.
- Ce sujet a été modifié le il y a 7 années et 4 mois par xavadam.
16 juin 2017 à 15 h 00 min #8167xavadamMaître des clésProgramme 4 : Module de détection de ligne
Un capteur TCRT5000 IR très simple à programmer …
#define pinLigne1 10
void setup() {
Serial.begin(9600);
}
void loop() {
int val=digitalRead(pinLigne1);
Serial.print("Présence de la ligne noir:"); Serial.println(val);
}
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.
Posted in