Det hele startet med et lite spill fra mørketiden kalt "Mario", helt fra den tiden da han var en liten fyr som hoppet på ender for å redde prinsessen min til jeg var en maskulin kjekk prins som streifet rundt i Persia (prinsen av Persia) som kjemper mot mørket. for å redde verden bak har jeg vært en stor fan av å spille videospill, og jeg vokste opp med å spille dem. Men de kjeder seg noen ganger, og jeg føler meg mindre involvert i det. I dag muliggjør de avanserte spillkonsollene virtuell spill og hjelper oss å føle spillet mye bedre enn et tastatur eller en mus kan gjøre.
Å være en Arduino-entusiast sliten jeg å spille det berømte spillet kalt “Angry Birds” ved hjelp av tastatur og mus og bestemte meg for å bygge min egen spillkontroller ved hjelp av en Flex-sensor og et potensiometer. Når flex-sensoren trekkes, trekkes også fuglen på katapulten, og du kan bruke potensiometeret til å stille inn retningen den skal lanseres i. Så når du slipper flex-sensoren, blir fuglen lansert. Jeg likte ganske godt å gjøre det, så hvis du er i ferd med å bygge noe veldig likt, vil denne opplæringen være nyttig. Denne opplæringen vil også være nyttig i å kontrollere musemarkøren ved hjelp av potensiometer.
Krav til programvare og maskinvare:
Programvare:
- Arduino IDE
- Behandler IDE
- Angry Birds Game på datamaskinen
Maskinvare:
- Arduino (hvilken som helst versjon)
- Potensiometer
- Flex-sensor
- 47K ohm motstand
- Koble ledninger
- Brettbrett
Konseptet bak:
Den Arduino Board leser verdiene fra Potensiometer og Flex Senor og overfører dem til laptop / PC via USB COM-port via normal Serial.write () funksjonen. Vi leser deretter denne informasjonen ved hjelp av prosessering og kontrollerer musepekeren ved hjelp av robotklassen i Java, som støttes av behandling av IDE. Vi har programmert behandlingen IDE på en slik måte at når Flex-sensoren trekkes, vil det bli laget et museklikk og basert på hvor mye den trekkes, vil musepekeren bevege seg i X-retning. Så basert på verdien fra potensiometeret vil vi flytte musepekeren i Y-retning, på denne måten kan vi sette retningen fuglen skal lanseres i.
Kretsdiagram:
Kretsen for å spille Angry Bird ved hjelp av Flex Sensor og Potentiometer er enkel.
Vi har enkelt koblet et potensiometer og en flex-sensor til de analoge inngangene (A0, A1) på Arduino. Utgangen fra Flex-sensoren trekkes også ned ved hjelp av en 47K nedtrekksmotstand.
Du kan koble den direkte på brødbrettet eller lodde dem til et Perf-brett og montere det på hansker eller noe for å gjøre det mer kreativt. Jeg har ganske enkelt brukt et brødbrett for å gjøre forbindelsene mine som vist nedenfor:
Arduino-program:
Den komplette Arduino-koden er gitt på slutten av opplæringen. Få viktige linjer er forklart nedenfor.
Vi initialiserer programmet for å arbeide med 9600 baudrate og begynner å lese verdiene fra Flex-sensor og potensiometer. Som vi vet kan serial.write () -funksjonen bare sende en byte data om gangen. Siden en byte er 8 bits og 2 ^ 8 = 256. Vi vil kunne sende verdier fra 0 til 256. Så vi må komprimere verdiene til Flex-sensorutgang og potensiometerutgang til 0 til 256.
For å gjøre det bruker vi map () -funksjonen i Arduino. Alle verdiene fra flex-sensoren konverteres fra 5 til 100, så når vi bøyer sensoren, øker den fra 5, og når den slippes vil den gå tilbake til 5. For å nevne museklikk brukes verdien 1 og 0. Når 1 sendes, trykkes musen og når 0 sendes, slippes musen.
hvis (FlexValue> = 65 && FlexValue <= 120) // min flex-sensor varierer fra 65 til 120, kan det hende du er annerledes {FlexValue = map (FlexValue, 120,65,0,100); // basert på bøying konverter til 0 til 100 hvis (FlexValue> = 5) // 1 og 0 brukes til museklikk, så start fra 5 {Mclick = true; Serial.write (1); // 1 sendes for å lage museminneklikk på Serial.write (FlexValue); // Flex-verdi er avstanden for å bevege musen i X-retning} ellers {Mclick = false; Serial.write (0);}}
Tilsvarende verdiene som potensiometeret konverteres fra 101 til 200 synger kartfunksjonen () og sendes til den bærbare datamaskinens COM-port som saksøker Serial.write () -funksjonen som vist nedenfor.
hvis (potValue <= 200) {potValue = map (potValue, 0,200,101,201); // Basert i sin tur konvertere til 101 til 201 Serial.write (potValue); // Potverdien er avstanden for å flytte musen i Y-retning}
Resten av programmet forklares ved hjelp av kommentarene.
Behandlingskode:
Processing er en åpen kildekode-utviklingsapplikasjon og kan enkelt lastes ned og brukes til å utvikle interessante prosjekter ved hjelp av Arduino eller andre mikrokontrollere. Vi har allerede gjort få prosjekter ved hjelp av prosessering, og du kan sjekke dem ut ved å klikke på lenkene nedenfor.
- DIY FM-radio ved bruk av behandling
- Virtuell virkelighet / gestkontroll ved hjelp av Arduino
- Privat chatterom med Arduino.
- Arduino Radar System bruker Processing APP og Ultrasonic Sensor
- Sanntids ansiktsgjenkjenning og sporing ved hjelp av Arduino
- DIY Speedometer ved hjelp av Arduino og Processing
- Ping Pong Game ved hjelp av Arduino Accelerometer
- Biped Robot ved hjelp av Arduino
- DIY Arduino termisk bildekamera
I dette prosjektet har vi brukt behandlingen IDE til å lese COM-portverdiene og kontrollere musepekeren basert på verdiene mottatt via COM-porten. Den komplette behandlingskoden for denne Angry Bird Game Controller kan lastes ned fra lenken nedenfor:
- Behandlingskode for denne Angry Bird Game Controller (høyreklikk og 'Lagre lenke som')
Arduino-programmet finner du på slutten av denne opplæringen. Behandlingskoden ble modifisert for å passe for vårt formål fra koden gitt av yoggy på GitHub-siden.
Dataene som kommer fra COM-porten skal leses i samme baudrate som den ble sendt fra Arduino. Sjekk også hvilken COM-port Arduino er koblet til ved hjelp av enhetsbehandling. Min Arduino ble koblet til COM3 og det var det 0 th Port i min datamaskin og overføringshastigheten i Arduino var 9600 så koden er som følger
port = ny Serial (denne, Serial.list (), 9600);
Når vi begynner å lese verdiene, skiller vi det ved å gjenkjenne det basert på verdien på hvordan vi sendte fra Arduino. Verdiene blir igjen kartlagt fra 0 til 100 slik at vi vil kunne kontrollere musen basert på den verdien.
hvis (port.available ()> 0) {data = port.read (); println (data); // Les dataene fra COM-porten og lagre dem i data} hvis (data> = 101 && data <= 201) // Hvis verdien er fra 101 til 201 så må den være fra potensiometer {Turn = int (kart (data, 101,201,0,100)); // Bruk den verdien til å snu catapullt} hvis (data> = 5 && data <= 100) // Hvis verdien er fra 5 til 100, må den være fra Flex Sensor {Pull = int (kart (data, 5,100, 0,100));} // Bruk den verdien til å trekke katapulten hvis (data == 1) click = true; // Bruk den verdien til å trykke på museknappen hvis (data == 0) click = false; // Bruk den verdien til å slippe museknappen
Når vi har kategorisert dataene, kan vi kontrollere musen ved hjelp av Robot Java-klassen i prosessering. Kommandoboten.mouseMove (crntX-Pull, crntY + Turn); kan brukes til å flytte musen til ønsket posisjon og linjene robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); og robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); kan brukes til å trykke eller slippe museknappen henholdsvis.
hvis (klikk == usann) // når Flex Sesnor ikke blir trukket {crntX = (int) p.getX (); crntY = (int) p.getY (); hvis (Pull> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Slipp museknappen} hvis (klikk == sann) // når Flex Sesnor blir trukket {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Trykk på museknappen robot.mouseMove (crntX-Pull, crntY + Turn); // Flytt musen basert på Flex- og POT-verdien}}
Behandlings-IDE når den lanseres, vil også vise en liten dialogboks der du kan finne verdiene for Pull, Turn og status for Museklikk som vist nedenfor
Denne detaljene kan brukes til å feilsøke programmet eller korrigere alle nødvendige data.
Jobber:
For å få dette Angry Bird Project til å fungere ved hjelp av koden som følger med, monterer du maskinvaren din i henhold til kretsskjemaet og laster opp den gitte Arduino-koden. Legg deretter merke til hvilken COM-port Arduino er koblet til, og gjør de nødvendige endringene i behandlingskoden, og start prosessskissen.
Nå er det bare å starte det sint fuglespillet og plassere markøren i nærheten av katapulten, og trekke i flex-sensoren for å trekke fuglen og sette retningen ved hjelp av potensiometeret. Når retningen er angitt, slipper du Flex-sensoren
EEEEWWWWEEEEEEEEEEE !!!!!!!!!!……………
Din fugl vil bli kastet rett opp i luften og BOOMM !! På grisene. Komplett arbeid finner du i videoen gitt nedenfor.
Håper du likte prosjektet og var i stand til å bygge noe lignende. Hvis du er i tvil, kan du kontakte meg på kommentarseksjonen eller legge ut spørsmålet ditt på forumet for tekniske spørsmål.
Nå, på tide å krasje i de sparegrisen og få tilbake fugleeggene våre !!!!