Fjärrstyrda webkamera med Arduino, SensorMonkey, jQuery och Justin.tv (6 / 7 steg)

Steg 6: Fjärrstyra webbkamera med jQuery UI



i den sista delen av denna tutorial, jag ska kombinera direktsändningar från SensorMonkey och Justin.tv för att skapa en enkel webbsida som kan användas för att fjärrstyra min webbkamera. Jag har hämtat den senaste jQuery UI biblioteket (1.8.21 på i skrivande stund) och placerade den i samma katalog som webpage (tillsammans med tillhörande CSS och image-filer för min valda temat - UI lätthet - se skärmdump). Måste du redigera koden nedan och spara den som "Webcam.html":

(Viktigt! Du måste ersätta YOUR_NAMESPACE och YOUR_PRIVATE_KEY i koden nedan med de som har tilldelats till dig när du loggar in till SensorMonkey. Också måste du ersätta YOUR_CHANNEL med namnet på din Justin.tv kanal)

--------------------------------------------------------------------------------
<! DOCTYPE html >
< html >
< head >
< title > Remote kontrollerad webbkameran med Arduino, SensorMonkey, jQuery och Justin.tv < / title >
< länka rel = "stylesheet" type = "text/css" href = "jquery-ui-1.8.21.custom.css" / >
< style type = "text/css" >
kroppen {
padding: 10px;
}
#container {
marginal-botten: 20px;
}
#webcam {
Float: left;
höjd: 240px;
marginalen till höger: 20px;
bredd: 320px;
}
#tilt-skjutreglaget {
Float: left;
höjd: 240px;
marginalen till höger: 10px;
}
#tilt-display {
höjd: 240px;
line-height: 240px;
}
#pan-reglaget {
marginal-botten: 10px;
bredd: 320px;
}
#pan-display {
text-align: center;
bredd: 320px;
}
.rotation {
färg: #F6931F;
font-weight: bold;
}
< / stil >
< script type = "text/javascript" src = "jquery-1.7.2.min.js" >< / script >
< script type = "text/javascript" src = "jquery-ui-1.8.21.custom.min.js" >< / script >
< script type = "text/javascript" src = "https://sensormonkey.eeng.nuim.ie/socket.io/socket.io.js" >< / script >
< script type = "text/javascript" src = "https://sensormonkey.eeng.nuim.ie/js/client.min.js" >< / script >
< / head >
< body >
< div id = "behållare" >
< div id = "webcam" >
< objekttyp = "application/x-shockwave-flash" data = "http://www.justin.tv/widgets/live_embed_player.swf?channel=YOUR_CHANNEL"id = "live_embed_player_flash" höjd = "240" width = "320" bgcolor = "#000000" >
< param namn = "allowFullScreen" value = "true" / >
< param namn = "allowScriptAccess" value = "alltid" / >
< param namn = "allowNetworking" value = "alla" / >
< param namn = "film" value = "http://www.justin.tv/widgets/live_embed_player.swf" / >
< param namn = "flashvars" value = "hostname = www.justin.tv & kanal =YOUR_CHANNEL& auto_play = true & start_volume = 25" / >
< / objekt >
< / div >
< div id = "tilt-skjutreglaget" >< / div >
< div id = "tilt-display" > luta: < span class = "rotation" > 96 < / span >< / div >
< / div >
< div id = "pan-reglaget" >< / div >
< div id = "pan-display" > Pan: < span class = "rotation" > 96 < / span >< / div >
< script type = "text/javascript" >
Konverterar ett heltal (eller en strängrepresentation av en) till en hexadecimal tecken (0-9A-F).
funktion toHex (i) {
returnera parseInt (i) .toString (16) .toUpperCase();
}

