- Composant requis:
- Assemblage du robot nettoyeur de sol:
- Câblage et connexions:
- Explication de la programmation:
Les nettoyeurs de sol automatiques ne sont pas nouveaux, mais ils partagent tous un problème commun. Ils sont tous trop chers pour ce qu'ils font. Aujourd'hui, nous allons fabriquer un robot de nettoyage automatique à domicile qui ne coûte qu'une petite fraction de ceux du marché. Ce robot peut détecter les obstacles et les objets devant lui et peut continuer à se déplacer, en évitant les obstacles, jusqu'à ce que toute la pièce soit nettoyée. Il a une petite brosse attachée pour nettoyer le sol.
Consultez également notre robot aspirateur intelligent utilisant Arduino
Composant requis:
- Arduino UNO R3.
- Capteur à ultrasons.
- Blindage de pilote de moteur Arduino.
- Châssis de robot d'entraînement de roue.
- Ordinateur pour programmer l'Arduino.
- Batterie pour les moteurs.
- Une banque d'alimentation pour alimenter l'Arduino
- Une brosse à chaussures.
- Un tampon à récurer Scotch Brite.
Remarque: au lieu d'utiliser des piles, vous pouvez également utiliser un long fil à 4 brins comme nous l'avons fait. Bien que ce ne soit pas une solution très élégante ou pratique, vous pouvez le faire si vous ne prévoyez pas de l'utiliser dans le monde réel tous les jours. Assurez-vous que les longueurs du câble sont suffisantes.
Avant d'entrer dans les détails, parlons d'abord des ultrasons.
Capteur à ultrasons HC-SR04:
Le capteur à ultrasons est utilisé pour mesurer la distance avec une grande précision et des lectures stables. Il peut mesurer une distance de 2 cm à 400 cm ou de 1 pouce à 13 pieds. Il émet une onde ultrasonore à la fréquence de 40 KHz dans l'air et si l'objet vient sur son chemin, il rebondira vers le capteur. En utilisant ce temps qu'il faut pour frapper l'objet et revenir, vous pouvez calculer la distance.
Le capteur à ultrasons utilise une technique appelée «ECHO». «ECHO» est simplement une onde sonore réfléchie. Vous aurez un ECHO lorsque le son se réfléchit après avoir atteint une impasse.
Le module HCSR04 génère une vibration sonore dans la gamme ultrasonique lorsque nous faisons haut la broche `` Trigger '' pendant environ 10us, ce qui enverra une rafale sonore de 8 cycles à la vitesse du son et après avoir frappé l'objet, elle sera reçue par la broche Echo. En fonction du temps nécessaire aux vibrations sonores pour revenir, il fournit une sortie d'impulsion appropriée. Si l'objet est éloigné, il faut plus de temps pour qu'ECHO soit entendu et la largeur d'impulsion de sortie sera grande. Et si l'obstacle est proche, l'ECHO sera entendu plus rapidement et la largeur d'impulsion de sortie sera plus petite.
Nous pouvons calculer la distance de l'objet en fonction du temps mis par l'onde ultrasonore pour revenir au capteur. Puisque le temps et la vitesse du son sont connus, nous pouvons calculer la distance par les formules suivantes.
Distance = (Temps x Vitesse du son dans l'air (343 m / s)) / 2.
La valeur est divisée par deux car l'onde se déplace vers l'avant et vers l'arrière sur la même distance. Ainsi, le temps pour atteindre l'obstacle n'est que la moitié du temps total nécessaire
Donc Distance en centimètre = 17150 * T
Nous avons déjà réalisé de nombreux projets utiles en utilisant ce capteur à ultrasons et Arduino, vérifiez-les ci-dessous:
- Mesure de distance basée sur Arduino à l'aide d'un capteur à ultrasons
- Alarme de porte utilisant Arduino et capteur à ultrasons
- Surveillance de benne à ordures basée sur l'IOT à l'aide d'Arduino
Assemblage du robot nettoyeur de sol:
Montez l'Arduino sur le châssis. Assurez-vous de ne rien court-circuiter au cas où votre châssis serait en métal. C'est une bonne idée d'obtenir une boîte pour l'Arduino et le blindage du contrôleur de moteur. Fixez les moteurs avec les roues et le châssis à l'aide de vis. Votre châssis devrait avoir des options pour le faire depuis l'usine, mais si ce n'est pas le cas, vous pouvez improviser une solution différente. L'époxy n'est pas une mauvaise idée. Montez la brosse à chaussures à l'avant du châssis. Nous avons utilisé une combinaison d'époxy M-Seal et de vis percées pour cela, bien que vous puissiez utiliser toute autre solution qui pourrait être plus facile pour vous. Montez le tampon à récurer Scotch Brite derrière la brosse. Nous avons utilisé un arbre traversant le châssis qui le maintient en jeu, bien que cela soit également improvisable. Un arbre à ressort peut être utilisé pour l'accompagner. Montez les batteries (ou les câbles à l'arrière du châssis).L'époxy ou un support de batterie sont de bons moyens de le faire. La colle chaude n'est pas mauvaise non plus.
Câblage et connexions:
Le circuit de ce robot de nettoyage automatique à domicile est très simple. Connectez le capteur à ultrasons à l'Arduino comme mentionné ci-dessous et placez le blindage du pilote de moteur sur l'Arduino comme n'importe quel autre blindage.
La broche Trig d'ultrasons est connectée à la 12e broche de l'Arduino, la broche Echo est connectée à la 13e broche, la broche de tension à la broche 5V et la broche de masse à la broche de masse. La broche Echo et la broche Trig permettent à l'Arduino de communiquer avec le capteur. L'alimentation est fournie au capteur via les broches de tension et de masse, et les broches Trig et Echo lui permettent d'envoyer et de recevoir des données avec l'Arduino. En savoir plus sur l'interfaçage du capteur à ultrasons avec Arduino ici.
Le blindage du moteur doit avoir au moins 2 sorties et elles doivent être connectées à vos 2 moteurs. Normalement, ces sorties sont étiquetées «M1» et «M2» ou «Moteur 1» et «Moteur 2». Câblez vos batteries et votre batterie externe respectivement au blindage du moteur et à l'Arduino. Ne les interconnectez pas. Le blindage de votre moteur doit avoir un canal d'entrée. Si vous utilisez des fils, connectez-les à des adaptateurs secteur.
Explication de la programmation:
Ouvrez l'IDE Arduino. Collez le code Arduino complet, donné à la fin de ce tutoriel, dans l'IDE. Connectez votre Arduino à l'ordinateur. Sélectionnez le port dans Outils / Port. Cliquez sur le bouton de téléchargement.
Testez le robot. S'il tourne trop peu ou trop, expérimentez les retards jusqu'à ce qu'il soit parfait.
Avant d'entrer dans le code, nous devons installer la bibliothèque Adafruit Motor Shield pour piloter les moteurs CC. Puisque nous utilisons le blindage du pilote de moteur L293D, nous devons télécharger la bibliothèque AFmotor à partir d'ici. Ensuite, ajoutez-le dans votre dossier de bibliothèque Arduino IDE. Assurez-vous de le renommer AFMotor . En savoir plus sur l'installation de cette bibliothèque.
Le code est facile et peut être compris facilement, mais nous en avons expliqué ici quelques parties:
Le code ci-dessous configure le robot. Nous avons d'abord inclus la bibliothèque Adafruit pour piloter les moteurs avec le blindage du pilote de moteur. Après cela, nous avons défini la broche Trig et la broche Echo. Il met également en place les moteurs. Il définit la broche Trig en sortie et la broche Echo en entrée.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor motor2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
Le code ci-dessous indique à l'Arduino de boucler les commandes suivantes. Après cela, il utilise le capteur pour transmettre et recevoir des sons ultrasoniques. Il calcule la distance à laquelle il se trouve par rapport à l'objet une fois que les ondes ultrasonores rebondissent, après avoir noté que l'objet se trouve dans la distance définie, il dit à l'Arduino de faire tourner les moteurs en conséquence.
void loop () {longue durée, distance; digitalWrite (trigPin, LOW); delayMicrosecondes (2); digitalWrite (trigPin, HIGH); delayMicrosecondes (10); digitalWrite (trigPin, LOW); durée = pulseIn (echoPin, HIGH); distance = (durée / 2) / 29,1; if (distance <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (BACKWARD); motor2.run (BACKWARD); retard (2000); // CHANGEZ CELA EN FONCTION DE LA VIRAGE DU ROBOT.
Cela fait tourner le robot en faisant tourner un moteur et en maintenant l'autre stagnant.
Le code ci-dessous oblige le robot à faire tourner les deux moteurs dans le même sens afin de le faire avancer jusqu'à ce qu'il détecte un objet dans la limite susmentionnée.
else {motor1.setSpeed (160); // CHANGEZ CELA SELON LA VITESSE DE VOTRE ROBOT. motor2.setSpeed (160); // CHANGEZ CECI POUR LA MÊME VALEUR QUE VOUS METTEZ CI-DESSUS. motor1.run (FORWARD); motor2.run (FORWARD); }