LittleGoal: World Cup Match anmälaren (4 / 5 steg)
Steg 4: programvara
Programvaran har två större delen: den kod som körs på Arduino arbeta hårdvara, och en server att berätta Arduino att göra.
Arduino kod
LittleBits Arduino har inte mycket dokumentation ännu. Saker du behöver veta:
- maskinvaran är Arduino Leonardo kompatibel, valde som skriver i Arduino IDE
- för att driva det, bara att ansluta kraftmodulen till någon av inkommande stiften (vänster sida)
Arduino koden är upp på Github. Det är delarna är:
Utgångsstift:
Ställ in stiften används för hemma och borta flaggor och målet! Logga. Arduino modulen bara har enkel tillgång till utgången på D1, D5 och D9 stift. D5 och D9 bör kopplas till PWM-läge. I koden för tillfället är hemmalaget (team0) pin D9, bortalaget är D5 och tecknet är D1.
Lyssna på den seriella porten:
Lyssna på den seriella porten för "H", "A" eller "G":
- H betyder hem team poäng: vinka flagga och blinka skylt
- A innebär bortalaget poäng: vinka flagga och blinka skylt
- G betyder spelet händelse (start eller avslut av spel): vinkar båda flaggor tillsammans
Den sista delen var knepigt, servon tenderar att låsa upp förrän jag har lagt en 25ms fördröjning mellan kommandona till två servon. Denna lösning har bekräftats av andra servo-mästare frågade jag senare, så detta är goda kunskaper för framtida projekt. Lyckligtvis kan inte riktigt märker effekten av denna försening på beteende här, så allt bra. Servo måste också åtminstone omkring 300 MS att flytta till ordentligt våg. Mindre än det och det kan bete sig konstigt, mycket mer än det gör det mycket mindre vågigt.
Koden är mycket hacky, skrevs på kort tid, så förmodligen skulle kunna göras mycket bättre. Användbarheten kan variera!
Serverkod
Servern drar spelinformationen och instruerar Arduino att göra. Det är en mycket enkel Node.js server.
Jag använder Kimonolabs' inofficiella World Cup API denna gång.
- Registrera dig för Kimonolabs för ett API
- Hitta din intresseanmälan i Utforskaren (matchar fliken, bäst är kanske med tiden för spelet), kopia match "id".
- Kolla in littleGoal kod från Github, installera beroenden ("npm installera" i projektkatalogen)
- Kopiera "config.json.example" till "config.json" i katalogen, lägga till din API nyckel, uppdaterat spelet id och din Arduino port
Jag har testat det på Linux, bör vara samma överallt annars där Node.js kan köras.