Viss sākās ar nelielu spēli no tumsas laikiem, ko sauca par “Mario”, no brīža, kad bija mazs mazs puisis, kurš lēkā uz pīlēm, lai glābtu manu princesi, līdz tas bija vīrišķīgi skaists princis, kurš klīst Persijā (Persijas princis) un cīnās pret tumsu lai glābtu savu pasauli, es esmu bijis liels spēļu spēlētāju cienītājs, un es uzaugu, spēlējot tās. Bet viņiem reizēm garlaicīgi, un es jūtos mazāk iesaistīts tajā. Mūsdienās uzlabotās spēļu konsoles ļauj virtuāli spēlēt spēles un palīdz mums sajust spēli daudz labāk nekā to spēj tastatūra vai pele.
Būdams Arduino entuziasts, es noguris spēlēju slaveno spēli ar nosaukumu “Angry Birds”, izmantojot tastatūru un peli, un nolēmu izveidot savu spēļu kontrolieri, izmantojot Flex sensoru un potenciometru. Kad elastīgais sensors tiek izvilkts, tiks vilkts arī katapultas putns, un jūs varat izmantot potenciometru, lai iestatītu virzienu, kādā tas jāpalaiž. Tad, kad jūs atlaidat elastīgo sensoru, putns tiks palaists. Man diezgan patika to darīt, tāpēc, ja jūs gatavojaties izveidot kaut ko ļoti līdzīgu, šī apmācība būs noderīga. Šī apmācība būs noderīga arī, kontrolējot peles kursoru, izmantojot potenciometru.
Prasības programmatūrai un aparatūrai:
Programmatūra:
- Arduino IDE
- Notiek IDE apstrāde
- Dusmīgo putnu spēle datorā
Aparatūra:
- Arduino (jebkura versija)
- Potenciometrs
- Elastīgais sensors
- 47K omu rezistors
- Vadu savienošana
- Maizes dēlis
Koncepcija aiz:
Arduino padome skan vērtības no potenciometra un Flex Sinjor, un nosūta tos klēpjdatoru / PC caur USB COM portu, izmantojot normāla Serial.write () funkciju. Pēc tam mēs nolasījām šo informāciju, izmantojot Apstrāde un kontrolējam peles kursoru, izmantojot robotu klasi Java, kuru atbalsta IDE apstrāde. Mēs esam ieprogrammējuši apstrādes IDE tā, ka, kad tiek ievilkts Flex sensors, tiks veikts peles klikšķis un, pamatojoties uz to, cik daudz tas ir izvilkts, peles rādītājs pārvietosies X virzienā. Tad, pamatojoties uz potenciometra vērtību, mēs pārvietosim peles kursoru Y virzienā, tādā veidā mēs varēsim iestatīt virzienu, kādā putns ir palaists.
Ķēdes shēma:
Kontūra dusmīgā putna spēlēšanai, izmantojot elastīgo sensoru un potenciometru, ir vienkārša.
Arduino analogajām ieejām (A0, A1) mums ir vienkārši pievienots potenciometrs un elastīgais sensors. Flex sensora izeja tiek pievilkta arī, izmantojot 47K pretestības pretestību.
Jūs varat to tieši savienot uz maizes dēļa vai pielodēt pie Perf dēļa un salikt uz cimdiem vai kaut kā cita, lai tas būtu radošāks. Es vienkārši izmantoju maizes dēli, lai veiktu savienojumus, kā parādīts tālāk:
Arduino programma:
Pilns Arduino kods ir norādīts apmācības beigās. Tālāk ir paskaidrotas dažas svarīgas līnijas.
Mēs inicializējam programmu darbam ar 9600 bitu pārraides ātrumu un sākam lasīt vērtības no Flex sensora un potenciometra. Kā mēs zinām, serial.write () funkcija vienlaikus var nosūtīt tikai vienu baitu datu. Tā kā viens baits ir 8 biti un 2 ^ 8 = 256. Mēs varēsim nosūtīt vērtības no 0 līdz 256. Tāpēc mums ir jāsaspiež Flex sensora izejas un potenciometra izejas vērtības no 0 līdz 256.
Lai to izdarītu, mēs izmantojam map () funkciju Arduino. Visas elastīgā sensora vērtības tiek pārrēķinātas no 5 līdz 100, tāpēc, kad mēs saliekam sensoru, tas palielināsies no 5, un, kad to atbrīvos, tas atgriezīsies līdz 5. Lai pieminētu peles klikšķus, tiek izmantota vērtība 1 un 0. Kad tiek nosūtīts 1, pele tiek nospiesta un, kad tiek nosūtīta 0, pele tiek atlaista.
ja (FlexValue> = 65 && FlexValue <= 120) // mans elastīgais sensors svārstās no 65 līdz 120, jūsu var būt atšķirīgs {FlexValue = map (FlexValue, 120,65,0,100); // pamatojoties uz saliekšanu konvertēt uz 0 līdz 100, ja (FlexValue> = 5) // peles klikšķim izmanto 1 un 0, tāpēc sāciet no 5 {Mclick = true; Seriāls.rakstīt (1); // 1 tiek nosūtīts, lai ar peles kreiso taustiņu noklikšķinātu uz Serial.write (FlexValue); // Elastības vērtība ir attālums, lai pārvietotu peli X virzienā} cits {Mclick = false; Serial.write (0);}}
Līdzīgi kā potenciometra vērtības tiek pārvērstas no 101 līdz 200, izmantojot funkciju map (), tiek nosūtītas uz portatīvo datoru portu, kas tiesājas ar funkciju Serial.write (), kā parādīts zemāk.
if (potValue <= 200) {potValue = karte (potValue, 0,200,101,201); // Pamatojoties uz to, pārvērst par 101 uz 201 Serial.write (potValue); // Pot vērtība ir attālums, lai pārvietotu peli Y virzienā}
Pārējā programma tiek izskaidrota, izmantojot komentārus.
Apstrādes kods:
Apstrāde ir atvērtā pirmkoda izstrādes lietojumprogramma, kuru var viegli lejupielādēt un izmantot interesantu projektu izstrādei, izmantojot Arduino vai citus mikrokontrollerus. Mēs jau esam veikuši dažus projektus, izmantojot apstrādi, un jūs varat tos pārbaudīt, noklikšķinot uz tālāk esošajām saitēm.
- DIY FM radio, izmantojot apstrādi
- Virtuālās realitātes / žestu vadība, izmantojot Arduino
- Privāta tērzēšanas istaba, izmantojot Arduino.
- Arduino radaru sistēma, izmantojot apstrādes APP un ultraskaņas sensoru
- Reālā laika sejas noteikšana un izsekošana, izmantojot Arduino
- DIY spidometrs, izmantojot Arduino un apstrādi
- Spēle Ping Pong, izmantojot Arduino akselerometru
- Divkāju robots, izmantojot Arduino
- DIY Arduino siltuma attēlveidošanas kamera
Šajā projektā mēs esam izmantojuši apstrādes IDE, lai nolasītu COM porta vērtības un kontrolētu peles rādītāju, pamatojoties uz vērtībām, kas saņemtas caur COM portu. Pilnīga apstrāde Kods šo Angry Bird Game kontrolieri var lejupielādēt no zemāk saiti:
- Notiek koda apstrāde šim Angry Bird Game Controller (ar peles labo pogu noklikšķiniet un “Saglabāt saiti kā”)
Arduino programma ir atrodama šīs apmācības beigās. Apstrādes kods tika modificēts, lai tas atbilstu mūsu mērķiem, izmantojot kodu, ko jogs norādījis savā GitHub lapā.
Dati, kas nāk no COM porta, jālasa tajā pašā datu pārraides ātrumā, kādā tie tika nosūtīti no Arduino. Izmantojot ierīces pārvaldnieku, arī pārbaudiet, kurš COM ports ir savienots ar Arduino. Mans Arduino bija saistīts ar COM3, un tas bija arī 0 th ostas manā datorā un bodu ātrums lietā Arduino bija 9600 tā kods ir šāds
ports = jauna sērija (this, Serial.list (), 9600);
Kad mēs sākam lasīt vērtības, mēs to atšķiram, atpazīstot to, pamatojoties uz tā vērtību, kā mēs sūtījām no Arduino. Vērtības atkal tiek kartētas no 0 līdz 100, lai mēs varētu kontrolēt peli, pamatojoties uz šo vērtību.
if (ports.pieejams ()> 0) {dati = ports.lasīt (); println (dati); // Izlasiet datus no COM porta un saglabājiet tos datos} if (dati> = 101 && dati <= 201) // Ja vērtība ir no 101 līdz 201, tad tai jābūt no potenciometra {Turn = int (map (dati (, 101,201,0,100)); // Izmantojiet šo vērtību, lai pagrieztu catapullt} if (dati> = 5 && dati <= 100) // Ja vērtība ir no 5 līdz 100, tad tai jābūt no Flex Sensor {Pull = int (map (dati, 5,100, 0,100));} // Izmantojiet šo vērtību, lai izvilktu katapultu, ja (dati == 1) noklikšķiniet = taisnība; // Izmantojiet šo vērtību, lai nospiestu peles pogu, ja (data == 0) noklikšķiniet = false; // Izmantojiet šo vērtību, lai atbrīvotu peles pogu
Pēc datu kategorizēšanas mēs varam kontrolēt peli, izmantojot Robot Java klasi apstrādē. Komanda robot.mouseMove (crntX-Pull, crntY + Turn); var izmantot, lai pārvietotu peli uz jebkuru vēlamo pozīciju un līnijas robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); un robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); var izmantot, lai attiecīgi nospiestu vai atlaistu peles pogu.
if (click == false) // kad Flex Sesnor netiek izvilkts {crntX = (int) p.getX (); crntY = (int) p.getY (); if (Pull> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // atlaidiet peles pogu} if (noklikšķiniet == true) //, kad tiek izvilkts Flex Sesnor {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Nospiediet peles pogu robots.mouseMove (crntX-Pull, crntY + Turn); // Pārvietojiet peli, pamatojoties uz Flex un POT vērtību}}
Apstrādes IDE pēc palaišanas parādīs arī nelielu dialoglodziņu, kurā var atrast Pull, Turn un Mouse Click statusu vērtības, kā parādīts zemāk
Šo informāciju var izmantot, lai atkļūdotu programmu vai labotu visus nepieciešamos datus.
Darbs:
Lai šis Angry Bird Project darbotos, izmantojot norādīto kodu, samontējiet aparatūru atbilstoši shēmai un augšupielādējiet norādīto Arduino kodu. Pēc tam atzīmējiet, ar kuru COM portu ir savienots jūsu Arduino, veiciet nepieciešamās izmaiņas apstrādes kodā un palaidiet apstrādes skici.
Tagad vienkārši sāciet dusmīgo putnu spēli un novietojiet kursoru netālu no katapultas un velciet elastīgo sensoru, lai vilktu putnu un iestatītu virzienu, izmantojot potenciometru. Kad virziens ir iestatīts, atlaidiet Flex sensoru
EEEEWWWWWEEEEEEEEEE !!!!!!!!!!……………
Jūs putns tiks izmests tieši gaisā un BOOMM !! Uz cūciņām. Pilnīgu darbu var atrast zemāk sniegtajā videoklipā.
Ceru, ka jums patika projekts un jūs varējāt izveidot kaut ko līdzīgu. Ja jums ir kādas šaubas, varat sazināties ar mani komentāru sadaļā vai ievietot savu jautājumu tehnisko jautājumu forumā.
Tagad ir laiks ietriekties šajās cūciņu kastēs un atgūt mūsu putnu olas !!!!