abonneren

Bouw je eigen lasergame-geweer

lasergame-geweer

Inhoudsopgave

  1. Inleiding
  2. Lees verder op de volgende pagina
Lasergamen maakt het kind in me los. Ik kan niet zeggen dat ik er erg goed in ben, maar leuk is het altijd. Je kunt vast ergens kant-en-klare lasergames kopen, maar waarom zou je als je zelf iets kunt maken? Wat je er voor nodig hebt en hoe je vervolgens je eigen lasergame-geweer bouwt, lees je hier.

Tekst: Cor van Essen

Om zelf een lasergame-systeem te ontwerpen, moest ik bedenken hoe ik überhaupt een geweer iets kan laten sturen dat een ander geweer dan ook weer zou kunnen herkennen. Ik kon me niet voorstellen dat de lasergamegeweren echt lasers zouden gebruiken om te schieten. Een heel simpele en veelgebruikte manier om berichten te sturen, is infrarood (ir), zoals in bijna elke afstandsbediening die je thuis hebt liggen.

De afstandsbediening laat een ir-led heel snel knipperen en de tv of stereo-installatie kan de gestuurde code ontcijferen. Voor zover ik weet is dat ook precies hoe de normale lasergame-systemen werken. Ir-ledjes en -ontvangers kosten maar weinig en zijn eenvoudig aan te sluiten op microprocessors zoals bijvoorbeeld een Arduino Uno.

Het plan is dus om een ir-led en meerdere ontvangers in twee speelgoedgeweren te bouwen, zodat ze berichten naar elkaar kunnen sturen. Ik moet toegeven dat het niet zo spannend klinkt als ik het zo omschrijf, maar wees gerust: daar komt snel verandering in.

De benodigdheden

Door alle ‘extra’s’ is de boodschappenlijst een waslijst geworden. Dit is wat je nodig hebt per geweer:

- Adafruit Feather M0 Bluefruit
- Infrarood-led
- 2x Infraroodontvanger
- LiPo-batterij (3,7 volt/900 mAh) met JST-aansluiting
- Adafruit NeoPixel Stick + Level Shifter
- Vibrerende motor
- Tuimelschakelaar
- 2x Drukschakelaar
- Laser
- Weerstand van 330 ohm
- 3x Weerstanden van 10 kilo-ohm
- 2x Transistor BC-547 B

Totale kosten: ca. € 50,-

Naast het zend- en ontvanggedeelte moet er natuurlijk een microprocessor zijn die deze dingen kan aansturen en de signalen kan verwerken. Ik had een paar vereisten die mijn keuze hebben bepaald. Het moest klein zijn, het moest zelf een LiPo-batterij kunnen opladen, genoeg aansluitingen hebben én zijn voorzien van bluetooth. Waarom bluetooth? Nou, ik wilde op een of andere manier ergens kunnen opslaan of weergeven wat er tijdens het spel gebeurt. Via bluetooth kun je het geweer verbinden met je smartphone, die vervolgens de informatie het internet op kan sturen.

Daarnaast moet je natuurlijk tijdens het spel ook direct kunnen merken dat je geraakt bent. Daarvoor heb je feedback nodig, bijvoorbeeld in de vorm van felle lichtjes. En er moet natuurlijk een aan/uitschakelaar zijn. En een trekker. En een laser om te richten (oké, die is niet echt noodzakelijk, maar wel erg tof). Nu begon het me een beetje te duizelen: ik kreeg lichte twijfels of dit nu wel zo’n goed idee was … Maar zoals met elk groot probleem moet je het gewoon in kleine problemen opdelen en aan de slag gaan.

Al die onderdelen moeten om te beginnen natuurlijk ergens in. De simpelste oplossing is een speelgoedgeweer van een paar euro. Het exemplaar dat ik op de kop tikte was van binnen nagenoeg leeg. Er was alleen een trekker die een ratelend mechanisme aanstuurt. Doordat ik wist hoeveel plaats er beschikbaar was, heb ik bijvoorbeeld beter kunnen bepalen wat voor batterij ik zou kopen. Het gaf me ook de gelegenheid om te plannen waar ik alle onderdelen kwijt kon.

Feather M0 Bluefruit-microprocessor

Met de eerder genoemde vereisten kwam ik uiteindelijk uit bij de Feather M0 Bluefruit van Adafruit. Het is een microprocessor die je net als een Arduino kunt programmeren, maar een paar serieuze voordelen heeft ten opzichte van een Arduino Uno.

Hij is allereerst veel kleiner: 51 x 23 x 8 mm. Hij heeft een ingebouwde bluetoothmodule en is in staat automatisch via de usb-aansluiting LiPo-batterijen op te laden. Bovendien heeft de Feather M0 een veel snellere chip en ook meer plaats voor je eigen programma.

lasergame-geweer

Arduino en een Feather zijn niet volledig uitwisselbaar, dus ik zal af en toe, waar ik tegen verschillen aanliep, een opmerking plaatsen. Voor mensen die met een Feather aan de slag gaan wil ik vooral zeggen: lees goed de productpagina’s, want misschien zie je wel iets over het hoofd waardoor je denkt dat de Feather stuk is, terwijl dat eigenlijk niet zo is (ik spreek uit ervaring). Aangezien er veel onderdelen zijn, heb ik een stukje perfboard gebruikt om alle 3volt- en GND-aansluitingen te bundelen.

De Feather kunnen we met de Arduino IDE-software programmeren. Download hier de laatste versie. In de Arduino IDE moet je nog enkele aanpassingen doen. Onder File / Preferences vul je onder Additional Boards Manager URLs het volgende in:

http://adafruit.github.io/arduino-board-index/package_adafruit_index.json

Onder Tools / Board / Boards Managers moet je eerst Arduino SAMD boards installeren en daarna Adafruit SAMD Boards.

Nu zou je onder boards de Feather M0 moeten kunnen selecteren. Als je Windows 7 hebt draaien, moet je nog drivers te installeren die je kunt vinden op de Adafruit-website. Op andere systemen is dat niet nodig.

Op de Feather zit een heel klein ingebouwd ledje. Probeer dus eerst eens het Blink-voorbeeldprogramma uit om te zien of het lukt om iets up te loaden.

Ir-zender en ir-ontvanger

Het zendgedeelte van dit project is een led die infraroodlicht uitzendt. Belangrijk bij het aansluiten van een led is het altijd om de richting juist te hebben. De led heeft een lange en een korte aansluiting, waar de lange aan de positieve spanning (3 volt) wordt aangesloten en de korte aan aarde (GND). Direct aan de lange aansluiting heb ik een 330ohm-weerstand gesoldeerd. Om genoeg spanning voor de led te realiseren, heb ik een transistor gebruikt. De spanning komt dan van de 3volt-uitgang van de Feather die door de transistor loopt. Er is dan nog wel een pin nodig die de transistor schakelt.

De ontvanger heeft drie aansluitingen: 3 volt, GND en eentje om informatie door te geven. Per geweer heb ik twee ontvangers aangesloten. De informatie-aansluitingen heb ik naar pinnen 5 en 6 gestuurd.

Om de complexe signalen te ontcijferen die worden gebruikt bij het verzenden, kunnen we gelukkig gebruikmaken van een uitgebreide bibliotheek (library) genaamd IRLib2. Deze kun je van internet downloaden en in de subdirectory ‘Libraries’ in de Arduino-map plaatsen.

lasergame-geweer

Deze library kent veel voorkomende protocollen die worden gebruikt door grote elektronicabedrijven. Voor dit project heb ik de voorbeeld-sketch ‘record.ino’ uit de IRLib2-library als uitgangspunt genomen. Dit script wacht op een signaal van een afstandsbediening en kan datzelfde signaal ook weer versturen zodra je in de Serial Monitor op een knop van het toetsenbord drukt. Met de Serial Monitor kun je via een usb-kabel berichten ontvangen van en versturen naar de Feather. Je vindt hem rechtsboven in de Arduino-IDE – enorm handig tijdens het debuggen van sketches.

Na te hebben gecontroleerd of dat fatsoenlijk werkt ben ik begonnen met het aan te passen. Het versturen van een bericht moet immers pas gebeuren als we op een fysieke knop drukken. En, ook niet onbelangrijk, als we een bericht ontvangen moeten we dat merken.

Geschreven door: Redactie PCM op

Category: Workshop, Algemeen

Tags: Iot, DIY, lasergame