Table des matières:

Détecter les obstacles de manière asynchrone avec les ultrasons : 4 étapes
Détecter les obstacles de manière asynchrone avec les ultrasons : 4 étapes

Vidéo: Détecter les obstacles de manière asynchrone avec les ultrasons : 4 étapes

Vidéo: Détecter les obstacles de manière asynchrone avec les ultrasons : 4 étapes
Vidéo: Webinaire : Découverte de la carte EDU ESP32 de Vittascience et uPesy ! 2024, Novembre
Anonim
Détectez les obstacles de manière asynchrone avec les ultrasons
Détectez les obstacles de manière asynchrone avec les ultrasons

Je construis pour le plaisir un robot que je veux déplacer de manière autonome à l'intérieur d'une maison.

C'est un long travail et je le fais étape par étape.

Cette instructable se concentre sur la détection des obstacles avec Arduino Mega

Les capteurs à ultrasons HC-SR04 vs HY-SRF05 sont bon marché et simples à utiliser mais peuvent devenir difficiles à intégrer dans la boucle du microcontrôleur d'un robot complexe. Je voulais lancer la détection d'obstacles de manière asynchrone.

_

J'ai déjà publié 3 instructables sur les fonctionnalités de ce robot:

  • Faites votre encodeur de roue
  • Faites votre passerelle WIFI
  • Utiliser l'unité de module inertiel

Et une documentation sur la combinaison de l'intelligence artificielle et des ultrasons pour localiser le robot.

Étape 1: Quel est précisément le problème avec les capteurs à ultrasons et les microcontrôleurs ?

Quel est précisément le problème avec les capteurs à ultrasons et les microcontrôleurs ?
Quel est précisément le problème avec les capteurs à ultrasons et les microcontrôleurs ?
Quel est précisément le problème avec les capteurs à ultrasons et les microcontrôleurs ?
Quel est précisément le problème avec les capteurs à ultrasons et les microcontrôleurs ?

Attente synchrone et limitations Arduino

Le code des microcontrôleurs s'exécute en boucle et ne prend pas en charge le multithread. Les capteurs à ultrasons sont basés sur la durée du signal. Cette durée dure jusqu'à 30 ms ce qui est très long à attendre à l'intérieur de la boucle lorsque les microcontrôleurs doivent gérer plusieurs moteurs et capteurs (par exemple servomoteurs et moteurs à courant continu avec encodeurs de roue).

J'ai donc voulu développer un objet qui s'exécute de manière asynchrone.

Étape 2: Comment ça marche ?

Comment ça marche ?
Comment ça marche ?

Il a été conçu pour Atmega pour la détection d'obstacles. Il prend en charge jusqu'à 4 capteurs à ultrasons.

Grâce à l'interruption périodique du temps, le système peut surveiller jusqu'à 4 capteurs à ultrasons. Le code principal n'a qu'à définir quel capteur activer avec condition et seuil. Le principal ne sera interrompu que si (condition, seuil) apparaît.

Les fonctions principales sont:

  • L'alerte est la détection d'obstacle de base et fournit une interruption si au moins 1 des 4 capteurs détecte une distance sous son seuil
  • Monitor est une fonction étendue qui fournit une interruption sur une combinaison de condition de distance de jusqu'à 4 capteurs. Les conditions possibles sont supérieures, inférieures, égales ou différentes aux seuils.

Étape 3: Détails techniques

Utilisez timer4 pour que la broche 6 7 8 ne puisse pas être utilisée comme PWM.

Pour chaque capteur, l'objet a besoin d'un PIN de déclenchement et d'un PIN d'interruption.

En plus des codes PIN d'interruption des capteurs, l'objet a besoin d'un autre code PIN d'interruption pour l'utilisation du logiciel.

Étape 4: Comment mettre en œuvre ?

Comment mettre en œuvre ?
Comment mettre en œuvre ?

Connectez les capteurs comme ci-dessus

Télécharger à partir de ce référentiel GitHub

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • ExempleEchoObstacleDetection.ino

Créez le répertoire EchoObstacleDetection dans votre bibliothèque IDE et déplacez les fichiers.cpp et.h

Essaye-le

Ouvrez ExampleEchoObstacleDetection.ino.

Il s'agit d'un exemple simple de détection d'obstacles fonctionnant avec 2 capteurs à ultrasons.

La sortie est dirigée sur un moniteur série. Dans un premier temps il imprimera les distances détectées par les 2 capteurs puis imprimera les alertes en fonction des distances sous les seuils.

Conseillé: