Taula de continguts:

Construeix un cap de robot parlant alimentat per Arduino: 26 passos (amb imatges)
Construeix un cap de robot parlant alimentat per Arduino: 26 passos (amb imatges)

Vídeo: Construeix un cap de robot parlant alimentat per Arduino: 26 passos (amb imatges)

Vídeo: Construeix un cap de robot parlant alimentat per Arduino: 26 passos (amb imatges)
Vídeo: Leap Motion SDK 2024, De novembre
Anonim
Construeix un cap de robot parlant alimentat per Arduino
Construeix un cap de robot parlant alimentat per Arduino

Aquest cap de robot es va construir originalment com a projecte de final d'any per a la meva classe d'informàtica física, però durant l'estiu ha "après" a parlar. El cap està alimentat per dos Freeduinos, 3 xips TLC5940NT i un Adafruit Industries Wave Shield que es troba aquí: www.ladyada.net/make/waveshield/. Actualment, el cap està connectat a un ordinador mitjançant dos cables USB, un per alimentar-lo i un per enviar-li ordres en sèrie sobre què dir / emote. Una vegada que el cap rep les ordres escrites sobre què s'ha de dir / emoteu, reprodueix els fitxers de paraules individuals per tal de crear una frase o diverses frases. També canvia les seves emocions segons les ordres emocionals que s’envien des de l’ordinador. Aquest cap de robot és la base per a moltes possibles aplicacions, ja que pot dir qualsevol cosa que tingui el vocabulari. Ara mateix estic treballant en connectar-lo a Internet i fer que comprovi i llegeixi el meu correu electrònic mitjançant script PHP. Actualitzaré aquest instructiu a mesura que avanci junt amb això. Aquí teniu un vídeo en acció: el cap encara és un projecte en curs, de manera que qualsevol comentari sobre qualsevol cosa aquí és més que benvingut. Gràcies especials a Liz Arum per ajudar-me amb tot. Actualització: a causa de la petició popular que ara he afegit un vídeo del robot parlant i expressant-se! Gaudeix al teu temps!

Pas 1: Compileu tots els materials / peces / electrònica

Aquest capçal del robot utilitza: 1 tauleta de pa (ha de tenir més de 48 files de llarg amb un buit que recorre el centre de la placa per connectar xips IC. També és necessari un bus d’alimentació i de terra que recorri el costat de la tauleta). 2 làmpades RGB (per als ulls multicolors) Ànode comú. 1,50 $ - 1,95 $ cadascun. 2 X 1,75 $ = 3,50 $ 36 Leds vermells (per a la boca) al voltant del rang de preus de 40-50 cèntims per a cadascun. 36 X $.45 = 16.202 $ Micro Servos HXT900 (per moure les celles) Es pot trobar a: https://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=662 2 X 3,65 $ = 7,303 $ TLC5940NT's (A condueix / il·lumina tots els leds i controla els servos) es pot trobar a Digi-key https://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-17732-5-ND on tenen un preu a 4,28 dòlars. 3 X 4,28 dòlars = 12,84 dòlars o Mouser https://www.mouser.com/ProductDetail/Texas-Instruments/TLC5940NT/?qs=sGAEpiMZZMu8%252bGBKj8XSFEjwsgnt5grMZ49G/W4nR14%3d3 Capacitors (L) servos) S'ha recuperat d'una font d'alimentació d'ordinador antiga. Free2 Original Freeduinos o Arduinos. Els Freeduinos es poden comprar a https://www.freeduino.org/buy.html Tenen un preu de 23,99 cadascun. 2 X 23,99 $ = 47,98 $ O www.sparkfun.com/commerce/product_info.php per a Arduinos. Amb un preu de 29,95 dòlars cadascun. 2 X 29,95 dòlars = 59,90 dòlars. Advertència: els Freeduinos necessiten un cert coneixement de soldadura, si voleu no soldar els vostres taulers, compreu un Arduino. Advertència: aquest instructable requereix coneixements de soldadura de totes maneres, per què no començar ara?:) Waveshield d'Adafruit Industries (Per permetre que el robot parli) Es pot comprar a: https://www.ladyada.net/make/waveshield/ Amb un preu de 22 dòlars cadascun. Cost total estimat de totes les peces d'alta tecnologia (sense incloure enviament) si heu comprat Freeduinos en lloc d'Arduinos és … El cost total de totes les peces d'alta tecnologia si heu comprat Arduinos en lloc de Freeduinos és de … 121,74 dòlars! I pel que fa als materials de baixa tecnologia que necessitareu: una caixa de cartró de la mateixa mida que voleu que sigui el vostre cap. de perforació de fusta. Tubs termorretractors per aïllar els cables exposats i quelcom que bufa aire calent per reduir-lo amb un tallador de caixa (pistola d’aire calent).

Pas 2: Muntar i soldar tots els circuits i blindatges

Muntar i soldar tots els circuits i blindatges
Muntar i soldar tots els circuits i blindatges

Soldeu els Freeduinos (com ho vaig fer jo), o bé feu cas omís d’aquesta línia si heu comprat un Arduino. Aquí teniu l’enllaç a les instruccions de muntatge de totes les persones que van comprar Freeduinos: mcukits.com/2009/03/12/assembling-the-freeduino-board-kit/Solder the Waveshields. Lady Ada té una molt bona guia sobre com fer-ho al seu lloc web a https://www.ladyada.net/make/waveshield/solder.html Nota: A més de soldar junts el Waveshield, tal com es descriu. Afegiu un cable llarg soldat a la resistència R7 del costat més proper al xip amplificador. Això es connectarà a l'entrada analògica 1 del Freeduino que controla els LED del capçal del robot. (No us preocupeu per on endollar l'altre extrem del cable per ara, això s'explicarà amb detall més endavant.) Consulteu la imatge per aclarir on soldar el cable.

Pas 3: Dissenyeu el cap del robot

Dissenya el cap del robot
Dissenya el cap del robot

Agafeu la capsa de cartró que heu escollit com a cap i marqueu els llocs que us agradaria retallar per als ulls i la boca tallant trossos de paper i posant-los a la part superior de la capsa. Quan esteu satisfets amb l’arranjament, podeu passar a tallar coses.

Pas 4: Dissenyeu el cap del robot: tallant els ulls

Dissenya el teu cap de robot: tallant els ulls
Dissenya el teu cap de robot: tallant els ulls

Enganxeu o marqueu les peces a les seves posicions finals a la caixa i retalleu-les. (Conserveu el tros de paper que feia servir per representar la boca, més endavant el necessitareu.)

Pas 5: Dissenyeu el cap del robot: fer una matriu LED per a la boca

Dissenya el teu cap de robot: fer una matriu LED per a la boca
Dissenya el teu cap de robot: fer una matriu LED per a la boca
Dissenya el teu cap de robot: fer una matriu LED per a la boca
Dissenya el teu cap de robot: fer una matriu LED per a la boca
Dissenya el teu cap de robot: fer una matriu LED per a la boca
Dissenya el teu cap de robot: fer una matriu LED per a la boca

Cada LED de la boca s’encendrà de forma independent. Per fer-ho, heu de crear una matriu LED per a la boca. (Per obtenir una idea sobre què és una matriu LED, vegeu la imatge 1) Agafeu el tros de paper que se suposa que és la boca i, amb un llapis i un regle, dividiu el tros de paper en 36 parts (9 X 4), Un per cada LED de la xarxa. Després d’haver-ho fet, enganxeu el tros de paper amb un tros de fusta i tingueu cura de no perforar el terra (això m’ha passat, així que us recomano perforar a sobre d’una caixa de cartró.) Feu forats on les línies es creuen amb una broca de 1/4 de polzada, de manera que els LED s’adaptin perfectament. La mida de la broca depèn òbviament de la mida dels vostres LED, així que utilitzeu una broca més petita per als LED més petits. (Comenceu petit i passeu amunt!) Mireu les imatges 2 i 3 per obtenir aclariments sobre la perforació / marcatge.

Pas 6: Fer la matriu LED de la boca: soldar els LED

