Table des matières:
- Étape 1: Les matériaux
- Étape 2: Installer et configurer OpenCV et C++
- Étape 3: Configuration de l'Arduino
- Étape 4: Le code C++
- Étape 5: Le code Arduino
- Étape 6: Impression 3D et affinage de l'impression
- Étape 7: Construire la boîte
- Étape 8: Terminer
- Étape 9: Démarrer le programme
Vidéo: Robot mendiant avec suivi du visage et contrôle par manette Xbox - Arduino : 9 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Nous allons faire un robot mendiant. Ce robot essaiera d'irriter ou d'attirer l'attention des passants. Il détectera leurs visages et essaiera de leur tirer des lasers. Si vous donnez une pièce au robot, il chantera une chanson et dansera. Le robot aura besoin d'un arduino, d'un flux en direct d'une caméra et d'un ordinateur pour exécuter openCV. Le robot pourra également être contrôlé par un contrôleur xBox s'il est connecté au PC.
Étape 1: Les matériaux
Matériel Électronique
- Arduino NANO ou UNO
- Caméra USB 2.0
- Câbles de démarrage (mâle et femelle)
- 2 x Servo - Générique (taille Sub-Micro)
- 2 x LED - CATHODE RVB 5mm
- 2 lasers de 5 mW
- 1 x LED rouge 5mm
- 1 x planche à pain
- 4 résistances 220Ω
- 1 résistance 1KΩ
- 1 x protoboard
- 1 x capteur sonar 4 broches
- Manette Xbox
Analogique matériel
- Boîte en bois (15 x 15 x 7 cm)
- La colle
- Ruban électrique
Logiciel
- IDE Arduino
- Studio visuel 2017
- 3Ds Max (ou tout autre logiciel de modélisation 3D)
- Préforme 2.14.0 ou ultérieure
- OpenCV 3.4.0 ou version ultérieure
Outils
- Équipement de soudure
- Scie et perceuse
- Coupe-fil
Étape 2: Installer et configurer OpenCV et C++
Étape 2.1: Obtenir le logiciel
Visual studio 2017: Télécharger Visual studio Comunity 2017openCV 3.4.0 Win pack: Aller à la page de téléchargement officielle
Étape 2.2: Installation d'OpenCV2.2.1: Extrayez le fichier zip sur votre lecteur Windows (:C) 2.2.2: Accédez à vos paramètres système avancés. Cela peut être trouvé dans votre fonction de recherche win10.2.2.3: Nous devons configurer de nouvelles variables environnementales. Localisez l'environnement "Path" et appuyez sur edit.2.2.4: Nous devons maintenant ajouter l'emplacement de la "bin map" à une nouvelle variable dans l'environnement Path. Si vous avez installé openCV sur votre lecteur C, le chemin peut ressembler à ceci: C:\opencv\build\x64\vc14\bin Collez le chemin et appuyez sur "OK" sur toutes les fenêtres que vous avez ouvertes au cours de ce processus.
Étape 2.3: configuration de Visual Studio C++2.3.1: Créez un nouveau projet Visual C++. Faites-en un projet d'application de console win32 vide.2.3.2: Dans l'onglet des fichiers source, faites un clic droit et ajoutez un nouveau fichier C++ (.cpp) et nommez-le "main.cpp".2.3.3: Faites un clic droit sur le projet- nom dans l'explorateur de solutions et sélectionnez Propriétés.2.3.4: nous devons ajouter un répertoire d'inclusion supplémentaire. Cela peut être trouvé sous l'onglet C/C++ en général. Copiez le chemin suivant: C:\opencv\build\include et collez-le derrière le "AID" et cliquez sur appliquer.2.3.5: Dans la même fenêtre, nous devons sélectionnez l'onglet "Lien". en général, nous devons créer un autre répertoire de bibliothèque supplémentaire. Collez le chemin suivant derrière le "AID" C:\opencv\build\x64\vc14\lib et appuyez à nouveau sur Apply.2.3.6: Sous le même onglet Linker, sélectionnez l'onglet "Input". Et appuyez sur "Dépendances supplémentaires> modifier" et collez le fichier suivant opencv_world320d.lib et xinput.lib (Pour le contrôleur) et appuyez à nouveau sur Appliquer. Fermez la fenêtre. Votre fichier C++ est maintenant prêt à fonctionner.
Étape 3: Configuration de l'Arduino
Rencontre avec les servos: Les servos sont capables de tourner à ~160°. Ils doivent avoir entre 4, 8 et 6, 0 volts pour fonctionner normalement. Le servo a 3 broches: masse, 4, 8 - 6, 0 volt broche et une épingler. Pour notre projet, nous allons définir les broches de données pour les servos sur DigitalPin 9 et 10.
Rencontre avec les leds RVB:Les leds RVB ont 4 broches. Broche rouge, verte, bleue et de masse. Afin de gagner de la place sur l'arduino, nous pouvons connecter les 2 leds RGB entre elles. Nous n'utiliserons donc que 3 broches. Nous pouvons connecter et souder les leds RVB sur un protoboard comme sur l'image. Broche rouge => DigitalPin 3(PWM) Broche verte => DigitalPin 4Broche bleue => DigitalPin 7
Rencontre avec le buzzer Piezo: Notre petit robot va faire du bruit. Pour ce faire, nous devons lui donner la parole ! Nous pouvons choisir de le rendre vraiment bruyant. Ou on peut mettre une résistance de 220Ω avant le buzzer piézo pour le rendre un peu moins odieux. Nous laissons le buzzer Piezo sur la planche à pain. Donc pas besoin de soudure. Nous connectons la broche de données (+) à DigitalPin 2 et la broche de terre à la terre sur la maquette.
Rencontre avec le sonar: afin d'empêcher le robot d'essayer de viser une personne qui se trouve à 10 mètres. Nous pouvons donner au robot une distance à partir de laquelle il pourra viser des personnes. Nous le faisons avec un capteur sonar. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => masse
Rencontre avec le détecteur de pièces: Nous allons fabriquer un détecteur de pièces. Le détecteur de pièces fonctionnera en détectant si le circuit est fermé ou cassé. Cela fonctionnera presque comme un interrupteur. Mais nous devons être prudents. Si nous faisons cela mal, cela nous coûtera un arduino. Premièrement: connectez AnalogPin A0 à un câble de 5 volts. Mais assurez-vous de mettre une résistance de 1KΩ entre elle. Deuxièmement: Connectez un fil à la terre. Nous pouvons immédiatement souder les fils et la résistance au même protoboard que les leds RVB. Maintenant, si nous touchons les 2 fils ensemble, l'arduino détectera un circuit fermé. Cela signifie qu'il y a une pièce ! Rencontre avec les lasers de malheur. Le robot a besoin de ses armes pour tirer ! Pour gagner de la place, j'ai soudé les 2 lasers ensemble. Ils s'intégreront parfaitement dans le cadre de l'appareil photo. Connectez-les à DigitalPin 11 et à la terre. Tirez le petit bonhomme !
Gimmick facultatif. Nous pouvons mettre une LED rouge sous la fente. Ce sera un petit gadget amusant pour quand il fait noir. Connectez un fil à DigitalPin 8 et placez une résistance de 220Ω entre la LED et le fil pour l'empêcher d'exploser. Connectez la broche courte de la LED à la terre.
Étape 4: Le code C++
Étape 4.1: Configuration du code main.cpp4.1.1: Téléchargez "main.cpp" et copiez le code dans votre propre main.cpp.4.1.2: À la ligne 14, remplacez le "com" par le com utilisé par l'arduino. "\.\COM(change this)"4.1.3: Sur les lignes 21 et 22, définissez le bon chemin pour les fichiers "haarcascade_frontalface_alt.xml" et "haarcascade_eye_tree_eyeglasses.xml"Si openCV est installé sur le lecteur C, ces fichiers peuvent être localisés ici: "C:\opencv\build\etc\haarcascades\" Conservez les doubles barres obliques inverses ou ajoutez-en une là où il n'y en a qu'une.
Étape 4.2: Ajouter tserial.h et Tserial.cpp annuaire. Dans l'explorateur de solutions, cliquez avec le bouton droit sur le projet et sélectionnez ajouter > élément existant. Dans la fenêtre contextuelle, sélectionnez les deux fichiers à ajouter.
Étape 4.2: Ajoutez CXBOXController.h et CXBOXController.h Ces fichiers prendront en charge la partie contrôleur du projet. Dans la fenêtre contextuelle, sélectionnez les deux fichiers à ajouter. Les fichiers C++ sont configurés.
Étape 5: Le code Arduino
Étape 5.1: Bibliothèque NewPing5.1.1: Téléchargez l'ArduinoCode.ino et ouvrez-le dans l'IDE Arduino.5.1.2: Accédez à « Sketch > Inclure la bibliothèque > Gérer les bibliothèques ».5.1.3: Recherchez dans la zone de filtre jusqu'à « NewPing » et installez cette bibliothèque.
Étape 5.2: Bibliothèque de pitchs5.2.1: Téléchargez pitches.txt et copiez le contenu de pitches.txt.5.2.2: Dans l'IDE Arduino, appuyez sur CTRL+Maj+N pour ouvrir un nouvel onglet.5.2.3: Collez le code du pitches.txt dans le nouvel onglet et enregistrez-le sous le nom " pitches.h ". Le code Arduino a été configuré
Étape 6: Impression 3D et affinage de l'impression
Étape 6.1: Imprimer le fichier 3DOuvrez le printfile.form et vérifiez si tout va bien. Si tout semble ok, envoyez le travail d'impression à l'imprimante. Si quelque chose semble ou si vous souhaitez changer de modèle. J'ai inclus les fichiers 3Ds Max et les fichiers OBJ pour que vous puissiez les modifier.
Étape 6.2: Affiner le modèle 6.2.1: Une fois l'impression terminée, trempez les 2 modèles dans de l'alcool à 70 % pour éliminer toute impression résiduelle. 6.2.2: Après l'impression, posez le modèle au soleil pendant quelques heures pour laisser passer la lumière UV durcir le modèle. Ou vous pouvez utiliser une lampe UV pour durcir le modèle. Cela doit être fait car le modèle sera collant.
6.2.3: Retirez le cadre de support. Cela peut être fait avec un coupe-fil. Ou tout autre outil pouvant découper les plastiques. 6.2.4: Certaines parties de l'impression 3D peuvent encore être molles. Même si le modèle a été très exposé aux UV. Les parties qui peuvent être molles sont les parties proches des cadres de support. Posez le modèle dans plus de soleil de lumière UV pour durcir.6.2.5: Avec un "dremel", vous pouvez poncer toutes les petites bosses faites par le cadre. Vous pouvez essayer de monter les servos dans le cadre. S'ils ne conviennent pas, vous pouvez utiliser le Dremel pour poncer le matériau. le mettre en forme.
Étape 7: Construire la boîte
Étape 7.1: Faire les trousJ'ai inclus un plan de la boîte en question. Le plan n'est pas à l'échelle, mais toutes les tailles sont correctes.7.1.1: Commencez par marquer tous les trous aux bons endroits.7.1.2: Percez tous les trous. Les trous les plus grands peuvent être redimensionnés avec un Dremel.7.1.3: Les trous carrés peuvent également être percés. Mais pour les rendre carrés, vous pouvez adapter le Dremel avec une petite lime et limer les coins pointus.7.1.4: Essayez d'adapter tous les composants. s'ils s'adaptent, vous êtes prêt à partir ! 7.1.5: Faites attention aux éclats de bois. Utilisez du papier de verre pour vous en débarrasser.
Étape 7.2: Peinture7.2.1: Commencez par poncer le couvercle. Nous avons besoin que la peinture colle.7.2.2: Prenez un chiffon et mettez un peu de Térébenthine dessus pour nettoyer la boîte.7.2.3: Maintenant, vous pouvez pulvériser de la peinture sur la boîte de la couleur que vous désirez.
Étape 8: Terminer
Maintenant, nous devons tout mettre en place et laisser faire. Étape 8.1: Le détecteur de pièces 8.1.1: Collez des renforts métalliques pour le détecteur de pièces. 8.1.2: Soudez chaque fil du connecteur à un renfort.8.1.3: Testez la connexion avec une pièce de monnaie. S'il n'y a pas de circuit fermé, soudez davantage les fils au bord. Étape 8.2: La carte proto et les leds RVB 8.2.1: Placez la carte proto dans le coin supérieur droit et collez-la ! 8.2.2: Connectez les leds RVB aux fils du protoboard ! 8.2.3: Connectez tous les fils du protoboard à l'arduino. Étape 8.3: Le capteur sonar 8.3.1: placez le capteur dans les trous que nous avons faits pour cela. Si vous avez des fils de connexion mâle à femelle, vous pouvez sauter 8.3.28.3.2: Coupez des fils mâles et femelles en deux et soudez les fils femelles et mâles ensemble pour faire un seul câble que nous pouvons utiliser pour connecter le capteur à l'arduino.8.3.3: Connectez le capteur à l'arduino
Étape 8.4: Lasers et caméra8.4.1: Collez le petit cadre sur la caméra. Assurez-vous qu'il est droit.8.4.2: Placez également les lasers dans le cadre. Collez-les pour que l'ennemi ne les vole pas !
Étape 8.5: Les servos et l'impression 3D8.5.1: Collez le servo dans le trou du couvercle8.5.2: Téléchargez le fichier arduino sur l'arduino (cela fait que les servos se tiennent dans la bonne position) petit plateau rond. Placez-le sur le servo dans le couvercle.8.5.4: Placez la grande impression 3D sur le servo et le plateau et vissez-les fermement avec une vis. 8.5.5: Placez le deuxième servo sur la petite impression 3D et collez-les ensemble. 8.5.6: Mettez la caméra en place et tout est prêt à partir !
Étape 9: Démarrer le programme
Pour démarrer le robot, ouvrez le fichier C++ dans Visual studio. Assurez-vous que vous êtes en "mode débogage"Téléchargez le fichier arduino sur l'arduino. Une fois que cela est téléchargé, appuyez sur play dans Visual Studio. Et le robot tirera et ramassera toutes les pièces du monde !!!
Conseillé:
Fauteuil roulant contrôlé par joystick avec suivi d'obstacles : 3 étapes (avec photos)
Fauteuil roulant contrôlé par joystick assisté par un traqueur d'obstacles : afin de permettre aux personnes handicapées de conduire en toute sécurité, un capteur à ultrasons est utilisé pour suivre les obstacles présents sur le chemin. Sur la base du mouvement du joystick, les moteurs entraîneront le fauteuil roulant dans quatre directions et vitesses sur chaque di
Kits de voiture de suivi de robot intelligent bricolage Suivi de voiture photosensible: 7 étapes
DIY Smart Robot Tracking Car Kits Tracking Car Photosensible: Design by SINONING ROBOTVous pouvez acheter à partir de la puce de suivi du robot carTheoryLM393 comparer les deux photorésistances, lorsqu'il y a une LED de photorésistance latérale sur BLANC le côté du moteur s'arrêtera immédiatement, l'autre côté du moteur tourner, de sorte que
Suivi du visage et détection des sourires des robots d'Halloween : 8 étapes (avec photos)
Suivi du visage et détection des sourires des robots d'Halloween : Halloween approche ! Nous avons décidé de construire quelque chose de cool. Rencontrez les robots Ghosty et Skully. Ils peuvent suivre votre visage et ils savent quand vous souriez pour rire avec vous ! Ce projet est un autre exemple d'utilisation de l'application iRobbie qui convertit l'iPhone en
Pistolet de suivi du visage : 4 étapes
Pistolet de suivi de visage : Ce projet est une extension du projet de pistolet à fil laser montré ici - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ?ALLSTEPS La seule différence est que le pistolet ne sera pas déclenché par laser mais par
Fauteuil roulant contrôlé par vision par ordinateur avec mannequin : 6 étapes (avec photos)
Fauteuil roulant contrôlé par vision par ordinateur avec mannequin : projet de AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC.Instructable par AJ Sapala, Fanyun Peng, Ray LC.Nous avons créé un fauteuil roulant avec des roues contrôlées par une carte Arduino, qui est à son tour contrôlée par un raspberry pi exécutant openCV via Processing