Table des matières:

L'OBSTACLE ÉMOTIONNEL À ÉVITER LE ROBOT : 11 étapes
L'OBSTACLE ÉMOTIONNEL À ÉVITER LE ROBOT : 11 étapes

Vidéo: L'OBSTACLE ÉMOTIONNEL À ÉVITER LE ROBOT : 11 étapes

Vidéo: L'OBSTACLE ÉMOTIONNEL À ÉVITER LE ROBOT : 11 étapes
Vidéo: Elegoo Smart Robot Car #4: Obstacle Avoidance Stop and follow obstacle on straight path 2024, Novembre
Anonim
L'OBSTACLE ÉMOTIONNEL À ÉVITER LE ROBOT
L'OBSTACLE ÉMOTIONNEL À ÉVITER LE ROBOT

Le robot émotionnel. Ce robot affiche des émotions avec des néopixels (LED RVB) telles que la tristesse, le bonheur, la colère et la peur, il peut également éviter les obstacles et effectuer certains mouvements lors de sa certaine émotion. Le cerveau de ce robot est un méga Arduino. gardez à l'esprit que c'est mon premier robot programmé que j'ai jamais construit, et cela m'a fait tomber amoureux de la programmation, le code lui-même est très débutant et pourrait très probablement être simplifié.

Étape 1: PIÈCES

LES PIÈCES
LES PIÈCES

-3,2 pieds d'une bande néopixel

-Capteur à ultrasons HC-SR04 (ou tout autre capteur à ultrasons)

-interrupteur d'inclinaison

-3 batterie lithium-ion 3.7v (18650)

