Innholdsfortegnelse:

Bygg et Arduino-drevet snakkende robothode !: 26 trinn (med bilder)
Bygg et Arduino-drevet snakkende robothode !: 26 trinn (med bilder)

Video: Bygg et Arduino-drevet snakkende robothode !: 26 trinn (med bilder)

Video: Bygg et Arduino-drevet snakkende robothode !: 26 trinn (med bilder)
Video: Массимо Банци: Как Arduino пробуждает воображение 2024, Juli
Anonim
Bygg et Arduino-drevet snakkende robothode!
Bygg et Arduino-drevet snakkende robothode!

Dette robothodet ble opprinnelig bygget som et slutten av året -prosjektet for min fysiske databehandlingstime, men i løpet av sommeren har det "lært" å snakke. Hodet drives av to Freeduinos, 3 TLC5940NT chips og et Adafruit Industries Wave Shield som finnes her: www.ladyada.net/make/waveshield/. Hodet er for tiden koblet til en datamaskin med to USB -kabler, en for strøm, en for å sende den serielle kommandoer om hva du skal si/emote. Når hodet mottar de tastede kommandoene om hva de skal si/emote, spiller det av de enkelte ordfilene for å lage en setning eller flere setninger. Det endrer også følelser i henhold til de følelsesmessige kommandoene som sendes fra datamaskinen. Dette robothodet er et grunnlag for mange mulige applikasjoner siden det kan si alt det har ordforråd for. Akkurat nå jobber jeg for tiden med å koble den til internett og få den til å sjekke og lese e -posten min via PHP -skript. Jeg vil oppdatere denne instruksen etter hvert som jeg går videre med det. Her er en video av det i aksjon: Hodet er fortsatt et pågående prosjekt, så eventuelle kommentarer til alt her er mer enn velkomne! Spesiell takk til Liz Arum for å hjelpe meg med alt! Oppdatering: På grunn av populær forespørsel har jeg nå lagt til en video av roboten som snakker og uttrykker seg! Nyt på fritiden!

Trinn 1: Kompiler alle materialer/deler/elektronikk

Dette robothodet bruker: 1 brødbrett (det må være mer enn 48 rader langt med et gap som løper nedover midten av brettet for å koble IC -chips. En strøm- og bakkebuss som går langs siden av brødbrettet er også en nødvendighet.) 2 RGB -lysdioder (for flerfargede øyne) Felles anode. $ 1,50 - 1,95 hver. 2 X $ 1,75 = $ 3,5036 Red Leds (for munnen) et sted rundt 40-50 cent prisklasse for hver. 36 X $.45 = $ 16.202 HXT900 Micro Servos (for å flytte øyenbrynene) Finnes på: https://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=662 2 X $ 3,65 = $ 7.303 TLC5940NT's (Til drive/lys opp alle lysdiodene og kontroller servoene) finner du på Digi-key https://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-17732-5-ND der de er priset til 4,28 dollar. 3 X $ 4,28 = $ 12,84 eller Mouser https://www.mouser.com/ProductDetail/Texas-Instruments/TLC5940NT/?qs=sGAEpiMZZMu8%252bGBKj8XSFEjwsgnt5grMZ49G/W4nR14%3d3-kondensatorer (1000 L støy fra (1000 ~ -støy) servoer) Berget fra en gammel datamaskinstrømforsyning. Free2 Original Freeduinos eller Arduinos. Freeduinos kan kjøpes på https://www.freeduino.org/buy.html De koster 23,99 stk. 2 X $ 23,99 = $ 47,98 Eller www.sparkfun.com/commerce/product_info.php for Arduinos. Pris til $ 29,95 hver. 2 X $ 29,95 = $ 59,90. Advarsel: Freeduinoene krever litt loddkunnskap, hvis du ikke vil lodde brettene dine, så kjøp en Arduino. Advarsel: Denne instruksjonsfilen krever litt loddeteknikk uansett, så hvorfor ikke begynne nå?:) 1 Waveshield fra Adafruit Industries (For å la roboten snakke) Kan kjøpes på: https://www.ladyada.net/make/waveshield/ Pris til $ 22 hver. Estimert total kostnad for alle høyteknologiske deler (ikke inkludert frakt) hvis du kjøpte Freeduinos i stedet for Arduinos er …. $ 109,82! Den totale kostnaden for alle høyteknologiske deler hvis du kjøpte Arduinos i stedet for Freeduinos er …. $ 121,74! Og når det gjelder de lavteknologiske materialene du trenger: En pappeske av samme størrelse som du vil at hodet ditt skal være. Et lite stykke pappTapeGlueBreadboard-kompatibel tråd (22 gauge, solid) Wire for festing av ting til andre ting En liten blokk av woodPower drill. Heat Krympeslange for å isolere de eksponerte ledningene og noe som blåser varm luft for å krympe den med (Varmluftspistol) Boksekutter.

Trinn 2: Monter og lodd alle kretskort og skjold

Monter og lodd alle kretskort og skjold
Monter og lodd alle kretskort og skjold

Lodd Freeduinos (som jeg gjorde), eller se bort fra denne linjen hvis du kjøpte en Arduino. Her er lenken til monteringsinstruksjonene for alle som kjøpte Freeduinos: mcukits.com/2009/03/12/assembling-the-freeduino-board-kit/Solder the Waveshields. Lady Ada har en veldig god guide for hvordan du gjør dette på nettstedet hennes på https://www.ladyada.net/make/waveshield/solder.htmlMerk: I tillegg til å lodde sammen Waveshield som beskrevet. Legg til en lang ledning loddet på motstanden R7 på siden nærmest forsterkerbrikken. Dette vil bli koblet til den analoge inngangen 1 på Freeduino som styrer lysdiodene til robothodet. (Ikke bekymre deg for hvor du skal koble den andre enden av ledningen for nå, det vil bli forklart i detalj senere.) Se bildet for avklaring om hvor du skal lodde ledningen.

Trinn 3: Design robothodet

Design robothodet
Design robothodet

Ta pappkassen du valgte å være hodet ditt, og merk av stedene du vil kutte ut for øynene og munnen ved å kutte papirbiter og legge dem på toppen av esken. Når du er fornøyd med arrangementet, kan du gå videre til skjæreutstyr.

Trinn 4: Design robothodet: Skjære øynene ut

Design robothodet ditt: Skjære øynene ut
Design robothodet ditt: Skjære øynene ut

Tape eller merk brikkene til de endelige posisjonene på esken og skjær dem ut. (Behold papiret du brukte for å representere munnen, du trenger det senere.)

Trinn 5: Design robothodet: Lag en LED -matrise for munnen

Design robothodet ditt: Lag en LED -matrise for munnen
Design robothodet ditt: Lag en LED -matrise for munnen
Design robothodet ditt: Lag en LED -matrise for munnen
Design robothodet ditt: Lag en LED -matrise for munnen
Design robothodet ditt: Lag en LED -matrise for munnen
Design robothodet ditt: Lag en LED -matrise for munnen

Hver LED i munnen lyser uavhengig. For å gjøre det må du lage en LED -matrise for munnen. (For en ide om hva som er en LED -matrise, se bilde 1) Ta papirbiten som skal være munnen, og del opp papiret i 36 deler (9 X 4) med blyant og linjal, En for hver LED i rutenettet. Etter at du har gjort det, teip papirstykket på et stykke tre og vær forsiktig så du ikke borer gjennom gulvet (Dette har skjedd med meg, så jeg anbefaler å bore på toppen av en pappeske.) Bor hull der linjene krysser hverandre med en 1/4 tommers borekrone, slik at lysdiodene dine sitter godt. Størrelsen på borekronen er åpenbart avhengig av størrelsen på lysdiodene dine, så bruk en mindre borekrone for mindre lysdioder. (Begynn i det små og jobbe deg opp!) Se på bildene 2 og 3 for avklaring av boringen/merkingen.

Trinn 6: Making the Mouth LED Matrix: Lodding i LEDene

Making the Mouth LED Matrix: Lodding i lysdiodene
Making the Mouth LED Matrix: Lodding i lysdiodene
Making the Mouth LED Matrix: Lodding i lysdiodene
Making the Mouth LED Matrix: Lodding i lysdiodene
Making the Mouth LED Matrix: Lodding i lysdiodene
Making the Mouth LED Matrix: Lodding i lysdiodene

Før du gjør noe annet, må du kontrollere at alle lysdiodene dine ikke er utbrente eller svake. Du kan gjøre dette ved å finne et lite 3V knappebatteri og holde bena på lysdiodene til batteriet (Husk at det lange benet er positivt, det korte negative). Sett deretter inn lysdiodene én rad om gangen i den utborede jiggen. Brett de lange bena slik at de er parallelle med hverandre og lodd dem inn, rad for rad (se bildene 2 og 3). Lodd sammen de lange benene, siden du skal bruke TLC -er for å kontrollere disse lysdiodene, og TLC -ene er kraftvasker. Dette betyr at de styrer lysdiodene ved å endre spenningsforskjellen mellom strøm og jord.

Trinn 7: Gjør munn -LED -matrisen: Loddingskontrolltråder på lysdiodene

Making the Mouth LED Matrix: Loddingskontrolltråder på lysdiodene
Making the Mouth LED Matrix: Loddingskontrolltråder på lysdiodene
Making the Mouth LED Matrix: Loddestyringskabler på lysdiodene
Making the Mouth LED Matrix: Loddestyringskabler på lysdiodene
Making the Mouth LED Matrix: Loddingskontrolltråder på lysdiodene
Making the Mouth LED Matrix: Loddingskontrolltråder på lysdiodene

Lodde lange ledninger som kan passe inn i et brødbrett (22 gauge) på alle LED -katodeledningene. Disse ledningene vil kontrollere lysdiodene. Sørg deretter for å isolere alle de enkelte ledningene med elektrisk tape (ikke morsomt) eller krympeslange (anbefalt). I tillegg til loddingstrådene på alle LED -katodeledningene, lodd 2 eller 3 ledninger på anodedelen av nettet (Delen som er loddet sammen). Disse ledningene vil fungere som strømforsyninger som fordeler strøm over hele nettet. De blir koblet til 5V.

Trinn 8: Installer øyenbryn-bevegelige servoer inne i robothodet

Installer øyenbryn-bevegelige servoer inne i robothodet
Installer øyenbryn-bevegelige servoer inne i robothodet
Installer øyenbryn-bevegelige servoer inne i robothodet
Installer øyenbryn-bevegelige servoer inne i robothodet
Installer øyenbryn-bevegelige servoer inne i robothodet
Installer øyenbryn-bevegelige servoer inne i robothodet

Før du installerer miniservoene inne i robothodet, limer du en lang sterk (men fortsatt bøybar) ledning på servoarmen. Denne ledningen vil gå opp på innsiden av roboten din, komme ut av toppen og krype tilbake for å flytte øyenbrynene. (Se bildene for avklaring.) Ta miniservoene dine (med ledningene festet) og lim dem fast på innsiden av robothodet, rett under øynene, og pass på at ledningene kan bevege seg fra side til side.

Trinn 9: Installer rutenettet inne i robothodet

Installer rutenettet inne i robothodet
Installer rutenettet inne i robothodet
Installer rutenettet inne i robothodet
Installer rutenettet inne i robothodet

Varm lim rutenettet til et stykke papp du har boret hull i og varmt lim på innsiden av robothodet.

Trinn 10: Lodd RGB -lysdiodene

Lodd RGB -lysdiodene
Lodd RGB -lysdiodene

Lodd den vanlige anoden RGB LED føre til en lang ledning. Deretter loddes en farget ledning (rød, grønn, blå) til RGB LED -ledningen som tilsvarer den (Fargen på en individuell ledning kan bli funnet ved å bruke et 3V knappebatteri for å tenne hver LED -ledning etter tur). Ikke glem å isolere ledningene!

Trinn 11: Installer RGB -lysdiodene inne i robothodet

Installer RGB -lysdiodene inne i robothodet
Installer RGB -lysdiodene inne i robothodet
Installer RGB -lysdiodene inne i robothodet
Installer RGB -lysdiodene inne i robothodet

Installer lysdiodene inne i robothodet ved å sette dem der du vil ha dem, og deretter brette og teipe ledningene til innsiden av esken. Å sette et sugerør under lysdioden bidrar også til å holde det på plass. (Se bilder for avklaring)

Trinn 12: Fullfør å lage øynene

Ferdig med å lage øynene
Ferdig med å lage øynene
Ferdig med å lage øynene
Ferdig med å lage øynene

Lim et firkantet stykke papir som er litt større enn hullet du har kuttet ut. Lim det over hullet for å dekke til hullet og lysdioden bak det. Du vil kanskje også tape noen ark med papirhåndkle på innsiden av øyehullene for å spre lyset fra lysdiodene.

Trinn 13: Koble opp TLC5940NT -brikkene

Koble opp TLC5940NT -brikkene
Koble opp TLC5940NT -brikkene
Koble opp TLC5940NT -brikkene
Koble opp TLC5940NT -brikkene
Koble opp TLC5940NT -brikkene
Koble opp TLC5940NT -brikkene

I dette trinnet må du kjede 3 TLC5940NT sammen for å kjøre totalt 42 LED -utganger (36 for munnen, 6 for de flerfargede øynene). Folkene på Arduino -lekeplassen har en veldig godt dokumentert oppkoblingsguide for hvordan du kan tusenfryd kjede 3 TLC5940NT sammen. Her er den i komprimert form: Arduino pin 13 -> SCLK (TLC pin 25) Arduino pin 11 -> SIN (TLC pin26) Arduino pin 10 -> Blank (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 | SIND (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 motstand mot bakken … | 10 19 | 5V… | 11 18 | GSCLK (Ard pin 3)… | 12 17 | SOUT (koblet til SIN for neste TLC i Daisychain) … | 13 16 | XERR ut 14 | 14 15 | LED Out 15 ----------------------------- Merk: vi er Daisychaining 3 TLCs så SIN for den første TLC er koblet til Arduino pinne 11. Resten av TLC -ene har sin SIN koblet til SUT -en på TLC -en foran. Alle BLANK -ene er koblet til hverandre (BLANK på TLC1 er koblet til BLANK på TLC2 osv …) Alle XLAT -ene er tilkoblet. Alle SCLK -er er tilkoblet. Alle GSCLK -ene er tilkoblet. Alle XERR -ene er tilkoblet. Plugg også inn 2 eller 3 elektrolytiske kondensatorer til brødbrettets bakke og effekt (negativt når kondensatoren går til bakken, positiv til 5V). Mengden ladning den er, er ikke så viktig, men den bør vurderes til 5V eller høyere. Disse kondensatorene vil fungere som et filter og filtrere ut alle feilene (støy) i spenningsforsyningen som TLC -ene produserer. Dette er viktig fordi Waveshield som vi skal bruke deler samme grunn som TLC -ene og VIRKELIG ikke liker elektrisk støy (det lager en merkelig klikkelyd).

Trinn 14: Koble LED -lampene til TLC -ene

Koble LED -lampene til TLC -ene
Koble LED -lampene til TLC -ene
Koble LED -lampene til TLC -ene
Koble LED -lampene til TLC -ene

Koble alle lysdiodene til TLC-ene, rad for rad, begynn med den i øverste venstre hjørne og gå videre til LED-en direkte til høyre. Her er et rutenett med alle LED TLC -pinnene inkludert for din bekvemmelighet. Se bilder for avklaring. Munn: 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 Nå er det også en god tid å koble RGB LED -øynene til TLC -ene, så her er pin -outs … RGB LED -øyne: Venstre: RGB Høyre: RGB 36 40 38 37 41 39 Ikke glem å koble de universelle strømledningene for The Grid og RGB LED til 5V!

Trinn 15: Koble servoene til TLC -ene

Koble servoene til TLC -ene
Koble servoene til TLC -ene

Koble strømmen og bakken til servoene til strøm og jord på brødbrettet. Koble kontrolltråden til venstre servo (venstre mens du vender mot roboten.) Til pinne 43 (husk start på null.) Og høyre servo til pinne 44. Du må koble til en 3.3K ohm motstand fra begge disse pinnene til 5V fordi TLC -er er vasker og krever strøm for å synke.

Trinn 16: Du går nå inn i land med programvare og kode! (for det meste)

Vennligst ingen overtredelse …

Trinn 17: Last ned TLC -biblioteket

Det siste TLC -biblioteket for Arduino finner du på deres Google -kodeside på: code.google.com/p/tlc5940arduino/. Last ned det nyeste biblioteket og sett inn den utpakkede mappen "Tlc5940" i [siste Arduino -versjonsmappen]/hardware/ biblioteker/

Trinn 18: Test TLC -ene

Last inn min serieuttrykkstestskisse som du kan laste ned nedenfor. Last den inn i Freeduino og skriv inn noen kommandoer i den serielle skjermen for å teste at alt fungerer. Her er listen over kommandoer: behappybesadbemadfullmouthlinemouthoffmouthoffeyesbluegreeneyesredeyesblueeyesopenmouthtalkmouth (Den snakker ikke, men den gjør munnbevegelser)

Trinn 19: Last ned det forbedrede Waveshield-biblioteket med høy kapasitet (noe)

Last ned den nye forbedrede Adafruit -waveshielden fra Google -koden (Takk, Mr Fat16 for at du gjorde dette forbedrede biblioteket): code.google.com/p/wavehc/ Sett igjen den utpakkede mappen i maskinvaren/bibliotekene/mappen.

Trinn 20: Formater og last inn SD -kortene dine

Sett inn SD -kortene i datamaskinen og formater dem med FAT- eller FAT16 -filtypen. IKKE FAT32! Last deretter SD -kortene dine med talefiler fra AT & Ts flotte tekst til tale -nettsted www.research.att.com/~ttsweb/tts/demo.php#top Gi filene navn til navnet det snakker i filen, og kutt av filnavnet til noe som inneholder 6 eller færre bokstaver. (Waveshield kan bare håndtere filer hvis filnavn er 6 tegn eller mindre.) Eks. Hvis du laster ned filen for "Instructables.com" -> name it instrc.wavIf hello -> hello.wav

Trinn 21: Test Waveshield

Last ned og kjør min serielle Waveshield -testskisse. Du bør kunne gjennom den serielle terminalen, skrive inn en setning og få Waveshield til å spille den (så lenge den har.wav -filene den trenger). Det tar det første ordet, legger til ".wav" og spiller det før du går videre til det andre. Eks. Du skriver: Hei, jeg heter Bob Det vil spille: hello.wavmy.wavname.wavis.wavbob.wav Merknad: Test Waveshield på den andre Freeduino (den som ikke er koblet til TLC) fordi både Waveshield og TLC bruker pins13, 12, 11 og 10 (på Freeduino). Dette er fordi disse pinnene har maskinvarestøtte for et grensesnitt som kalles Serial Peripheral Interface (SPI) som både TLC -er og Waveshield krever. Disse pinnene kan ikke deles mellom dem, så vi må koble to Freeduinos sammen ved hjelp av I2C -grensesnittet slik at de kan sende informasjon mellom dem. Mer om dette i trinn 22.

Trinn 22: Koble opp I2C -grensesnittet mellom begge freeduinoene

Koble opp I2C -grensesnittet mellom begge freeduinoene
Koble opp I2C -grensesnittet mellom begge freeduinoene

Vent … Hvorfor må vi koble til et I2C -grensesnitt mellom to Freeduinos? Hvorfor kan vi ikke bare koble Waveshield og TLC -ene til en Freeduino? Her er hvorfor: Både Waveshield og TLC bruker pinne 13, 12, 11 og 10 på Freeduino. Grunnen til dette er at disse pinnene har maskinvarestøtte for et grensesnitt som kalles Serial Peripheral Interface (SPI) som både TLC -er og Waveshield krever og ikke kan dele. Dette betyr at vi må koble to Freeduinos sammen ved hjelp av en slags datatilkobling slik at de begge jobber sammen. Seriell var ikke et alternativ fordi datamaskinen min allerede brukte den til å kommunisere til Waveshield Freeduino, så etter litt intens Googling fant jeg en utrolig praktisk og enkel kommunikasjonsmetode. I2C! Slik kobler du til grensesnittet: Koble til analog inngangspinne 4 på begge Freeduinos (Dette er SDA eller seriell datalinje.) Koble til analog inngangspinne 5 på begge Freeduinos (Dette er SCL- eller seriell klokkelinje.) Koble bakken på begge Freeduinos (Ellers fungerer ikke I2C -grensesnittet.) Koble ledningen du loddet i begynnelsen av denne Instruerbare fra motstand R7 på Waveshield til analog inngangspinne 1 på TLC som styrer Freeduino (Denne ledningen er for å kontrollere volumet på ordene som er sagt av Waveshield og ikke er en del av I2C -grensesnittet). (Se bildet for avklaring)

Trinn 23: Aktiver I2C på TLC -kontrollerende Freeduino

Aktiver I2C på Freeduino som du brukte til å kontrollere TLC -ene ved å laste ned denne skissen. Den vil motta informasjon om uttrykk fra Waveshield og vil også kontrollere volumet på taleutgangen på Waveshield Freeduino og vil bevege munnen for å simulere snakk avhengig av volumet til ordet som blir sagt. I2C definisjon: I2C er også kjent som TWI (Two Wire Interface) det er en enkel måte å koble flere enheter sammen (opptil 128!) Med to datakabler og en felles grunn. Oppdatering: Jeg har lagt til en blinkfunksjon i Arduino Sketch. Roboten vil nå blinke med 2-11 sekunders mellomrom, akkurat som et menneske.

Trinn 24: Test I2C -grensesnittet

Last ned denne skissen og legg den på Waveshield Freeduino, den sender ordene "lykkelig;" og deretter "besad;" over I2C -grensesnittet til TLC som styrer Freeduino med to sekunders intervaller, forhåpentligvis får roboten til å gå fra glad til trist med to sekunders mellomrom.

Trinn 25: Du er nesten ferdig! Bare litt kode å laste …

Last den siste versjonen av Waveshield Freeduino -koden. Det bør ta noen ord du skriver inn i den serielle skjermen og snakke dem (så lenge den har.wav -filene til å gjøre det) og bør sende uttrykkskommandoer som "behappy;" og "besad;" på Freeduino som styrer TLC-ene via I2C-grensesnittet. Merk: Kommandolisten er den samme for den tidligere TLC-testkoden (se trinn 17) bortsett fra at du må legge til et semikolon i hver uttrykkskommando. Eks. Hvis du vil at roboten skal være trist og si "Jeg føler meg trist", skriver du: besad; Jeg føler meg trist. Oppdatering: Waveshield -skissen bruker nå skilletegn på riktig måte (dvs. punktum og kommaer, men merk utropstegn).

Trinn 26: Monter alt på Robot Head Box og du er ferdig

Monter alt på Robot Head Box og du er ferdig!
Monter alt på Robot Head Box og du er ferdig!
Monter alt på Robot Head Box og du er ferdig!
Monter alt på Robot Head Box og du er ferdig!

Monter alle Freeduinos på baksiden av esken med ledninger. Lukk den øverste klaffen på esken med ledninger, og du er ferdig! Nå hvis det bare kunne sjekke e -posten min. Hmmmm ……. Takk for at du leser denne Instructable! Kommentarer er alltid velkomne om hva som helst!

Andre pris i Arduino -konkurransen

Anbefalt: