Table des matières:

Construisez une tête de robot parlante alimentée par Arduino ! : 26 étapes (avec photos)
Construisez une tête de robot parlante alimentée par Arduino ! : 26 étapes (avec photos)

Vidéo: Construisez une tête de robot parlante alimentée par Arduino ! : 26 étapes (avec photos)

Vidéo: Construisez une tête de robot parlante alimentée par Arduino ! : 26 étapes (avec photos)
Vidéo: High Density 2022 2024, Juillet
Anonim
Construisez une tête de robot parlante alimentée par Arduino !
Construisez une tête de robot parlante alimentée par Arduino !

Cette tête de robot a été conçue à l'origine comme un projet de fin d'année pour mon cours d'informatique physique, mais au cours de l'été, elle a « appris » à parler. La tête est alimentée par deux Freeduinos, 3 puces TLC5940NT et un Adafruit Industries Wave Shield trouvé ici: www.ladyada.net/make/waveshield/. La tête est actuellement connectée à un ordinateur par deux câbles USB, un pour l'alimentation, un pour lui envoyer des commandes série sur ce qu'il faut dire/émoter. Une fois que la tête reçoit les commandes tapées sur ce qu'il faut dire/émoter, elle lit les fichiers de mots individuels afin de créer une phrase ou plusieurs phrases. Il modifie également ses émotions en fonction des commandes émotionnelles envoyées par l'ordinateur. Cette tête de robot est une base pour de nombreuses applications possibles car elle peut dire tout ce dont elle a le vocabulaire. En ce moment, je travaille actuellement à le connecter à Internet et à le faire vérifier et lire mes e-mails via un script PHP. Je mettrai à jour ce Instructable au fur et à mesure que je progresse avec cela. Voici une vidéo de celui-ci en action: La tête est toujours un projet en cours, donc tous les commentaires sur quoi que ce soit ici sont plus que bienvenus ! Un merci spécial à Liz Arum pour m'avoir aidé avec tout ! Mise à jour: En raison d'une demande populaire, j'ai maintenant ajouté une vidéo du robot parlant et s'exprimant ! Profitez à votre guise!

Étape 1: compiler tous les matériaux/pièces/électronique

