Hoe te verbeteren van dit project...
Er is geen Python API voor Azure en ik heb niet genoeg tijd om erachter te komen hoe u de API C Azure op Python om berichten te posten lopen. Dit betekent dat het is momenteel beperkt tot een FFA-spel. In de toekomst zal het worden verbeterd.
Naar het project...
Bouwen van deze laser tag-unit moet je een paar dingen. De belangrijkste zijn een Raspberry Pi met een hoed van Adafruit aanraking TFT en een deeltje foton (WiFi is niet nodig voor dit board).
De Photon is enigszins vervangbare en andere 3.3V microcontrollers geprogrammeerd met de Arduino verwerking variant zijn ook prima. (Dingen zoals de FLORA of sommige officiële Arduino producten).
Ook de Raspberry Pi en het touchscreen is een minder dan optimale oplossing voor het probleem dat ik had, dat was ik niet heb een LCD met mij of tijd om te bestellen. Dat betekent met enkele toevoegingen en wijzigingen in de code die het prima werken zou als u een LCD rechtstreeks op uw moederbord aangesloten of een ander apparaat in plaats van de Raspberry Pi hebt gebruikt. Ik ben te denken van het gebruik van een windows phone app om de grootte van het apparaat.
Hoe werkt het?
Wanneer u op de trigger het foton voert een functie die:
- Hiermee schakelt u de vibratie motor voor een package-burst
- Knippert de RGB-LED 's
- Stuurt de code van uw speler via de IR-LED
- Stuurt een bericht naar de Raspberry Pi de munitie's te verminderen
Wanneer de IR ontvanger wordt geraakt het foton:
- De flitsen om de speler-ID (PID) van het wapen dat u schot records
- Stuurt een bericht naar de Raspberry Pi's van de gezondheid te verminderen
- Knippert de rode LED's om u te tonen werden getroffen
- Draait de vibratie motor op voor een korte tijd
Wanneer wordt u gezondheid < 0 het foton:
- Gaat in het "opnieuw kuitschieten staat" en stopt omgaan en ontvangen van schade
- LEDs uitgeschakeld om dode status te geven
- Stuurt een bericht naar de Pi die aangeeft dat het PID werd gedood door de PID van de speler die laatst geregeld schade, de Pi stuurt dit naar Azure
Sommige dingen veroorzaken een bericht te worden geduwd naar de server. Zij zijn:
- Kill/Death
- Klasse/Last update
- Duel eindigde
Wanneer een bericht wordt gebracht op het bericht op de stack wordt alle apparaten reageren door:
- Scorebord volgens bericht bijwerken indien van toepassing
- Bijwerken van spelersprofielen, indien van toepassing
- Tijdelijk omzetten zelf dood staat als spel beëindigd
Anyway, hier is wat je nodig hebt:
Stuklijst:
- Raspberry Pi (ik gebruikte een Model B +)
- Deeltje Photon
- Pak van de batterij van de USB van 5V 1a
- IR LED
- IR ontvanger
- Wi-Fi USB dongel
- USB A naar USB Micro kabel
- Adafruit TFT touchscreen voor Raspberry Pi
- 8 GB SD kaart voorgeladen met Raspbian OS (u kunt ook laden het jezelf als je weet hoe of gebruiken op een grotere kaart)
- NPN-Transistor
- 2 knoppen
- de weerstand van 100 ohm (niet op Adafruit!)
- Vibratie motor (niet op Adafruit! De mijne is van een gesloopte Xbox 360-controller)
- DotStar LEDs
- Geperforeerd board
- Mannelijke headers
- Vrouwelijke headers
- Vrouw/vrouw jumper draden
- Draad
- Soldeer
Software:
- Deeltje-Dev
- Microsoft Azure IoT Hub (gratis proefversie is prima, beperkt totaal aantal berichten tot 8 duizend per dag, die tal van berichten)
Tools:
- Wire Cutters
- Draad Strippers
- Computer
- Wi-Fi netwerk-SSID en wachtwoord
- Soldeerbout
- Helpende derde hand (optioneel)
De meeste van de hardware is beschikbaar vanaf Adafruit.com. Volgende links brengen u naar hun website waar u kunt toevoegen aan uw winkelwagentje en kopen. Hulpmiddelen zijn niet gekoppeld, maar de meeste kan worden gevonden via een snelle zoekopdracht op Adafruit.