INHOUDSOPGAWE:

Bou 'n Arduino-aangedrewe Talking Robot Head !: 26 stappe (met foto's)
Bou 'n Arduino-aangedrewe Talking Robot Head !: 26 stappe (met foto's)

Video: Bou 'n Arduino-aangedrewe Talking Robot Head !: 26 stappe (met foto's)

Video: Bou 'n Arduino-aangedrewe Talking Robot Head !: 26 stappe (met foto's)
Video: It Became Unliveable! ~ Abandoned Home Of The Spenser's In The USA 2024, Julie
Anonim
Bou 'n Arduino-aangedrewe Talking Robot Head!
Bou 'n Arduino-aangedrewe Talking Robot Head!

Hierdie robotkop is oorspronklik gebou as 'n einde van die jaar -projek vir my fisiese rekenaarklas, maar in die somer het hy 'geleer' hoe om te praat. Die kop word aangedryf deur twee Freeduinos, 3 TLC5940NT -skyfies en 'n Adafruit Industries Wave Shield wat hier gevind word: www.ladyada.net/make/waveshield/. Die kop is tans met 'n rekenaar verbind deur twee USB -kabels, een vir krag, een om seriële opdragte te stuur oor wat om te sê/emote. Sodra die kop die getikte opdragte ontvang het oor wat om te sê/te emoteer, speel dit die individuele woordlêers af om 'n sin of meerdere sinne te skep. Dit verander ook sy emosies volgens die emosionele opdragte wat vanaf die rekenaar gestuur word. Hierdie robotkop is 'n grondslag vir baie moontlike toepassings, aangesien dit alles kan sê waarvoor dit die woordeskat het. Op die oomblik werk ek tans daaraan om dit aan die internet te koppel en my e -pos via PHP -script na te gaan en te lees. Ek sal hierdie Instructable bywerk namate ek vorder. Hier is 'n video van dit in aksie: Die kop is nog steeds 'n lopende projek, sodat kommentaar op enigiets hier meer as welkom is! Spesiale dank aan Liz Arum wat my met alles gehelp het! 'n video van die robot wat praat en homself uitdruk! Geniet op u gemak!

Stap 1: Stel alle materiale/onderdele/elektronika saam