Cette tête de robot utilise:1 Breadboard (elle doit faire plus de 48 rangées de long avec un espace au centre de la carte pour connecter les puces IC. Un bus d'alimentation et de terre longeant le côté de la breadboard est également une nécessité.) 2 Leds RVB (Pour les yeux multicolores) Anode commune. 1,50 $ à 1,95 $ chacun. 2 X 1,75 $ = 3,5036 $ Leds rouges (pour la bouche) quelque part autour de la fourchette de prix de 40 à 50 centimes pour chacune. 36 X 0,45 $ = 16,202 $ HXT900 Micro Servos (pour déplacer les sourcils) Peut être trouvé à: https://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=662 2 X 3,65 $ = 7,303 $ TLC5940NT (à conduire/allumer toutes les LED et contrôler les servos) peuvent être trouvés sur Digi-key https://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-17732-5-ND où ils sont tarifés à 4,28 $. 3 X 4,28 $ = 12,84 $ ou Mouser https://www.mouser.com/ProductDetail/Texas-Instruments/TLC5940NT/?qs=sGAEpiMZZMu8%252bGBKj8XSFEjwsgnt5grMZ49G/W4nR14%3d3 Condensateurs (~1000uf) (pour le repassage de la ligne servos) Récupéré d'une vieille alimentation d'ordinateur. Free2 Original Freeduinos ou Arduinos. Les Freeduinos peuvent être achetés sur https://www.freeduino.org/buy.html Ils sont au prix de 23,99 chacun. 2 X 23,99 $ = 47,98 $ Ou www.sparkfun.com/commerce/product_info.php pour Arduinos. Au prix de 29,95 $ chacun. 2 X 29,95$ = 59,90$. Attention: Les Freeduinos nécessitent des connaissances en soudure, si vous ne souhaitez pas souder vos cartes alors achetez un Arduino. Attention: ce Instructable nécessite de toute façon des connaissances en soudure, alors pourquoi ne pas commencer maintenant ?:) 1 Waveshield d'Adafruit Industries (pour permettre au robot de parler) Peut être acheté sur: https://www.ladyada.net/make/waveshield/ Au prix de 22 $ chacun. Coût total estimé de toutes les pièces de haute technologie (non compris expédition) si vous avez acheté Freeduinos au lieu d'Arduinos est…. 109,82 $ ! Le coût total de toutes les pièces de haute technologie si vous avez acheté des Arduinos au lieu de Freeduinos est de…. 121,74 $ ! Et en ce qui concerne les matériaux low-tech dont vous aurez besoin: Une boîte en carton de la même taille que vous voulez que votre tête soit. de boisPerceuse électrique. Tube thermorétractable pour isoler les fils exposés et quelque chose qui souffle de l'air chaud pour le rétrécir avec (pistolet à air chaud)Coupe-boîte.

Étape 2: Assembler et souder tous les circuits imprimés et les blindages

Assemblez et soudez tous les circuits imprimés et les blindages
Assemblez et soudez tous les circuits imprimés et les blindages

Soudez les Freeduinos (comme je l'ai fait), ou ignorez cette ligne si vous avez acheté un Arduino. Voici le lien vers leurs instructions de montage pour toutes les personnes qui ont acheté Freeduinos:mcukits.com/2009/03/12/assembling-the-freeduino-board-kit/Solder the Waveshields. Lady Ada a un très bon guide sur la façon de procéder sur son site Web à l'adresse https://www.ladyada.net/make/waveshield/solder.htmlRemarque: en plus de souder le Waveshield comme indiqué. Ajoutez un long fil soudé sur la résistance R7 du côté le plus proche de la puce de l'amplificateur. Celui-ci sera connecté à l'entrée analogique 1 du Freeduino qui contrôle les LED de la tête du robot. (Ne vous inquiétez pas de l'endroit où brancher l'autre extrémité du fil pour le moment, cela sera expliqué en détail plus tard.) Voir l'image pour des éclaircissements sur l'endroit où souder le fil.

Étape 3: Concevez la tête du robot

Concevez la tête de robot
Concevez la tête de robot

Prenez la boîte en carton que vous avez choisie pour votre tête et marquez les endroits que vous aimeriez découper pour les yeux et la bouche en découpant des morceaux de papier et en les posant sur votre boîte. Lorsque vous êtes satisfait de l'arrangement, vous pouvez passer à la coupe.

Étape 4: Concevez votre tête de robot: découpez les yeux

Concevez votre tête de robot: coupez les yeux
Concevez votre tête de robot: coupez les yeux

Collez ou marquez les pièces à leur position finale sur la boîte et découpez-les. (Gardez le morceau de papier que vous avez utilisé pour représenter la bouche, vous en aurez besoin plus tard.)

Étape 5: Concevez votre tête de robot: Création d'une matrice LED pour la bouche

Concevez votre tête de robot: fabrication d'une matrice LED pour la bouche
Concevez votre tête de robot: fabrication d'une matrice LED pour la bouche
Concevez votre tête de robot: fabrication d'une matrice LED pour la bouche
Concevez votre tête de robot: fabrication d'une matrice LED pour la bouche
Concevez votre tête de robot: fabrication d'une matrice LED pour la bouche
Concevez votre tête de robot: fabrication d'une matrice LED pour la bouche

Chaque LED dans la bouche s'allumera indépendamment. Pour ce faire, vous devez créer une matrice de LED pour la bouche. (Pour une idée de ce qu'est une matrice LED, voir photo 1) Prenez le morceau de papier qui est censé être la bouche et, avec un crayon et une règle, Divisez le morceau de papier en 36 parties (9 X 4), Une pour chaque LED de la grille. Après avoir fait cela, collez le morceau de papier sur un morceau de bois et faites attention à ne pas percer le sol (Cela m'est arrivé donc je recommande de percer au-dessus d'une boîte en carton.) Percez des trous où les lignes se croisent avec un foret de 1/4 pouce, de sorte que vos LED s'adaptent parfaitement. La taille du foret dépend évidemment de la taille de vos LED, utilisez donc un foret plus petit pour les petites LED. (Commencez petit et progressez !) Regardez les images 2 et 3 pour des éclaircissements sur le perçage/marquage.

Étape 6: Fabrication de la matrice de LED de bouche: Soudage des LED

Fabrication de la matrice LED de la bouche: Soudage des LED
Fabrication de la matrice LED de la bouche: Soudage des LED
Fabrication de la matrice LED de la bouche: Soudage des LED
Fabrication de la matrice LED de la bouche: Soudage des LED
Fabrication de la matrice LED de la bouche: Soudage des LED
Fabrication de la matrice LED de la bouche: Soudage des LED

Avant de faire quoi que ce soit d'autre, vérifiez que toutes vos LED ne sont pas grillées ou tamisées. Vous pouvez le faire en trouvant une petite pile bouton 3V et en maintenant les pattes des LED sur la batterie (rappelez-vous que la longue patte est positive, la courte négative). Ensuite, insérez les LED une rangée à la fois dans votre gabarit de grille percé. Pliez les longues pattes de façon à ce qu'elles soient parallèles les unes aux autres et soudez-les, rangée par rangée (Voir photos 2 & 3). Soudez ensemble les longues jambes car vous utiliserez des TLC pour contrôler ces LED, et les TLC sont des puits de puissance. Cela signifie qu'ils contrôlent les LED en modifiant le différentiel de tension entre l'alimentation et la terre.

Étape 7: fabrication de la matrice de LED de bouche: soudure des fils de commande sur les LED

Fabrication de la matrice LED de la bouche: soudure des fils de commande sur les LED
Fabrication de la matrice LED de la bouche: soudure des fils de commande sur les LED
Fabrication de la matrice LED de la bouche: soudure des fils de commande sur les LED
Fabrication de la matrice LED de la bouche: soudure des fils de commande sur les LED
Fabrication de la matrice LED de la bouche: soudure des fils de commande sur les LED
Fabrication de la matrice LED de la bouche: soudure des fils de commande sur les LED

Soudez de longs fils pouvant s'insérer dans une planche à pain (calibre 22) sur tous les fils de cathode à LED. Ces fils contrôleront les LED. Ensuite, assurez-vous d'isoler tous les fils individuels avec du ruban électrique (pas amusant) ou un tube thermorétractable (recommandé). En plus de souder les fils sur tous les fils cathodiques des LED, soudez 2 ou 3 fils sur la partie anode de la grille (La partie qui est toute soudée ensemble). Ces fils serviront de sources d'alimentation distribuant l'électricité dans tout le réseau. Ils seront connectés au 5V.

Étape 8: installez les servos de déplacement des sourcils à l'intérieur de la tête du robot

Installez les servos de déplacement des sourcils à l'intérieur de la tête du robot
Installez les servos de déplacement des sourcils à l'intérieur de la tête du robot
Installez les servos de déplacement des sourcils à l'intérieur de la tête du robot
Installez les servos de déplacement des sourcils à l'intérieur de la tête du robot
Installez les servos de déplacement des sourcils à l'intérieur de la tête du robot
Installez les servos de déplacement des sourcils à l'intérieur de la tête du robot

Avant d'installer vos mini-servos à l'intérieur de votre tête de robot, collez à chaud un long fil solide (mais toujours pliable) sur le bras du servo. Ce fil remontera à l'intérieur de votre robot, sortira du haut et redescendra pour déplacer les sourcils. (Voir les photos pour plus de précisions.) Prenez vos mini-servos (avec les fils attachés) et collez-les à chaud à l'intérieur de la tête de votre robot, juste sous les yeux, en vous assurant que les fils peuvent se déplacer d'un côté à l'autre.

Étape 9: Installez la grille à l'intérieur de la tête du robot

Installez la grille à l'intérieur de la tête du robot
Installez la grille à l'intérieur de la tête du robot
Installez la grille à l'intérieur de la tête du robot
Installez la grille à l'intérieur de la tête du robot

Collez à chaud la grille sur un morceau de carton dans lequel vous avez percé des trous et collez-le à chaud à l'intérieur de la tête du robot.

Étape 10: Soudez les LED RVB

Soudez les LED RVB
Soudez les LED RVB

Soudez le fil LED RVB de l'anode commune à un long fil. Soudez ensuite un fil de couleur (rouge, vert, bleu) au fil LED RVB qui lui correspond (La couleur d'un fil individuel peut être trouvée en utilisant une pile bouton 3V pour allumer chaque fil LED à tour de rôle). N'oubliez pas d'isoler les fils !

