IoT rörelse kontrollerad servon (4 / 10 steg)

Steg 4: Java Källkod

Om du inte är intresserad av java-kod, kan du hoppa över detta steg; dock måste minst du sätta din personliga PubNub nycklar i koden att fungera! Källkoden kan vara tittade på GitHub.

Import av följande produkter krävs. Om dessa leda till eventuella fel, har du förmodligen inte SDK biblioteken installerats korrekt.

import java.io.IOException;
import java.lang.Math;
import com.leapmotion.leap.*;
import com.pubnub.api.*;
import org.json.*;

Det är viktigt att du gör projektet genomföra Runnable så att vi kan ha alla språng verksamhet verka i sin egen tråd. Vi börjar med inställning av projektets huvudsakliga, en implementering av gränssnittet Runnable och initieringen av globala variabler som vi kommer att använda senare. De viktigaste sakerna att ta märka av den globala variabeln "kanalen" samt ett par nycklar deklareras i main.

allmän klass LeapToServo implementerar Runnable {
offentliga statisk sista sträng kanal = "leap2pi";

// ... Ett gäng av koden.. .public statisk void main (String [] args) {
Sträng pubKey = "Your_Publish_Key";
Sträng undernyckel = "Your_Subscribe_Key";

// ... Lite mer kod...
}
}

Dessa strängar är de enda värden som du kommer att behöva ändra. Kanalnamn kan förbli standard "leap2pi" eller kan vara något annat alfa-numeriska värde. Allt med PubNub för meddelande samtal via en kanal, så du vill använda ett unikt namn för att förhindra replikväxlning mellan olika projekt! Publicera och prenumerera på nycklar är unika personliga identifierare ges till dig av PubNub när du registrerar ett konto. Hålla dem säkra. Hålla dem privat. Dessa nycklar förhindra att andra personer talar på din kanal. Notera, det kan finnas några ställen i koden som uttryckligen använder strängen "leap2pi" i stället för konstanten "Kanal" och för dessa instanser bör ändras.

Hoppa rörelse fångar omkring 300 bildrutor per sekund. Inom varje bildruta har vi tillgång till massor av information om våra händer, som antalet fingrar utsträckt, pitch, yaw och hand gester. Värdena som returneras av språnget för pitch och yaw (handled pan och tilt) är i radianer, vilket inte hjälper oss för mycket. Vi vill att konvertera dessa värden till ett format som accepteras av PWM föraren i rutan. Vi först konverterar radianer till grader och sedan grader för ett acceptabelt servo PWM-värde mellan 150 och 600. Detta intervall motsvarar det typiska arbetsområdet för en servo (500-2000 US) som representeras av 12 bitar servo föraren.

Den grundläggande ekvationen är 2500us / (2 ^ 13 -1) * (Servo Min/Max puls bredd), så [500, 2000] oss kartor till [150, 600]... ungefär... I koden hanteras dessa omvandlingar av följande metoder.

public static int radiansToAdjustedDegrees (int radianer) {}
offentliga statisk dubbel pitchDegreeToPWM (dubbel examen) {}
offentliga statisk dubbel yawDegreeToPWM (dubbel examen) {}
public static int normalizeDegree (int value) {}

Också, ni får ursäkta den felaktiga servo och PWM terminologi i koden... inte alla som arbetat med detta projekt var en expert i dessa ämnen!

Det bästa sättet att säkerställa din kod fungerar är att läsa in PubNub Felsökningskonsolen. Härifrån kan du ange namnet på din kanal samt din publicera och prenumerera på nycklar. Hit "Prenumerera" och publicerade data ska visas i rutan meddelanden när du flyttar händerna över den språng rörelsekänsliga handkontrollen med Javakod körs.

Se Steg
Relaterade Ämnen

Rörelse kontrollerade ljusshow

idén till detta projekt har knackat i mitt huvud för de senaste åren. Slutligen bestämde jag mig att få bort min rumpa och göra det. Varnas: det är en lång instructable eftersom det är ett flerdelat byggande, och jag är lite mångordig när du skriver...

Skapa din egen rörelse kontrollerade robot

Rörelse kontrollerade erfarenheter behöver inte begränsas till spel eller ens digitala enheter, faktiskt en lyhörd motion interaktion kan uppnås med hjälp av enkla och tillgängliga vardagsföremål.En algoritm ingenjör på Extrema verkligheten nyligen s...

Rörelse kontrollerad ultraljud lampa

Nyligen har jag fått lära om ultraljudsvågor och hur att utnyttja sin makt. Det är enkelt att göra någon typ av sonar enhet, men jag ville ta på ett svalare steg och se om jag kunde använda ultraljud vågor att inte bara upptäcka rörelsen, men också a...

Intellekten IoT Edison web kontrollerad LED

Detta instructable visar hur kombinera Arduino IDE med node.js, tillgänglig som standard på Edisons Yocto linux, för att fjärrstyra Arduino element, via ett webbgränssnitt. För att uttrycka det enkelt, kan du trycka på en knapp från alla webbläsare a...

Hercules: Rörelse kontrollerade Android roboten

när jag var i 8: e klass, var jag nyfiken när du spelar förslaget spel på Nokia 5800. Jag blev så glad, hur jag kunde kontrollera tävlings-bilen genom att endast luta telefonen. Jag brukade drömma om att göra denna samma bil i den verkliga världen.Nu...

LEAP rörelse kontrollerad Remote Search och bortskaffande Robot

Som en del av min post för Leap #3D sylt var jag upphetsad att bygga denna trådlösa gest kontrollerade Sök/rädda Robot baserad på Raspberry Pi. Detta projekt visar och ger en minimalistisk exempel på hur trådlös 3D hand gester kan användas för att st...

Rörelse kontrollerade utlopp

Problem:Jag hade problem med att ha en strömbrytare i fel ände av korridoren. Jag ville också ha en ny strömbrytare installerade eftersom det historiska värdet av byggnaden. Hittills har jag använt en vanlig golvlampa men stänger av lampan på och hel...

Rörelse kontrollerade Outlet - från en rörelse sensing ljus

Föreställ dig att du är en trick-or-treater som kommer till den mest skrämmande hus på blocket. Efter att ha gått förbi alla ghouls, spöken och kyrkogårdar du slutligen når den sista vägen. Du kan se godis i en skål framför dig! Men då ett spöke dyke...

Rörelse kontrollerad RGB ledde kostym med Xbox 360 Kinect, Max MSP och Arduino Del1

Jag ville för de senaste månaderna har jag arbetat på ett kinect projekt skapat en ledde outfit som svarade för bäraren rörelser. Hittills har jag bara armarna gjort, och det finns några problem som måste utarbetas, men det fungerar bra hittills.Steg...

Raspberry Pi Google kalender med rörelse kontrollerade webkamera och väder

detta är ett tillägg till Piney's awesome riktningar. Jag ville ha en Google-Kalender Visa med en webbkamera som en rörelsesensor så att bildskärmen tänds endast när någon är nära det och stängs av när ingen är runt. Jag lade också till en väder pane...

WiiMote kontrollerade servon med RaspberryPi

I denna mycket kort tutorial visar jag dig hur att controll 2 servon bredband på din RaspberryPi. Denna handledning är mycket enkel och flexibel på grund av dess flera program. Så, låt oss börja!Om du är uttråkad om läsning, gjorde jag 2 videos på de...

Bygga ett Portal torn med rörelse kontrollerade ljud och belysning

i detta Instructable jag ska visa dig hur jag gick om att bygga min egen liv storlek talar Portal torn från början till slut. Detta är ett ganska ingående projekt som kommer att omfatta varje konstruktionsfasen samt alla tekniker jag använde längs vä...

Hand rörelse kontrollerade R/C bil

detta är en måste-göra hacka för någon billig R/C bil, använder tilt sensing växlar jag gjorde så du kan styra en bil bara genom att luta registeransvarige som en wiimote.Det finns många möjligheter med detta hack, till exempel, du kan förvandla regi...

Internet kontrollerad lampan med ESP8266 wifi relay IoT

ESP8266 wifi relay (ESP01) IoT kontroll en lampaInternet kontrollerad elektrisk lampa med ESP8266 wifi (ESP01) IoTInternet kontrollerad lampan med ESP8266 wifi relay IoTESP8266 (ESP01) är en mycket låg kostnad WiFi transceiver som kan läggas till all...

IoT Photon + språng rörligt Robot

För ett tag sedan byggde jag en PICAXE-baserade beröringsfri Sensor kontrollerade Robot som använde en hand rörelse-tracking hoppa rörelse sensoren till enheten. Tyvärr, den roboten för att anslutas till en dator att fungera, som begränsade dess anvä...

Rörelse, styrda robotarm

* detta instructable är inte klar, jag kommer att lägga kod snartArm:Detta instructable visar processen för att bygga en robotarm med servon, Arduino mikroprocessor, ett gyroskop och flera bend sensorer.Användaren bär en handske som innehåller gyrosk...

Arduino kontrollerade rum värmesystem

Det första som kom till mig när jag började mikro-controller programmering var att ställa in en automatisk lokal uppvärmning cum luftfuktare system. Bangalore har en mycket förvirrande väder - särskilt för nykomlingar. Temperaturen är oftast måttlig,...

TBT2000 Airsoft BB kanontorn Tool box

jag har en av de uppmanas att bygga upp en Portal torn som några av som redan finns på platsen.Livet stora Portal torn av mydian_nightshadeEllerBygga ett Portal torn med rörelse kontrollerade ljud och belysning av CitizenSnipsMedan läst upp på den ol...

Lägga till ljudeffekter till bilen R/C

R/C Animator kan du lägga till ljud och belysning till din R/C bil, flygplan, helikopter eller båt. Effekter utlöses med R/C controller och kan kombineras. Här är en demo;R/C Animator är baserad på Propellern plattform USB - verkställer kan inkludera...