Table des matières:

Radar infrarouge avec Arduino : 6 étapes
Radar infrarouge avec Arduino : 6 étapes

Vidéo: Radar infrarouge avec Arduino : 6 étapes

Vidéo: Radar infrarouge avec Arduino : 6 étapes
Vidéo: Radar de recul avec Arduino 2024, Novembre
Anonim
Image
Image

Dans ce petit projet, je voudrais vous montrer comment créer un simple radar à la maison avec Arduino. Il existe de nombreux projets similaires sur Internet, mais ils utilisent tous un capteur à ultrasons pour mesurer la distance. Dans ce projet, j'utilise un capteur infrarouge pour la mesure de distance.

Mon objectif est de créer un système LIDAR très simple et bon marché avec lui et d'implémenter un dispositif de cartographie.

Fournitures

  • Arduino (j'ai utilisé un Maple Mini)
  • Capteur de distance Sharp (j'ai utilisé Sharp GP2Y0A02YK0F)
  • Micro Servo (9g)
  • Planche à pain, fils
  • En option: résistance 4,7 k, condensateur 100 nF

Étape 1: Capteur infrarouge à ultrasons VS

Schématique
Schématique

La principale différence entre les capteurs de distance à ultrasons et infrarouges est que le capteur à ultrasons mesure la distance dans une plage plus large. Il n'est donc pas en mesure de localiser précisément la position d'un obstacle. Cela signifie qu'il mesure la distance de l'objet le plus proche qui se trouve dans une plage d'angle de ~ +-30°.

Bien sûr, cela ne signifie pas que le capteur Sharp est meilleur. Parfois, cette propriété peut être très utile (par exemple, utilisée par les drones pour mesurer la hauteur depuis le sol). Le bon choix dépend totalement des exigences de votre projet.

Étape 2: Schéma

Schématique
Schématique
Schématique
Schématique

Il est très simple de faire le lien entre les pièces. Sélectionnez une sortie PWM et une entrée analogique sur votre carte Arduino et connectez les capteurs de distance Servo et Sharp à ces broches. J'ai utilisé les broches suivantes à cette fin:

  • PA0: Entrée analogique pour capteur de distance Sharp
  • PA9: sortie PWM pour servomoteur

Parfois, le capteur IR Sharp peut avoir une sortie bruyante, vous devez donc y mettre un simple filtre passe-bas. J'ai utilisé une résistance de 4,7 k et un condensateur de 100 nF pour réduire le bruit sur la broche analogique. En plus de cela, j'ai également filtré la valeur mesurée dans le code en la lisant plusieurs fois et en calculant la moyenne.

Étape 3: Caractéristique du capteur

Caractéristique du capteur
Caractéristique du capteur
Caractéristique du capteur
Caractéristique du capteur

Malheureusement, le capteur de distance infrarouge utilisé a une caractéristique non linéaire. Cela signifie que pour obtenir la distance, il ne suffit pas de multiplier la valeur ADC mesurée par une valeur constante et d'y ajouter une autre valeur constante.

Bien que la fiche technique du capteur fournisse la caractéristique, je préfère la mesurer par moi-même dans le projet spécifique (cela pourrait dépendre de la tension utilisée). Pour cela, j'ai fait des paires à partir de la valeur ADC mesurée et de la distance tous les 10 cm. (Mon capteur a pu mesurer la distance correcte à partir de 12 cm).

J'ai utilisé ces paires dans le code pour obtenir la distance correcte avec l'interpolation linéaire.

Vous trouverez un code Arduino simple à la fin du document, pour mesurer la valeur ADC lors de la mesure des caractéristiques.

Étape 4: Communication série

Communication série
Communication série

J'ai utilisé la communication série pour envoyer les valeurs d'angle-distance mesurées au PC. Comme je dois envoyer plusieurs octets et différents types de messages, j'ai conçu un protocole de communication simple.

Ce protocole permet de définir différents types de messages de manière générique. Dans ce projet, j'ai utilisé 2 types de messages:

  • Paramètres: utilisé pour envoyer des paramètres à l'application PC, définis sur Arduino comme la distance maximale et le nombre d'obstacles dans un tour.
  • Obstacle: Permet d'envoyer un obstacle détecté. Il est identifié par l'angle du servo et la distance mesurée. La position x-y sera calculée par l'application PC.

Étape 5: Application Qt

Application Qt
Application Qt

Pour communiquer avec Arduino et dessiner les points mesurés comme un radar j'ai réalisé une application PC en Qt (C++). Il reçoit certains paramètres (définis sur Arduino) et les points de distance mesurés.

Vous pouvez également télécharger l'application et son code source.

Étape 6: Code source Arduino

Vous pouvez personnaliser certains paramètres en haut du code avec des macros.

Notez que si vous modifiez la caractéristique du capteur de distance Sharp, vous devez modifier les valeurs du tableau distAdcMap !

  • InfraRadar.c: Code du radar. Copiez et collez-le dans votre projet Arduino.
  • InfraRadarMeasurement.c: Code de mesure caractéristique. Copiez et collez-le dans votre projet Arduino. Utilisez la console série pour vérifier les valeurs ADC.

Conseillé: