- Mga Kinakailangan sa Software at Hardware:
- Konsepto sa Likod:
- Diagram ng Circuit:
- Programa ng Arduino:
- Nagtatrabaho:
Nagsimula ang lahat sa isang maliit na laro mula sa madilim na edad na tinatawag na "Mario", mula pa sa oras ng pagiging isang maliit na maliit na lalaki na tumatalon sa mga pato upang mai-save ang aking prinsesa hanggang sa maging isang masculine na guwapong Prince na gumagala sa Persia (Prince of Persia) na nakikipaglaban sa kadiliman upang mai-save ang aking mundo sa likod ako ay naging isang mahusay na tagahanga ng paglalaro ng mga video game at lumaki ako sa paglalaro ng mga ito. Ngunit naiinis talaga sila kung minsan at mas hindi ako kasali dito. Ngayon, ang mga advanced na console ng gaming ay nagbibigay-daan sa virtual na paglalaro at tinutulungan kaming madama ang laro nang mas mahusay kaysa sa maaaring gawin ng isang keyboard o isang mouse.
Ang pagiging isang Arduino Masigasig nagsawa ako sa paglalaro ng sikat na laro na tinatawag na "Angry Birds" gamit ang keyboard at mouse at nagpasyang bumuo ng aking sariling Game Controller gamit ang isang Flex Sensor at isang Potentiometer. Kapag hinila ang flex sensor ang ibon sa tirador ay hilahin din at maaari mong gamitin ang potensyomiter upang maitakda ang direksyon kung saan ito dapat ilunsad. Pagkatapos kapag pinakawalan mo ang flex sensor ang ibon ay ilulunsad. Medyo nasiyahan ako sa paggawa nito, kaya kung nasa pagbuo ka ng isang bagay na katulad na katulad sa gayon ang tutorial na ito ay magiging kapaki-pakinabang. Ang tutorial na ito ay makakatulong din sa Pagkontrol ng Mouse Cursor gamit ang Potentiometer.
Mga Kinakailangan sa Software at Hardware:
Software:
- Arduino IDE
- Pagproseso ng IDE
- Angry Birds Game sa Computer
Hardware:
- Arduino (Anumang Bersyon)
- Potensyomiter
- Flex Sensor
- 47K ohm Resistor
- Mga Koneksyon sa Mga Wires
- Breadboard
Konsepto sa Likod:
Ang Arduino Board bumabasa ang mga halaga mula sa potensyomiter at Flex Senor at nagpapadala ng mga ito sa Laptop / PC sa pamamagitan ng USB COM port sa pamamagitan ng normal na Serial.write () function. Basahin namin pagkatapos ang impormasyong ito gamit ang Pagproseso at kontrolin ang mouse cursor gamit ang Robot class sa Java na sinusuportahan ng pagproseso ng IDE. Na-program namin ang pagpoproseso ng IDE sa isang paraan na kapag ang Flex sensor ay hinila isang pag-click sa mouse ang gagawin at batay sa kung gaano ito hinila ang mouse pointer ay lilipat sa direksyon ng X Pagkatapos batay sa halaga mula sa potensyomiter ililipat namin ang mouse cursor sa direksyon ng Y, sa ganitong paraan maaari nating maitakda ang direksyon kung saan dapat ilunsad ang ibon.
Diagram ng Circuit:
Ang circuit para sa pag- play ng Angry Bird gamit ang Flex Sensor at Potentiometer ay madali.
Mayroon kaming simpleng konektadong potensyomiter at isang flex sensor sa mga input ng Analog (A0, A1) ng Arduino. Ang output ng Flex sensor ay hinila rin pababa gamit ang isang 47K pull down resistor.
Maaari mong direktang ikonekta ito sa breadboard o maghinang ang mga ito sa isang Perf board at tipunin ito sa isang guwantes o isang bagay upang gawin itong mas malikhain. Ginamit ko lamang ang isang breadboard upang gawin ang aking mga koneksyon tulad ng ipinakita sa ibaba:
Programa ng Arduino:
Ang kumpletong Arduino code ay ibinibigay sa pagtatapos ng tutorial. Ilang mga mahahalagang linya ang ipinaliwanag sa ibaba.
Pinasimulan namin ang programa upang gumana kasama ang 9600 baud rate at simulang basahin ang mga halaga mula sa Flex sensor at Potentiometer. Tulad ng alam natin na serial.write () na pagpapaandar ay maaaring magpadala ng isang byte lamang ng data nang paisa-isa. Dahil ang One byte ay 8 bits at 2 ^ 8 = 256. Magagawa naming magpadala ng mga halaga mula 0 hanggang 256. Kaya kailangan naming i-compress ang mga halaga ng output ng Flex sensor at Potentiometer Output na 0 hanggang 256.
Upang magawa iyon, ginagamit namin ang pagpapaandar ng mapa () sa Arduino. Ang lahat ng mga halaga mula sa flex sensor ay na-convert mula 5 hanggang 100, kaya kapag yumuko kami ng sensor ay madaragdag ito mula 5 at kapag pinakawalan ay babalik ito sa 5. Upang banggitin ang mga pag-click sa mouse ginagamit ang halagang 1 at 0. Kapag naipadala ang 1 ang mouse ay pinindot at kapag ipinadala ang 0 ay inilabas ang mouse.
kung (FlexValue> = 65 && FlexValue <= 120) // ang aking flex sensor ay nag-iiba mula 65 hanggang 120, maaaring naiiba ang iyong {FlexValue = map (FlexValue, 120,65,0,100); // based on bending convert to 0 to 100 if (FlexValue> = 5) // 1 and 0 is used for mouse click so start from 5 {Mclick = true; Serial.write (1); // 1 ay ipinadala upang gawing kaliwa ang mouse i-click ang Serial.write (FlexValue); // Flex halaga ay ang distansya upang ilipat ang mouse sa X direksyon} iba pa {Mclick = false; Serial.write (0);}}
Katulad nito ang mga halagang bumubuo ng potensyomiter ay na-convert mula 101 hanggang 200 na kantahin ang mapa () na pagpapaandar at ipadala sa Laptops COM port na dinemanda ang pagpapaandar na Serial.write () tulad ng ipinakita sa ibaba.
kung (potValue <= 200) {potValue = mapa (potValue, 0,200,101,201); // Batay naman i-convert sa 101 hanggang 201 Serial.write (potValue); // Ang halaga ng palayok ay ang distansya upang ilipat ang mouse sa direksyon ng Y}
Ang natitirang programa ay ipinaliwanag gamit ang mga komento.
Code sa pagpoproseso:
Ang pagpoproseso ay isang application ng pagbuo ng Open-Source at maaaring madaling mai-download at magamit para sa pagbuo ng mga kagiliw-giliw na proyekto gamit ang Arduino o iba pang Microcontrollers. Natapos na namin ang ilang mga proyekto gamit ang Pagproseso at maaari mong suriin ang mga ito sa pamamagitan ng pag-click sa mga link sa ibaba.
- DIY FM Radio Gamit ang Pagproseso
- Pagkontrol sa Virtual Reality / Gesture gamit ang Arduino
- Pribadong Chat room gamit ang Arduino.
- Arduino Radar System gamit ang Processing APP at Ultrasonic Sensor
- Real Time Face Detection at Pagsubaybay gamit ang Arduino
- DIY Speedometer gamit ang Arduino at Pagproseso
- Ping Pong Game gamit ang Arduino Accelerometer
- Biped Robot Gamit ang Arduino
- DIY Arduino Thermal Imaging Camera
Sa proyektong ito, ginamit namin ang pagpoproseso ng IDE upang basahin ang mga halaga ng COM port at makontrol ang mouse pointer batay sa mga halagang natanggap sa pamamagitan ng COM port. Ang kumpletong Processing Code para sa Angry Bird Game Controller na ito ay maaaring ma-download mula sa link sa ibaba:
- Processing Code para sa Angry Bird Game Controller na ito (i-right click at 'I-save ang link bilang')
Ang Arduino Program ay matatagpuan sa pagtatapos ng tutorial na ito. Ang code sa Pagproseso ay binago upang magkasya para sa aming layunin mula sa code na ibinigay ng yoggy sa kanyang pahina sa GitHub.
Ang data na nagmumula sa COM port ay dapat basahin sa parehong rate ng baud kung saan ipinadala ito mula sa Arduino. Suriin din kung aling COM port ang iyong Arduino ay konektado sa pamamagitan ng paggamit ng tagapamahala ng aparato. Ang aking Arduino ay konektado sa COM3 at ito ang ika- 0 na Port sa aking computer at ang rate ng baud sa Arduino ay 9600 kaya ang code ay ang mga sumusunod
port = bagong Serial (ito, Serial.list (), 9600);
Kapag nagsimula na kaming magbasa ng mga halagang makilala natin ito sa pamamagitan ng pagkilala dito batay sa halaga nito sa kung paano kami nagpadala mula sa Arduino. Ang mga halaga ay muling nai-mapa mula 0 hanggang 100 upang makontrol namin ang mouse batay sa halagang iyon.
kung (port.available ()> 0) {data = port.read (); println (data); // Basahin ang data mula sa COM port at i-save ito sa data} kung (data> = 101 && data <= 201) // Kung ang halaga kung mula 101 hanggang 201 kung gayon dapat mula sa Potentiometer {Turn = int (mapa (data, 101,201,0,100)); // Use that value to turn the catapullt} if (data> = 5 && data <= 100) // Kung ang halaga kung mula 5 hanggang 100 kung gayon dapat ito mula sa Flex Sensor {Pull = int (mapa (data, 5,100, 0,100));} // Gamitin ang halagang iyon upang hilahin ang tirador kung (data == 1) mag-click = totoo; // Use that value to press the mouse button if (data == 0) click = false; // Gamitin ang halagang iyon upang palabasin ang pindutan ng mouse
Kapag na-kategorya na namin ang data maaari naming makontrol ang mouse gamit ang Robot Java Class sa Pagproseso. Ang command robot.mouseMove (crntX-Pull, crntY + Turn); maaaring magamit upang ilipat ang mouse sa anumang nais na posisyon at ang mga linya robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); at robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); maaaring magamit upang pindutin o bitawan ang pindutan ng mouse ayon sa pagkakabanggit.
kung (mag-click == false) // kapag ang Flex Sesnor ay hindi hinila {crntX = (int) p.getX (); crntY = (int) p.getY (); kung (Hilahin> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Bitawan ang pindutan ng mouse} kung (mag-click == totoo) // kapag ang Flex Sesnor ay hinila {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Press the mouse Button robot.mouseMove (crntX-Pull, crntY + Turn); // Ilipat ang mouse batay sa halaga ng Flex at POT}}
Ang pagproseso ng IDE kapag inilunsad ay magpapakita rin ng isang maliit na dialog Box kung saan maaari mong makita ang mga halaga ng Hilahin, Lumiko at katayuan ng Pag-click sa Mouse tulad ng ipinakita sa ibaba
Maaaring magamit ang detalyeng ito upang mai-debug ang Program o maitama ang anumang kinakailangang data.
Nagtatrabaho:
Upang magawa ang Angry Bird Project na ito gamit ang ibinigay na code, tipunin ang iyong hardware alinsunod sa diagram ng circuit at i-upload ang ibinigay na Arduino Code. Pagkatapos Tandaan kung aling COM port ang iyong Arduino ay konektado at gawin ang mga kinakailangang pagbabago sa Processing code at ilunsad ang sketch ng pagproseso.
Ngayon, ilunsad lamang ang galit na laro ng ibon at ilagay mo ang cursor malapit sa tirador at hilahin ang flex sensor upang hilahin ang ibon at itakda ang direksyon gamit ang potensyomiter. Kapag ang direksyon ay itinakda bitawan ang Flex sensor
EEEEWWWWWEEEEEEEEEEEE !!!!!!!!!!……………
Ikaw na ibon ay itapon mismo sa hangin at BOOMM !! Sa mga piggies. Ang kumpletong pagtatrabaho ay matatagpuan sa Video na ibinigay sa ibaba.
Inaasahan kong nasiyahan ka sa proyekto at nakagawa ng isang katulad na bagay. Kung mayroon kang anumang mga pagdududa maaari mong maabot ako sa seksyon ng komento o i-post ang iyong katanungan sa forum para sa mga teknikal na katanungan.
Ngayon, oras upang mag-crash sa mga piggy box at ibalik ang aming mga itlog ng mga ibon !!!!