Table des matières:

Robot suivant et évitant la lumière basé sur Arduino : 5 étapes
Robot suivant et évitant la lumière basé sur Arduino : 5 étapes

Vidéo: Robot suivant et évitant la lumière basé sur Arduino : 5 étapes

Vidéo: Robot suivant et évitant la lumière basé sur Arduino : 5 étapes
Vidéo: Introduction à la programmation d'une carte Arduino avec mBlock 2024, Juillet
Anonim
Robot suivant et évitant la lumière basé sur Arduino
Robot suivant et évitant la lumière basé sur Arduino

Il s'agit d'un projet simple qui suit ou évite la lumière.

J'ai fait cette simulation dans Proteus 8.6 pro. Composants requis:-1) Arduino uno.

2) 3 LDR.

3) 2 moteurs à engrenages à courant continu.4) Un servo.5) Trois résistances 1k.6) un pont en H l290D7) Un interrupteur marche/arrêt [pour changer l'état du programme]

8) Batterie 9v et 5v

Étape 1: Code Ardunio

Le code Arduino est modifié un peu en date du 23 février 2016]

Ce code est fortement commenté, je ne veux pas expliquer, mais si vous avez besoin d'aide, n'hésitez pas à me contacter à ([email protected])

Remarque: -J'utilise deux conditions dans ce programme, la première pour la lumière suivante et la deuxième pour éviter la lumière.

