Laser Tag
Hur man kan förbättra detta projekt...
Det finns ingen Python API för Azure och jag hade inte tillräckligt med tid att lista ut hur man kör C Azure API på Python att skicka meddelanden. Detta innebär att det är för närvarande begränsad till en FFA spel. I framtiden kommer att det förbättras.
Till projektet...
För att bygga denna laser tag enhet behöver du några saker. De viktigaste är en Raspberry Pi med en Adafruit touch TFT hatt och en partikel foton (WiFi är onödigt för denna styrelse).
Fotonen är något utbytbara och andra 3.3V microcontrollers programmeras med Arduino bearbetning variant är bra också. (Saker som FLORAN eller några officiella Arduino produkter).
Raspberry Pi och pekskärm är också en mindre än optimal lösning på problemet jag hade, som jag inte hade en LCD med mig eller tid att beställa en. Detta innebär med vissa tillägg och ändringar i koden det skulle fungera bra om du en LCD-skärm är ansluten direkt till din styrelse eller en annan enhet i stället för Raspberry Pi. Jag tänker på att använda en windows phone app för att minska storleken på enheten.
Hur fungerar det?
När du trycker på avtryckaren fotonen utför en funktion som:
- Vänder på vibration motor för en explosion
- Blinkar de RGB-lysdioderna
- Skickar din spelare kod via IR-LED
- Skickar ett meddelande till Raspberry Pi att minska antalet ammo
När IR-mottagaren drabbas fotonen:
- Poster den blinkar att bestämma spelare ID (PID) av vapen som sköt du
- Skickar ett meddelande till Raspberry Pi att minska antalet hälsa
- Blinkar den röda lysdioder att visa dig var hit
- Vänder vibrationen motor på en kort tid
När du hälsa blir < 0 fotonen:
- Går in i "åter lekande tillstånd" och slutar att göra och ta emot skador
- Släcks lamporna för att ange döda status
- Skickar ett meddelande till Pi som anger att det är PID dödades av PID-numret för den spelare som senast behandlade skada, Pi vidarebefordrar detta till Azure
Vissa saker orsakar ett meddelande ska kunna skickas till servern. De är:
- Kill/Death
- Klass/ladda ut uppdateringen
- Spelet avslutas
När ett meddelande är sätta på meddelandet på stacken svara alla enheter av:
- Uppdatera resultattavlan enligt meddelande om tillämpligt
- Om tillämpliga uppdatera spelarprofiler
- Tillfälligt stänga själv i dött tillstånd om spelet slutade
Hursomhelst, här är vad du behöver:
Produktstruktur:
- Raspberry Pi (jag använde en modell B +)
- Partikel Photon
- 5V 1a USB-batteripaket
- IR-LED
- IR-mottagare
- USB Wi-Fi dongle
- USB A till Micro USB-kabel
- Adafruit TFT pekskärm för Raspberry Pi
- 8 GB SD-kort förladdad med Raspbian OS (du kan också läsa det själv om du vet hur man eller använda ett större kort)
- NPN Transistor
- 2 knappar
- 100 ohms motstånd (inte på Adafruit!)
- Vibration motor (inte på Adafruit! Min är från en kasserad Xbox 360 controller)
- DotStar lysdioder
- Perforerad styrelse
- Manliga headers
- Kvinnliga headers
- Hona/hona hoppare ledningar
- Wire
- Löda
Programvara:
- Partikel-Dev
- Microsoft Azure IoT Hub (gratis testperiod är bra, begränsar totala meddelanden till 8 tusen per dag, vilket är massor av meddelanden)
Verktyg:
- Avbitare
- Wire strippor
- Dator
- Wi-Fi nätverken SSID och lösenord
- Lödkolv
- Att hjälpa tredje hand (valfritt)
De flesta av maskinvaran är tillgänglig från Adafruit.com. Följande länkar tar dig till deras hemsida där du kan lägga till den i din kundvagn och köpa den. Verktyg länkas inte men de flesta kan hittas genom en snabb sökning på Adafruit.