Använd "Kraft" för att köra en kontrollerad enhet med en DIY 3D kondensator! (6 / 7 steg)
Steg 6: Med styrenheten och hacka koden
Öppna Arduino koden i sin omgivning och lägg det på Arduino. Sedan öppnar bearbetning skissen i sin omgivning och klicka på knappen spela. En skärm som ser ut som den första bilden bör dyka upp, med bollen flyttar till det övre hörnet, närmast dig.
Placera nu din knytnäve i det övre hörnet, med armen pekar mot långt nedre hörnet (där 3 bitar av kartong korsar varandra.)
Klicka på vänster musknapp och håll den nere. Långsamt flytta din knytnäve mot långt nedre hörnet. När du har nått det, släppa knappen.
Nu bearbetning skissen vet vad din rörelseomfång är, och spänna av laddning gånger det kan förvänta sig för varje platta. Du kan nu spela och se bollen följer handen!
Denna spårning blir inte perfekt, särskilt mot kanterna på kuben (förmodligen på grund av fringe fält från kondensatorn.) Dock att genom att arbeta med skärmad kabel, se till att ingenting är i elektrisk kontakt, och att välja ett bra värde för storleken på plattorna och motstånden, bör du kunna förbättra svaret från sensorn. Experimentera med detta! Vi försökte några platta storlekar och bosatte sig på 8 inches square, men det sätt vi gjorde det var långt ifrån kvantitativa. Vi hade också inte tid att prova andra resistor värden. Minns, ju högre värde för motståndet, desto långsammare avgift eller utsläpp. Vi vet inte riktigt hur detta kommer påverka riktigheten av behandlingen, även om min första gissning skulle vara att längre ansvarsfrihet gånger skulle leda till en mer exakt men långsammare för att svara mätning.
Hacking koden:
Roligt med denna 3D sensor är hur du kan anpassa den till kontroll alla typer av enheter. De enklaste program skulle vara att styra något som helt enkelt inblandade inkoppling olika kretsar handen är i en viss position, och stänger av din hand i ett annat.
I bearbetning skissen, de variabler som talar om koordinaterna för din hand kallas axyz [0] .avg, axyz [1] .avg och axyz [2] .avg (sd är bara en skalningsfaktor.)
Du kan skriva ut värdena för dessa variabler genom att lägga till print uttalanden direkt efter där variablerna först ses, såsom: print(axyz[0]);
Genom att skriva ut värdena för dessa variabler, kan du lista ut vilka nummer motsvarar vilka platser i kuben.
Du kan sedan använda dessa koordinater till din fördel! Exempelvis kan du skriva en om uttalande i bearbetning skissen som berättar Arduino där din knytnäve är såsom:
om (axyz [0] < 0,1 & & axyz [1] > 0,9 & & axyz [2] < 0,1) {
Serial.write(1)
denna kodsträng bör säga Arduino över följetong som din knytnäve i bakre hörnet
Observera att koden redan har initierat den seriella porten som ska kallas "serial" på linje 4
}
Sedan i Arduino koden, kan du skriva en om sats som säger "om min knytnäve är på denna plats, ange digital stift 5 till hög"
Ovanför
void setup()
Skriv uttrycket:
int incomingByte = 0; deklarerar en variabel att lagra den inkommande seriella byten
Sedan i slingan, skriva
Skicka data endast när data tas emot:
om (Serial.available() > 0) {
Läs den inkommande byten:
incomingByte = Serial.read();
om (incomingByte == 1) {
digitalWrite 5, hög,
}
Nu leka med den enhet du vill styra! Ta isär den och se vad du behöver göra, cirkelträning klokt, att köra den. Nu har du flexibiliteten att använda platsen för handen för att berätta din Arduino vad att göra med om uttalanden. Använda den på gott och ont.