Attention
La communication série étant partagée avec le téléversement du code, il faudra fermer l’onglet de communication série avant de pouvoir téléverser de nouveau votre code.
Récupérer une information et l'afficher
07 - Capteur ultrason et liaison série
Cette page va vous accompagner dans l'utilisation de la liaison série et du capteur ultrason.
La liaison série est un protocole de communication permettant d’échanger des données entre deux dispositifs en transmettant les informations bit par bit sur une seule ligne de données. Elle est largement utilisée dans les systèmes embarqués, les communications entre microcontrôleurs et ordinateurs, ainsi que dans de nombreux équipements électroniques.
Contrairement à une liaison parallèle, qui transmet plusieurs bits simultanément sur plusieurs lignes, la liaison série envoie les données séquentiellement, ce qui réduit le nombre de fils nécessaires et permet des transmissions sur de plus longues distances.
La communication série repose sur l’envoi et la réception de données en série, selon un protocole défini. Les paramètres clés d’une liaison série sont :
En général, une liaison série utilise deux fils principaux :
Sur les modules ESP32 de type XIAO et autres, la liaison série peut être réalisée via le câble USB. Cette connexion USB repose sur un convertisseur série-USB intégré, qui permet de transformer une liaison série classique en USB. L’utilisation de ce convertisseur nécessite parfois l’installation de pilotes spécifiques sur l’ordinateur.
De plus, cette liaison série est généralement utilisée pour charger les programmes dans la carte depuis un IDE comme l’Arduino IDE, facilitant ainsi le développement et le débogage.
Sur les plateformes comme l’Arduino ou l’ESP32, la communication série est gérée par un port série matériel ou logiciel. Voici comment envoyer des informations via une liaison série en utilisant l’Arduino IDE.
void setup() {
Serial.begin(9600); // Initialisation de la liaison série à 9600 bauds
Serial.println("Démarrage de la communication série");
}
void loop() {
Serial.println("Bonjour, ESP32 !"); // Envoie un message sur la liaison série
delay(1000); // Attendre 1 seconde avant d'envoyer à nouveau
}
Serial.begin(9600);
→ Initialise la liaison série à 9600 bauds.Serial.println("Démarrage de la communication série");
→ Envoie un message d’initialisation.Serial.println("Bonjour, ESP32 !");
→ Envoie un message toutes les secondes.delay(1000);
→ Ajoute un délai d’une seconde avant le prochain envoi.En utilisant le moniteur série de l’IDE Arduino, il est possible de voir les messages envoyés par la carte et de les utiliser pour le débogage et la communication avec d’autres dispositifs.
Pour cela, cliquez en haut à droite sur Serial Monitor . En onglet s’ouvre en dessous de votre fenêtre à coté de l’onglet Output vous montrant les éléments envoyés par votre carte.
La liaison série est un moyen simple et efficace d’échanger des données entre différents composants électroniques, avec une mise en œuvre facile sur des plateformes comme l’Arduino et l’ESP32. Nous allons maintenant l’utiliser pour envoyer des informations provenant du capteur ultrason.
Les capteurs à ultrasons sont des dispositifs couramment utilisés pour mesurer des distances en envoyant des impulsions sonores et en mesurant le temps nécessaire à leur retour après réflexion sur un obstacle. Ils sont très populaires dans les applications de robotique et de détection d’obstacles.
Un capteur à ultrasons fonctionne sur le principe de l’écholocation :
En utilisant la formule suivante, on peut calculer la distance de l’objet en fonction du temps de trajet et de la vitesse du son dans l’air :
Distance = (Temps aller-retour × Vitesse du son) / 2
Où la vitesse du son dans l’air est d’environ 343 m/s à température ambiante.
Nous allons utiliser les broches suivantes pour connecter notre capteur ultrasonique :
const int trig_pin = D2;
const int echo_pin = D1;
Pour mesurer la distance, nous allons suivre les étapes suivantes :
Voici un exemple de code permettant de réaliser ces étapes :
const int trig_pin = D2;
const int echo_pin = D1;
void setup() {
Serial.begin(9600);
pinMode(trig_pin, OUTPUT);
pinMode(echo_pin, INPUT);
}
void loop() {
digitalWrite(trig_pin, LOW);
delayMicroseconds(2);
digitalWrite(trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(trig_pin, LOW);
long duration = pulseIn(echo_pin, HIGH);
float distance = (duration * 0.0343) / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(1000);
}
pulseIn()
mesure la durée pendant laquelle l’écho est reçu.Cette solution permet de détecter des objets et d’obtenir leur distance avec précision.
Trouvez d'autres tutoriels en lien avec le projet