- Overzicht:
- Vereiste componenten:
- Circuit uitleg:
- Werking van Accelerometer:
- Arduino programmeren:
- Programmeerverwerking:
- Testen:
Augmented Reality en Virtual Gaming is een recente trend in de game-industrie geworden. De tijden van het gebruik van een toetsenbord / joystick en een muis om een computerspel te spelen, zijn voorbij. Nu wordt elke gameconsole geleverd met een virtuele controller die ons helpt om het spel te spelen met behulp van onze lichaamsbewegingen en gebaren, op deze manier is de game-ervaring enorm toegenomen en voelt de gebruiker zich meer betrokken bij het spel.
Laten we in dit project proberen om plezier te hebben terwijl we leren door het project. Laten we een spel maken (Ja, je hebt me goed gehoord, we zijn goanna, creëer een spel) en speel het met de beweging van je hand. We creëren het klassieke pingpongbalspel met Arduino en Accelerometer.
Overzicht:
Er zijn tegenwoordig talloze open source-software beschikbaar die hobbyisten zoals wij veel geluk heeft gebracht, en Processing is daar een van. Met deze op JAVA gebaseerde applicatie kunnen we eigen software bouwen (.exe-formaat) en ook een Android-applicatie (.apk-bestand). Dus we gaan deze software gebruiken om onze game te bouwen, we hebben eerder Processing gebruikt bij het maken van Arduino Chat Room.
Het hardwaregedeelte bestaat uit een Arduino die de invoer van een Accelerometer haalt om deze serieel naar onze computer / laptop te sturen.
Dus laten we gaan winkelen !!!!
Vereiste componenten:
- Arduino (elke versie of model)
- Versnellingsmeter
- Draden aansluiten
- Interesse (Lolz)
Accelerometer en Arduino Nano
Circuit uitleg:
Circuit van Arduino Ping Pong Ball Game Project omvat geen complexe verbindingen. Ik heb een Arduino Nano met een Accelerometer gebruikt. Maar er zijn een paar dingen waar u voor moet zorgen, zoals hieronder vermeld:
1. Je Accelerometer kan geen 5V aan, dus sluit altijd de Vcc van accelerometer aan op je 3.3V pin van Arduino.
2. Elke Accelerometer lijdt onder het effect van de zwaartekracht die moet worden aangepakt tijdens het programmeren (gewoon met behulp van een filter).
Laten we met dit in gedachten eens kijken naar de werking van een Accelerometer en hoe we deze gebruiken.
Werking van Accelerometer:
Een Accelerometer is een apparaat dat versnelling in elke richting kan omzetten in zijn respectievelijke variabele spanning. Dit wordt bereikt door condensatoren te gebruiken (zie afbeelding), aangezien de Accel beweegt, zal de condensator die erin aanwezig is ook veranderingen ondergaan (zie afbeelding) op basis van de beweging, aangezien de capaciteit wordt gevarieerd, kan ook een variabele spanning worden verkregen.
Dus, zoals hierboven vermeld, lijdt elke versnellingsmeter aan het probleem van het zwaartekrachteffect. Het maakt niet uit hoe nauwkeurig uw sensor is gekalibreerd (zelfs uw Apple-telefoons Accel.), Hij wordt beïnvloed door de zwaartekracht. Hieronder volgt een meer technische uitleg voor dit probleem.
Nu kunnen we in Arduino het effect van zwaartekracht verminderen door een eenvoudig filter te gebruiken. Dit filter bestaat uit twee arrays, de ene wordt gebruikt om de monsterwaarden van de sensor op te slaan en de andere wordt gebruikt om de monsterwaarden te sorteren en de meest herhaalde waarde te vinden. Laten we dit algoritme in onze Arduino implementeren en onze hardware gereed maken.
Arduino programmeren:
Het Arduino-programma wordt hieronder gegeven in de sectie Code. Er zijn geen kritieke gegevens die moeten worden gewijzigd. Maar misschien wilt u het volgende overwegen:
Vergroot de steekproefomvang als uw Accel nog steeds willekeurige waarden laat zien.
#define Samplesize 13 // filterSample nummer
Speel met de 9600 baudrate om de communicatiesnelheid tussen Arduino en Processing te verhogen. Maar zorg ervoor dat u ze in beide software (Programma's) wijzigt.
void setup () {Serial.begin (9600); }
Mijn Accelerometer op de X-as geeft 193 helemaal links en 280 helemaal rechts, meet ze voor je Accel en werk de waarde bij.
toSend = map (smoothData1, 193, 280, 0, 255);
De waarden worden toegewezen aan een enkele byte aan gegevens voor seriële communicatie.
Lees verder de opmerkingen in de onderstaande code om deze duidelijk te begrijpen.
Programmeerverwerking:
Processing is open source-software die door kunstenaars wordt gebruikt voor grafisch ontwerpen. Deze software wordt gebruikt om software en Android-applicaties te ontwikkelen. Het is vrij eenvoudig te ontwikkelen en lijkt veel op de Android Development IDE. Daarom heb ik de uitleg ingekort.
De verwerkingscode voor het pingpongspel wordt hier gegeven:
- Verwerkingscode voor Arduino Ping Ball Game
Klik er met de rechtermuisknop op en klik op 'Link opslaan als…' om het codebestand te downloaden. Open vervolgens het bestand in 'Verwerkingssoftware' en klik op 'Uitvoeren' om het spel te spelen. U moet 'Verwerkingssoftware' installeren om *.pde-bestanden te openen. Het commentaargedeelte is open voor vragen en bekijk ook de opmerkingen in het programma om het beter te begrijpen.
Onder de regel, in de void setup () functie van Processing code is belangrijk, omdat het beslist van welke poort naar gegevens.
port = new Serial (this, Serial.list (), 9600); // Leest de 4e POORT met 9600 baudrate
Hier heb ik gegevens van de 4e poort van mijn Arduino gelezen.
Dus bijvoorbeeld als je COM COM COM COM COM hebt
Vervolgens leest de bovenstaande code gegevens van COM.
Testen:
Nu onze verwerkings- en Arduino-schets klaar is, upload je gewoon het onderstaande programma naar Arduino en sluit je je Arduino aan op de pc van de gebruiker met een uitgebreide programmeerkabel en start je het spel door het verwerkingscodebestand (.pde) uit te voeren. Dat is het! Beweeg je versnellingsmeter en speel je pingpongspel. De video leidt je door het hele project.
Als je het programma eenmaal hebt begrepen, kun je veel vergelijkbare spellen maken en ze spelen met je Arduino. Verder kunnen de Y-as en Z-as ook worden opgenomen om te gamen.