Innehållsförteckning:

Bygg ett Arduino-driven Talking Robot Head !: 26 steg (med bilder)
Bygg ett Arduino-driven Talking Robot Head !: 26 steg (med bilder)

Video: Bygg ett Arduino-driven Talking Robot Head !: 26 steg (med bilder)

Video: Bygg ett Arduino-driven Talking Robot Head !: 26 steg (med bilder)
Video: High Density 2022 2024, Juli
Anonim
Bygg ett Arduino-driven Talking Robot Head!
Bygg ett Arduino-driven Talking Robot Head!

Detta robothuvud byggdes ursprungligen som ett projekt för slutet av året för min fysiska datorklass, men under sommaren har det "lärt sig" hur man pratar. Huvudet drivs av två Freeduinos, 3 TLC5940NT -chips och ett Adafruit Industries Wave Shield som finns här: www.ladyada.net/make/waveshield/. Huvudet är för närvarande anslutet till en dator med två USB -kablar, en för ström, en för att skicka seriella kommandon om vad man ska säga/emotera. När huvudet mottar de skrivna kommandona om vad man ska säga/emotera spelar det upp de enskilda ordfilerna för att skapa en mening eller flera meningar. Det ändrar också sina känslor enligt de känslomässiga kommandon som skickas från datorn. Detta robothuvud är en grund för många möjliga tillämpningar eftersom det kan säga allt som det har ordförråd för. Just nu arbetar jag för närvarande med att ansluta den till internet och få den att kontrollera och läsa min e -post via PHP -skript. Jag kommer att uppdatera denna instruerbara när jag går vidare med det. Här är en video av det i aktion: Huvudet är fortfarande ett pågående projekt så alla kommentarer om något här är mer än välkomna! Särskilt tack till Liz Arum för att hjälpa mig med allt! Uppdatering: På grund av populär begäran har jag nu lagt till en video av roboten som pratar och uttrycker sig! Njut på fritiden!

Steg 1: Sammanställ alla material/delar/elektronik

Detta robothuvud använder: 1 brödbräda (det måste vara mer än 48 rader långt med ett gap som springer ner på mitten av brädet för att ansluta IC -chips. En ström- och markbuss som går längs sidan av brödbrädet är också en nödvändighet.) 2 RGB -lysdioder (för flerfärgade ögon) Gemensam anod. $ 1,50 - 1,95 styck. 2 X $ 1,75 = $ 3,5036 Red Leds (för munnen) någonstans runt 40-50 cent prisklass för varje. 36 X $.45 = $ 16.202 HXT900 Micro Servos (för att flytta ögonbrynen) Finns på: https://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=662 2 X $ 3,65 = $ 7.303 TLC5940NT's (Till köra/tända alla lysdioder och styra servon) finns på Digi-key https://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-17732-5-ND där de är prissatta till 4,28 dollar. 3 X $ 4,28 = $ 12,84eller Mouser https://www.mouser.com/ProductDetail/Texas-Instruments/TLC5940NT/?qs=sGAEpiMZZMu8%252bGBKj8XSFEjwsgnt5grMZ49G/W4nR14%3d3-kondensatorer (1000 st brännare från Järn (Ljud ~ servos) Bärgades från en gammal dator strömförsörjning. Free2 Original Freeduinos eller Arduinos. Freeduinos kan köpas på https://www.freeduino.org/buy.html De kostar 23,99 styck. 2 X $ 23,99 = $ 47,98 Eller www.sparkfun.com/commerce/product_info.php för Arduinos. Pris 29,95 dollar styck. 2 X $ 29,95 = $ 59,90. Varning: Freeduinos kräver lite lödkunskap, om du inte vill lödda dina brädor köper du en Arduino. Varning: Denna instruktion kräver lite lödkunskap ändå, så varför inte börja nu?:) 1 Waveshield från Adafruit Industries (För att låta roboten tala) Kan köpas på: https://www.ladyada.net/make/waveshield/ Prissatt till $ 22 vardera. Uppskattad total kostnad för alla högteknologiska delar (exklusive frakt) om du köpte Freeduinos istället för Arduinos är …. $ 109,82! Den totala kostnaden för alla högteknologiska delar om du köpte Arduinos istället för Freeduinos är …. $ 121,74! Och när det gäller de lågteknologiska materialen du behöver: En kartong i samma storlek som du vill att ditt huvud ska vara. En liten bit kartongTapeGlueBreadboard-kompatibel tråd (22 gauge, solid) Tråd för att fästa saker på andra saker Ett litet block av träPower drill. Heat Krympslang för isolering av de exponerade trådledningarna och något som blåser varm luft för att krympa den med (varmluftspistol) Box cutter.