$(function() {
Skapa tilt slider.
$("#tilt-skjutreglaget") .slider ({
utbud: "min",
Orientering: "vertikal",
värde: 8,
min: 0,
Max: 15,
steg: 1,
bild: funktion (händelse, ui) {
Uppdatera UI.
$("#tilt-display .rotation") .html (180 * ui.value / 15);

Beräkna kombinerat pan/tilt rotation vinklar och skicka till stream förlaget
parvis hexadecimala tecken. Pan är hög 4 bitar; Tilt är låg 4 bitar. Genom
skapar prefix med '#', berättar vi SensorMonkey att tolka som binära data.
var pan = toHex ($("#pan-reglaget") .slider ("värde"));
var tilt = toHex (ui.value);
client.deliverToStreamPublisher ("/ private/min webbkamera", "#" + kastrull + tilt);
}
} );

Skapa pan slider.
$("#pan-reglaget") .slider ({
utbud: "min",
värde: 8,
min: 0,
Max: 15,
steg: 1,
bild: funktion (händelse, ui) {
Uppdatera UI.
$("#pan-display .rotation") .html (180 * ui.value / 15);

Beräkna kombinerat pan/tilt rotation vinklar och skicka till stream förlaget
parvis hexadecimala tecken. Pan är hög 4 bitar; Tilt är låg 4 bitar. Genom
skapar prefix med '#', berättar vi SensorMonkey att tolka som binära data.
var pan = toHex (ui.value);
var tilt = toHex ($("#tilt-skjutreglaget") .slider ("värde"));
client.deliverToStreamPublisher ("/ private/min webbkamera", "#" + kastrull + tilt);
}
} );

// 1. Ansluta till SensorMonkey
// 2. Gå med i namnområdet
// 3. Prenumerera på ström

var kund = nya SensorMonkey.Client ("https://sensormonkey.eeng.nuim.ie");
client.on ("connect", function() {
client.joinNamespace ("YOUR_NAMESPACE", "YOUR_PRIVATE_KEY", funktion (e) {
om (e) {
Alert ("kunde inte ansluta namnområde:" + e);
hemkomst.
}

client.subscribeToStream ("/ private/min webbkamera", fungera (e) {
om (e) {
Alert ("Det gick inte att prenumerera på ström:" + e);
hemkomst.
}
} );
} );

client.on ("koppla", function() {
Alert ("klienten har kopplats!");
} );
} );
} );
< / script >
< / body >
< / html >
--------------------------------------------------------------------------------

Koden i objektet < >< / objekt > Taggar används för att bädda in Justin.tv direktuppspelningen till webbsidan. Måste du ersätta varje förekomst av YOUR_CHANNEL i koden mellan dessa taggar med namnet på din kanal. Strömmen kommer inte att visas på iOS-enheter (iPhone, iPad etc.) men kommer att fungera på Android smartphones och tabletter, som visas i bilderna.

Jag använder jQuery UI för att skapa en övergripande pan-reglaget och en vertikal tilt skjutreglaget för att styra inriktningen på webbkameran. När en av reglagen flyttas till en ny position, koden beräknas en kombinerad pan/tilt rotation, kodar den parvis hexadecimala tecken (som beskrivs i steg 2 och steg 4) och skickar det genom SensorMonkey till Arduino kontroll av servomotorer.

Slutligen i arbetsflödet för att ansluta till SensorMonkey är mycket enkel (Glöm inte att ersätta YOUR_NAMESPACE och YOUR_PRIVATE_KEY i koden ovan):

-Import-klient
-Anslut till SensorMonkey
-Gå med namnområde
-Prenumerera på ström

När prenumererar, kan jag helt enkelt anropa client.deliverToStreamPublisher() för att skicka data direkt till Arduino via tjänsten SensorMonkey.

Det är det! Jag kan nu fjärrstyra min webbkamera i realtid med en kombination av Arduino, SensorMonkey, jQuery och Justin.tv. Jag kan ladda upp webbsidan till en offentlig webbserver och komma åt den från någonstans på någon apparat med en HTML5/blixt kompatibel webbläsare. Se nästa steg för förslag om att förbättra genomförandet beskrivits hittills.

Se Steg
Relaterade Ämnen

Styra åtkomsten till din låsa distans med Arduino, SensorMonkey och RF modul

styra åtkomsten till din dörr från någonstans på planeten med hjälp av din telefon, Tab eller PC.Denna inställning har två huvudsegment, har en GUI med hjälp av jQuery, SensorMonkey, Freeduino (Arduino kompatibel utveckling styrelsen) och en sändare....

Kommunicera med arduino micro controller och dator via usb med en vb program

Om du är som mig och vill kunna styra dina objekt anslutna till din arduino via datorn måste du ett sätt att upprätta en anslutning och kommunicera med din arduino från datorn. Denna video och handledning visar dig hur man gör just det! Jag har tagit...

Smarta hem med Arduino Ethernet shield och Teleduino (med web app)

Detta projekt är en enkel lösning för dem som vill ha en smart-home system men inte har en stor budget och för lat de som inte vill komma från sängen till släcker belysningen av eller på.Det är också projektera av en high school student för sitt slut...

Öppna din dörr med en speciell knock med Arduino, Android-telefon och 1Sheeld

Nu du inte kommer att använda nyckeln längre, med detta enkla projekt du och varje medlem i din familj kan öppna dörren utan nyckel och även du kommer inte att gå varje gång till dörren för att öppna den, kan du öppna den från någon plats, allt du vi...

Med en NES-kontrollant för emulatorer med Arduino och bearbetning

Jag har hittat flera sätt att ansluta en NES controller till datorn för användning som en emulator gamepad men verkade ingen vara enkel och förenlig med vad jag hade på hand.Den här bara arbeten med Arduino Leonardo, Micro och vederbörlig: https://gi...

Mäta hastigheten på ljud med Arduino microcontroller och ultrasonic sensor

Min 6-åriga dotter, Kennet, visar hur man mäter ljudets hastighet i luft med Arduino Uno microcontroller och ultrasonic sensor.Jag tycker detta är ett bra projekt för barn att blir exponerade för vetenskap, teknik och matematik.Steg 1: Vi behöver 1....

Intelligenta bevattningssystem med arduino...

i detta instructable jag ville dela min automatiska bevattningssystem med arduino, smutsa Fuktsensor och en enkel akvarium ventil bifogas ett servo... Fuktsensor tar konstant avläsningar av markfuktighet och överföringar till Arduino som styr en mini...

4 x 4 x 4 interaktiva LED-cube med Arduino

för att förklara min 4 x 4 x 4 interaktiva LED-cube publicerade förut, lite mer klart, jag ska försöka att göra mitt första steg för steg instructable.Denna 4 x 4 x 4 kub är interaktiv med fyra hörnet lysdioder både som lysdioder och sensorer som rea...

Att man gör en DIY borstlös Gimbal med Arduino

Detta är en berättelse om mitt tredje projekt med billiga gyro och Arduino.Efter de tidigare två projekt, Lätt inverterad pendel och 3D kalligrafi, jag har tänkt på att göra Kameran Gimbal med Arduino. Då hade jag tre principer för projektet.Utrustad...

ESP8266 kontrollera WS2812 Neopixel lysdioder med Arduino IDE - en handledning

Hej alla,Om du är som mig, har du letat runt på internet för en bra tutorial om hur du använder ESP8266 med neopixel lysdioder (AKA WS2812 eller WS2812b), programmeras via Arduino IDE. Jag har inte hittat det allt på ett ställe, på engelska, men det...

Gränssnitt GLCD med Arduino

Inköpta från: http://www.theorycircuit.com/interface-glcd-with-arduino-display-your-photo-in-glcd/Facebook länk: https://www.facebook.com/pages/Theorycircuit/825111734202123?ref=hlVisa din bild på glcd!Du kan visa din bild och selfie eller bilder i g...

ARDUINO gränssnitt och konverterare för INPUT/OUTPUT digital/analog

CE schéma réunit toutes les gränssnitt ou convertisseurs que j'utilise avec mes microcontrôleurs Häll piloter mes systèmes (gaine de ventilation chauffante régulation de température, portail automatisé, fyra thermique, monte avgift, station de pompag...

DIY Android Bluetooth PC gamepad med arduino leonardo

Handledning och test video:Länk till App Inventor och Arduino filen i youtube video beskrivning.Steg 1: Lista över ledningar och spela -Arduino Leonardo (leonardo styrelsen har tangentbord och mus tävlan. Jag använder pro micro)-Bluetooth-modul (Im a...

Kör en webbsida i realtid med hjälp av Arduino, SensorMonkey och Processing.js

Remote visualisering av realtid sensordata.Denna handledning beskriver i detalj hur du använder tjänsten gratis SensorMonkey till push realtid sensordata från en Arduino till en webbsida för visualisering med hjälp av Processing.js. Ingen server-side...

Kontrollera allt och spara energi med Arduino

Jag använde detta för min egen mycket specifikt problem men det skulle kunna användas för någonting egentligen.Problemet:De flesta högtalare är inte smart, och så du måste stänga dem off manuellt, särskilt studio typ monitorhögtalare. På grund av det...

Läs/emulera fjärrkontroller med Arduino och Raspberry Pi

Fjärrkontroller är överallt. De är gränssnittet till din TV, musiksystem och vad-inte. Du har kanske några extra dem liggande, ödelagda på nedläggningen av deras bättre halvor. Muntra dem upp och Lägg tillbaka dem i bruk! (Skynet godkänner...)Här är...

Hemautomation med Arduino... Och JavaScript!

I detta instructable (mitt första som faktiskt), jag hjälper dig att göra automatisering i hemmet med Arduino, ja, inte så ny... Men vi kommer även JavaScript, med Node.js och en awesome bibliotek att interagera med Arduino heter johnny-fem (Ja, som...

Online grafer med ingenting men en Arduino, Ethernet Shield och Sensor

Slutligen har jag beslutat att lägga några av mina befintliga projekt på instructables. Här är anpassade från mitt Super Graphing Data Logger projekt.Vad är Super Graphing Data Logger (SGDL)? Det är en Arduino projekt som integrerar dataloggning och...

Flight Simulator med Arduino och Python

kontrollera alternativet Flight Simulator i Google Earth med hjälp av en Arduino och Accelerometer.Nästan flyga runt i världen; luta accelerometern framåt, bakåt, vänster och höger att styra planets Pitching och bank.Mål:* Lär dig att skicka seriella...