Étape 11: Installez les LED RVB à l'intérieur de la tête du robot

Installez les LED RVB à l'intérieur de la tête du robot
Installez les LED RVB à l'intérieur de la tête du robot
Installez les LED RVB à l'intérieur de la tête du robot
Installez les LED RVB à l'intérieur de la tête du robot

Installez les LED à l'intérieur de la tête du robot en les plaçant où vous le souhaitez, puis en pliant et en scotchant les fils à l'intérieur de la boîte. Mettre une paille sous la LED permet également de la maintenir en place. (Voir les photos pour plus de précisions)

Étape 12: Terminez la fabrication des yeux

Terminez de faire les yeux
Terminez de faire les yeux
Terminez de faire les yeux
Terminez de faire les yeux

Collez un morceau de papier carré légèrement plus grand que le trou que vous avez découpé. Collez-le sur le trou pour couvrir le trou et la LED derrière. Vous pouvez également coller des feuilles de papier absorbant à l'intérieur des trous pour les yeux pour diffuser la lumière provenant des LED.

Étape 13: câblez les puces TLC5940NT

Câblez les puces TLC5940NT
Câblez les puces TLC5940NT
Câblez les puces TLC5940NT
Câblez les puces TLC5940NT
Câblez les puces TLC5940NT
Câblez les puces TLC5940NT

Dans cette étape, vous devrez connecter en guirlande 3 TLC5940NT ensemble pour piloter un total de 42 sorties LED (36 pour la bouche, 6 pour les yeux multicolores). chaînez 3 TLC5940NT ensemble. Le voici sous forme compressée: broche Arduino 13 -> SCLK (broche TLC 25) broche Arduino 11 -> SIN (broche TLC 26) broche Arduino 10 -> vierge (broche TLC 23) broche Arduino 9 -> XLAT (broche TLC 24) Broche Arduino 3 -> GSCLK (Broche TLC 18) --------------U------------LED Out 1 | 1 28 | Sortie LED 0 Sortie LED 2 | 2 27 | GNDLED Sortie 3 | 3 26 | SIN (Ard broche 11.) LED Out 4 | 4 25 | SCLK (Ard broche 13)… | 5 24 | XLAT (Ard broche 9)… | 6 23 | BLANK (Ard broche 10)… | 7 22 | TERRE… | 8 21 | VCC (5V)… | 9 20 | Résistance 2K à la terre… | 10 19 | 5V… | 11 18 | GSCLK (Ard broche 3)… | 12 17 | SOUT (Connecté au SIN du prochain TLC dans la Daisychain)… | 13 16 | XERR Sortie 14 | 14 15 | LED Out 15 -----------------------------Remarque: nous chaînons 3 TLC afin que le SIN du premier TLC soit connecté à Arduino broche 11. Les autres TLC ont leur SIN connecté au SOUT du TLC qui le précède. Tous les BLANK sont connectés les uns aux autres (BLANK de TLC1 est connecté à BLANK de TLC2 etc…) Les SCLK sont connectés. Tous les GSCLK sont connectés. Tous les XERR sont connectés. Branchez également 2 ou 3 condensateurs électrolytiques à la terre et à l'alimentation de la planche à pain (négatif sur le condensateur allant à la terre, positif à 5V). La quantité de charge qu'il contient n'est pas si importante, mais elle doit être évaluée à 5 V ou plus. Ces condensateurs agiront comme un filtre, filtrant toutes les imperfections (bruit) de l'alimentation en tension que produisent les TLC. Ceci est important car le Waveshield que nous utiliserons partage la même masse que les TLC et n'aime VRAIMENT pas le bruit électrique (il fait un bruit de cliquetis étrange).

Étape 14: câblez les LED aux TLC

Câblez les LED aux TLC
Câblez les LED aux TLC
Câblez les LED aux TLC
Câblez les LED aux TLC

Connectez toutes les LED aux TLC, rangée par rangée, en commençant par celle dans le coin supérieur gauche et en passant à la LED directement à droite. Voici une grille de toutes les sorties de broches LED TLC incluses pour votre commodité. Voir les images pour plus de clarté. Bouche: 0 1 2 3 4 5 6 7 89 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 C'est aussi le bon moment pour brancher vos yeux LED RVB aux TLC alors voici les broches… Yeux LED RVB: Gauche: RVB Droite: RVB 36 40 38 37 41 39N'oubliez pas pour brancher les fils d'alimentation universels pour la grille et les LED RVB en 5V !

Étape 15: câblez les servos aux TLC

Câblez les servos aux TLC
Câblez les servos aux TLC

Connectez l'alimentation et la terre des servos à l'alimentation et à la terre de votre maquette. Connectez le fil de commande du servo gauche (votre gauche face au robot.) à la broche 43 (n'oubliez pas de commencer à zéro.) et le servo droit à la broche 44. Vous devrez connecter une résistance de 3,3 k ohms à partir de ces deux broches. à 5 V car les TLC sont des puits de puissance et nécessitent de l'alimentation pour couler.

Étape 16: Vous entrez maintenant dans le pays du logiciel et du code ! (principalement)

S'il vous plaît pas d'intrusion…

Étape 17: Téléchargez la bibliothèque TLC

La dernière bibliothèque TLC pour l'Arduino se trouve sur leur page de code Google à l'adresse: code.google.com/p/tlc5940arduino/. Téléchargez la dernière bibliothèque et insérez le dossier décompressé "Tlc5940" dans [dernière version du dossier Arduino]/hardware/ bibliothèques/

Étape 18: Testez les TLC

Chargez mon croquis de test d'expression en série que vous pouvez télécharger ci-dessous. Chargez-le dans le Freeduino et tapez quelques commandes dans le moniteur série pour vérifier que tout fonctionne. Voici la liste des commandes:

Étape 19: Téléchargez la bibliothèque Waveshield améliorée et de grande capacité (un peu)

Téléchargez le nouveau waveshield Adafruit amélioré à partir du code Google (merci M. Fat16 pour la création de cette bibliothèque améliorée): code.google.com/p/wavehc/ Collez à nouveau le dossier décompressé dans le dossier hardware/libraries/.

Étape 20: Formatez et chargez vos cartes SD

Insérez vos cartes SD dans votre ordinateur et formatez-les en utilisant le type de fichier FAT ou FAT16. PAS FAT32 ! Ensuite, chargez vos cartes SD avec des fichiers vocaux à partir de l'excellent site de synthèse vocale d'AT&T www.research.att.com/~ttsweb/tts/demo.php#top Renommez les fichiers le nom du mot qu'il prononce dans le fichier et tronquez ce nom de fichier à quelque chose qui contient 6 lettres ou moins. (Le waveshield ne peut gérer que les fichiers dont les noms de fichiers sont de 6 caractères ou moins.) Ex. Si vous téléchargez le fichier pour "Instructables.com" -> nommez-le instrc.wavIf bonjour -> bonjour.wav

Étape 21: Testez votre Waveshield

Téléchargez et exécutez mon croquis de test série Waveshield. Vous devriez pouvoir via le terminal série, taper une phrase et faire jouer le Waveshield (tant qu'il a les fichiers.wav dont il a besoin). Il prendra le premier mot, ajoutera le ".wav" et le jouera avant de passer au second. Ex.vous tapez: Bonjour mon nom est Bob Il jouera:hello.wavmy.wavname.wavis.wavbob.wav Note: Testez le Waveshield sur l'autre Freeduino (celui qui n'est pas connecté aux TLC) car le Waveshield et les TLC utilisent les broches 13, 12, 11 et 10 (sur le Freeduino). En effet, ces broches prennent en charge matériellement une interface appelée Serial Peripheral Interface (SPI) requise à la fois par les TLC et le Waveshield. Ces broches ne peuvent pas être partagées entre elles, nous devrons donc lier deux Freeduinos ensemble à l'aide de l'interface I2C afin qu'ils puissent passer des informations entre eux. Plus d'informations à ce sujet à l'étape 22.

Étape 22: câblez l'interface I2C entre les deux Freeduinos

Câblez l'interface I2C entre les deux Freeduinos
Câblez l'interface I2C entre les deux Freeduinos

Attendez… Pourquoi avons-nous besoin de câbler une interface I2C entre deux Freeduinos ? Pourquoi ne pouvons-nous pas simplement brancher le Waveshield et les TLC dans un seul Freeduino ? Voici pourquoi: le Waveshield et les TLC utilisent les broches 13, 12, 11 et 10 sur le Freeduino. La raison en est que ces broches prennent en charge matériellement une interface appelée Serial Peripheral Interface (SPI) que les TLC et le Waveshield nécessitent et ne peuvent pas partager. Cela signifie que nous devrons lier deux Freeduinos ensemble à l'aide d'une sorte de connexion de données afin qu'ils fonctionnent tous les deux en tandem. Serial n'était pas une option car mon ordinateur l'utilisait déjà pour communiquer avec le Waveshield Freeduino, donc après quelques recherches intenses sur Google, j'ai trouvé une méthode de communication remarquablement pratique et simple. I2C ! Voici comment câbler l'interface: Connectez la broche d'entrée analogique 4 sur les deux Freeduinos (il s'agit de la ligne de données SDA ou série.) Connectez la broche d'entrée analogique 5 sur les deux Freeduinos (il s'agit de la ligne d'horloge SCL ou série). sur les deux Freeduinos (sinon l'interface I2C ne fonctionnera pas.) Connectez le fil que vous avez soudé au début de cet Instructable de la résistance R7 sur le Waveshield à la broche d'entrée analogique 1 sur le TLC contrôlant Freeduino (Ce fil sert à vérifier le volume de les mots prononcés par le Waveshield et ne font pas partie de l'interface I2C). (Voir photo pour clarification)

Étape 23: Activez I2C sur le TLC Controlling Freeduino

Activez I2C sur le Freeduino que vous avez utilisé pour contrôler les TLC en téléchargeant ce croquis. Il recevra des informations sur les expressions du Waveshield et vérifiera également le volume de la sortie vocale sur le Waveshield Freeduino et déplacera la bouche pour simuler la parole en fonction du volume du mot prononcé. Définition I2C: I2C est également connu sous le nom de TWI (Interface à deux fils) c'est un moyen simple de connecter plusieurs appareils ensemble (jusqu'à 128 !) Le robot clignotera maintenant à des intervalles de 2 à 11 secondes, tout comme un humain.

Étape 24: Testez l'interface I2C

Téléchargez ce croquis et chargez-le sur le Waveshield Freeduino, il envoie les mots « behappy; » et puis « besad; » via l'interface I2C vers le TLC contrôlant Freeduino à deux secondes d'intervalle, ce qui, espérons-le, fait passer le robot de joyeux à triste à deux secondes d'intervalle.

Étape 25: Votre presque terminé ! Juste du code à charger…

Chargez la version finale du code Waveshield Freeduino. Il doit prendre tous les mots que vous saisissez dans le moniteur série et les prononcer (tant qu'il dispose des fichiers.wav pour le faire) et doit transmettre des commandes d'expression telles que « behappy; » et « besad; » sur le Freeduino contrôlant les TLC via l'interface I2C. Remarque: La liste des commandes est la même pour le code de test TLC précédent (voir l'étape 17), sauf que vous devez ajouter un point-virgule à chaque commande d'expression. EX. Si vous voulez que le robot soit triste et dise "Je me sens triste", alors tapez:besad; Je me sens triste. Mise à jour: le Waveshield Sketch utilise désormais correctement la ponctuation (c'est-à-dire les points et les virgules, mais pas les points d'exclamation).

Étape 26: Montez le tout sur la boîte de tête de robot et vous avez terminé

Montez tout sur la boîte de tête de robot et vous avez terminé !
Montez tout sur la boîte de tête de robot et vous avez terminé !
Montez tout sur la boîte de tête de robot et vous avez terminé !
Montez tout sur la boîte de tête de robot et vous avez terminé !

Montez tous les Freeduinos à l'arrière de la boîte avec des fils. Fermez le rabat supérieur de la boîte avec des fils et le tour est joué ! Maintenant, si seulement il pouvait vérifier mes e-mails. Hmmmm……. Merci d'avoir lu ce Instructable ! Les commentaires sont toujours les bienvenus sur n'importe quoi!

Deuxième prix au concours Arduino

Conseillé: