Kaikki alkoi pimeistä aikakausista nimeltä "Mario", siitä hetkestä lähtien, kun pieni pieni kaveri hyppää ankkojen päälle pelastaakseen prinsessani, kunnes hän on maskuliininen komea prinssi, joka vaeltaa Persiassa (Persian prinssi) taistelussa pimeyttä vastaan. Pelastaakseni maailmani takana olen ollut suuri videopelien fani ja kasvoin niitä pelaamalla. Mutta he kyllästyvät joskus ja tunnen olevani vähemmän mukana siinä. Nykyään edistyneet pelikonsolit mahdollistavat virtuaalisen pelaamisen ja auttavat meitä tuntemaan pelin paljon paremmin kuin näppäimistö tai hiiri.
Koska olen Arduino-harrastaja, väsyin pelaamaan kuuluisaa “Angry Birds” -peliä näppäimistöllä ja hiirellä ja päätin rakentaa oman peliohjaimen Flex Sensorilla ja Potentiometrillä. Kun joustotunnistinta vedetään, myös katapultin lintu vedetään, ja voit asettaa potentiometrin avulla suunnan, johon se tulisi laukaista. Sitten kun vapautat flex-anturin, lintu laukaistaan. Nautin melkein siitä, joten jos aiot rakentaa jotain hyvin samanlaista, tämä opetusohjelma on hyödyllinen. Tästä oppaasta on apua myös hiiren kohdistimen ohjaamisessa potentiometrillä.
Ohjelmisto- ja laitteistovaatimukset:
Ohjelmisto:
- Arduino IDE
- Käsitellään IDE: tä
- Angry Birds -peli tietokoneella
Laitteisto:
- Arduino (mikä tahansa versio)
- Potentiometri
- Joustava anturi
- 47K ohmin vastus
- Johtojen liittäminen
- Leipälauta
Käsite takana:
Arduino piirilevy lukee arvot Potentiometri ja Flex Senor ja lähettää ne Laptop / PC USB sarjaportti normaaleja Serial.write () funktio. Luemme sitten nämä tiedot käsittelyn avulla ja ohjaamme hiiren kohdistinta Java-robotti-luokan avulla, jota IDE-käsittely tukee. Olemme ohjelmoineet IDE-prosessoinnin siten, että kun Flex-anturia vedetään, napsautetaan hiirtä ja sen perusteella, kuinka paljon sitä vedetään, hiiren osoitin liikkuu X-suuntaan. Sitten potentiometrin arvon perusteella liikutamme hiiren kohdistinta Y-suuntaan, tällä tavalla voimme asettaa suunnan, johon lintu tulisi laukaista.
Piirikaavio:
Piiri Angry Birdin pelaamiseksi Flex Sensorilla ja Potentiometrillä on helppoa.
Olemme yksinkertaisesti liittäneet potentiometrin ja joustavan anturin Arduinon analogiatuloihin (A0, A1). Flex-anturin ulostulo vedetään myös alas 47K-alasvetovastuksella.
Voit liittää sen suoraan leipälautaan tai juottaa ne Perf-laudalle ja koota sen käsineisiin tai muuhun, jotta se olisi luovempi. Olen yksinkertaisesti käyttänyt leipälevyä yhteyksien tekemiseksi alla esitetyllä tavalla:
Arduino-ohjelma:
Koko Arduino-koodi annetaan opetusohjelman lopussa. Muutama tärkeä rivi selitetään alla.
Alustamme ohjelman toimimaan 9600 baudinopeudella ja aloitamme arvojen lukemisen Flex-anturista ja potentiometristä. Kuten tiedämme, toiminto serial.write () voi lähettää vain yhden tavun tietoja kerrallaan. Koska yksi tavu on 8 bittiä ja 2 ^ 8 = 256. Pystymme lähettämään arvoja 0-256. Joten meidän on pakattava Flex-anturin ulostulon ja potentiometrin lähdön arvot 0-256: een.
Tätä varten käytämme kartta () -toimintoa Arduinossa. Kaikki taipuussensorin arvot muunnetaan arvosta 5 arvoon 100, joten kun taivutamme anturia, se kasvaa arvosta 5 ja kun se vapautetaan, palataan takaisin arvoon 5. Hiiren napsautusten mainitsemiseksi käytetään arvoja 1 ja 0. Kun 1 lähetetään, hiirtä painetaan ja kun 0 lähetetään, hiiri vapautetaan.
jos (FlexValue> = 65 && FlexValue <= 120) // joustotunnistimeni vaihtelee 65: stä 120: een, saatat olla erilainen {FlexValue = map (FlexValue, 120,65,0,100); // perustuu taivutukseen muunnetaan arvoksi 0 - 100, jos (FlexValue> = 5) // 1 ja 0 käytetään hiiren napsautukseen, joten aloita arvosta 5 {Mclick = true; Serial.write (1); // 1 lähetetään tekemään hiiren vasen napsautus Serial.write (FlexValue); // Joustava arvo on etäisyys hiiren siirtämiseen X-suuntaan} muuten {Mclick = false; Sarja.kirjoita (0);}}
Vastaavasti arvot, jotka muodostavat potentiometrin, muunnetaan 101: stä 200: een karttatoiminnon () lähettämiseen ja lähetetään kannettavien tietokoneiden COM-porttiin, joka haastaa Serial.write () -funktion alla esitetyllä tavalla.
if (potValue <= 200) {potValue = kartta (potValue, 0,200,101,201); // Perustuu puolestaan muunnetaan arvoon 101 Serial.write (potValue); // Pot-arvo on etäisyys, jolla hiirtä siirretään Y-suuntaan}
Loput ohjelmasta selitetään kommenttien avulla.
Käsittelykoodi:
Processing on avoimen lähdekoodin kehityssovellus, jonka voi helposti ladata ja käyttää mielenkiintoisten projektien kehittämiseen Arduinoa tai muita mikrokontrollereita käyttäen. Olemme jo tehneet muutaman projektin Processingilla, ja voit tarkistaa ne napsauttamalla alla olevia linkkejä.
- DIY-FM-radio prosessoinnin avulla
- Virtuaalitodellisuuden / eleen hallinta Arduinolla
- Yksityinen chat-huone Arduinolla.
- Arduino-tutkajärjestelmä, joka käyttää prosessointisovellusta ja ultraäänianturia
- Reaaliaikainen kasvojentunnistus ja seuranta Arduinolla
- Tee DIY-nopeusmittari Arduinolla ja prosessoinnilla
- Ping Pong -peli Arduino-kiihtyvyysmittarilla
- Kaksisuuntainen robotti, joka käyttää Arduinoa
- DIY Arduino -lämpökamera
Tässä projektissa olemme käyttäneet IDE-prosessoria COM-portin arvojen lukemiseen ja hiiren osoittimen ohjaamiseen COM-portin kautta vastaanotettujen arvojen perusteella. Täydellinen Processing koodi tähän Angry Bird peliohjain on ladattavissa alla linkki:
- Käsitellään koodia tälle Angry Bird -peliohjaimelle (napsauta hiiren kakkospainikkeella ja Tallenna linkki nimellä)
Arduino-ohjelma löytyy tämän opetusohjelman lopusta. Käsittelykoodia muutettiin tarkoituksellemme sopivaksi yoggyn GitHub-sivulla antamasta koodista.
COM-portista tulevat tiedot tulisi lukea samalla siirtonopeudella, jolla ne lähetettiin Arduinolta. Tarkista myös laitehallinnalla, mikä COM-portti on yhdistetty Arduinoon. Minun Arduino oli kytketty COM3 ja se oli 0 nnen Port minun tietokone ja siirtonopeus Arduino oli 9600, joten koodi on seuraava
portti = uusi sarja (tämä, Serial.list (), 9600);
Kun aloitamme arvojen lukemisen, erotamme sen tunnistamalla sen arvon perusteella, miten lähetimme Arduinosta. Arvot kartoitetaan jälleen välillä 0-100, jotta voimme hallita hiirtä kyseisen arvon perusteella.
if (portti. käytettävissä ()> 0) {data = portti. println (tiedot); // Lue tiedot COM-portista ja tallenna ne tietoihin} if (data> = 101 && data <= 201) // Jos arvo on välillä 101 - 201, sen on oltava potentiometriltä {Turn = int (map (data (data) (101, 201, 10000)); // Käytä tätä arvoa kääntämään catapullt} if (data> = 5 && data <= 100) // Jos arvo on välillä 5-100, sen on oltava joustotunnistimelta {Pull = int (map (data, 5,100, 0,100));} // Käytä tätä arvoa katapultin vetämiseen, jos (data == 1) napsauta = true; // Käytä tätä arvoa hiiren painikkeen painamiseen, jos (data == 0) napsauta = false; // Vapauta hiiren painike tällä arvolla
Kun tiedot on luokiteltu, voimme hallita hiirtä Robot Java -luokassa prosessoinnissa. Komento robot.mouseMove (crntX-Pull, crntY + Turn); voidaan käyttää hiiren siirtämiseen mihin tahansa haluttuun kohtaan ja linjat robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); ja robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); voidaan käyttää hiiren painikkeen painamiseen tai vapauttamiseen.
if (napsauta == false) // kun Flex Sesnoria ei vedetä {crntX = (int) p.getX (); crntY = (int) p.getY (); if (Vedä> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Vapauta hiiren painike}, jos (napsauta == tosi) // kun Flex Sesnor vedetään {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Paina hiiren painiketta robot.mouseMove (crntX-Pull, crntY + Turn); // Siirrä hiirtä Flex- ja POT-arvojen perusteella}}
Käynnistettäessä IDE: n käsittely näyttää myös pienen valintaikkunan, josta löydät arvot Vedä, Käännä ja Hiiren napsautus -tilan alla olevan kuvan mukaisesti
Tätä yksityiskohtaa voidaan käyttää ohjelman virheenkorjaamiseen tai tarvittavien tietojen korjaamiseen.
Työskentely:
Jotta tämä Angry Bird Project toimisi käyttämällä annettuja koodeja, koota laitteisto piirikaavion mukaan ja lataa annettu Arduino-koodi. Huomaa sitten, mihin COM-porttiin Arduino on kytketty, tee tarvittavat muutokset käsittelykoodiin ja käynnistä käsittelypiirros.
Käynnistä nyt yksinkertaisesti vihainen lintupeli ja vie kohdistin katapultin lähelle ja vedä flex-anturia vetääksesi lintua ja aseta suunta potentiometrillä. Kun suunta on asetettu, vapauta Flex-anturi
EEEEWWWWWEEEEEEEEEE !!!!!!!!!!……………
Sinä lintu heitetään suoraan ilmaan ja pomo! Possuilla. Koko työ löytyy alla olevasta videosta.
Toivottavasti pidit projektista ja pystyit rakentamaan jotain vastaavaa. Jos sinulla on epäilyksiä, voit tavoittaa minut kommenttiosasta tai lähettää kysymyksesi foorumille teknisiin kysymyksiin.
Nyt on aika törmätä niihin säästölaatikoihin ja saada takaisin lintumunamme !!!!