Dans la mesure où ces conditions sont satisfaites, le robot suivra ou évitera la lumière. [C'est la valeur minimale de LDR que je choisis. En lumière normale, sa plage est de 80 à 95, mais à mesure que son intensité augmente, de plus en plus de tensions induites le traversent car il fonctionne sur le principe du diviseur de tension int a = 400; // Valeur de tolérance]

Étape 2: Fichiers Proteus

Pour la bibliothèque Arduino, téléchargez à partir de ce lien

Étape 3: Comment fonctionne votre pont en H

Comment fonctionne votre pont en H
Comment fonctionne votre pont en H
Comment fonctionne votre pont en H
Comment fonctionne votre pont en H

Le L293NE/SN754410 est un pont en H très basique. Il possède deux ponts, un sur le côté gauche de la puce et un sur la droite, et peut contrôler 2 moteurs. Il peut conduire jusqu'à 1 ampère de courant et fonctionner entre 4,5V et 36V. Le petit moteur à courant continu que vous utilisez dans ce laboratoire peut fonctionner en toute sécurité avec une basse tension, de sorte que ce pont en H fonctionnera très bien. Le pont en H a les broches et caractéristiques suivantes: La broche 1 (1, 2EN) active et désactive notre moteur qu'il soit HAUT ou BAS La broche 2 (1A) est une broche logique pour notre moteur (l'entrée est HAUT ou BAS) 3 (1Y) est pour l'une des bornes du moteur La broche 4-5 est pour la masse La broche 6 (2Y) est pour l'autre borne du moteur La broche 7 (2A) est une broche logique pour notre moteur (l'entrée est soit HAUTE ou BASSE) La broche 8 (VCC2) est l'alimentation de notre moteur, cela devrait être donné à la tension nominale de votre moteur. Les broches 9-11 ne sont pas connectées car vous n'utilisez qu'un seul moteur dans ce laboratoire. Les broches 12-13 sont destinées à la terre. connecté à 5V. Ci-dessus se trouve un schéma du pont en H et quelles broches font quoi dans notre exemple. Le schéma comprend une table de vérité indiquant comment le moteur fonctionnera en fonction de l'état des broches logiques (qui sont définies par notre Arduino).

Dans ce projet, la broche d'activation se connecte à une broche numérique sur votre Arduino afin que vous puissiez l'envoyer soit HAUT ou BAS et allumer ou éteindre le moteur. Les broches logiques du moteur sont également connectées à des broches numériques désignées sur votre Arduino afin que vous puissiez l'envoyer HAUT et BAS pour que le moteur tourne dans un sens, ou BAS et HAUT pour le faire tourner dans l'autre sens. La tension d'alimentation du moteur se connecte à la source de tension du moteur, qui est généralement une alimentation externe. Si votre moteur peut fonctionner sur 5V et moins de 500mA, vous pouvez utiliser la sortie 5V de l'Arduino. La plupart des moteurs nécessitent une tension et un courant plus élevés que cela, vous aurez donc besoin d'une alimentation externe.

Connectez le moteur au pont en H Connectez le moteur au pont en H comme indiqué sur la 2ème image.

Ou, si vous utilisez une alimentation externe pour l'Arduino, vous pouvez utiliser la broche Vin.

Étape 4: Comment fonctionne LDR

Maintenant, la première chose qui peut nécessiter plus d'explications est l'utilisation des résistances dépendantes de la lumière. Les résistances dépendantes de la lumière (ou LDR) sont des résistances dont la valeur change en fonction de la quantité de lumière ambiante, mais comment pouvons-nous détecter la résistance avec Arduino ? Eh bien, vous ne pouvez pas vraiment, mais vous pouvez détecter les niveaux de tension à l'aide des broches analogiques, qui peuvent mesurer (en utilisation basique) entre 0 et 5 V. Maintenant, vous demandez peut-être « Eh bien, comment convertissons-nous les valeurs de résistance en changements de tension ? », c'est simple, nous fabriquons un diviseur de tension. Un diviseur de tension prend une tension et délivre ensuite une fraction de cette tension proportionnelle à la tension d'entrée et au rapport des deux valeurs de résistances utilisées. L'équation pour laquelle est:

Tension de sortie = Tension d'entrée * (R2 / (R1 + R2)) Où R1 est la valeur de la première résistance et R2 est la valeur de la seconde.

Maintenant, cela soulève toujours la question « Mais quelles valeurs de résistance a le LDR ? », bonne question. Moins il y a de lumière ambiante, plus la résistance est élevée, plus la lumière ambiante signifie une résistance plus faible. Maintenant, pour les LDR particuliers, j'ai utilisé leur plage de résistance de 200 à 10 kilo ohms, mais cela change pour différents, alors assurez-vous de rechercher où vous les avez achetés et essayez de trouver une fiche technique ou quelque chose du genre. le cas R1 est en fait notre LDR, alors ramenons cette équation et faisons un peu de math-e-magie (magie électrique mathématique). Maintenant, nous devons d'abord convertir ces valeurs en kilo ohms en ohms: 200 kilo-ohms = 200 000 ohms 10 kilo-ohms = 10 000 ohms Donc pour trouver quelle est la tension de sortie quand on est dans le noir on branche les nombres suivants: 5 * (10000 / (20000 + 10000)) L'entrée est de 5V car c'est ce que nous obtenons de l'Arduino. Ce qui précède donne 0,24 V (arrondi). Maintenant, nous trouvons quelle est la tension de sortie en luminosité maximale en utilisant les nombres suivants: 5 * (10000 / (10000 + 10000)) Et cela nous donne exactement 2,5 V. Ce sont donc les valeurs de tension que nous allons entrer dans les broches analogiques de l'Arduino, mais ce ne sont pas les valeurs qui seront vues dans le programme, "Mais pourquoi?" tu peux demander. L'Arduino utilise une puce analogique-numérique qui convertit la tension analogique en données numériques utilisables. Contrairement aux broches numériques de l'Arduino qui ne peuvent lire qu'un état HAUT ou BAS de 0 et 5 V, les broches analogiques peuvent lire de 0 à 5 V et les convertir en une plage de nombres de 0 à 1023. Maintenant, avec un peu plus de math-e-magic. nous pouvons réellement calculer quelles valeurs l'Arduino lira réellement.

Comme ce sera une fonction linéaire, nous pouvons utiliser la formule suivante: Y = mX + C Où; Y = valeur numérique où; m = pente, (montée / course), (valeur numérique / valeur analogique) Où; Interception C = Y L'interception Y est 0, ce qui nous donne: Y = mXm = 1023 / 5 = 204,6 Par conséquent: Valeur numérique = 204,6 * Valeur analogique Donc, dans le noir absolu, la valeur numérique sera: 204,6 * 0,24, ce qui donne environ 49. Et en luminosité maximale, ce sera: 204,6 * 2,5 Ce qui donne environ 511. Maintenant, avec deux d'entre eux configurés sur deux broches analogiques, nous pouvons créer deux variables entières pour stocker leurs valeurs deux et faire des opérateurs de comparaison pour voir laquelle a la valeur la plus faible, tourner le robot dans cette direction.

Conseillé: