- Begrepp:
- Material som krävs:
- Scheman och hårdvara:
- Program för Arduino:
- Program för bearbetning:
- Arbetssätt:
Detta är ett mycket intressant projekt där vi ska lära oss hur man implementerar virtual reality med hjälp av Arduino och Processing. För de flesta av oss har filmen Iron man av Jon Favreau alltid varit en inspiration för att bygga nya saker som gör vårt liv enkelt och roligare. Jag har personligen beundrat de tekniker som visas i filmen och har alltid velat bygga något liknande det. Så i det här projektet har jag försökt att efterlikna de virtuella verklighetens saker som händer i filmen, som om vi helt enkelt kan vinka handen framför datorn och flytta pekaren till önskad plats och utföra vissa uppgifter.
Här kommer jag att visa dig hur du helt enkelt kan vinka handen framför webbkameran och rita något på din dator. Jag kommer också att visa dig hur du kan växla ljus genom att praktiskt taget flytta handen och klicka med fingrarna i luften.
Begrepp:
För att göra detta måste vi utnyttja kraften i Arduino och Processing kombinerat. De flesta skulle känna till Arduino, men bearbetning kan vara nytt för dig. Bearbetning är en applikation precis som Arduino och den är också öppen källkod och gratis att ladda ner. Med Processing kan du skapa enkla systemapplikationer, Android-applikationer och mycket mer. Det har också förmågan att göra bildbehandling och röstigenkänning. Det är precis som Arduino och är mycket lätt att lära sig, men oroa dig inte om du är helt ny på att bearbeta eftersom jag har skrivit den här handledningen ganska enkel så att alla med intresse kan få det att fungera på nolltid.
I denna handledning använder vi Processing för att skapa en enkel systemapplikation som ger oss ett användargränssnitt och spårar handens position med hjälp av bildbehandling. Nu måste vi vänsterklicka och högerklicka med fingrarna. För att få det att hända har jag använt två hallsensorer (en på pekfingret och den andra på långfingret) som kommer att läsas av Arduino Nano. Arduino överför också klickstatus till datorn trådlöst via Bluetooth.
Det låter kanske komplicerat men, Tro mig; det är inte så svårt som det låter. Så låt oss ta en titt på det material som behövs för att detta projekt ska vara igång.
Material som krävs:
- Arduino Nano
- Hallsensor (A3144) - 2Nr
- En liten bit magnet
- Bluetooth-modul (HC-05 / HC-06)
- 9V batteri
- Anslutningskablar Punktkort.
- Ett par handskar
- Arduino IDE (programvara)
- Bearbetning av IDE (programvara)
- En dator med webbkamera och Bluetooth (du kan också använda extern Bluetooth eller webbkamera för din dator)
Scheman och hårdvara:
Hårdvarudelen av detta projekt är mycket enkel och lätt att bygga. Det fullständiga schemat visas nedan.
Arduino, motstånd och bergpinnar är lödda på ett prickbräda enligt bilden nedan.
Hallsensorn och Bluetooth-modulen löds på en anslutningskabel enligt nedan.
När dessa två sektioner är klara kan den monteras på handskar så att den är enkel att använda. Jag har använt engångshandskar av plast som kan köpas från vilken medicinsk butik som helst nära dig. Du bör se till att magneten kommer på tummen och att hallsensorn 1 och hallsensorn 2 ska finnas före ditt respektive pekfinger. Jag har använt ankband för att säkra komponenterna på plats. När komponenterna är monterade ska det se ut så här.
Låt oss nu öppna Arduino IDE och börja programmera.
Program för Arduino:
Syftet med denna Arduino-kod är att läsa status för hallsensorn och sända dem med Bluetooth-modulen. Det ska också ta emot data från Bluetooth och växla den inbyggda lysdioden baserat på det inkommande värdet. Hela programmet ges i slutet av denna handledning; Jag har också förklarat några rader nedan.
if (Phs1! = HallState_1 - Phs2! = HallState_2) // Kontrollera om nya tangenter trycks in {if (HallState_1 == LOW && HallState_2 == LOW) Aisha.write (1); if (HallState_1 == HIGH && HallState_2 == LOW) Aisha.write (2); if (HallState_1 == LOW && HallState_2 == HIGH) Aisha.write (3); if (HallState_1 == HIGH && HallState_2 == HIGH) Aisha.write (4); }
Som visas i ovanstående rader baserat på status för hallsensorn kommer Bluetooth att skriva ett särskilt värde. Till exempel om hallsensor 1 är hög och hallsensor 2 är låg, kommer vi att sända vale "2" via Bluetooth-modulen. Se till att du skriver värdena till BT-modulen och inte skriver ut dem. Eftersom det är lätt att läsa det enda på bearbetningssidan endast om de är skrivna. Värdet skickas bara om det inte är samma som det tidigare värdet.
om (BluetoothData == 'y') digitalWrite (ledpin, HIGH); om (BluetoothData == 'n') digitalWrite (ledpin, LOW);
Dessa linjer används för att växla den inbyggda lysdioden som är ansluten till stift 13 baserat på värdet som mottas av BT-modulen. Till exempel om modulen får ett 'y' tänds lysdioden och om den får ett 'n' är den avstängd.
Program för bearbetning:
Syftet med bearbetningsprogrammet är att skapa en systemapplikation som kan fungera som ett användargränssnitt (User interface) och även utföra bildbehandling för att spåra ett visst objekt. I det här fallet spårar vi det blå föremålet som vi fastnade i våra handskar ovan. Programmet har i princip fyra skärmar.
- Kalibreringsskärm
- Huvudskärm
- Måla skärmen
- LED-växlingsskärm
Vi kan navigera från en skärm till en annan genom att helt enkelt vifta med händerna och dra skärmar i luften. Vi kan också klicka på önskade platser för att växla LED eller till och med rita något på skärmen.
Du kan kopiera och klistra in hela bearbetningsprogrammet (ges i slutet) och ändra det baserat på din kreativitet eller enkelt ladda ner EXE-filerna härifrån och följ följande steg för att starta applikationen.
- Installera JAVA på din dator om du inte har installerat det tidigare
- Installera You Cam perfekt på din dator
- Starta din Arduino och para ihop din dator med Bluetooth-modulen
- Starta applikationsfilen
Om allt går bra bör du kunna märka att lysdioden på din Bluetooth-modul blir stabil och att din webbkamera tänds. Om du har några problem når du mig genom kommentarsektionen så hjälper jag dig.
Titta på videon i slutet för att veta hur du kalibrerar din applikation och använder den.
Om du vill ändra koden och bygga in fler funktioner i detta kan du använda följande insikter i programmet
Behandlings-IDE kan laddas ner härifrån. Om du vill lära dig mer om bearbetning och skapa mer intressanta projekt kan du besöka handledningarna här.
Bearbetning har förmågan att läsa seriell data, i detta program kommer seriell data från Bluetooth COM-porten. Du måste välja vilken COM-port din Bluetooth är ansluten till med hjälp av den här raden nedan
port = ny serie (denna, Serial.list (), 9600);
Här har jag valt min 1 st COM-port som är COM5 i mitt fall (se bilden nedan) och jag har nämnt att genom Bluetooth-modulen körs på 9600 baudrate.
Som sagt har bearbetning också förmågan att göra bildbehandling, i denna handledning skickas bilderna in i skissen med en webbkamera. I varje bild spårar vi efter ett visst objekt. Om du vill veta mer om detta kan du besöka den här handledningen.
Jag har försökt mitt bästa för att förklara programmet (ges i slutet) genom kommentarraderna. Du kan ladda ner filerna här.
Om du vill veta mer om skissen kan du nå mig genom kommentarsektionen så hjälper jag dig.
Arbetssätt:
När hårdvaran och programvaran är redo, använd handskarna och gör dig redo för några åtgärder. Nu är det bara att driva Arduino och sedan starta applikationen. Ledningen på Bluetooth-modulen ska vara stabil. Nu betyder det att din systemapplikation har skapat en Bluetooth-länk med din Arduino.
Du får följande skärm där du måste välja objektet som ska spåras. Denna spårning kan enkelt göras genom att klicka på objektet. I det här fallet är objektet den blå skivan. Nu kan du flytta ditt objekt och märka att pekaren följer ditt objekt. Använd ett unikt färgobjekt och ett ljust rum för bästa resultat.
Rör nu tummen med pekfingret så visas meddelandet “Knapp 1 tryckt” och när du trycker på tummen med långfingret ska du se “Knapp 2 tryckt” detta indikerar att allt fungerar bra och att kalibreringen är över. Klicka nu på Klar-knappen.
När du har tryckt på Klar-knappen kommer du att dirigeras till huvudskärmen där du kan måla på luft eller växla lysdioden på Arduino-kortet som visas i videon nedan.