Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Créateur de cartes à ultrasons utilisant un Arduino Yun

Composants et fournitures

Arduino Yun
× 1
Capteur à ultrasons
× 1
Servos (Tower Pro MG996R)
× 1
Câbles de raccordement (générique)
× 10

Applications et services en ligne

Arduino IDE
MATLAB

À propos de ce projet

Étape 1 :Théorie

Dans ce projet, nous utilisons un capteur de distance à ultrasons. Il génère des ondes sonores dépassant la portée de l'audition humaine et mesure la distance en calculant le temps nécessaire à ces ondes pour heurter un obstacle et revenir en arrière. Ceci est similaire au principe utilisé par les chauves-souris et les bateaux de croisière.

Un autre composant que nous allons utiliser est un servomoteur. Il diffère du moteur à courant continu habituel en ce qu'il peut tourner très précisément vers une position angulaire donnée et y maintenir son état. Lorsqu'un servomoteur reçoit des impulsions d'une durée spécifique, il se déplace vers la position angulaire correspondante.

Nous utiliserons ces deux composants pour obtenir un champ de vision de 180 degrés pour notre robot.

Étape 2 :Collecte des matériaux

Ce projet utilise le matériel suivant

  • Arduino Uno/Yun (Veuillez noter que n'importe quelle carte d'empreinte Arduino peut être utilisée à la place de Uno ou Yun)
  • Bouclier de prototypage Arduino
  • Un capteur à ultrasons HC-04
  • Un servomoteur (j'ai utilisé le Tower Pro SG90 car il est très compact)
  • Du côté du logiciel, nous utilisons les programmes suivants
  • L'IDE Arduino pour télécharger le code de contrôle sur l'Arduino pour faire pivoter le servo et obtenir les données de distance du capteur à ultrasons et également le pousser vers le port série.
  • Mathworks MatLab pour recevoir les données de la ligne série, les traiter et les visualiser sous forme de graphique.

Étape 3 :Assemblage mécanique

À l'aide d'un petit morceau de PCB à usage général, créez un petit en-tête pour le HC-04 et fixez-le à un palonnier à l'aide d'un morceau de ruban adhésif double face.

Cette étape est facultative, mais pour rendre le système plus compact, j'ai également fixé le servomoteur à la partie saillante du bouclier du protoboard à l'aide de ruban adhésif double face.

Le résultat final devrait ressembler à l'abdomen de Wall-E.

Étape 4 :Le code Arduino

Le code Arduino contrôle le mouvement du servomoteur, et quand les lectures du capteur à ultrasons sont capturées et à quelle fréquence. Il envoie également les données du capteur au port série.

  • Importer des bibliothèques
  • Initialisez les variables et les broches.
  • Initialiser l'objet servo
  • Initialiser la communication série
  • Attendez 3 secondes
  • Initialiser les compteurs à 0
  • Faire pivoter le servo d'un degré
  • Obtenir les données du capteur à ultrasons 10 fois (défini par défaut)
  • Moyenne des données
  • Envoyer la moyenne au port série
  • Retour à l'étape 7

Étape 5 :Le code MatLab

Le code MatLab traite plus des données que du contrôle réel de la carte, donc toutes les données du capteur sont transmises en série au PC, où elles sont lues par MatLab.

Maintenant, les données que nous recevons de l'Arduino nous disent deux choses. Le degré de rotation du servo et la distance d'un obstacle dans cette direction. Par conséquent, les données que nous avons à ce stade sont dans le système de coordonnées polaires. Pour qu'il ait un sens aux yeux de l'homme lorsqu'il est visualisé, il doit être converti dans le système de coordonnées cartésien ou X-Y.

Le code MatLab fait exactement cela. Il obtient les données en série du port COM, les enregistre dans une matrice avec l'angle de rotation, puis les convertit en coordonnées cartésiennes avec la formule donnée ci-dessus.

Une fois que c'est fait, il donne une sortie en traçant les points sur un graphique. J'ai placé le tableau dans la boîte et j'ai obtenu le résultat suivant.

Étape 6 :Conclusion

Bien que le système ne soit pas parfait, il fait le travail. Il peut obtenir une estimation approximative de la largeur et de la longueur de la boîte et envoie les données avec précision.

Les seules erreurs que je peux voir pour le moment sont dues aux secousses du capteur pendant que le servo est en mouvement et aux lectures erronées du capteur lui-même.

En dehors de cela, le système fonctionne très bien et peut être utilisé pour des expériences de perception de la profondeur ainsi que des projets de vision par ordinateur de base.

Code

  • matlab_code_to_run_on_pc.m
  • Code Arduino
matlab_code_to_run_on_pc.mMATLAB
Code MatLab à compiler et exécuter sur PC
theta =0:(pi/180):pi;s =serial('COM10');s.BaudRate=9600fopen(s)i =0;inc =1;while i<180 A =fget(s) ; num(i+1) =str2num(A); i =i+1;endfclose(s)j =1tandis que j<181 tab(j,1) =(j-1)*inc tab(j,2) =num(j) tab(j,3) =num( j)*cosd((j-1)*inc) tab(j,4) =num(j)*sind((j-1)*inc) j =j+1end%figure%polar(theta,num)plot (tab(:,3),tab(:,4))
Code ArduinoArduino
Code Arduino à télécharger sur Arduino Yun
#include #include #define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); Servo myservo; int pos =0 ; int it =10;void setup() { myservo.attach(9); Serial.begin(9600); delay(3000);}boucle vide() { int i =0; entier t =0; un entier =0 ; for (i =0; i <180; i ++) { unsigned int uS =sonar.ping(); monservo.write(i); retard(20); for (t =0; t  

Schémas

Fichier Fritzing pour les connexions des servomoteurs et des capteurs à ultrasons YunConfig.fzz

Processus de fabrication

  1. Créer un moniteur Ambilight à l'aide d'Arduino
  2. Système robotique de détection humaine utilisant Arduino Uno
  3. Machine à LÉVITATION ULTRASONIQUE utilisant ARDUINO
  4. FlickMote
  5. Voltmètre DIY utilisant Arduino et Smartphone
  6. Moniteur de fréquence cardiaque utilisant l'IoT
  7. Jouet contrôlé par Android utilisant un bouclier de moteur Raspberry
  8. IOT - Smart Jar utilisant ESP8266, Arduino et capteur à ultrasons
  9. WebServerBlink avec Arduino Uno WiFi