Hierdie robotkop gebruik: 1 broodbord (dit moet meer as 48 rye lank wees met 'n gaping in die middel van die bord om IC -skyfies aan te sluit. 'N Krag- en grondbus langs die kant van die broodbord is ook 'n noodsaaklikheid.) 2 RGB -leds (vir veelkleurige oë) Algemene anode. $ 1,50 - 1,95 elk. 2 X $ 1,75 = $ 3,5036 Rooi Leds (vir die mond) iewers in die prysklas van 40-50 sent vir elk. 36 X $.45 = $ 16.202 HXT900 Micro Servos (om die wenkbroue te beweeg) kan gevind word op: https://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=662 2 X $ 3,65 = $ 7.303 TLC5940NT's (To ry/brand al die LED's en beheer die servo's) kan gevind word op Digi-key https://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-17732-5-ND waar hulle geprys word teen $ 4,28. 3 X $ 4,28 = $ 12,84 of Mouser https://www.mouser.com/ProductDetail/Texas-Instruments/TLC5940NT/?qs=sGAEpiMZZMu8%252bGBKj8XSFEjwsgnt5grMZ49G/W4nR14%3d3 Capacitors (~ 1000 g-ruit (uit L-stryk) servo's) is gered uit 'n ou rekenaarvoeding. Free2 Oorspronklike Freeduinos of Arduinos. Die Freeduinos kan gekoop word by https://www.freeduino.org/buy.html Hulle kos 23,99 elk. 2 X $ 23,99 = $ 47,98 Of www.sparkfun.com/commerce/product_info.php vir Arduinos. Prys teen $ 29,95 elk. 2 X $ 29,95 = $ 59,90 Waarskuwing: Die Freeduinos benodig soldeerkennis, as u nie u planke wil soldeer nie, koop dan 'n Arduino. Waarskuwing: hierdie instruksies verg in elk geval 'n paar soldeerkennis, so waarom begin u nie nou nie?:) 1 Waveshield van Adafruit Industries (sodat die robot kan praat) Kan gekoop word by: https://www.ladyada.net/make/waveshield/ Geprys teen $ 22 elk. Geskatte totale koste van alle hoëtegnologie -onderdele (nie ingesluit nie gestuur) as u Freeduinos gekoop het in plaas van Arduinos is …. $ 109,82! Die totale koste van alle hoëtegnologie -onderdele as u Arduinos in plaas van Freeduinos gekoop het, is …. $ 121,74! En wat die lae-tegnologie materiaal benodig: 'n kartondoos van dieselfde grootte as wat u wil hê dat u kop moet wees. van houtKragboor. Hitte Krimpslang vir die isolasie van die blootgestelde draaddrade en iets wat warm lug waai om dit te krimp met (Warmluggeweer) Boksnyer.

Stap 2: Monteer en soldeer alle printplate en skilde

Monteer en soldeer alle printplate en skilde
Monteer en soldeer alle printplate en skilde

Soldeer die Freeduinos (soos ek), of ignoreer hierdie lyn as u 'n Arduino gekoop het. Hier is die skakel na die monteerinstruksies vir al die mense wat Freeduinos gekoop het: mcukits.com/2009/03/12/assembling-the-freeduino-board-kit/Solder the Waveshields. Lady Ada het 'n baie goeie gids oor hoe om dit te doen op haar webwerf op https://www.ladyada.net/make/waveshield/solder.html Let op: Benewens die soldeer van die Waveshield soos uiteengesit. Voeg 'n lang draad gesoldeer op die weerstand R7 aan die kant naaste aan die versterkerskyf. Dit sal gekoppel word aan die analoog ingang 1 op die Freeduino wat die LED's van die robotkop beheer. (Moenie bekommerd wees oor waar u die ander kant van die draad moet aansluit nie, dit sal later in detail verduidelik word.) Sien die prentjie vir meer inligting oor waar u die draad moet soldeer.

Stap 3: Ontwerp die robotkop

Ontwerp die robotkop
Ontwerp die robotkop

Neem die kartondoos wat u gekies het om u hoof te wees, en merk die plekke wat u vir die oë en mond wil uitsny deur stukke papier te sny en bo -op u boks te lê. As u tevrede is met die reëling, kan u verder gaan met snygoed.

Stap 4: Ontwerp u robotkop: sny die oë uit

Ontwerp u robotkop: die oë uitknip
Ontwerp u robotkop: die oë uitknip

Plak of merk die stukke in hul finale posisies op die boks en sny dit uit. (Hou die stuk papier wat u die mond voorgestel het, u benodig dit later.)

Stap 5: Ontwerp u robotkop: maak 'n LED -matriks vir die mond

Ontwerp u robotkop: maak 'n LED -matriks vir die mond
Ontwerp u robotkop: maak 'n LED -matriks vir die mond
Ontwerp u robotkop: maak 'n LED -matriks vir die mond
Ontwerp u robotkop: maak 'n LED -matriks vir die mond
Ontwerp u robotkop: maak 'n LED -matriks vir die mond
Ontwerp u robotkop: maak 'n LED -matriks vir die mond

Elke LED in die mond brand onafhanklik. Om dit te kan doen, moet u 'n LED -matriks vir die mond maak. (Vir 'n idee oor wat 'n LED -matriks is, sien prent 1) Neem die stuk papier wat veronderstel is om die mond te wees en verdeel die stuk papier in 36 dele (9 X 4) met 'n potlood en liniaal, Een vir elke LED in die rooster. Nadat u dit gedoen het, plak u die stuk papier op 'n stuk hout vas en wees versigtig om nie deur die vloer te boor nie (dit het met my gebeur, dus ek beveel aan om bo -op 'n kartondoos te boor.) Boor gate waar die lyne sny met 'n 1/4 duim boorpunt, sodat u LED's styf pas. Die grootte van die boorpunt hang natuurlik af van die grootte van u LED's, dus gebruik 'n kleiner boorpunt vir kleiner LED's. (Begin klein en werk op!) Kyk na foto's 2 en 3 vir meer inligting oor die boor/merk.

Stap 6: Maak die mond -LED -matriks: soldeer in die LED's

Maak die mond LED Matrix: soldeer in die LED's
Maak die mond LED Matrix: soldeer in die LED's
Maak die mond LED Matrix: soldeer in die LED's
Maak die mond LED Matrix: soldeer in die LED's
Maak die mond LED Matrix: soldeer in die LED's
Maak die mond LED Matrix: soldeer in die LED's

Voordat u iets anders doen, moet u seker maak dat al u LED's nie uitgebrand of flou is nie. U kan dit doen deur 'n klein 3V -knoppiebattery te vind en die bene van die LED's teen die battery vas te hou (onthou dat die lang been positief is, die kort negatiewe). Plaas die LED's dan een ry op 'n slag in u geboorde roosterjiggie. Vou die lang bene sodat hulle ewewydig aan mekaar is en soldeer hulle, ry vir ry, (sien prent 2 en 3). Soldeer die lang bene saam, aangesien u TLC's sal gebruik om hierdie LED's te beheer, en die TLC's is kragbakke. Dit beteken dat hulle die LED's beheer deur die spanningsverskil tussen krag en grond te verander.

Stap 7: Maak die mond -LED -matriks: soldeerbeheerdrade op die LED's

Maak die mond -LED -matriks: soldeerboutdrade op die LED's
Maak die mond -LED -matriks: soldeerboutdrade op die LED's
Maak die mond -LED -matriks: soldeerboutdrade op die LED's
Maak die mond -LED -matriks: soldeerboutdrade op die LED's
Maak die mond -LED -matriks: soldeerbeheerdrade op die LED's
Maak die mond -LED -matriks: soldeerbeheerdrade op die LED's

Soldeer lang drade wat in 'n broodbord (22 gauge) kan pas op al die LED -katodeleidings. Hierdie drade sal die LED's beheer. Maak daarna seker dat u alle individuele drade met elektriese band (nie lekker nie) of krimpbande (aanbeveel) isoleer. Benewens soldeerdrade op al die LED's se katodedrade, soldeer 2 of 3 drade op die anode -gedeelte van die rooster (Die deel wat almal saamgesoldeer is). Hierdie drade sal dien as kragtoevoer om krag oor die hele netwerk te versprei. Hulle sal aan 5V gekoppel word.

Stap 8: Installeer die wenkbrou-bewegende servo's binne-in die robotkop

Installeer die wenkbrou-bewegende servo's binne-in die robotkop
Installeer die wenkbrou-bewegende servo's binne-in die robotkop
Installeer die wenkbrou-bewegende servo's binne-in die robotkop
Installeer die wenkbrou-bewegende servo's binne-in die robotkop
Installeer die wenkbrou-bewegende servo's binne-in die robotkop
Installeer die wenkbrou-bewegende servo's binne-in die robotkop

Gom 'n lang sterk (maar steeds buigbare) draad op die servo-arm vas voordat u u mini-servo's binne-in u robotkop installeer. Hierdie draad gaan aan die binnekant van u robot op, kom uit die bokant en kruip terug om die wenkbroue te beweeg. (Sien die foto's vir verduideliking.) Neem u mini-servo's (met die drade vas) en plak dit aan die binnekant van u robotkop reg onder die oë vas, en maak seker dat die drade van kant tot kant kan beweeg.

Stap 9: Installeer die rooster binne -in die robotkop

Installeer die rooster binne -in die robotkop
Installeer die rooster binne -in die robotkop
Installeer die rooster binne -in die robotkop
Installeer die rooster binne -in die robotkop

Plak die rooster warm aan 'n stuk karton waarin u gate geboor het en warm gom aan die binnekant van die robotkop.

Stap 10: Soldeer die RGB -LED's

Soldeer die RGB -LED's
Soldeer die RGB -LED's

Soldeer die gewone anode RGB LED tot 'n lang draad. Soldeer dan 'n gekleurde draad (rooi, groen, blou) aan die RGB LED -lood wat daarmee ooreenstem (die kleur van 'n individuele lood kan uitgevind word deur 'n 3V -knoppiebattery te gebruik om elke LED -lood om die beurt aan te steek). Moenie vergeet om die drade te isoleer nie!

Stap 11: Installeer die RGB -LED's binne -in die robotkop

Installeer die RGB -LED's binne -in die robotkop
Installeer die RGB -LED's binne -in die robotkop
Installeer die RGB -LED's binne -in die robotkop
Installeer die RGB -LED's binne -in die robotkop

Installeer die LED's binne -in die robotkop deur dit te plaas waar u dit wil hê en dan die drade aan die binnekant van die boks te vou en vas te plak. Om 'n drinkstrooi onder die LED te sit, help ook om dit op sy plek te hou. (Sien prente vir verduideliking)

Stap 12: Maak klaar met die oë

Maak klaar met die oë
Maak klaar met die oë
Maak klaar met die oë
Maak klaar met die oë

Plak 'n vierkantige stuk papier wat effens groter is as die gat wat jy uitgesny het. Plak dit oor die gat om die gat en die LED agter dit te bedek. U kan ook 'n paar vel papierhanddoek aan die binnekant van die ooggate plak om die lig wat deur die LED's kom, te versprei.

Stap 13: Verbind die TLC5940NT -skyfies

Draai die TLC5940NT -skyfies op
Draai die TLC5940NT -skyfies op
Verbind die TLC5940NT -skyfies
Verbind die TLC5940NT -skyfies
Verbind die TLC5940NT -skyfies
Verbind die TLC5940NT -skyfies

In hierdie stap sal u 3 TLC5940NT's moet verbind om 'n totaal van 42 LED -uitsette (36 vir die mond, 6 vir die veelkleurige oë) aan te skakel. ketting 3 TLC5940NTs saam. Hier is dit in saamgeperste vorm: Arduino -pen 13 -> SCLK (TLC -pen 25) Arduino -pen 11 -> SIN (TLC -pen26) Arduino -pen 10 -> Leeg (TLC -pen 23) Arduino -pen 9 -> XLAT (TLC -pen 24) Arduino pen 3-> GSCLK (TLC pen 18) -------------- U ------------ LED Out 1 | 1 28 | LED Out 0LED Out 2 | 2 27 | GNDLED Uit 3 | 3 26 | SONDE (Ard pin 11.) LED Out 4 | 4 25 | SCLK (Ard pin 13)… | 5 24 | XLAT (pen 9) … | 6 23 | LEEG (Ard pen 10)… | 7 22 | GND … | 8 21 | VCC (5V)… | 9 20 | 2K weerstand teen grond … | 10 19 | 5V… | 11 18 | GSCLK (pen 3) … | 12 17 | SOUT (gekoppel aan die SONDE van die volgende TLC in die Daisychain) … | 13 16 | XERR Uit 14 | 14 15 | LED Out 15 ----------------------------- Let wel: ons Daisychaining 3 TLC's sodat die SIN van die eerste TLC aan Arduino gekoppel is pen 11. Die res van die TLC's het hul SIN gekoppel aan die SOUT van die TLC wat dit voorafgaan. Al die BLANKS is met mekaar verbind (BLANK van TLC1 is gekoppel aan BLANK van TLC2 ens …) Al die XLAT's is verbind. SCLK's is gekoppel. Al die GSCLK's is verbind. Al die XERR's is verbind. Koppel ook 2 of 3 elektrolitiese kondensators aan op die broodbord se grond en krag (negatief op die kondensator wat grond toe gaan, positief tot 5V). Die hoeveelheid lading wat dit bevat, is nie so belangrik nie, maar dit moet vir 5V of hoër beoordeel word. Hierdie kondensators werk as 'n filter en filter al die onvolmaakthede (geraas) in die spanningsbron wat die TLC's produseer, uit. Dit is belangrik, want die Waveshield wat ons gaan gebruik, deel dieselfde grond as die TLC's en hou regtig nie van elektriese geraas nie (dit maak 'n vreemde klikgeluid).

Stap 14: Draai die LED's na die TLC's

Draai die LED's na die TLC's
Draai die LED's na die TLC's
Draai die LED's na die TLC's
Draai die LED's na die TLC's

Koppel al die LED's ry vir ry aan die TLC's, begin met die een in die linker boonste hoek en gaan regs na die LED. Hier is 'n rooster van al die LED TLC -penne vir u gemak ingesluit. Sien foto's vir verduideliking. Mond: 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 Dit is ook nou 'n goeie tyd om u RGB LED -oë aan te sluit op die TLC's, so hier is die penne … RGB LED -oë: Links: RGB Regs: RGB 36 40 38 37 41 39 Moenie vergeet nie om die universele kragdrade vir The Grid en RGB LED's in 5V aan te sluit!

Stap 15: Verbind die servo's met die TLC's

Bedien die servo's na die TLC's
Bedien die servo's na die TLC's

Koppel die krag en grond van die servo's aan Power and Ground op u broodbord. Koppel die stuurdraad van die linker servo (u linkerkant terwyl u na die robot kyk) aan pen 43 (onthou begin by nul.) En die regter servo aan pen 44. U moet 'n weerstand van 3.3K ohm van albei penne aansluit na 5V omdat die TLC's kragopwekkers is en krag benodig om te sink.

Stap 16: U betree nou die land van sagteware en kode! (meestal)

Moet asseblief nie oortree nie …

Stap 17: Laai die TLC -biblioteek af

Die nuutste TLC -biblioteek vir die Arduino kan gevind word op hul Google -kodebladsy by: code.google.com/p/tlc5940arduino/. Laai die nuutste biblioteek af en plaas die uitgepakte vouer "Tlc5940" in [die nuutste gids van Arduino -weergawe]/hardware/ biblioteke/

Stap 18: Toets die TLC's

Laai my reeksskets vir ekspressietoets wat u hieronder kan aflaai. Laai dit in die Freeduino en tik 'n paar opdragte in die seriële monitor om te toets dat die hele ding werk.

Stap 19: Laai die verbeterde Waveshield-biblioteek met hoë kapasiteit (ietwat) af

Laai die nuwe, verbeterde Adafruit -waveshield van Google -kode af (dankie mnr. Fat16 dat u hierdie verbeterde biblioteek gemaak het): code.google.com/p/wavehc/ Plaas die uitgepakte vouer weer in die hardeware/biblioteke/vouer.

Stap 20: Formateer en laai u SD -kaarte

Plaas u SD -kaarte in u rekenaar en formateer dit met die FAT- of FAT16 -lêertipe. NIE FAT32 nie! Laai dan u SD -kaarte met spraaklêers van AT&T se groot teks na spraakwebwerf www.research.att.com/~ttsweb/tts/demo.php#top Hernoem die lêers die naam van die woord wat dit in die lêer spreek en snoei dit af die lêernaam na iets wat 6 of minder letters bevat. (Die waveshield kan slegs lêers met 'n lêernaam van 6 karakters of minder hanteer.) Byvoorbeeld, as u die lêer vir "Instructables.com" aflaai -> noem dit instrc.wavIf hallo -> hello.wav

Stap 21: Toets u Waveshield

Laai my reeks Waveshield -toetsskets af en voer dit uit. U moet deur die seriële terminaal 'n sin kan tik en die Waveshield kan laat speel (solank dit die.wav -lêers het). Dit neem die eerste woord, voeg die ".wav" by en speel dit voordat u na die tweede een gaan. Eks. Jy tik: Hallo my naam is Bob Dit speel: hello.wavmy.wavname.wavis.wavbob.wav Nota: Toets die Waveshield op die ander Freeduino (die een wat nie aan die TLC's gekoppel is nie) omdat beide die Waveshield en die TLC's penne 13, 12, 11 en 10 (op die Freeduino) gebruik. Dit is omdat hierdie penne hardeware -ondersteuning het vir 'n koppelvlak genaamd die Serial Peripheral Interface (SPI) wat beide die TLC's en die Waveshield benodig. Hierdie penne kan nie tussen hulle gedeel word nie, so ons sal twee Freeduinos met mekaar moet koppel met behulp van die I2C -koppelvlak, sodat hulle inligting tussen hulle kan deurgee. Meer hieroor in stap 22.

Stap 22: Verbind die I2C -koppelvlak tussen beide Freeduinos

Draai die I2C -koppelvlak tussen beide Freeduinos op
Draai die I2C -koppelvlak tussen beide Freeduinos op

Wag … Waarom moet ons 'n I2C -koppelvlak tussen twee Freeduinos oprig? Waarom kan ons nie net die Waveshield en die TLC's in een Freeduino aansluit nie? Hier is die rede: Beide die Waveshield en die TLC's gebruik penne 13, 12, 11 en 10 op die Freeduino. Die rede hiervoor is dat hierdie penne hardeware -ondersteuning het vir 'n koppelvlak genaamd die Serial Peripheral Interface (SPI) wat beide die TLC's en die Waveshield benodig en nie kan deel nie. Dit beteken dat ons twee Freeduino's aan mekaar moet koppel deur 'n soort dataverbinding te gebruik, sodat albei saam werk. Serial was nie 'n opsie nie, want my rekenaar gebruik dit reeds om met die Waveshield Freeduino te kommunikeer, en na 'n intense Google -soek vind ek 'n baie maklike en eenvoudige kommunikasiemetode. I2C! Hier is hoe u die koppelvlak kan aansluit: Koppel die analoog invoerpen 4 aan beide Freeduinos (dit is die SDA of die seriële data lyn). Koppel die analoog invoerpen 5 aan beide Freeduinos (dit is die SCL- of seriële kloklyn.) Koppel die grond op beide Freeduinos (anders werk die I2C -koppelvlak nie.) Koppel die draad wat u aan die begin van hierdie instruksies gesoldeer het van weerstand R7 op die Waveshield na analoog invoerpen 1 op die TLC wat Freeduino beheer (hierdie draad is om die volume van die woorde wat deur die Waveshield gespreek word en is nie deel van die I2C -koppelvlak nie). (Sien prentjie vir verduideliking)

Stap 23: Aktiveer I2C op die TLC -beheer Freeduino

Aktiveer I2C op die Freeduino waarmee u die TLC's beheer het deur hierdie skets af te laai. Dit sal inligting ontvang oor uitdrukkings van die Waveshield en sal ook die volume van die spraakuitset op die Waveshield Freeduino kontroleer en die mond beweeg om praat te simuleer, afhangende van die volume van die woord wat gespreek word. I2C definisie: I2C staan ook bekend as TWI (Two Wire Interface) dit is 'n eenvoudige manier om verskeie toestelle aan mekaar te verbind (tot 128!) Met twee datadrade en 'n gemeenskaplike grond. Updateer: Ek het 'n knipfunksie by die Arduino Sketch gevoeg. Die robot sal nou met 'n tussenpose van 2-11 sekondes knip, net soos 'n mens.

Stap 24: Toets die I2C -koppelvlak

Laai hierdie skets af en laai dit op die Waveshield Freeduino, dit stuur die woorde "behappy;" en dan "besad;" oor die I2C -koppelvlak na die TLC wat Freeduino met twee sekondes tussenposes beheer, wat hopelik die robot met twee sekondes van gelukkig tot hartseer laat gaan.

Stap 25: U is amper klaar! Net 'n paar kode om te laai …

Laai die finale weergawe van die Waveshield Freeduino -kode. Dit moet enige woorde wat u in die seriële monitor tik, inneem en dit spreek (solank dit die.wav -lêers het om dit te doen) en moet uitdrukkingskommando's soos "behappy;" en "besad;" op die Freeduino wat die TLC's deur die I2C-koppelvlak beheer. Opmerking: Die opdraglys is dieselfde vir die vroeëre TLC-toetskode (sien stap 17) behalwe dat u 'n halfpunt by elke uitdrukkingsopdrag moet voeg. Bv. As jy wil hê die robot moet hartseer wees en sê "ek voel hartseer", tik dan: besad; Ek voel hartseer. Opdateer: Die Waveshield Sketch gebruik nou leestekens behoorlik (dws punte en kommas, maar let op uitroeppunte).

Stap 26: Monteer alles op die robotkopkas en u is klaar

Monteer alles op die robotkopkas en u is klaar!
Monteer alles op die robotkopkas en u is klaar!
Monteer alles op die robotkopkas en u is klaar!
Monteer alles op die robotkopkas en u is klaar!

Monteer al die Freeduinos op die agterkant van die boks met drade. Maak die boonste klep van die boks toe met drade en jy is klaar! Nou as dit net my e -pos kan kontroleer. Hmmmm ……. Dankie dat jy hierdie Instructable gelees het! Kommentaar is altyd welkom oor enige iets!

Tweede prys in die Arduino -wedstryd

Aanbeveel: