Webcam en utilisant Arduino, SensorMonkey, jQuery et Justin.tv télécommandés (6 / 7 étapes)

Étape 6: Contrôle à distance Webcam à l’aide de jQuery UI

Dans la dernière partie de ce tutoriel, je vais de combiner les flux live de SensorMonkey et Justin.tv pour créer une page Web simple qui peut être utilisée pour contrôler à distance ma webcam. J’ai téléchargé la dernière bibliothèque de jQuery UI (1.8.21 au moment de la rédaction) et placé dans le même répertoire que la page Web (avec le CSS associé et fichiers d’images pour mon thème choisi - légèreté de l’interface utilisateur - voir capture d’écran). Vous devrez modifier le code ci-dessous et enregistrez-le sous « Webcam.html » :

(Important ! Vous devez remplacer YOUR_NAMESPACE et YOUR_PRIVATE_KEY dans le code ci-dessous avec ceux qui vous sont affectées lorsque vous vous connectez à SensorMonkey. Vous devrez également remplacer YOUR_CHANNEL par le nom de votre canal de Justin.tv)

--------------------------------------------------------------------------------
< ! DOCTYPE html >
< html >
< tête >
< titre > Remote controlled webcam en utilisant Arduino, SensorMonkey, jQuery et Justin.tv < /title >
< link rel = « stylesheet » type = « text/css » href = « jquery-ui-1.8.21.custom.css » / >
< style type = « text/css » >
{corps
padding : 10px ;
}
#container {}
marge-bas : 20px ;
}
{#webcam}
float : left ;
hauteur : 240px ;
marge de droite : 20px ;
Largeur : 320px ;
}
{#tilt-slider
float : left ;
hauteur : 240px ;
marge-right : 10px ;
}
{#tilt-affichage
hauteur : 240px ;
line-height : 240px ;
}
{#pan-slider
marge-bottom : 10px ;
Largeur : 320px ;
}
{#pan-affichage
text-align : center ;
Largeur : 320px ;
}
.rotation {}
couleur : #F6931F ;
font-weight : bold ;
}
< / style >
< 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 >
< corps >
< div id = « conteneur » >
< div id = « webcam » >
< type d’objet = « application/x-shockwave-flash » data = "http://www.justin.tv/widgets/live_embed_player.swf?channel=YOUR_CHANNEL"id = "live_embed_player_flash" height = "240" width = "320" bgcolor = "#000000" >
< param name = « allowFullScreen » value = « true » / >
< param name = « allowScriptAccess » value = « always » / >
< param name = « allowNetworking » value = « all » / >
< param name = « movie » value = « http://www.justin.tv/widgets/live_embed_player.swf » / >
< param name = « flashvars » value = "nom d’hôte = www.justin.tv & channel =YOUR_CHANNEL& auto_play = true & start_volume = 25" / >
< / objet >
< / div >
< div id = « tilt-slider » >< / div >
< div id = « tilt-affichage » > incliner : < span class = « rotation » > 96 < /span >< / div >
< / div >
< div id = « pan-slider » >< / div >
< div id = « pan-affichage » > Pan : < span class = « rotation » > 96 < /span >< / div >
< script type = « text/javascript » >
Convertit un entier (ou une représentation de chaîne d’un) un caractère hexadécimal (0-9 a-F).
function toHex (i) {}
Retour à parseInt (i) .toString (16) .toUpperCase() ;
}

$(function() {}
Créer le curseur d’inclinaison.
$("#tilt-slider") .slider ({
gamme: « min »,
orientation: « verticale »,
valeur: 8,
min: 0,
Max : 15,
étape: 1,
diapositive : function (event, ui) {}
Mettre à jour l’interface utilisateur.
$("#tilt-affichage .rotation") .html (180 * ui.value / 15) ;

Calculer combinée des angles de rotation pan/tilt et envoyer à l’éditeur de flux de données
comme une paire de caractères hexadécimaux. Pan est élevés 4 bits ; Tilt est 4 bits de poids faible. Par
préfixant par « # », nous disons SensorMonkey à interpréter comme des données binaires.
pan de var = toHex ($("#pan-slider") .slider ("valeur")) ;
tilt var = toHex (ui.value) ;
client.deliverToStreamPublisher ("/ private/ma Webcam", « # » + pan + tilt) ;
}
} );

Créer pan slider.
$("#pan-slider") .slider ({
gamme: « min »,
valeur: 8,
min: 0,
Max : 15,
étape: 1,
diapositive : function (event, ui) {}
Mettre à jour l’interface utilisateur.
$("#pan-affichage .rotation") .html (180 * ui.value / 15) ;

Calculer combinée des angles de rotation pan/tilt et envoyer à l’éditeur de flux de données
comme une paire de caractères hexadécimaux. Pan est élevés 4 bits ; Tilt est 4 bits de poids faible. Par
préfixant par « # », nous disons SensorMonkey à interpréter comme des données binaires.
pan de var = toHex (ui.value) ;
tilt var = toHex ($("#tilt-slider") .slider ("valeur")) ;
client.deliverToStreamPublisher ("/ private/ma Webcam", « # » + pan + tilt) ;
}
} );

// 1. Se connecter à SensorMonkey
// 2. Rejoignez l’espace de noms
// 3. S’abonner au flux de données

var client = new SensorMonkey.Client ("https://sensormonkey.eeng.nuim.ie") ;
client.on ("se connecter", function() {}
client.joinNamespace ("YOUR_NAMESPACE", "YOUR_PRIVATE_KEY", function (e) {}
Si (e) {}
Alert ("Impossible de rejoindre l’espace de noms:" + e) ;
retour ;
}

client.subscribeToStream ("/ private/ma Webcam", function (e) {}
Si (e) {}
Alert ("n’a pas pu s’abonner au flux de données:" + e) ;
retour ;
}
} );
} );

