Stap 6: Arduino
De Arduino bepaalt het teken. Aangezien het teken wordt meestal geplaatst ergens waar het niet over Wi-Fi beschikken, de arduino luistert voor opdrachten via de radio XBee en brandt de verlichting op de juiste manier. Er is zeer weinig smarts op het uithangbord.
XBee Router, Arduino en Xbee Shield
Lees het serienummer uit een van uw Xbee Radio's en schrijf het op - u zult het later nodig hebben, en zijn moeilijk te lezen eens het wordt gemonteerd. Neem uw XBee schild en soldeer de Xbee headers en de stapelbare headers van de arduino ernaar. Ik vind dat het werkt goed om één van de Xbee Radio's in de sockets terwijl u hen in soldeer te krijgen goed opgesteld. Ook hebt u een andere arduino schild rondslingeren, kunt u dat om ervoor te zorgen dat de pinnen van de arduino goed staan opgesteld. Zorg ervoor dat de schakelaar op de Xbee schild is ingesteld op DLINE voor nu. Als het ingesteld op UART, zal u niet kunnen programmeren van de arduino via de USB-kabel. Monteer uw Arduino Mega op het bord die u aan de voorzijde met een paar koelbloedig en 8 schroeven gemonteerd. Zet het Xbee schild op de arduino. Merk op dat sommige van de pinnen niet een bijpassende socket op de Mega hebben. Het schild is gemaakt voor een Uno R3 en de Sainsmart Mega heeft een oudere pin lay-out. U kunt ofwel het negeren van degenen die niet overeenkomen met (u hoeft geen hen), of ze afgesneden--uw keuze. Nu, zetten uw Xbee radio in de aansluiting op het schild. Als de Xbee vers uit de doos is, zal de standaardconfiguratie (Router AT met standaardinstellingen) correct werken.
De Arduino draad
Om toegang tot de arduino gemakkelijk, gebruikte ik een andere set voor Arduino stapelbare headers die ik op het schild aangesloten. Op die manier als u wilt nemen uit de arduino voor sommige reden, kunt u alle pins loskoppelen zonder hen te mengen. Elk segment wordt gecontroleerd door een enkele PWM pin op de arduino. Omdat er 8 segmenten, moet u 8 PWMs, dus je moet een Arduino Mega gebruiken. Moet je 8 witte draden leiden uit de femtobucks. Beginnen met degene uit segment 1, gesneden lengte en strip het einde, aansluit op het DIO2 (u kunt geen 0 en 1, dat is de seriële poort). Zet de draad van de controle uit segment 2 in DIO3, enz. 8 segment moet eindigen in DIO9. Ik vond dat ik de kop voorover moest zodat er was genoeg ruimte voor de arduino, schild, XBee en draden om te passen in de buis.
De Arduino accepteert een breed scala van spanningen. U kunt de Arduino de Vin pin (niet 5V) verbinden met de witte draad van de macht-bus, net als de femtobucks. Een van de de Arduino grond pinnen verbinden met de zwarte draad van de power-bus. Soldeer en tape van deze verbindingen.
Zodra u zeker weet dat je de Arduino bedrading recht hebt, kunt u optioneel superglue permanent koppelen van het besturingselement en kabels voor de voeding aan de arduino-headers. Alleen oppassen--de dampen van superlijm kun de duidelijke plastic op de LED's haze over--zetten een fan op de lijm, terwijl het droogt om te verdrijven van dampen.
Programmeren van de Arduino
Ik ben ervan uitgaande dat je hebt gewerkt met Arduino. Als u niet hebt, adviseer ik u wat tijd doorbrengen met een van de vele grote krijgen gestarte tutorials.
Met de bevoegdheid tot het teken verbroken, sluit u uw Arduino op uw computer met behulp van een USB-kabel. Zorg ervoor dat de schakelaar op de XBee schild is ingesteld op DLINE (dus het niet op de seriële poort aangesloten is). Het gebruik van de Arduino IDE downloaden en uitvoeren van de code van de SignArduino van mijn GitHub repository. Deze code is vrij basic--ik ben van plan om in de komende maanden.
Probeer het uit
Koppel de USB-kabel los, schakelt u het schild XBee terug naar UART, en macht van het teken. De Arduino zal doen een macht op zelf-test, en zet op elk van de segmenten in de juiste volgorde, dan zet ze allemaal af.
U kunt de seriële communicatie ook uitproberen. De Vin-draad te verbreken van de macht-bus, zet de schakelaar aan DLINE en sluit de USB-kabel. Schakel de teken, en start de seriële monitor in de Arduino IDE. Type "+111111111-". Alle segmenten moeten licht op de laagste helderheid. Type "+99999999-"--alles zou moeten gaan over bij volledige helderheid. Type "+ 00000000-"--die moet ze allemaal uit te schakelen. De '+' en '-' tekens fungeren als een eenvoudig protocol bewaker, en er moet 8 cijfers, '0' tot '9' The Arduino geeft een fout als het niet zien, en "Geaccepteerd zegt" wanneer een juiste volgorde komt door.
Vergeet niet om de USB-kabel, het schild XBee terugschakelen naar UART en de Vin-regel opnieuw worden gekoppeld wanneer u klaar bent.
Mogelijke verbeteringen
Het ontwerp zorgt voor de intensiteit van elk segment afzonderlijk worden gecontroleerd, die overdreven flexibel. Met enkele verbeteringen van de elektronica, kunt u verminderen van het aantal PWMs en toestaan van het gebruik van een goedkopere Arduino. Ook, ik was oorspronkelijk bedoeld om het hebben van een photosensor op de Arduino te voorzien van het teken op dim zelf op basis van omgevingsomstandigheden, maar ik koos voor een eenvoudiger methode om het ding uit de deur. Ik wil graag een betere reactie string tot opdrachten, en ik wil de status van de verbinding Xbee opvragen en terugsturen naar de Raspberry Pi.