- Oversikt:
- Nødvendige komponenter:
- Kretsforklaring:
- Arbeid av akselerometer:
- Programmering av Arduino:
- Programmeringsbehandling:
- Testing:
Augmented Reality og Virtual Gaming har blitt en nylig trend i spillindustrien. Tidene med å bruke et tastatur / joystick og en mus til å spille et dataspill har gått bak. Nå kommer hver spillkonsoll med en virtuell kontroller som hjelper oss å spille spillet ved hjelp av kroppsbevegelser og bevegelser, på denne måten har spillopplevelsen økt mye og brukeren føler seg mer involvert i spillet.
La oss i dette prosjektet prøve å ha det gøy når vi lærer oss gjennom prosjektet. La oss lage et spill (Ja du hørte meg rette vi er goanna lage et spill) og spill det ved hjelp av håndens bevegelse. Vi lager det klassiske Ping Pong Ball Game med Arduino og Accelerometer.
Oversikt:
Det er tonnevis av åpen kildekode-programvare tilgjengelig i disse dager, noe som har gitt masse lykke for hobbyister som oss, og behandling er en av dem. Med dette JAVA-baserte programmet kan vi bygge ut egen programvare (.exe-format) og også en android-applikasjon (.apk-fil). Så vi skal bruke denne programvaren til å bygge spillet vårt, vi har tidligere brukt Processing til å lage Arduino Chat Room.
Maskinvaredelen vil bestå av en Arduino som vil hente inngangene fra et akselerometer for å mate det serielt til datamaskinen / bærbare datamaskinen.
Så la oss shoppe !!!!
Nødvendige komponenter:
- Arduino (hvilken som helst versjon eller modell)
- Akselerometer
- Koble ledninger
- Interesse (Lolz)
Akselerometer og Arduino Nano
Kretsforklaring:
Circuit of Arduino Ping Pong Ball Game Project innebærer ingen komplekse forbindelser. Jeg har brukt en Arduino Nano med et akselerometer. Men det er få ting å ta vare på som nevnt nedenfor:
1. Akselerometeret ditt takler ikke 5V, så koble alltid Vcc for akselerometer til 3,3V-pin Arduino.
2. Hvert akselerometer lider av effekten av tyngdekraften som må håndteres under programmering (bare ved hjelp av et filter).
Med dette i tankene, la oss se på hvordan et akselerometer fungerer og hvordan vi bruker det.
Arbeid av akselerometer:
Et akselerometer er en enhet som kan konvertere akselerasjon i hvilken som helst retning til sin respektive variable spenning. Dette oppnås ved å bruke kondensatorer (se bilde), når akselen beveger seg, kondensatoren som er tilstede i den, også vil gjennomgå endringer (se bilde) basert på bevegelsen, siden kapasitansen er variert, kan en variabel spenning også oppnås.
Så, som nevnt ovenfor, lider hvert akselerometer av problemet med tyngdekraften. Uansett hvor nøyaktig sensoren din er kalibrert (til og med Apple-telefoner Accel.), Vil den bli påvirket av tyngdekraften. En mer teknisk forklaring på dette problemet er gitt nedenfor.
Nå, i Arduino kan vi redusere effekten av tyngdekraften ved å bruke et enkelt filter. Dette filteret vil bestå av to matriser, den ene brukes til å lagre prøveverdiene fra sensoren, og den andre brukes til å sortere prøveverdiene, og finne den gjentatte verdien. La oss implementere denne algoritmen i Arduino og gjøre maskinvaren klar.
Programmering av Arduino:
Arduino-programmet er gitt nedenfor i delen Kode. Det er ingen kritiske data som må endres. Men du vil kanskje vurdere følgende:
Øk prøvestørrelsen hvis Accel fremdeles viser tilfeldige verdier.
#define Samplesize 13 // filterSample number
Spill med 9600 baudrate for å øke kommunikasjonshastigheten mellom Arduino og Processing. Men sørg for at du endrer dem i begge programvarene (Programmer).
ugyldig oppsett () {Serial.begin (9600); }
Mitt akselerometer på X-aksen gir 193 lengst til venstre og 280 lengst til høyre, måle dem for din Accel og oppdatere verdien.
toSend = kart (smoothData1, 193, 280, 0, 255);
Verdiene blir kartlagt i en enkelt byte med data for seriell kommunikasjon.
Se nærmere på kommentarene i koden nedenfor for å forstå den tydelig.
Programmeringsbehandling:
Processing er programvare med åpen kildekode som brukes av kunstnere til grafikkdesign. Denne programvaren brukes til å utvikle programvare og Android-applikasjoner. Det er ganske enkelt å utvikle og ligner veldig på Android Development IDE. Derfor har jeg forkortet forklaringen.
Behandlingskoden for Ping Pong-spillet er gitt her:
- Behandlingskode for Arduino Ping Ball Game
Høyreklikk på den og klikk på 'Lagre lenke som..' for å laste ned kodefilen. Åpne deretter filen i prosesseringsprogramvaren og klikk på "Kjør" -knappen for å spille spillet. Du må installere behandlingsprogramvare for å åpne *.pde-filer. Kommentarseksjonen er åpen for spørsmål, og sjekk også kommentarene i programmet for å bedre forstå det.
Under linjen er funksjonen ugyldig oppsett () til behandlingskode viktig, da den bestemmer fra hvilken port til data fra.
port = ny Serial (denne, Serial.list (), 9600); // Leser 4. PORT ved 9600 baudrate
Her har jeg lest data fra den fjerde porten fra min Arduino.
Så for eksempel hvis du har COM COM COM COM COM
Da vil ovennevnte kode lese data fra COM.
Testing:
Nå siden prosesserings- og Arduino-skissen vår er klar, er det bare å laste opp det nedenfor gitte programmet til Arduino og koble Arduino til brukerens PC grundig programmeringskabel og starte spillet ved å kjøre prosesseringskodefilen (.pde). Det er det! Beveg akselerometeret ditt og spill Ping Pong-spillet ditt. The Video vil guide deg gjennom hele prosjektet.
Når du har forstått programmet, kan du lage mange lignende spill og spille dem ved hjelp av Arduino. Videre kan Y-aksen og Z-aksen også være inkludert for spill.