Sve je počelo s malom igrom iz mračnih vijekova zvanom "Mario", još od vremena kada sam bio maleni maleni momak koji je skakao na patkama kako bi spasio moju princezu, dok nije postao muževan i lijep princ koji je lutao u Perziji (Princ Perzije) boreći se protiv tame da bih spasio svoj svijet, veliki sam ljubitelj igranja video igara i odrastao sam igrajući ih. Ali ponekad im dosadi i osjećam se manje uključenima u to. Danas napredne igraće konzole omogućuju virtualno igranje i pomažu nam da igru osjetimo puno bolje nego što to mogu učiniti tipkovnica ili miš.
Budući da sam entuzijast Arduina, umorio sam se igrajući poznatu igru pod nazivom "Angry Birds" pomoću tipkovnice i miša i odlučio sam izgraditi vlastiti Game Controller pomoću Flex senzora i potenciometra. Kada se povuče flex senzor, povući će se i ptica na katapultu, a pomoću potenciometra možete postaviti smjer u kojem treba lansirati. Tada kada otpustite fleks senzor, ptica će biti lansirana. Prilično sam uživao u tome, pa ako namjeravate napraviti nešto vrlo slično, ovaj će vam vodič biti od pomoći. Ovaj će vam vodič također biti od pomoći u upravljanju pokazivačem miša pomoću potenciometra.
Zahtjevi softvera i hardvera:
Softver:
- Arduino IDE
- Obrada IDE-a
- Angry Birds igra na računalu
Hardver:
- Arduino (bilo koja verzija)
- Potenciometar
- Flex senzor
- Otpornik od 47K ohma
- Spajanje žica
- Breadboard

Koncept iza:
Arduino odbor čita vrijednosti od potenciometra i Flex Señor i prenosi ih na laptop / PC putem USB COM port preko normalne Serial.write () funkciju. Zatim te podatke čitamo pomoću Obrada i kontroliramo kursor miša pomoću klase Robot u Javi koju podržava obrada IDE-a. Programirali smo IDE za obradu na takav način da će se, kada se povuče Flex senzor, kliknuti miš i na temelju toga koliko se povuče pokazivač miša pomaknut će se u smjeru X. Zatim ćemo na temelju vrijednosti iz potenciometra pomaknuti kursor miša u Y smjeru, na taj način možemo postaviti smjer u kojem se ptica lansira.

Kružni dijagram:
Krug za igranje Angry Bird-a pomoću Flex senzora i potenciometra je jednostavan.
Jednostavno smo povezali potenciometar i flex senzor na analogne ulaze (A0, A1) Arduina. Izlaz Flex senzora također se povlači prema dolje pomoću 47K padajućeg otpora.
Možete ga izravno povezati na pločici za masu ili ih zalemiti na Perf ploču i sastaviti na rukavicama ili nečemu kako bi bilo kreativnije. Jednostavno sam koristio ploču za povezivanje kako je prikazano dolje:

Arduino program:
Kompletni Arduino kôd dan je na kraju vodiča. U nastavku je objašnjeno nekoliko važnih redaka.
Inicijaliziramo program za rad sa brzinom prijenosa od 9600 boda i započinjemo čitanje vrijednosti s Flex senzora i potenciometra. Kao što znamo funkcija serial.write () može istodobno poslati samo jedan bajt podataka. Budući da je jedan bajt 8 bitova i 2 ^ 8 = 256. Moći ćemo poslati vrijednosti od 0 do 256. Dakle, moramo sažeti vrijednosti izlaza Flex senzora i izlaza potenciometra u 0 do 256.
Da bismo to učinili, koristimo funkciju map () u Arduinu. Sve vrijednosti sa flex senzora pretvaraju se s 5 na 100, pa će se, kada savijemo senzor, povećati s 5, a kada se otpusti vratit će se na 5. Za spominjanje klikova mišem koriste se vrijednosti 1 i 0. Kada se pošalje 1, miš se pritisne, a kada se pošalje 0, miš se otpušta.
ako (FlexValue> = 65 && FlexValue <= 120) // moj fleks senzor varira od 65 do 120, vaši bi se mogli razlikovati {FlexValue = map (FlexValue, 120,65,0,100); // na temelju savijanja pretvara se u 0 na 100 ako se (FlexValue> = 5) // 1 i 0 koristi za klik mišem pa počnite od 5 {Mclick = true; Serial.write (1); // 1 šalje se radi lijevog klika miša Serial.write (FlexValue); // Vrijednost savijanja je udaljenost za pomicanje miša u smjeru X} else {Mclick = false; Serial.write (0);}}
Slično tome, vrijednosti iz potenciometra pretvaraju se iz 101 u 200, pjevajući funkciju map () i šalju se na COM port prijenosnih računala tužeći funkciju Serial.write () kako je prikazano dolje.
if (potValue <= 200) {potValue = map (potValue, 0,200,101,201); // Temeljno pretvoriti u 101 do 201 Serial.write (potValue); // Vrijednost pota je udaljenost za pomicanje miša u Y smjeru}
Ostatak programa objašnjava se pomoću komentara.
Šifra obrade:
Obrada je razvojna aplikacija otvorenog koda i može se lako preuzeti i koristiti za razvoj zanimljivih projekata pomoću Arduina ili drugih mikrokontrolera. Već smo izveli nekoliko projekata koristeći Processing i možete ih provjeriti klikom na donje poveznice.
- Uradi sam FM radio pomoću obrade
- Kontrola virtualne stvarnosti / gesta pomoću Arduina
- Privatna soba za razgovor pomoću Arduina.
- Arduino radarski sustav koji koristi APP za obradu i ultrazvučni senzor
- Otkrivanje i praćenje lica u stvarnom vremenu pomoću Arduina
- Uradi sam brzinomjer pomoću Arduina i obrade
- Ping Pong igra pomoću Arduino akcelerometra
- Dvonožni robot koji koristi Arduino
- Uradi sam Arduino termalna kamera
U ovom smo projektu koristili IDE za obradu za čitanje vrijednosti COM porta i upravljanje pokazivačem miša na temelju vrijednosti primljenih putem COM porta. Kompletan Kod obrade za ovu Angry Bird GAME CONTROLLER može se preuzeti s dolje link:
- Obrada koda za ovaj kontroler igre Angry Bird (desni klik i 'Spremi vezu kao')
Arduino program možete pronaći na kraju ovog vodiča. Kôd za obradu izmijenjen je kako bi se uklopio u našu svrhu iz koda koji je dao yoggy na svojoj GitHub stranici.
Podaci koji dolaze s COM priključka trebali bi se čitati u istoj brzini prijenosa u kojoj su poslani iz Arduina. Također provjerite s kojim COM portom je povezan vaš Arduino pomoću upravitelja uređaja. Moj Težak je bio spojen na COM3 i to je bio 0 th luci u mom računalu, a brzina prijenosa podataka u Arduino je 9600 tako kod je kako slijedi
port = novi serijski (ovaj, Serial.list (), 9600);
Jednom kad započnemo čitati vrijednosti, razlikujemo ga prepoznavanjem na temelju vrijednosti kako smo poslali iz Arduina. Vrijednosti se ponovno mapiraju od 0 do 100, tako da ćemo moći kontrolirati miš na temelju te vrijednosti.
if (port.available ()> 0) {data = port.read (); println (podaci); // Pročitajte podatke s COM priključka i spremite ih u data} if (data> = 101 && data <= 201) // Ako je vrijednost ako je od 101 do 201, onda mora biti iz potenciometra {Turn = int (map (podaci, 101,201,0,100)); // Koristite tu vrijednost za okretanje katapulta} if (podaci> = 5 && podaci <= 100) // Ako je vrijednost ako je od 5 do 100, onda mora biti od Flex Sensor {Pull = int (karta (podaci, 5.100, 0,100));} // Koristite tu vrijednost za izvlačenje katapulta ako je (podatak == 1) click = true; // Upotrijebite tu vrijednost da pritisnete tipku miša ako je (podaci == 0) click = false; // Koristite tu vrijednost za otpuštanje gumba miša
Nakon što kategoriziramo podatke, možemo kontrolirati miš pomoću robotske Java klase u obradi. Naredba robot.mouseMove (crntX-Pull, crntY + Turn); može se koristiti za pomicanje miša u bilo koji željeni položaj i linije robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); i robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); može se koristiti za pritiskanje ili otpuštanje tipke miša.
if (klik == lažno) // kada se Flex Sesnor ne povuče {crntX = (int) p.getX (); crntY = (int) p.getY (); if (Pull> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Otpustite tipku miša} if (klik == tačno) // kada se povuče Flex Sesnor {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Pritisnite tipku miša robot.mouseMove (crntX-Pull, crntY + Turn); // Pomicanje miša na temelju vrijednosti Flex i POT}}
IDE za obradu kada se pokrene također će prikazati mali dijaloški okvir na kojem možete pronaći vrijednosti povlačenja, okretanja i status klika miša kao što je prikazano ispod

Ovaj se detalj može koristiti za otklanjanje pogrešaka u programu ili ispravljanje svih potrebnih podataka.
Radno:
Da bi ovaj projekt Angry Bird funkcionirao koristeći priloženi kod, sastavite svoj hardver prema shemi sklopa i prenesite zadani Arduino kod. Zatim zabilježite na koji COM port je povezan vaš Arduino i napravite potrebne promjene u kodu za obradu i pokrenite skicu za obradu.
Sada jednostavno pokrenite igru ljutite ptice i postavite kursor blizu katapulta i povucite flex senzor da povučete pticu i podesite smjer pomoću potenciometra. Nakon postavljanja smjera otpustite Flex senzor
EEEEWWWWWEEEEEEEEEE !!!!!!!!!!……………
Vaša ptica bit će bačena ravno u zrak i BOOMM !! Na prasice. Kompletni rad možete pronaći u dolje navedenom videozapisu.

Nadam se da vam se svidio projekt i uspjeli ste izgraditi nešto slično. Ako sumnjate, možete me kontaktirati u odjeljku za komentare ili postaviti svoje pitanje na forum za tehnička pitanja.
Sad je vrijeme da se zaletimo u te kasice i vratimo jaja naših ptica !!!!