client.on ("déconnecter", function() {}
Alert ("Client a été déconnecté!") ;
} );
} );
} );
< /script >
< / body >
< / html >
--------------------------------------------------------------------------------

Le code à l’intérieur de l’objet < >< / object > tags est utilisé pour intégrer le flux live de Justin.tv dans la page Web. Vous devrez remplacer chaque instance YOUR_CHANNEL dans le code entre ces balises avec le nom de votre channel. Le flux ne s’affiche pas sur les appareils iOS (iPhone, iPad etc.), mais fonctionne sur Android smartphones et tablettes, comme le montre les photos.

J’utilise jQuery UI pour créer un curseur horizontal pan et un curseur d’inclinaison verticale pour contrôler l’orientation de la webcam. Lorsque l’un des curseurs est déplacé vers une nouvelle position, le code calcule une rotation panoramique/inclinaison combinée, il encode comme une paire de caractères hexadécimaux (comme décrit aux étapes 2 et 4 de l’étape) et envoie par l’intermédiaire de SensorMonkey à l’Arduino contrôlant les servo-moteurs.

Enfin, le flux de travail pour se connecter à SensorMonkey est très simple (n’oubliez pas de remplacer YOUR_NAMESPACE et YOUR_PRIVATE_KEY dans le code ci-dessus) :

-Client import
-Se connecter à SensorMonkey
-Rejoindre l’espace de noms
-S’abonner au flux de données

Une fois abonné, je peux simplement appeler client.deliverToStreamPublisher() pour envoyer des données directement à l’Arduino via le service SensorMonkey.

C’est tout! Je peux télécommander maintenant ma webcam en temps réel en utilisant une combinaison de l’Arduino, SensorMonkey, jQuery et Justin.tv. Je peux charger la page Web sur un serveur Web public et y accéder depuis n’importe où sur n’importe quel appareil avec un navigateur compatible HTML5/Flash. Voir l’étape suivante pour obtenir des suggestions sur l’amélioration de la mise en œuvre décrit jusqu'à présent.

Articles Liés

Conduire une page Web en temps réel en utilisant Arduino, SensorMonkey et Processing.js

Conduire une page Web en temps réel en utilisant Arduino, SensorMonkey et Processing.js

visualisation à distance des données de capteur en temps réel.Ce tutoriel décrit en détail comment utiliser le service gratuit de SensorMonkey à pousser capteur en temps réel des données d'un Arduino vers une page Web pour la visualisation à l'aide d
Contrôler l’accès à votre serrure à distance en utilisant un module Arduino, SensorMonkey et RF

Contrôler l’accès à votre serrure à distance en utilisant un module Arduino, SensorMonkey et RF

contrôlent l'accès à votre porte de n'importe où sur la planète à l'aide de votre téléphone, onglet ou votre PC.Cette configuration a deux segments principaux, on a l'interface graphique à l'aide de jQuery, SensorMonkey, Freeduino (Arduino compatible
Électricité, eau et chauffage centralisé compteur lecture en utilisant Arduino, WR703N routeur et Linux webcams

Électricité, eau et chauffage centralisé compteur lecture en utilisant Arduino, WR703N routeur et Linux webcams

fichiers décrivent comment progresser vers la maison intelligente et rendre le système de lecture des compteurs d'énergie et d'eau.-Capteur optique de lecture de disque de compteur d'électricité. Fonctionne bien. Concert au http://barbara320.gotdns.c
Automatisation de la Machine à laver en utilisant arduino

Automatisation de la Machine à laver en utilisant arduino

Nous éprouvons une machine à laver semi automatique. Vidange et interrupteur minuterie sont gâtés. J'ai essayé de les remplacer, mais il coûte plus d'argent. Nous avons cessé de l'utiliser. Puis j'ai pensé à Enlevez les commutateurs manuels et automa
N’importe quelle voiture contrôlée à distance en utilisant Arduino

N’importe quelle voiture contrôlée à distance en utilisant Arduino

car c'est mon premier instructable j'ai essayé de mon mieux. Cette voiture est faite en utilisant arduino sans moteur sheild ou ics. Ce rover peut être contrôlé à l'aide d'une télécommande. Tout d'abord, nous avons besoin décoder la télécommande pour
Le plus simple tutoriel Buzzer ; En utilisant Arduino

Le plus simple tutoriel Buzzer ; En utilisant Arduino

Hé Makers,Permet de faire un Simple Buzzer de Quiz en utilisant Arduino !Étape 1: Ce que nous pouvons faire avec elle ?Ce que nous pouvons faire avec elle ?> quiz Buzzer jeu> jouer des airs et beaucoup plus...Étape 2 :Choses nécessaires> Arduino
Configuration chipKIT dp32 pour utiliser Arduino IDE

Configuration chipKIT dp32 pour utiliser Arduino IDE

Ne savez-vous pas que vous pouvez programmer votre planche chipKIT ou n'importe quel morceau de PIC32 utilisant IDE Arduino ? Il est en fait assez facile. Ce tutoriel vous montrera comment configurer votre dp32 chipKIT pour utiliser IDE Arduino pour
Utiliser Arduino Due à programmer et tester ESP8266

Utiliser Arduino Due à programmer et tester ESP8266

Si vous souhaitez programmer un ESP8266 (Wifi SoC) vous serez normalement utiliser un adapteur USB vers série comme celui-ci. Dans le cas où vous n'en avez pas, mais vous avez un Arduino Due portant autour de vous peut gréer l'Arduino comme un pont à
Un suivi solaire automatique motorisé fenêtre rénovation aveugles en utilisant Arduino

Un suivi solaire automatique motorisé fenêtre rénovation aveugles en utilisant Arduino

Bâtiments représentent 20 à 40 % de l'énergie totale utiliser dans les pays développés. Stores (ou stores) peuvent aider à réduire la construction énergie utiliser et améliorer le confort visuel (réduisant l'éblouissement et augmenter l'éclairage nat
Piratage de ma voiture RC en utilisant Arduino et Android Smart Phone

Piratage de ma voiture RC en utilisant Arduino et Android Smart Phone

Avoir une vieille voiture de jouet ? J'ai piraté mine à l'aide d'Arduino et un circuit de pont H pour commander les moteurs, utilisé mon téléphone Android de Sony Z1 pour combattre en la 1Sheeld récente, j'ai reçu de Kickstarter.J'ai pensé à utiliser
La programmation Arduino Pro Mini en utilisant Arduino Uno et ArduShield - sans les câbles

La programmation Arduino Pro Mini en utilisant Arduino Uno et ArduShield - sans les câbles

L'objectif principal de cette instruction est de vous montrer comment programmer plus facile manière Arduino Mini ou Arduino Pro Mini avec Arduino UNO et ArduShield – sans les câbles.Étape par étape tutoriel, avec aucune mesure pour sauter en PCB gén
L’émetteur RC à manette de jeu USB en utilisant Arduino

L’émetteur RC à manette de jeu USB en utilisant Arduino

Pourquoi est-ce que je devrais faire cela ?Quand il s'agit d'avions RC en utilisant un simulateur de vol peut être une excellente façon de perfectionner vos compétences en basse saison ou même préparer pour votre premier vol. L'inconvénient majeur au
Contrôle moteur en utilisant Arduino

Contrôle moteur en utilisant Arduino

Commande de moteurs en utilisant Arduino peut être délicat.Tout d'abord, les moteurs exigent plus de courant que la sortie de quel Arduino peuvent fournir des épingles. Aussi moteurs peuvent générer leur propre courant à travers un processus appelé i
Comment créer votre propre machine de candy grabber utilisant Arduino & 1Sheeld

Comment créer votre propre machine de candy grabber utilisant Arduino & 1Sheeld

Simplement, ce projet est une machine de grabber de bonbons contrôlée en utilisant Arduino et 1Sheeld via Game pad bouclier.1Sheeld est une plateforme pour Arduino qui permet de puiser dans les capteurs et les capacités de votre smartphone et vous pe