-boost convertisseur (expliqué dans l'étape de puissance)

-résistance photo (n'importe quelle valeur)

-capteur de son analogique

-2 moteurs à courant continu 6v

-l293d (pilote de moteur)

-feuille de plastique

-papier carton

-roue pivotante

Étape 2: Néopixels

Néopixels
Néopixels
Néopixels
Néopixels

En raison de mon budget serré, le moyen le plus simple et le moins cher de donner vie aux émotions de mes robots est le néopixel, tout ce qu'ils ont, c'est 3 entrées et sorties. les trois broches de l'entrée sont étiquetées 5v, DIN (data in) et GND (ground); la sortie est étiquetée de la même manière que l'entrée mais au lieu des données dans son DO (données en sortie). La façon dont vous connectez ces led est de les connecter en parallèle les uns avec les autres, donc 5v se connecte à 5v sur l'autre led et GND est connecté à l'autre led GND, DO de la première led est connecté au DIN de la deuxième led puis ce processus se poursuit jusqu'à ce que vous atteigniez la longueur de bande LED souhaitée. Une bande entière de néopixels ne nécessite qu'une seule broche de sortie numérique de l'entrée, car le DO et le DIN sont connectés dans une longue chaîne, ils partagent donc tous des données les uns avec les autres. Ceci est nécessaire car nous devons allumer et éteindre des LED spécifiques à des moments précis. Une instructable utile à ce sujet est NEOPIXEL HELP

Étape 3: Le schéma

Le schéma
Le schéma

Le circuit est très simple car la plupart du robot est juste programmé, les moteurs fonctionnent à près de 7v avec un pilote de moteur l293d afin de contrôler les moteurs pour avancer ou reculer. Les autres connexions sont les capteurs de l'Arduino. Et c'est tout!

Étape 4: le code

La première chose que j'ai faite a été de télécharger les bibliothèques requises pour rendre le codage un peu plus facile, les bibliothèques que j'ai utilisées sont "FastLED.h" et "NewPing.h". La led rapide est pour les leds et la nouvelle ping est pour les capteurs à ultrasons. La prochaine chose que j'ai faite a été de définir toutes les définitions des broches que j'ai utilisées, après la configuration de l'annulation, c'est là que j'ai configuré les modes de broche et le neostrip "FastLED.addLeds(leds, NUM_LEDS);" J'ai défini le NUM_LEDS comme 56, puisque j'ai utilisé 56 leds, les configurations des leds seront expliquées à l'étape face. J'ai ensuite créé un tas de fonctions pour que mon robot avance et recule et ait aussi sa certaine émotion, après cela j'arrive à la boucle vide, c'est là que j'appelle toutes mes fonctions dans un certain ordre que je veux, par exemple, si je voulais que mon robot sourie, je mettrais smile();. Si je voulais qu'une certaine LED s'allume, je mettrais, leds[45] = CRGB::Green;, cela mettra la led 45 au vert. Quand je mets la couleur sur noir, cela signifie simplement éteint. Maintenant, gardez à l'esprit que c'est l'un de mes premiers programmes, donc ce n'est évidemment pas parfait, mais cela a quand même fonctionné.

LE CODE

Étape 5: Le visage

La face
La face

Pour le visage, j'ai utilisé 56 LED, ce qui représente presque une bande de néopixels complète de 3,2 pieds. J'ai découpé la bande en 7 bandes de 8 leds, j'ai utilisé les 3 premières bandes pour les yeux et les 4 dernières pour la bouche. J'ai connecté les bandes dans une sorte de connexion en forme de serpent, vous comprendrez mieux avec le schéma, espérons-le. Quand j'ai fini le visage, j'ai ensuite mis une fine feuille de plastique (environ 2 mm d'épaisseur) sur les bandes de led.

Étape 6: Bonne fonction

Bonne fonction
Bonne fonction

Cette fonction est la plus simple de toutes car elle n'utilise aucun capteur, mais dès que vous allumez le bot, il vous sourit instantanément. Mais il ne fait pas que sourire; quand il sourit, il est également en mode d'évitement d'obstacles. Le mode d'évitement d'obstacles est représenté dans mon code par la fonction roam. Le mode d'évitement d'obstacles ou d'itinérance fonctionne en utilisant deux capteurs à ultrasons du côté des robots, lorsque le capteur arrive à 30 cm de tout ce qu'il reculerait et irait à droite ou à gauche en fonction du capteur le plus proche de l'objet.

Étape 7: Fonction triste

Triste Fonction
Triste Fonction
Triste Fonction
Triste Fonction

Pour que le robot devienne triste, j'ai dû penser à un trait de personnalité pour ce robot, j'ai donc décidé de le rendre triste lorsqu'il se trouve dans un environnement sombre. Pour ce faire, j'ai utilisé une photorésistance pour détecter la lumière. Plus l'environnement est sombre, plus la résistance est élevée et plus l'environnement est clair, plus la résistance est faible. Le circuit fonctionne comme un diviseur de tension qui est un circuit avec deux résistances connectées en série à +5v et GND, au milieu de la connexion de la résistance se trouve une tension qui peut être déterminée par cette équation: tension d'entrée*(R2/R1+R2). lorsque la broche analogique Arduino lit cette valeur, elle convertit la tension dans une plage de 0 à 1023.

Étape 8: Fonction en colère

Fonction en colère
Fonction en colère
Fonction en colère
Fonction en colère

Afin de mettre le robot en colère, j'ai décidé de le retourner/de le renverser. Cela fonctionne en utilisant un interrupteur d'inclinaison, et un interrupteur d'inclinaison est fondamentalement un interrupteur normal, mais au lieu d'avoir un bouton ou une bascule, vous avez une boule de mercure qui, si elle est inclinée à un certain angle, connectera les deux contacts et s'allumera; donc la valeur de ceci est 0 ou 1, 0 pour off et 1 pour on. Lorsque le robot est en colère, il ignore également le mode d'évitement d'obstacles et enfonce tout ce qui se trouve en vue vers l'avant, en raison de sa colère.

Étape 9: Fonction effrayée

Fonction peur
Fonction peur
Fonction peur
Fonction peur

La dernière fonction du robot est la fonction peur, qui utilise un capteur sonore placé juste au-dessus du robot. Chaque fois que le robot entend un bruit de charge, il prend peur et tremble en reculant. Le capteur sonore fonctionne en utilisant un micro à condensateur qui est un microphone, lorsqu'il détecte des sons ou des vibrations, il crée une petite tension, généralement d'environ 100 mv, cette tension est ensuite amplifiée et lue à travers la broche analogique de l'Arduino, plus la tension est élevée ou plus le son est fort, plus la valeur analogique est élevée, et vice versa.

Étape 10: Puissance

Puissance
Puissance
Puissance
Puissance

Maintenant que vous avez construit tout ce dont vous avez besoin pour l'alimenter, j'ai initialement essayé de l'alimenter avec 8 piles AA, mais c'était tout simplement trop encombrant et peu pratique. J'ai ensuite utilisé 3 batteries lithium-ion qui contiennent chacune environ 3,5 v, j'ai connecté une batterie à un convertisseur boost qui est un amplificateur de tension, cela a boosté mes 3,5 v à 5 v pour alimenter l'Arduino, j'ai ensuite utilisé deux des batteries et directement connecté aux moteurs et aux LED, ce n'est pas une si bonne idée car la tension n'était pas régulée, mais je n'avais pas de régulateur de tension, si vous essayez de le construire, je vous recommande d'utiliser un régulateur de tension pouvant faire 5v à environ 2-3 ampères, un exemple de ceci est le LM78S05. Ou vous pouvez utiliser le LM7805 pour alimenter l'Arduino et obtenir à la place un convertisseur abaisseur ou un convertisseur abaisseur pour abaisser la tension et alimenter les LED et les moteurs.

Étape 11: Amusez-vous !

J'espère que vous construisez ce robot et que vous vous amusez, j'espère aussi que vous apporterez votre propre touche à ce robot et créerez vos propres émotions pour le rendre VIVANT !!!

Conseillé: