Bländande Fundraising tecken: 140 watt av Internet ansluten lysdioder (6 / 9 steg)
Steg 6: Arduino
Arduinoen styr tecknet. Eftersom tecknet är normalt placerad någonstans där det inte har tillgång till Wi-Fi, arduino lyssnar efter kommandon i XBee radion och tänds lamporna på lämpligt sätt. Det finns mycket lite smarts på skylt.
Arduino, Xbee sköld & XBee Router
Läs följetong antalen av din Xbee radioapparater och skriva ner det - du behöver det senare, och det är svårt att läsa när den är monterad. Ta din XBee sköld och löda Xbee sidhuvuden och arduino stapelbara headers till den. Jag tycker att det fungerar bra för att sätta en av Xbee radioapparater i uttagen medan du löda i för att få dem uppradade väl. Likaså om du har en annan arduino shield liggande, kan du använda som för att se till att arduino stiften är uppradade väl. Kontrollera att omkopplaren på Xbee skölden är inställd DLINE för nu. Om det är UART, kommer du inte kunna programmera din arduino igenom den USB kabeltelgram. Montera din Arduino Mega i styrelsen som du monterat på framsidan med ett par standoffs och 8 skruvar. Sätta den Xbee skölden på arduino. Notera att några av stiften inte har ett matchande uttaget på Mega. Skölden var gjort för en Uno R3 och Sainsmart Mega har en äldre pin layout. Du kan antingen ignorera de som inte matchar (du inte behöver dem), eller klippa dem--ditt val. Nu Lägg din Xbee radio i sin sockel på skölden. Om Xbee är färska ur lådan, standardkonfigurationen (Router på med standardinställningar) kommer att fungera korrekt.
Wire Arduino
För att komma åt arduino enkelt, använde jag en annan uppsättning Arduino stapelbara headers som jag kopplade in i skölden. Så, om du behöver ta ut arduino av någon anledning, kan du koppla alla stiften utan blanda dem. Varje segment kontrolleras av en enda PWM stift på arduino. Eftersom det finns 8 segment, behöver du 8 PWMs, så du måste använda en Arduino Mega. Du bör ha 8 vita kablarna från femtobucks. Börjar med en från segment 1, klipp till längden och band till slut in den i DIO2 (du kan inte använda 0 och 1, som är den seriella porten). Sätta kontroll tråd från segment 2 i DIO3, etc. Segment 8 bör hamna i DIO9. Jag fann att jag var tvungen att böja huvudet så att det var tillräckligt fritt utrymme för den arduino, sköld, XBee och ledningar att passa in i röret.
Arduinoen accepterar ett brett utbud av spänningar. Du kan ansluta den Arduino Vin pin (inte 5V) till den vita kabeln av power bussen och precis som femtobucks. Anslut en Arduino's ground Pins till den svarta kabeln för power bussen. Löda och tejpa de anslutningarna.
När du är säker på att du har fått Arduino ledningar rätt, Använd alternativt superlim att permanent fästa kontroll och makt ledningar till arduino headers. Bara se upp--ångorna från superlim kan göra den klar plast på lysdioderna haze över--sätta en fläkt på limmet medan det torkning för att skingra ångorna.
Programmera Arduino
Jag antar att du har arbetat med Arduino. Om du inte har, rekommenderar jag att du spendera lite tid med en av de många bra att få igång tutorials.
Med befogenhet att underteckna bortkopplad, Anslut din Arduino till datorn med en USB-kabel. Kontrollera att omkopplaren på XBee skölden är inställd på DLINE (så det inte är ansluten till den seriella porten). Använda Arduino IDE att ladda ner och kör SignArduino koden från min GitHub databasen. Denna kod är ganska grundläggande--jag planerar att förbättra under de kommande månaderna.
Prova det.
Koppla bort USB-kabeln, växla XBee sköld tillbaka till UART, och driva upp skylten. Arduino kommer att göra en makt på självtest, och vända på varje segment i sekvens, sedan stänga av dem alla.
Du kan försöka ute den seriell kommunikationen också. Koppla bort Vin kabeln från power bussen, sätta omkopplaren för DLINE och koppla in USB-kabeln. Driva upp skylten och starta den seriella monitorn i Arduino IDE. Typ "+111111111-". Alla segment bör ljus på lägsta ljusstyrkan. Typ "+99999999-"--alla bör gå på full ljusstyrka. Typ "+ 00000000-"--som bör stänga av dem alla. Den "+" och "-" tecken fungerar som ett enkelt protokoll vakt, och det måste vara 8 siffror, "0" till "9" The Arduino ger ett felmeddelande om den inte ser detta, och säger "Accepterade" när en rätt sekvens kommer genom.
Glöm inte att koppla bort USB-kabeln, växla XBee sköld tillbaka till UART och återanslut Vin raden när du är klar.
Möjliga förbättringar
Designen möjliggör intensiteten i varje segment kontrolleras individuellt, vilket är alltför flexibelt. Med vissa förbättringar av elektronik, kan du minska antalet PWMs, och tillåta användning av en billigare Arduino. Även jag hade ursprungligen tänkt att ha en photosensor på Arduino för tecknet till dim baserat på omgivande förhållanden, men jag valde en enklare metod för att få sak ut genom dörren. Jag skulle vilja ha en bättre svarssträng att kommandon, och jag skulle vilja hämta status för Xbee anslutningen och returnera den till Raspberry Pi.