Allt började med ett litet spel från de mörka åldrarna som heter "Mario", precis från tiden för att vara en liten liten kille som hoppar på ankor för att rädda min prinsessa tills han är en maskulin stilig prins som strövar i Persien (Prinsen av Persien) som kämpar mot mörkret. för att rädda min värld bakom har jag varit ett stort fan av att spela videospel och jag växte upp med att spela dem. Men de blir uttråkade ibland och jag känner mig mindre involverad i det. Idag möjliggör de avancerade spelkonsolerna virtuellt spel och hjälper oss att känna spelet mycket bättre än ett tangentbord eller en mus kan göra.
Eftersom jag var en Arduino-entusiast tröttnade jag på att spela det berömda spelet ”Angry Birds” med tangentbord och mus och bestämde mig för att bygga min egen spelkontroll med en Flex-sensor och en potentiometer. När flex-sensorn dras dras också fågeln på katapulten och du kan använda potentiometern för att ställa in riktningen i vilken den ska startas. När du släpper flex-sensorn kommer fågeln att startas. Jag tyckte ganska mycket om att göra det, så om du är på väg att bygga något mycket liknande så kommer den här guiden att vara till hjälp. Denna handledning kommer också att vara till hjälp vid styrning av muspekaren med potentiometer.
Krav på programvara och hårdvara:
Programvara:
- Arduino IDE
- Bearbetar IDE
- Angry Birds Game på datorn
Hårdvara:
- Arduino (vilken version som helst)
- Potentiometer
- Flex-sensor
- 47K ohm motstånd
- Anslutande ledningar
- Bakbord
Koncept bakom:
Den Arduino Board läser värdena från Potentiometer och Flex Senor och överför dem till Laptop / PC via USB COM-port via normal Serial.write () funktion. Vi läser sedan denna information med bearbetning och kontrollerar muspekaren med hjälp av robotklassen i Java som stöds av bearbetning av IDE. Vi har programmerat bearbetning IDE på ett sådant sätt att när Flex-sensorn dras kommer ett musklick att göras och baserat på hur mycket det dras kommer muspekaren att röra sig i X-riktning. Baserat på värdet från potentiometern flyttar vi muspekaren i Y-riktning, på detta sätt kan vi ställa in den riktning som fågeln ska startas i.
Kretsschema:
Kretsen för att spela Angry Bird med Flex Sensor och Potentiometer är lätt.
Vi har enkelt anslutit en potentiometer och en flex-sensor till de analoga ingångarna (A0, A1) på Arduino. Utgången från Flex-sensorn dras också ner med hjälp av ett 47K-motstånd.
Du kan ansluta den direkt på brödbrädan eller lödda dem till en Perf-bräda och montera den på en handskar eller något för att göra det mer kreativt. Jag har helt enkelt använt en bräda för att göra mina anslutningar enligt nedan:
Arduino-program:
Den kompletta Arduino-koden ges i slutet av handledningen. Några viktiga rader förklaras nedan.
Vi initialiserar programmet för att arbeta med 9600 baudhastighet och börjar läsa värdena från Flex-sensor och Potentiometer. Som vi vet kan serial.write () -funktionen bara skicka en byte med data åt gången. Eftersom en byte är 8 bitar och 2 ^ 8 = 256. Vi kommer att kunna skicka värden från 0 till 256. Så vi måste komprimera värdena för Flex-sensorutgången och Potentiometer-utgången till 0 till 256.
För att göra det använder vi map () -funktionen i Arduino. Alla värden från flex-sensorn omvandlas från 5 till 100, så när vi böjer sensorn kommer den att öka från 5 och när den släpps går den tillbaka till 5. För att nämna musklickarna används värdet 1 och 0. När 1 skickas trycks musen och när 0 skickas släpps musen.
om (FlexValue> = 65 && FlexValue <= 120) // min flex-sensor varierar från 65 till 120, kan du vara annorlunda {FlexValue = karta (FlexValue, 120,65,0,100); // baserat på böjning konvertera till 0 till 100 om (FlexValue> = 5) // 1 och 0 används för musklick så börja från 5 {Mclick = true; Serial.write (1); // 1 skickas för att göra musen vänsterklicka på Serial.write (FlexValue); // Flex-värde är avståndet för att flytta musen i X-riktning} annars {Mclick = false; Serial.write (0);}}
På samma sätt omvandlas värdena till att potentiometern omvandlas från 101 till 200 sjunger map () -funktionen och skickas till COM-porten för bärbara datorer som stämmer med Serial.write () -funktionen enligt nedan.
if (potValue <= 200) {potValue = map (potValue, 0,200,101,201); // Baseras i sin tur om till 101 till 201 Serial.write (potValue); // Pot-värde är avståndet för att flytta musen i Y-riktning}
Resten av programmet förklaras med hjälp av kommentarerna.
Bearbetningskod:
Bearbetning är en utvecklingsapplikation med öppen källkod och kan enkelt laddas ner och användas för att utveckla intressanta projekt med Arduino eller andra mikrokontroller. Vi har redan gjort några projekt med bearbetning och du kan kolla in dem genom att klicka på länkarna nedan.
- DIY FM-radio med bearbetning
- Virtuell verklighet / gestkontroll med Arduino
- Privat chattrum med Arduino.
- Arduino Radar System använder Processing APP och Ultrasonic Sensor
- Ansiktsdetektering och spårning i realtid med Arduino
- DIY-hastighetsmätare med Arduino och Processing
- Ping Pong Game med Arduino Accelerometer
- Bipad robot med Arduino
- DIY Arduino värmekamera
I det här projektet har vi använt bearbetning IDE för att läsa COM-portvärdena och kontrollera muspekaren baserat på de värden som tas emot via COM-porten. Den kompletta bearbetningskoden för denna Angry Bird Game Controller kan laddas ner från länken nedan:
- Bearbetningskod för denna Angry Bird Game Controller (högerklicka och 'Spara länk som')
Arduino-programmet hittar du i slutet av denna handledning. Bearbetningskoden modifierades för att passa för vårt syfte från den kod som yoggy gav på hans GitHub-sida.
Data som kommer från COM-porten bör läsas i samma baudhastighet som den skickades från Arduino. Kontrollera också vilken COM-port din Arduino är ansluten med hjälp av enhetshanteraren. Min Arduino var ansluten till COM3 och det var den 0: e porten i min dator och baudhastigheten i Arduino var 9600 så koden är som följer
port = ny serie (denna, Serial.list (), 9600);
När vi väl har börjat läsa värdena skiljer vi det genom att känna igen det baserat på dess värde på hur vi skickade från Arduino. Värdena mappas igen från 0 till 100 så att vi kommer att kunna kontrollera musen baserat på det värdet.
om (port.available ()> 0) {data = port.read (); println (data); // Läs data från COM-port och spara den i data} if (data> = 101 && data <= 201) // Om värdet om från 101 till 201 måste det vara från Potentiometer {Turn = int (karta (data, 101,201,0,100)); // Använd det värdet för att vända catapullt} om (data> = 5 && data <= 100) // Om värdet om från 5 till 100 måste det vara från Flex Sensor {Pull = int (karta (data, 5,100, 0,100));} // Använd det värdet för att dra katapulten om (data == 1) click = true; // Använd det värdet för att trycka på musknappen om (data == 0) klick = falskt; // Använd det värdet för att släppa musknappen
När vi väl har kategoriserat data kan vi sedan styra musen med hjälp av Robot Java Class i bearbetning. Kommandot robot.mouseMove (crntX-Pull, crntY + Turn); kan användas för att flytta musen till önskad position och linjerna robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); och robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); kan användas för att trycka på eller släppa musknappen respektive.
om (klicka == falskt) // när Flex Sesnor inte dras {crntX = (int) p.getX (); crntY = (int) p.getY (); om (Pull> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Släpp musknappen} om (klicka == true) // när Flex Sesnor dras {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Tryck på musens knapprobot.mouseMove (crntX-Pull, crntY + Turn); // Flytta musen baserat på Flex- och POT-värdet}}
Bearbetning IDE när den startas kommer också att visa en liten dialogruta där du kan hitta värdena för Pull, Turn och status för musklick som visas nedan
Denna detalj kan användas för att felsöka programmet eller korrigera all nödvändig data.
Arbetssätt:
För att få detta Angry Bird-projekt att fungera med den angivna koden, montera din hårdvara enligt kretsschemat och ladda upp den givna Arduino-koden. Lägg sedan märke till vilken COM-port din Arduino är ansluten till och gör nödvändiga ändringar i bearbetningskoden och starta bearbetningsskissen.
Starta nu bara det ilskna fågelspelet och placera markören nära katapulten och dra flex-sensorn för att dra fågeln och ställ in riktningen med potentiometern. Släpp Flex-sensorn när riktningen är inställd
EEEEWWWWWEEEEEEEEEE !!!!!!!!!!……………
Din fågel kommer att kastas rakt upp i luften och BOOMM !! På grisarna. Hela arbetet hittar du i videon nedan.
Hoppas att du gillade projektet och kunde bygga något liknande. Om du är osäker kan du nå mig på kommentarsektionen eller lägga upp din fråga på forumet för tekniska frågor.
Nu är det dags att krascha in i de spargrisarna och få tillbaka våra fågels ägg !!!!