Arduino animatörerna-gör din awesome kostymer mer awesome! (4 / 15 steg)
Steg 4: Att göra anslutningar-motorer, lysdioder och transistorer
In- och utgångar
Nu måste vi ansluta några enheter som servon, sensorer och LED-lampor till vår controller. Registeransvarige har in- och utgångar. Saker som sensorer och växlar är inmatningsenheter, medan servon, lysdioder och motorerna är utdataenheter. Ingångar och utgångar är både analog och digital-en digital ingång är som en switch, så det är antingen på eller av. Analoga ingångar är variabel, det är mer som en dimmer som ger dig ett värdeintervall.
Digitala utgångar är liknande-om utgångsstiftet controller är hög så är det. Om det har låg, är det. Det är bra om du vill aktivera en motor eller LED. Om du vill ändra ljusstyrkan i en LED eller göra ett servo motor flytta då du vill göra controller produktionen stift en analog utgång. Detta görs med hjälp av PWM (pulsewidth modulering.) PWM låter helt enkelt den registeransvarige att fejka en analog spänning utgång genom att ange utgångsstiftet hög och sedan ange utgångsstiftet låg inom några mikrosekunder eller millisekunder av varandra. Om du puls pin HIGH lika lång tid du puls det låg skulle du få en genomsnittliga spänning av halva den totala spänningen så utgångsstiftet skulle ge dig 1.6V istället för 3.3V. Mängden tid PIN-koden förblir hög kallas pulsewidth. Förhållandet mellan tid för stift att gå från låg till hög till låg kallas duty cycle. Om du förkorta tiden PIN-koden förblir högt i förhållande till hur länge den håller sig låg sänks du effektivt pin utspänningen. Det verkligen låter krångligare än det är men här kommer komma riktigt händig senare när du vill göra lysdioder dunkel eller göra ett servo flytta. Lyckligtvis de flesta av denna komplexa saker är gjort för dig i Arduino kodbibliotek men det är fortfarande riktigt bra att veta.
Sensorer
Det finns alla typer av sensorer-krökning sensorer, force känsliga motstånd, accelerometrar, potentiometrar, joysticks, etc.
Dessa analoga sensorer ändra deras utspänning enligt hur du använder dem. I exemplen vi använder knappen ska växlar till sätta saker på och stänga och vi använda joysticks (potentiometrar), böja sensorer och accelerometrar göra servon flytta.
När du designar en animatronic system för costuming försöka jag matcha typ av sensor som används med en specifik kropp rörelse. Tycker om hur den person som bär kostym kommer att använda den. Bend sensorer är bra om du vill göra en LED dim eller servo flytta genom att böja fingret. För ännu mer kontroll kan jag placera en liten joystick på fingerspetsen och använda det för att göra ett servo flytta. För ett huvud spårningssystem som gör servon följa din huvud rörelse jag använder en accelerometer (från en Wii nunchuck) och jag använder fingertoppen växlar för att utlösa ljudeffekter. Du ser hur dessa fungerar i exemplen.
Sparkfun har en bra storlek momentan tryckknapp switch som är bakbord friendly-
http://www.Sparkfun.com/products/9190
Här är den mindre versionen-
http://www.Sparkfun.com/products/97
Alla sensorer använder vi är anslutna till Arduino input stiften. En potentiometer är en enhet som ofta används i ett program som en stereo volym knopp-det är en typ av variabel resistor. Om du anger potentiometer med 3.3V när du vrider ratten utspänningen kommer att variera från 0 till 3.3V. En joystick är helt enkelt två potentiometrar i en gemensam bostad-en för X-axeln och för Y-axeln.
Sparkfun har en 10K potentiometer-
http://www.Sparkfun.com/products/9939
De har också ett par små joysticks-
http://www.Sparkfun.com/products/9032
http://www.Sparkfun.com/products/9426
En böj sensor är ett motstånd som ändrar dess motstånd värde enligt hur mycket du böja den. Genom att lägga till en annan resistor och skapa en spänningsavdelare, kan vi ändra den tillverkade spänningen av bend sensorn att matcha graden av böj. Den enda riktiga nackdelen att böja sensorer är att de inte har den brett utbud med en potentiometer.
Sparkfun säljer en böj sensor här-
http://www.Sparkfun.com/products/8606
Accelerometrar arbete genom att känna en förändring i acceleration och sedan de ändra sin produktion i förhållande till förändring i acceleration. När du lutar en accelerometer mäter den acceleration beroende på tyngdkraften - ju mer du lutar det ju större förändringen i produktionen. Accelerometrar som vanligen används i video spelenheter och mobiltelefoner.
En Wii nunchuck har en 3-axlig accelerometer, joystick och två tryckknappar för $20.
Motorer
Servon
Hobby servon är små inriktade motorer som har ett kretskort och potentiometer att styra sin rotation. Detta gör dem för att kunna flytta till en exakt position i förhållande till signalens inmatningssensorn. De flesta servon kan flytta nästan 180 grader och vissa kan även göra flera rotationer samt kontinuerlig rotation. Servon har tre sladdar jord, makt och signal. Signal kabeln (vanligtvis gul eller vit) är ansluten till Arduino utgångsstiftet. Makt och slipade kablar är anslutna till en separat strömkälla, oftast, var som helst från 4.8V till 6V. Anledningen till att ansluta servon till sin egen strömförsörjning är att motorer genererar en hel del elektriska störningar, vilket kan orsaka problem eller en stamning effekt i deras rörelse.
Om du har en inmatningssensorn som genererar en inspänning mellan 0-3.3V Arduino tar den analog spänningen och tilldelar den ett värde från 0-1023 använder en analog till digital omvandlare (ADC). Koden på Arduino berättar sedan servo hur långt för att flytta baseras på det konverterade värdet. Så om din sensor utgångar 1.65V sedan du skulle få en läsning av 511 och din servo skulle flytta hälften av dess rotation. Många Arduino styrelser fungera på 5V så samma sensor på samma position skulle läsa 2.5V och servo skulle fortfarande roterar halvvägs. En kontinuerlig rotation servo skulle rotera i en riktning, stoppa som sensorn gav en 1.65V läsa och sedan vända riktning du orsakas skada sensorn att höja spänningen.
Kontrollera en servo görs genom PWM. Du skickar en skickar en puls till servo på servo signal linje var 20 millisekunder. Pulsewidth berättar servo vilken ståndpunkt att flytta till. De flesta servon verka inom 1 till 2 millisekunders puls så en 1 millisekund puls berättar servo flyttar till 0 graders position och en 2 millisekunders puls berättar servo flyttar till 180 graders position. Varje puls mellan 1 och 2 millisekunder berättar servo att flytta till en plats som står i proportion mellan 0 och 180 grader.
Jag får alla mina servon här-
http://www.servocity.com
DC-motorer
Till skillnad från de flesta servomotorer används DC motorer bäst när du behöver kontinuerlig rotation, särskilt när du vilja höga varvtal. Eftersom DC-motorer kan dra en hel del makt är de anslutna till Arduino produktionen stift med en transistor eller en PWM varvtalsregulator.
Pololu säljer ett stort utbud av små DC motorer-
http://www.Pololu.com/catalog/Category/22
Stegmotorer
Jag brukar använda inte stegmotorer i mina animatronic projekt (åtminstone inte ännu!) men jag kände att de är värda att nämna. Stegmotorer möjliggör exakt positionering samt kontinuerlig rotation och varvtalsreglering. Nackdelen med dem är att de kräver en hel del ström och de är oftast betydligt större och tyngre än en servo lika vridmoment betyg. Små stegmotorer kan räddas från gamla skrivare och skannrar. Till skillnad från DC motorer stegmotorer har måste flera individuella spolar inuti som aktiveras i rätt följd för att få motorn att gå. Arduino handkontrollen kan driva stegmotorer med en viss drivrutin chip eller transistor array som kan energigivande varje individuella spolen i motorn. Ta en titt i avsnittet Referens för mer information om steppers.
Lysdioder
Små lysdioder är ganska enkla att ansluta till Arduino-kom bara ihåg att använda ett motstånd mellan utgångsstiftet Arduino och resistor katoden för att begränsa strömflödet. Du kan sätta ett motstånd på antingen anod eller katod av LED-Hursomhelst fungerar. De flesta av små 3.3V lysdioder kommer att ha en framåt ström på runt 20mA så ett motstånd värde runt 100 ohm fungerar ganska bra. För exakt motstånd värde beräkningar har en titt här-
http://LED.linear1.org/1led.Wiz
För min Iron Man repulsor gjorde jag en liten 2" diameter LED styrelse som har 24 PLCC-2 lysdioder. Du kan få den kala PCB här-
http://www.batchpcb.com/index.php/Products/41872
Styrelsen använder 24 1206 paketet SMD 100 Ohm motstånd-
http://US.element-14.com/Vishay-Dale/crcw1206100rjnea/resistor-Thick-film-100ohm-250MW/DP/59M6948
Jag köper ofta PLCC-2 super ljusa lysdioder på eBay på bra priser-
http://Stores.ebay.com/bestshop2008hk
Hög effekt Luxeon LED har en mycket högre märkström och fungerar bäst med någon typ av konstant strömkällan för att driva dem (det finns flera instructables på detta.) En 1 Watt Luxeon LED har en framåt ström på 350mA så du inte kan ansluta den direkt till en Arduino utgångsstiftet. Ungefär som en DC-motor måste du ansluta den till produktionen stift med en transistor.
Sparkfun säljer Luxeon led och en konstant nuvarande drivrutin-
http://www.Sparkfun.com/search/results?term=Luxeon&What=Products
http://www.Sparkfun.com/products/9642
Transistorer
En transistor är i grunden bara en elektronisk switch. Varje Arduino utgångsstiftet är begränsad till 40mA avgiven ström så vi använder en viss typ av transistorn kallas en NPN Darlington transistor till vända på hög aktuella enheter. Dessa transistorer har tre stift - samlare, sändaren och bas. Den bas pin är ansluten till Arduino produktionen stift med en 1K ohms motstånd. Collector PIN-koden är kopplad till hög effekt enheten och emitter pin är ansluten till marken. När utgångsstiftet Arduino är hög transistorn tänds och tillåter el för att slutföra en krets.
För program som inte har makt krav över 1 Amp jag konstruerade en liten transistor styrelse som ansluter till digital ut stift 10-13 med ribbon kabel och två pin åtta IDC kontakter. Detta använder fyra SOT-23 paketet SMD transistorer och fyra 1206 paket 1 k ohms SMD motstånd. Styrelsen är verkligen lätt att löda.
Transistor styrelsen PCB-
http://batchpcb.com/index.php/Products/41936
SOT-23 NPN Darlington transistorer 4 ea-
http://US.element-14.com/Fairchild-Semiconductor/mmbt6427/Bipolar-transistor-NPN-40V/DP/58K1891
1206 SMD 1K Ohm motstånd 4 ea -
http://US.element-14.com/yageo/rc1206jr-071kl/resistor-Thick-film-1kOhm-250MW/DP/68R0298
2 x 4 pin IDC connector 2ea-
http://www.surplusgizmos.com/8-pin-2x4-IDC-Ribbon-Cable-COnnector_p_1879.html
För laster upp till 5A använder jag en spets 120 transistor i TO-220-paketet. Dessa är bra för små DC motorer och servon. Använda en 1K ohms motstånd för att ansluta transistor bas pin till Arduino produktionen stift.
Jag köpa brukar spets 120 transistorer från min lokala Radio Shack. De är mycket lätt att få online också.
Strömförsörjning
För att driva Arduino servo styrelse och servon du behöver två separata power källor - en enda cell LiPo batteri för handkontrollen och en liten 4.8V-6V batteripack (4AA batterier fungerar alldeles utmärkt) till makt servon. Servo styrelsen har ett extra uttag som ger ström från cellen LiPo till makten låg spänning enheter som lysdioder.