Fer la matriu LED de la boca: soldar els LED
Fer la matriu LED de la boca: soldar els LED
Fer la matriu LED de la boca: soldar els LED
Fer la matriu LED de la boca: soldar els LED
Fer la matriu LED de la boca: soldar els LED
Fer la matriu LED de la boca: soldar els LED

Abans de fer qualsevol altra cosa, comproveu que tots els vostres LED no estiguin cremats ni tenyits. Podeu fer-ho trobant una petita bateria de botó de 3V i subjectant les potes dels LED a la bateria (recordeu que la cama llarga és positiva, la curta negativa). A continuació, introduïu els LED d'una fila a la vegada a la plantilla de la xarxa perforada. Doblegueu les potes llargues de manera que siguin paral·leles entre elles i soldeu-les, fila per fila (vegeu les imatges 2 i 3). Soldeu les potes llargues juntes, ja que faràs servir TLC per controlar aquests LED, i els TLC són dissipadors d’alimentació. Això significa que controlen els LED alterant el diferencial de tensió entre la potència i la terra.

Pas 7: Creació de la matriu LED de boca: cables de control de soldadura als LED

Fabricació de la matriu LED de boca: cables de control de soldadura als LED
Fabricació de la matriu LED de boca: cables de control de soldadura als LED
Fabricació de la matriu LED de boca: cables de control de soldadura als LED
Fabricació de la matriu LED de boca: cables de control de soldadura als LED
Fabricació de la matriu LED de boca: cables de control de soldadura als LED
Fabricació de la matriu LED de boca: cables de control de soldadura als LED

Soldeu cables llargs que puguin encabir-se en una placa de tall (calibre 22) a tots els cables del càtode LED. Aquests cables controlaran els LED. A continuació, assegureu-vos d’aïllar tots els cables individuals amb cinta elèctrica (no és divertit) o tubs termorretractables (recomanat). A més de soldar cables a tots els cables del càtode dels LED, soldeu 2 o 3 cables a la part de l’ànode de la xarxa (La peça que està soldada conjuntament). Aquests cables serviran d’alimentació per distribuir l’energia a tota la xarxa. Es connectaran a 5V.

Pas 8: instal·leu els servos que mouen les celles a l'interior del capçal del robot

Instal·leu els servos que mouen les celles a l'interior del capçal del robot
Instal·leu els servos que mouen les celles a l'interior del capçal del robot
Instal·leu els servos que mouen les celles a l'interior del capçal del robot
Instal·leu els servos que mouen les celles a l'interior del capçal del robot
Instal·leu els servos que mouen les celles a l'interior del capçal del robot
Instal·leu els servos que mouen les celles a l'interior del capçal del robot

Abans d’instal·lar els mini-servos a l’interior del cap del robot, enganxeu en calent un cable llarg i fort (però que es pugui doblegar) al braç del servo. Aquest cable pujarà per l'interior del robot, sortirà de la part superior i es desplaçarà cap avall per moure les celles. (Vegeu les imatges per obtenir més aclariments). Agafeu els mini-servos (amb els cables connectats) i enganxeu-los a l'interior del cap del robot, just a sota dels ulls, assegurant-vos que els cables es puguin moure d'un costat a un altre.

Pas 9: instal·leu la quadrícula a l'interior del capçal del robot

Instal·leu la quadrícula a l'interior del capçal del robot
Instal·leu la quadrícula a l'interior del capçal del robot
Instal·leu la quadrícula a l'interior del capçal del robot
Instal·leu la quadrícula a l'interior del capçal del robot

Enganxeu en calent la graella a un tros de cartró que heu perforat i enganxeu-la a l'interior del capçal del robot.

Pas 10: soldeu els LED RGB

Soldeu els LED RGB
Soldeu els LED RGB

Soldeu l’ànode comú RGB LED que condueix a un cable llarg. A continuació, soldeu un cable de color (vermell, verd, blau) al cable LED RGB que li correspongui (es pot esbrinar el color d’un cable individual mitjançant l’ús d’una bateria de botó de 3 V per il·luminar cada cable LED al seu torn). No oblideu aïllar els cables!

Pas 11: Instal·leu els LED RGB a l'interior del capçal del robot

Instal·leu els LED RGB a l'interior del capçal del robot
Instal·leu els LED RGB a l'interior del capçal del robot
Instal·leu els LED RGB a l'interior del capçal del robot
Instal·leu els LED RGB a l'interior del capçal del robot

Instal·leu els LED a l'interior del capçal del robot posant-los on vulgueu i, a continuació, plegueu i fixeu els cables a l'interior de la caixa. Posar una palla sota el LED també ajuda a mantenir-la al seu lloc. (Vegeu les imatges per aclarir-les)

Pas 12: Acabeu de fer els ulls

Acaba de fer els ulls
Acaba de fer els ulls
Acaba de fer els ulls
Acaba de fer els ulls

Enganxeu un tros de paper quadrat que sigui una mica més gran que el forat que heu retallat. Enganxeu-lo sobre el forat per tapar el forat i el LED que hi ha darrere. És possible que també vulgueu enganxar alguns fulls de tovallola de paper a l'interior dels forats dels ulls per difondre la llum que prové dels LED.

Pas 13: connecteu els xips TLC5940NT

Connecteu els xips TLC5940NT
Connecteu els xips TLC5940NT
Connecteu els xips TLC5940NT
Connecteu els xips TLC5940NT
Connecteu els xips TLC5940NT
Connecteu els xips TLC5940NT

En aquest pas, haureu de connectar 3 TLC5940NT junts per accionar un total de 42 sortides LED (36 per a la boca, 6 per als ulls multicolors). cadena 3 TLC5940NT junts. Aquí es troba en forma comprimida: pin Arduino 13 -> SCLK (pin TLC 25) pin Arduino 11 -> SIN (TLC pin26) Arduino pin 10 -> en blanc (TLC pin 23) Arduino pin 9 -> XLAT (TLC pin 24) Pin Arduino 3 -> GSCLK (pin 18 TLC) -------------- U ------------ Sortida LED 1 | 1 28 | Sortida LED 0 Sortida LED 2 | 2 27 | GNDLED Out 3 | 3 26 | SIN (pin PIN 11.) Sortida LED 4 | 4 25 | SCLK (Ard pin 13) … | 5 24 | XLAT (Ard pin 9)… | 6 23 | EN BLANC (Ard pin 10) … | 7 22 | GND … | 8 21 | VCC (5V) … | 9 20 | 2K resistència a terra … | 10 19 | 5V … | 11 18 | GSCLK (Ard pin 3)… | 12 17 | SOUT (connectat al SIN del següent TLC al Daisychain) … | 13 16 | XERR Out 14 | 14 15 | Sortida LED 15 ----------------------------- Nota: estem Daisychaining 3 TLC, de manera que el SIN del primer TLC està connectat a Arduino pin 11. La resta de TLC tenen el SIN connectat al SOUT del TLC que l’ha precedit. Els SCLK estan connectats. Tots els GSCLK estan connectats. Tots els XERR estan connectats. Connecteu també 2 o 3 condensadors electrolítics a la terra i a la potència de la placa de control (negatiu del condensador que va a terra, positiu a 5 V). La quantitat de càrrega que té no és tan important, però s'hauria de classificar per a 5 V o superior. Aquests condensadors actuaran com a filtre, filtrant totes les imperfeccions (soroll) de l'alimentació de tensió que produeixen els TLC. Això és important perquè el Waveshield que utilitzarem comparteix el mateix terreny que els TLC i realment no li agrada el soroll elèctric (fa un soroll estrany i de clic).

Pas 14: connecteu els LED als TLC

Connecteu els LED als TLC
Connecteu els LED als TLC
Connecteu els LED als TLC
Connecteu els LED als TLC

Connecteu tots els LED als TLC, fila per fila, començant pel que es troba a l'extrem superior esquerre i passant al LED directament a la dreta. Aquí teniu una quadrícula de totes les sortides de pins LED TLC incloses per a la vostra comoditat. Vegeu imatges per aclarir-les. Boca: 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 Ara també és un bon moment per connectar els ulls LED RGB als TLC, així que aquí teniu les sortides de pin … Ulls LED RGB: esquerra: RGB dreta: RGB 36 40 38 37 41 39 No oblideu per connectar els cables d'alimentació universals dels LED de la xarxa i el RGB a 5V.

Pas 15: Connecteu els Servos als TLC

Connecteu els servos als TLC
Connecteu els servos als TLC

Connecteu l’alimentació i la terra dels servos a l’alimentació i la terra de la taula de treball. Connecteu el cable de control del servo esquerre (l’esquerra mentre esteu cap al robot.) Al pin 43 (recordeu que comenceu a zero) i el servo dret al pin 44. Haureu de connectar una resistència de 3,3K ohm d’ambdós pins. a 5V perquè els TLC són dissipadors d’alimentació i requereixen d’energia per enfonsar-se.

Pas 16: ara esteu entrant al país del programari i el codi. (sobretot)

Si us plau, no transgredeixi …

Pas 17: descarregueu la biblioteca TLC

Es pot trobar la biblioteca TLC més recent per a Arduino a la seva pàgina de codis de Google a: code.google.com/p/tlc5940arduino/. Descarregueu la biblioteca més recent i inseriu la carpeta descomprimida "Tlc5940" a [carpeta de la versió més recent d'Arduino] / hardware / biblioteques /

Pas 18: proveu els TLC

Carregueu el meu esbós de prova d’expressió en sèrie que podeu baixar a continuació. Carregueu-lo al Freeduino i escriviu algunes ordres al monitor sèrie per comprovar que tot funciona. Aquí teniu la llista d’ordres: behappybesadbemadfullmouthlinemouthoffmouthoffeyesbluegreeneyesredeyesblueeyesopenmouthtalkmouth (No parla, però fa moviments de boca)

Pas 19: descarregueu la biblioteca de Waveshield millorada i de gran capacitat (una mica)

Descarregueu el nou protector d'ona Adafruit millorat des del codi de Google (Gràcies, senyor Fat16 per fer aquesta biblioteca millorada): code.google.com/p/wavehc/ Pegueu de nou la carpeta descomprimida al maquinari / biblioteques / carpeta.

Pas 20: formateu i carregueu les vostres targetes SD

Introduïu les vostres targetes SD a l'ordinador i formateu-les mitjançant el tipus de fitxer FAT o FAT16. NO FAT32! A continuació, carregueu les vostres targetes SD amb fitxers de veu des del text fantàstic d'AT&T al lloc de veu www.research.att.com/~ttsweb/tts/demo.php#top Canvieu el nom dels fitxers amb el nom de la paraula que parla al fitxer i trunqueu-los aquest nom de fitxer a una cosa que conté 6 o menys lletres. (El protector d'ones només pot gestionar fitxers els noms dels fitxers dels quals siguin de 6 caràcters o menys.) Ex. Si descarregueu el fitxer de "Instructables.com" -> anomeneu-lo instrc.wavSi hola -> hello.wav

Pas 21: proveu el vostre Waveshield

Baixeu-vos i executeu el meu esbós de prova de Waveshield. Haureu de ser capaç de passar pel terminal sèrie, escriure una frase i fer que Waveshield la reprodueixi (sempre que tingui els fitxers.wav que necessiti). Prendrà la primera paraula, afegirà el ".wav" i reproduirà-la abans de passar a la segona. Ex. Escriu: Hola em dic Bob. Es reproduirà: hello.wavmy.wavname.wavis.wavbob.wav Nota: Proveu el Waveshield a l'altre Freeduino (el que no està connectat als TLC) perquè tant el Waveshield com els TLC utilitzen els pins 13, 12, 11 i 10 (al Freeduino). Això es deu al fet que aquests pins tenen suport de maquinari per a una interfície anomenada Interfície Perifèrica Serial (SPI) que tant els TLC com el Waveshield requereixen. Aquests pins no es poden compartir entre ells, de manera que haurem d’enllaçar dos Freeduinos junts mitjançant la interfície I2C perquè puguin transmetre informació entre ells. Més informació al pas 22.

Pas 22: Connecteu la interfície I2C entre ambdós autònoms

Connecteu la interfície I2C entre ambdós freeduinos
Connecteu la interfície I2C entre ambdós freeduinos

Espera … Per què hem de connectar una interfície I2C entre dos Freeduinos? Per què no podem connectar el Waveshield i els TLC a un Freeduino? Per això: Tant el Waveshield com els TLC utilitzen els pins 13, 12, 11 i 10 al Freeduino. La raó d'això és que aquests pins tenen suport de maquinari per a una interfície anomenada Interfície Perifèrica Serial (SPI) que tant els TLC com el Waveshield requereixen i no poden compartir. Això vol dir que haurem d’enllaçar dos Freeduinos junts mitjançant algun tipus de connexió de dades perquè tots dos treballin junts en tàndem. El serial no era una opció perquè el meu ordinador ja l’utilitzava per comunicar-me amb el Waveshield Freeduino, de manera que després d’un intens Googling vaig trobar un mètode de comunicació molt còmode i senzill. I2C! A continuació s’explica com connectar la interfície: Connecteu el pin d’entrada analògica 4 a ambdós Freeduinos (es tracta de la línia de dades en sèrie o SDA) Connecteu el pin d’entrada analògica 5 a tots dos Freeduinos (es tracta de la línia de rellotge SCL o sèrie.) Connecteu la terra a ambdós Freeduinos (en cas contrari, la interfície I2C no funcionarà). Connecteu el cable que heu soldat al començament d’aquest instructable des de la resistència R7 del Waveshield fins al pin d’entrada analògica 1 del TLC que controla Freeduino (aquest cable serveix per comprovar el volum de les paraules pronunciades per Waveshield i que no formen part de la interfície I2C). (Vegeu la imatge per obtenir aclariments)

Pas 23: Activeu I2C al TLC Controlling Freeduino

Activeu I2C al Freeduino que heu utilitzat per controlar els TLC baixant aquest esbós. Rebrà informació sobre expressions del Waveshield i també comprovarà el volum de la sortida de veu al Waveshield Freeduino i mourà la boca per simular parlar en funció del volum de la paraula que es pronunciï. Definició I2C: I2C també es coneix com TWI (Two Wire Interface) és una forma senzilla de connectar diversos dispositius junts (fins a 128!) Amb dos cables de dades i una base comuna. Actualització: he afegit una funció de parpelleig a Arduino Sketch. Ara el robot parpellejarà a intervals de 2-11 segons, igual que un ésser humà.

Pas 24: proveu la interfície I2C

Descarregueu aquest esbós i carregueu-lo al Waveshield Freeduino, enviant les paraules "behappy;" i després "besad"; a través de la interfície I2C al TLC que controla Freeduino a intervals de dos segons, esperem que el robot passi de feliç a trist a dos intervals de segon.

Pas 25: gairebé heu acabat! Només cal carregar algun codi …

Carregueu la versió final del codi Waveshield Freeduino. Hauria d’incloure les paraules que escriviu al monitor sèrie i pronunciar-les (sempre que tinguin els fitxers.wav per fer-ho) i hauria de passar ordres d’expressió com "behappy;" i "besad" al Freeduino que controla els TLC a través de la interfície I2C. Nota: la llista d’ordres és la mateixa per al codi de prova TLC anterior (vegeu el pas 17), excepte que heu d’afegir un punt i coma a totes les ordres d’expressió. EX. Si voleu que el robot estigui trist i digueu "Em sento trist", escriviu: besad; Em sento trist Actualització: el Waveshield Sketch ara utilitza la puntuació correctament (és a dir, punts i comes, però no punts d’exclamació).

Pas 26: muntar-ho tot a la capsa del robot i ja està

Muntar-ho tot a la capçalera del robot i ja està!
Muntar-ho tot a la capçalera del robot i ja està!
Muntar-ho tot a la capçalera del robot i ja està!
Muntar-ho tot a la capçalera del robot i ja està!

Muntar tots els Freeduinos a la part posterior de la caixa amb cables. Tanqueu la solapa superior de la caixa amb cables i heu acabat. Ara si només pogués consultar el meu correu electrònic. Hmmmm … Gràcies per llegir aquest instructiu. Els comentaris són sempre benvinguts a qualsevol cosa.

Accèssit al Concurs Arduino

Recomanat: