Stap 6: Met behulp van de controller en hacken van de code
Open de Arduino code in zijn omgeving en het laden op de Arduino. Vervolgens opent u de Processing schets in zijn omgeving en klik op de knop afspelen. Een scherm dat eruit als het eerste beeld ziet moet verschijnen, met de bal naar de bovenhoek, in uw naaste omgeving.
Plaats nu je vuist in de bovenhoek, met je arm wijst naar de verre benedenhoek (waar de 3 stukken karton snijden.)
Klik op de linkermuisknop en houd deze ingedrukt. Langzaam bewegen je vuist naar de uiterste benedenhoek. Wanneer u er bereikt hebt, loslaten van de knop.
Nu de Processing Schets weet wat uw bereik van de beweging, en het aantal maal opladen kan het verwachten voor elke plaat. U kunt nu spelen rond en zie de bal uw hand volgen!
Deze tracking zal niet volmaakt zijn, vooral naar de randen van de kubus (waarschijnlijk als gevolg van fringe velden uit de condensator.) Echter, door samen te werken met afgeschermde draad, om ervoor te zorgen dat niets in elektrisch contact is, en het selecteren van een goede waarde voor de grootte van de platen en de weerstanden, u moet zitten kundig voor de reactie van de sensor verbeteren. Experimenteren met dit! We geprobeerd een paar plaatformaten en verrekend op 8 inch vierkant, maar de manier waarop we deden het was verre van kwantitatieve. We hebben ook geen tijd om te proberen andere weerstand waarden. Herinneren hoe, hoe hoger de waarde van de weerstand, hoe langzamer de aanklacht of geen kwijting. We zijn niet zeker hoe dit van invloed op de nauwkeurigheid van de lezingen, hoewel mijn eerste gok zijn zou dat langere geen kwijting tijden leiden zou tot een nauwkeuriger maar langzamer reageren meting.
Het hacken van de code:
De echte pret van het hebben van deze 3D-sensor is hoe u het kunt aanpassen naar besturingselement allerlei apparaten. De meest eenvoudige toepassingen zou zijn om iets dat gewoon verschillende circuits inschakelen betrokken wanneer uw hand in een bepaalde positie, en uit als je hand in een andere controle.
In de Processing Schets, heten de variabelen die u de coördinaten van uw hand vertellen axyz [0] .avg, axyz [1] .avg en axyz [2] .avg (sd is gewoon een schaalfactor.)
U kunt de waarden van deze variabelen uitprinten door print verklaringen direct na waar de variabelen eerste, zoals gezien zijn toe te voegen: print(axyz[0]);
Door het afdrukken van de waarden van deze variabelen, kunt u erachter komen welke nummers komen overeen met welke locaties in de kubus.
Vervolgens kunt u deze coördinaten gebruiken om uw voordeel! Bijvoorbeeld, kunt u een if-instructie in de verwerking schets die vertelt de Arduino waar uw vuist is zoals:
Als (axyz [0] < 0.1 & & axyz [1] > 0.9 & & axyz [2] < 0.1) {}
Serial.write(1)
Dit codefragment moet de Arduino vertellen over Serial thats je vuist in de achterste hoek
Merk op dat de code de seriële poort op regel 4 "serial" worden genoemd, al is geïnitialiseerd
}
Dan in de Arduino-code, kunt u een if-instructie die zegt "als mijn vuist op deze locatie is, digitale pin 5 op hoog ingesteld"
Boven
VOID Setup
instructie ook schrijven:
int incomingByte = 0; Hiermee declareert u een variabele op te slaan van de binnenkomende seriële byte
Schrijf dan in de lus,
Verzend gegevens alleen als u gegevens ontvangt:
Als (Serial.available() > 0) {}
Lees de binnenkomende byte:
incomingByte = Serial.read();
Als (incomingByte == 1) {}
digitalWrite (5, hoge);
}
Nu spelen rond met het apparaat dat u bedienen wilt! Neem het uit elkaar en zie wat u moet, circuit verstandig, om te rijden. U hebt nu de flexibiliteit om het gebruik van de locatie van uw hand om te vertellen je Arduino wat te doen met als verklaringen. Gebruik het voor goed of kwaad.