Steg 2: Montera och löd alla kretskort och skärmar

Montera och löd alla kretskort och skärmar
Montera och löd alla kretskort och skärmar

Löd Freeduinos (som jag gjorde), eller bortse från den här raden om du köpte en Arduino. Här är länken till deras monteringsanvisningar för alla som köpte Freeduinos: mcukits.com/2009/03/12/assembling-the-freeduino-board-kit/Solder the Waveshields. Lady Ada har en mycket bra guide om hur man gör detta på sin webbplats på https://www.ladyada.net/make/waveshield/solder.htmlOBS: Förutom att lödda ihop Waveshield enligt beskrivningen. Lägg till en lång tråd lödd på motståndet R7 på sidan närmast förstärkarkretsen. Detta kommer att anslutas till den analoga ingången 1 på Freeduino som styr LED -lamporna på robothuvudet. (Oroa dig inte för var du ska ansluta den andra änden av tråden för tillfället, det kommer att förklaras i detalj senare.) Se bilden för klargörande om var du ska löda tråden.

Steg 3: Designa robothuvudet

Designa robothuvudet
Designa robothuvudet

Ta kartongen som du valde att vara ditt huvud och markera de platser som du skulle vilja klippa ut för ögonen och munnen genom att klippa papper och lägga dem ovanpå din låda. När du är nöjd med arrangemanget kan du gå vidare till skärande saker.

Steg 4: Designa ditt robothuvud: Klipp ut ögonen

Designa ditt robothuvud: Klipp ut ögonen
Designa ditt robothuvud: Klipp ut ögonen

Tejpa eller markera bitarna till deras slutliga positioner på lådan och klipp ut dem. (Behåll det papper du använde för att representera munnen, du behöver det senare.)

Steg 5: Design ditt robothuvud: Gör en LED -matris för munnen

Design ditt robothuvud: Gör en LED -matris för munnen
Design ditt robothuvud: Gör en LED -matris för munnen
Design ditt robothuvud: Gör en LED -matris för munnen
Design ditt robothuvud: Gör en LED -matris för munnen
Design ditt robothuvud: Gör en LED -matris för munnen
Design ditt robothuvud: Gör en LED -matris för munnen

Varje lysdiod i munnen tänds oberoende av varandra. För att göra det måste du göra en LED -matris för munnen. (För en uppfattning om vad som är en LED -matris, se bild 1) Ta pappersbiten som ska vara munnen och dela upp papperet i 36 delar (9 X 4) med en penna och linjal. En för varje lysdiod i rutnätet. Efter att du har gjort det, tejpa papper på en bit trä och var försiktig så att du inte borrar genom golvet (Detta har hänt mig så jag rekommenderar att borra ovanpå en kartong.) Borra hål där linjerna skär varandra med en 1/4 tum borr, så att dina lysdioder sitter snyggt. Storleken på borrkronan är uppenbarligen beroende av storleken på dina lysdioder så använd en mindre borr för mindre lysdioder. (Börja i det lilla och arbeta dig upp!) Titta på bilderna 2 & 3 för klargörande av borrningen/märkningen.

Steg 6: Gör mun -LED -matrisen: Lödning i lysdioderna

Making the Mouth LED Matrix: Lödning i lysdioderna
Making the Mouth LED Matrix: Lödning i lysdioderna
Making the Mouth LED Matrix: Lödning i lysdioderna
Making the Mouth LED Matrix: Lödning i lysdioderna
Making the Mouth LED Matrix: Lödning i lysdioderna
Making the Mouth LED Matrix: Lödning i lysdioderna

Innan du gör något annat, kontrollera att alla dina lysdioder inte är utbrända eller svaga. Du kan göra detta genom att hitta ett litet 3V knappbatteri och hålla benen på lysdioderna vid batteriet (kom ihåg att det långa benet är positivt, det korta negativet). Sätt sedan in lysdioderna en rad i taget i din utborrade jigg. Vik de långa benen så att de är parallella med varandra och löd in dem, rad för rad (se bilderna 2 & 3). Lödda ihop de långa benen eftersom du kommer att använda TLC: er för att styra dessa lysdioder, och TLC: erna är sänkor. Det betyder att de styr lysdioderna genom att ändra spänningsskillnaden mellan effekt och jord.

Steg 7: Gör mun -LED -matrisen: Lödningskontrolltrådar till lysdioderna

Making the Mouth LED Matrix: Lödkontrolltrådar på lysdioderna
Making the Mouth LED Matrix: Lödkontrolltrådar på lysdioderna
Making the Mouth LED Matrix: Lödkontrolltrådar på lysdioderna
Making the Mouth LED Matrix: Lödkontrolltrådar på lysdioderna
Making the Mouth LED Matrix: Lödkontrolltrådar på lysdioderna
Making the Mouth LED Matrix: Lödkontrolltrådar på lysdioderna

Löd långa trådar som kan passa in i en brödbräda (22 gauge) på alla LED -katodledare. Dessa ledningar kommer att styra lysdioderna. Se sedan till att isolera alla enskilda ledningar med eltejp (inte roligt) eller krympslang (rekommenderas). Förutom lödningstrådar på alla lysdioderna katodledare, löd 2 eller 3 trådar på anoddelen av nätet (Den del som alla är lödda ihop). Dessa ledningar kommer att fungera som strömkällor som fördelar kraft över hela nätet. De kommer att anslutas till 5V.

Steg 8: Installera de ögonbrynsrörande servona inuti robothuvudet

Installera de ögonbrynsrörliga servona inuti robothuvudet
Installera de ögonbrynsrörliga servona inuti robothuvudet
Installera de ögonbrynsrörande servona inuti robothuvudet
Installera de ögonbrynsrörande servona inuti robothuvudet
Installera de ögonbrynsrörande servona inuti robothuvudet
Installera de ögonbrynsrörande servona inuti robothuvudet

Innan du installerar dina miniservos inuti ditt robothuvud, limma en lång stark (men fortfarande böjbar) tråd på servoarmen. Denna tråd kommer att gå upp på insidan av din robot, komma ut från toppen och krypa tillbaka ner för att flytta ögonbrynen. (Se bilderna för klargörande.) Ta dina miniservos (med trådarna fästa) och hetlim dem på insidan av ditt robothuvud, precis under ögonen, och se till att trådarna kan röra sig från sida till sida.

Steg 9: Installera gallret inuti robothuvudet

Installera gallret inuti robothuvudet
Installera gallret inuti robothuvudet
Installera gallret inuti robothuvudet
Installera gallret inuti robothuvudet

Limma fast gallret på en kartongbit som du har borrat hål i och varmt lim på insidan av robothuvudet.

Steg 10: Löd RGB -lysdioderna

Löd RGB -lysdioderna
Löd RGB -lysdioderna

Löd den gemensamma anoden RGB LED till en lång tråd. Löd sedan en färgad tråd (röd, grön, blå) till RGB LED -ledningen som motsvarar den (Färgen på en enskild kabel kan hittas genom att använda ett 3V knappbatteri för att tända varje LED -ledning i tur och ordning). Glöm inte att isolera ledningarna!

Steg 11: Installera RGB -lysdioderna inuti robothuvudet

Installera RGB -lysdioderna inuti robothuvudet
Installera RGB -lysdioderna inuti robothuvudet
Installera RGB -lysdioderna inuti robothuvudet
Installera RGB -lysdioderna inuti robothuvudet

Installera lysdioderna inuti robothuvudet genom att placera dem där du vill ha dem och sedan vika och tejpa trådarna på insidan av lådan. Att sätta ett sugrör under lysdioden hjälper också till att hålla det på plats. (Se bilder för förtydligande)

Steg 12: Slutför att göra ögonen

Slutför att göra ögonen
Slutför att göra ögonen
Slutför att göra ögonen
Slutför att göra ögonen

Limma ett fyrkantigt papper som är något större än hålet som du har klippt ut. Limma den över hålet för att täcka upp hålet och lysdioden bakom det. Du kanske också vill tejpa några pappershanddukar på insidan av ögonhålen för att sprida ljuset från lysdioderna.

Steg 13: Anslut TLC5940NT -chipsen

Koppla upp TLC5940NT -chipsen
Koppla upp TLC5940NT -chipsen
Koppla upp TLC5940NT -chipsen
Koppla upp TLC5940NT -chipsen
Koppla upp TLC5940NT -chipsen
Koppla upp TLC5940NT -chipsen

I det här steget måste du kedja ihop 3 TLC5940NTs för att driva sammanlagt 42 LED -utgångar (36 för munnen, 6 för de mångfärgade ögonen). Människorna på Arduino -lekplatsen har en mycket väl dokumenterad anslutningsguide för hur man prästkar sig kedja 3 TLC5940NT tillsammans. Här är den i komprimerad form: Arduino pin 13 -> SCLK (TLC pin 25) Arduino pin 11 -> SIN (TLC pin26) Arduino pin 10 -> Tom (TLC pin 23) Arduino pin 9 -> XLAT (TLC pin 24) Arduino pin 3-> GSCLK (TLC pin 18) -------------- U ------------ LED Out 1 | 1 28 | LED Out 0LED Out 2 | 2 27 | GNDLED Out 3 | 3 26 | SIN (Ard pin 11.) LED Out 4 | 4 25 | SCLK (Ard pin 13)… | 5 24 | XLAT (Ard pin 9)… | 6 23 | BLANK (Ard pin 10)… | 7 22 | GND … | 8 21 | VCC (5V)… | 9 20 | 2K motstånd mot jord … | 10 19 | 5V… | 11 18 | GSCLK (Ard pin 3)… | 12 17 | SOUT (ansluten till SIN för nästa TLC i Daisychain) … | 13 16 | XERR Out 14 | 14 15 | LED Out 15 ----------------------------- Obs: vi är Daisychaining 3 TLCs så SIN för den första TLC är ansluten till Arduino stift 11. Resten av TLC: erna har sin SIN ansluten till SOUT: n för TLC: n. Alla BLANK är anslutna till varandra (BLANK för TLC1 är ansluten till BLANK på TLC2 etc …) Alla XLAT: er är anslutna. Alla SCLK är anslutna. Alla GSCLK är anslutna. Alla XERR är anslutna. Anslut också 2 eller 3 elektrolytkondensatorer till brödbrädans jord och effekt (negativt om kondensatorn går till marken, positiv till 5V). Mängden laddning som den innehar är inte så viktig, men den bör klassas för 5V eller högre. Dessa kondensatorer fungerar som ett filter och filtrerar bort alla brister (brus) i spänningsförsörjningen som TLC: erna producerar. Detta är viktigt eftersom Waveshield som vi kommer att använda delar samma mark som TLC: erna och verkligen inte gillar elektriskt brus (det gör ett konstigt klickljud).

Steg 14: Anslut lysdioderna till TLC: erna

Anslut lysdioderna till TLC: erna
Anslut lysdioderna till TLC: erna
Anslut lysdioderna till TLC: erna
Anslut lysdioderna till TLC: erna

Anslut alla lysdioder till TLC: erna rad för rad, börja med den i det övre vänstra hörnet och gå vidare till lysdioden direkt till höger. Här är ett rutnät med alla LED TLC -uttag inkluderade för din bekvämlighet. Se bilder för förtydligande. Mun: 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 Nu är det också en bra tid att ansluta dina RGB LED -ögon till TLC: erna så här är pin -outs … RGB LED -ögon: Vänster: RGB Höger: RGB 36 40 38 37 41 39 Glöm inte att koppla in de universella strömkablarna för The Grid och RGB -lysdioder till 5V!

Steg 15: Anslut servona till TLC: erna

Koppla upp servon till TLC: erna
Koppla upp servon till TLC: erna

Anslut servonas ström och jord till Power and Ground på din brödbräda. Anslut styrkabeln till vänster servo (din vänster medan du vetter mot roboten.) Till stift 43 (kom ihåg att börja vid noll.) Och den högra servon till stift 44. Du måste ansluta ett 3.3K ohm motstånd från båda dessa stift till 5V eftersom TLC: erna är sänkor och kräver ström för att sjunka.

Steg 16: Du går nu in i programvarans och kodens land! (till största del)

Snälla ingen överträdelse …

Steg 17: Ladda ner TLC -biblioteket

Det senaste TLC -biblioteket för Arduino finns på deras Google -kodsida på: code.google.com/p/tlc5940arduino/. Hämta det senaste biblioteket och sätt in den uppackade mappen "Tlc5940" i [senaste mappen för Arduino -version]/hardware/ bibliotek/

Steg 18: Testa TLC: erna

Ladda min serieuttryckstestskiss som du kan ladda ner nedan. Ladda in den i Freeduino och skriv in några kommandon i den seriella bildskärmen för att testa att det hela fungerar. Här är listan över kommandon: behappybesadbemadfullmouthlinemouthoffmouthoffeyesbluegreeneyesredeyesblueeyesopenmouthtalkmouth (Det pratar inte, men det gör munrörelser)

Steg 19: Ladda ner det förbättrade Waveshield-biblioteket med hög kapacitet (något)

Ladda ner den nya förbättrade Adafruit -vågskölden från Google -kod (Tack Mr Fat16 för att du har gjort det här förbättrade biblioteket): code.google.com/p/wavehc/ Återigen fäst den uppackade mappen i maskinvaran/biblioteken/mappen.

Steg 20: Formatera och ladda dina SD -kort

Sätt i dina SD -kort i din dator och formatera dem med filtypen FAT eller FAT16. INTE FAT32! Ladda sedan dina SD -kort med talfiler från AT&T: s stora text till tal -webbplats www.research.att.com/~ttsweb/tts/demo.php#top Byt namn på filerna namnet på ordet som det talar i filen och stym av det filnamnet till något som innehåller 6 eller färre bokstäver. (Waveshield kan bara hantera filer vars filnamn är 6 tecken eller mindre.) Ex. Om du laddar ner filen för "Instructables.com" -> namnge den instrc.wavIf hej -> hello.wav

Steg 21: Testa ditt Waveshield

Ladda ner och kör min serie Waveshield -testskiss. Du bör kunna genom den seriella terminalen, skriva en mening och få Waveshield att spela den (så länge den har.wav -filer som den behöver). Det kommer att ta det första ordet, lägg till ".wav" och spela det innan du går vidare till det andra. Ex. Du skriver: Hej jag heter Bob Det kommer att spela: hello.wavmy.wavname.wavis.wavbob.wav Obs: Testa Waveshield på den andra Freeduino (den som inte är ansluten till TLC) eftersom både Waveshield och TLC använder pins13, 12, 11 och 10 (på Freeduino). Detta beror på att dessa stift har hårdvarustöd för ett gränssnitt som kallas Serial Peripheral Interface (SPI) som både TLC: erna och Waveshield kräver. Dessa pins kan inte delas mellan dem så vi måste länka två Freeduinos tillsammans med I2C -gränssnittet så att de kan skicka information mellan dem. Mer om detta i steg 22.

Steg 22: Koppla upp I2C -gränssnittet mellan båda Freeduinos

Koppla upp I2C -gränssnittet mellan båda freeduinoerna
Koppla upp I2C -gränssnittet mellan båda freeduinoerna

Vänta … Varför behöver vi koppla upp ett I2C -gränssnitt mellan två Freeduinos? Varför kan vi inte bara ansluta Waveshield och TLC: erna till en Freeduino? Här är varför: Både Waveshield och TLC använder stift 13, 12, 11 och 10 på Freeduino. Anledningen till detta är att dessa stift har hårdvarustöd för ett gränssnitt som kallas Serial Peripheral Interface (SPI) som både TLC: erna och Waveshield kräver och inte kan dela. Det betyder att vi måste länka två Freeduinos tillsammans med någon form av dataanslutning så att de båda fungerar tillsammans. Seriellt var inte ett alternativ eftersom min dator redan använde den för att kommunicera till Waveshield Freeduino, så efter lite intensiv Googling hittade jag en anmärkningsvärt bekväm och enkel kommunikationsmetod. I2C! Så här kopplar du upp gränssnittet: Anslut analog ingångsstift 4 på båda Freeduinos (detta är SDA eller seriell datalinje.) Anslut analog ingångsstift 5 på båda Freeduinos (detta är SCL- eller seriell klocklinje.) Anslut marken på båda Freeduinos (annars fungerar inte I2C -gränssnittet.) Anslut kabeln som du lödde i början av denna Instruerbara från motstånd R7 på Waveshield till analog ingångsstift 1 på TLC som styr Freeduino (denna kabel är för att kontrollera volymen på orden som talas av Waveshield och är inte en del av I2C -gränssnittet). (Se bild för förtydligande)

Steg 23: Aktivera I2C på TLC -styrande Freeduino

Aktivera I2C på Freeduino som du använde för att styra TLC: erna genom att ladda ner denna skiss. Den kommer att ta emot information om uttryck från Waveshield och kommer också att kontrollera volymen på talutmatningen på Waveshield Freeduino och kommer att flytta munnen för att simulera samtal beroende på volymen av ordet som talas. I2C definition: I2C är också känd som TWI (Two Wire Interface) det är ett enkelt sätt att ansluta flera enheter tillsammans (upp till 128!) Med två datakablar och en gemensam grund. Uppdatering: Jag har lagt till en blinkfunktion till Arduino Sketch. Roboten kommer nu att blinka med 2-11 sekunders mellanrum, precis som en människa.

Steg 24: Testa I2C -gränssnittet

Ladda ner denna skiss och ladda den på Waveshield Freeduino, den skickar orden "glad"; och sedan "besad;" över I2C -gränssnittet till TLC som styr Freeduino med två sekunders intervall, förhoppningsvis får roboten att gå från glad till ledsen med två sekunders intervall.

Steg 25: Din nästan klara! Bara lite kod att ladda …

Ladda den sista versionen av Waveshield Freeduino -koden. Det bör ta alla ord som du skriver in i seriell bildskärm och tala dem (så länge det har.wav -filerna för att göra det) och ska skicka uttryckskommandon som "behappy;" och "besad;" på Freeduino som styr TLC: erna via I2C-gränssnittet. Obs: Kommandolistan är densamma för den tidigare TLC-testkoden (se steg 17) förutom att du måste lägga till en semikolon till varje uttryckskommando. EX. Om du vill att roboten ska vara ledsen och säga "Jag känner mig ledsen" skriver du: besad; Jag känner mig ledsen. Uppdatering: Waveshield Sketch använder nu skiljetecken korrekt (dvs. punkter och kommatecken men notera utropstecken).

Steg 26: Montera allt på robothuvudlådan och du är klar

Montera allt på robothuvudlådan och du är klar!
Montera allt på robothuvudlådan och du är klar!
Montera allt på robothuvudlådan och du är klar!
Montera allt på robothuvudlådan och du är klar!

Montera alla Freeduinos på baksidan av lådan med trådar. Stäng den övre luckan på lådan med trådar och du är klar! Nu om det bara kunde kontrollera min e -post. Hmmmm ……. Tack för att du läste detta instruerbara! Kommentarer är alltid välkomna om vad som helst!

Andra pris i Arduino -tävlingen

Rekommenderad: