- Concept:
- Vereiste materialen:
- Schema's en hardware:
- Programma voor Arduino:
- Programma voor verwerking:
- Werken:
Dit is een heel interessant project waarin we gaan leren hoe we virtual reality kunnen implementeren met Arduino en Processing. Voor de meesten van ons is de film Iron man van Jon Favreau altijd een inspiratie geweest om nieuwe dingen te bouwen die ons leven gemakkelijker en leuker zullen maken. Ik heb persoonlijk de techneuten bewonderd die in de film worden getoond en heb altijd al iets soortgelijks willen bouwen. Dus in dit project heb ik geprobeerd de dingen in de virtuele realiteit na te bootsen die in de film voorkomen, alsof we gewoon met onze hand voor de computer kunnen zwaaien en de aanwijzer naar de gewenste locatie kunnen verplaatsen en een aantal taken kunnen uitvoeren.
Hier laat ik je zien hoe je eenvoudig met je hand voor de webcam kunt zwaaien en iets op je computer kunt tekenen. Ik zal je ook laten zien hoe je lichten kunt schakelen door virtueel je hand te bewegen en klikken te maken met je vingers in de lucht.
Concept:
Om dit mogelijk te maken, moeten we de kracht van Arduino en Processing combineren. De meesten zijn bekend met Arduino, maar Processing is misschien nieuw voor u. Processing is een applicatie net als Arduino en het is ook open source en gratis te downloaden. Met Processing kunt u eenvoudige systeemtoepassingen, Android-toepassingen en nog veel meer maken. Het heeft ook de mogelijkheid om beeldverwerking en spraakherkenning uit te voeren. Het is net als Arduino en is veel gemakkelijk te leren, maar maak je geen zorgen als je helemaal nieuw bent in de verwerking, want ik heb deze tutorial vrij eenvoudig geschreven, zodat iedereen met interesse dit in een mum van tijd kan laten werken.
In deze tutorial gebruiken we Processing om een eenvoudige systeemtoepassing te maken die ons een gebruikersinterface biedt en de positie van onze hand volgt met behulp van beeldverwerking. Nu moeten we links klikken en rechts klikken met onze vingers. Om dat mogelijk te maken heb ik twee Hall-sensoren gebruikt (een op mijn wijsvinger en de andere op mijn middelvinger) die door de Arduino Nano worden gelezen. De Arduino verzendt ook draadloos de klikstatus naar de computer via Bluetooth.
Het klinkt misschien ingewikkeld, maar geloof me; het is niet zo moeilijk als het klinkt. Dus laten we eens kijken naar de materialen die nodig zijn om dit project van start te laten gaan.
Vereiste materialen:
- Arduino Nano
- Hall-sensor (A3144) - 2 nrs
- Een klein stukje magneet
- Bluetooth-module (HC-05 / HC-06)
- 9V batterij
- Verbindingsdraden Puntbord.
- Een paar handschoenen
- Arduino IDE (software)
- IDE (software) verwerken
- Een computer met webcam en Bluetooth (u kunt ook externe Bluetooth of webcam voor uw computer gebruiken)
Schema's en hardware:
Het hardwaregedeelte van dit project is heel eenvoudig en gemakkelijk te bouwen. Het volledige schema wordt hieronder weergegeven.
De Arduino, weerstanden en de bergstick-pinnen zijn op een puntbord gesoldeerd zoals hieronder weergegeven.
De Hall-sensor en de Bluetooth-module zijn aan een aansluitdraad gesoldeerd zoals hieronder weergegeven.
Zodra deze twee secties klaar zijn, kan deze op handschoenen worden gemonteerd, zodat deze gemakkelijk te gebruiken is. Ik heb plastic wegwerphandschoenen gebruikt die bij elke medische winkel bij jou in de buurt kunnen worden gekocht. Je moet ervoor zorgen dat de magneet op je duimvinger komt en dat de hall-sensor 1 en hall-sensor 2 respectievelijk vóór je wijs- en middelvinger aanwezig moeten zijn. Ik heb ducktapes gebruikt om de componenten op hun plaats te houden. Zodra de componenten zijn gemonteerd, zou het er ongeveer zo uit moeten zien.
Laten we nu de Arduino IDE openen en beginnen met programmeren.
Programma voor Arduino:
Het doel van deze Arduino-code is om de status van de Hall-sensor uit te lezen en uit te zenden met behulp van de Bluetooth-module. Het moet ook gegevens van Bluetooth ontvangen en de ingebouwde LED schakelen op basis van de inkomende waarde. Aan het einde van deze tutorial wordt het volledige programma gegeven; Ik heb hieronder ook enkele regels uitgelegd.
if (Phs1! = HallState_1 - Phs2! = HallState_2) // Controleer of er nieuwe toetsen zijn ingedrukt {if (HallState_1 == LOW && HallState_2 == LOW) Aisha.write (1); if (HallState_1 == HIGH && HallState_2 == LOW) Aisha.write (2); if (HallState_1 == LAAG && HallState_2 == HOOG) Aisha.write (3); if (HallState_1 == HIGH && HallState_2 == HIGH) Aisha.write (4); }
Zoals weergegeven in de bovenstaande regels, zal Bluetooth een bepaalde waarde schrijven op basis van de status van de Hall-sensor. Als bijvoorbeeld hal sensor 1 hoog is en hal sensor 2 laag, dan zullen we het dal “2” uitzenden via de Bluetooth module. Zorg ervoor dat u de waarden naar de BT-module schrijft en niet afdrukt. Omdat het gemakkelijk zal zijn om de enige aan de verwerkingskant alleen te lezen als ze zijn geschreven. Ook wordt de waarde alleen verzonden als deze niet hetzelfde is als de vorige waarde.
if (BluetoothData == 'y') digitalWrite (ledpin, HIGH); if (BluetoothData == 'n') digitalWrite (ledpin, LOW);
Deze lijnen worden gebruikt om de ingebouwde LED die is aangesloten op Pin 13, te schakelen op basis van de waarde die wordt ontvangen door de BT-module. Als de module bijvoorbeeld een 'y' ontvangt, gaat de LED aan en als deze een 'n' ontvangt, is deze uitgeschakeld.
Programma voor verwerking:
Het doel van het verwerkingsprogramma is om een systeemtoepassing te maken die kan fungeren als een UI (gebruikersinterface) en ook beeldverwerking kan uitvoeren om een bepaald object te volgen. In dit geval volgen we het blauwe object dat we hierboven aan onze handschoenen hebben geplakt. Het programma heeft in principe vier schermen.
- Kalibratiescherm
- Hoofdscherm
- Verfscherm
- LED-schakelscherm
We kunnen van het ene scherm naar het andere navigeren door simpelweg met onze handen te zwaaien en schermen in de lucht te slepen. We kunnen ook klikken op gewenste plaatsen om LED in te schakelen of zelfs iets op het scherm te tekenen.
U kunt het volledige verwerkingsprogramma (aan het einde) kopiëren en het aanpassen op basis van uw creativiteit, of u kunt de EXE-bestanden hier eenvoudig downloaden en de volgende stappen volgen om de toepassing te starten.
- Installeer JAVA op uw computer als u het nog niet eerder heeft geïnstalleerd
- Installeer You Cam perfect op uw computer
- Schakel uw Arduino in en koppel uw computer met de Bluetooth-module
- Start het toepassingsbestand
Als alles goed gaat, zou je moeten kunnen zien dat de LED op je Bluetooth-module stabiel wordt en dat je webcamlampje AAN gaat. Als je problemen hebt, neem dan contact met me op via het commentaargedeelte en ik zal je helpen.
Bekijk de video aan het einde om te weten hoe u uw applicatie moet kalibreren en gebruiken.
Als u de code wilt aanpassen en hier meer functies in wilt inbouwen, kunt u de volgende inzichten van het programma gebruiken
De verwerkings-IDE kan hier worden gedownload. Als je meer wilt weten over verwerking en meer interessante projecten wilt maken, kun je de tutorials hier bezoeken.
Processing heeft de mogelijkheid om seriële gegevens te lezen, in dit programma komen de seriële gegevens van de Bluetooth COM-poort. U moet via deze regel hieronder selecteren met welke COM-poort uw Bluetooth verbinding maakt
port = new Serial (this, Serial.list (), 9600);
Hier heb ik mijn 1 geselecteerd st COM-poort die is COM5 in mijn geval (zie afbeelding hieronder) en ik heb gezegd dat door het Bluetooth-module draait op 9600 baudrate.
Zoals gezegd heeft eerdere verwerking ook de mogelijkheid om beeldverwerking uit te voeren, in deze tutorial worden de afbeeldingen in de schets verzonden met behulp van een webcam. In elke afbeelding volgen we een bepaald object. Om hier meer over te weten kunt u deze tutorial bezoeken.
Ik heb mijn best gedaan om het programma (aan het einde) uit te leggen door middel van de commentaarregels. U kunt de bestanden hier downloaden.
Als je meer wilt weten over de schets, kun je me bereiken via het commentaargedeelte en ik help je verder.
Werken:
Zodra de hardware en software klaar zijn, draag je de handschoenen en maak je je klaar voor actie. Nu hoeft u alleen maar de Arduino van stroom te voorzien en vervolgens de applicatie te starten. De led op de Bluetooth-module moet stabiel blijven. Nu betekent dit dat uw systeemtoepassing een Bluetooth-verbinding met uw Arduino tot stand heeft gebracht.
U krijgt het volgende scherm waar u het te volgen object moet selecteren. Deze tracering kan eenvoudig worden gedaan door op het object te klikken. In dit geval is het object de blauwe schijf. Nu kunt u uw object verplaatsen en opmerken dat de aanwijzer uw object volgt. Gebruik een uniek kleurobject en een lichte kamer voor het beste resultaat.
Raak nu uw duimvinger aan met de wijsvinger en u zou het bericht "Key 1 Pressed" moeten zien en wanneer u met uw middelvinger op uw duim drukt, zou u "Key 2 Pressed" moeten zien. Dit geeft aan dat alles goed werkt en dat de kalibratie voorbij is. Klik nu op de knop Gereed.
Zodra de knop Gereed is ingedrukt, wordt u naar het hoofdscherm geleid waar u in de lucht kunt schilderen of de LED op het Arduino-bord kunt schakelen, zoals weergegeven in de onderstaande video.