Affichage des articles dont le libellé est arduino. Afficher tous les articles
Affichage des articles dont le libellé est arduino. Afficher tous les articles

dimanche 10 août 2014

nodebots: Piloter un arduino par le web.

Dans un précédent post, j'avais présenté l'utilisation la librairie  johnny-five qui permet de piloter des robots dont l'arduino en javascript.


Au lieu d'utiliser le langage natif d'arduino, on installe un programme 'firmata' qui permet de dialoguer avec un programme en javascript tournant sur un PC.

Johnny-five propose deux modes d'utilisation:
En interractif: REPL :Read - Eval - Print - Loop. C'est l'équivalent d'un interpréteur de commande.
(voir exemple dans mon post cité plus haut).
Soit en mode autonome: Le programme se déroule sur le PC et envoie ses instructions sur l'arduino.

Maintenant comment piloter son arduino depuis Internet, son smartphone , un site WEB .. ?
Le montage était destiné à piloter un laser pour distraire un chat (et moi par la même occasion)
 

Nous devons introduire un dialogue supplémentaire entre  le PC et le robot. Ce dialogue utilisera  le protocole MQTT: Le protocole des 'choses'  reliées à Internet.( MQ Telemetry Transport)
MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol.


Une série de slide ici sur MQTT.


Ce protocole est très léger et il connu par la plupart des objets connectés. Et son domaine d'utilisation s'est élargie au transport de message pour les Tchats.
  Pour mémoire, Facebook utilise MQTT pour sa messagerie instantanée (ici un lien sur l'histoire de MQTT)


Pour le mettre en place , il faut disposer d'un serveur MQTT et des clients.

Pour le serveur, mon choix s'est porté sur MOSCA. C'est un serveur MQTT en javascript propulsé par le réacteur Node.js



Lien ici.
Mosca vous permet de construire votre propre serveur MQTT.

Mon code pour le serveur est le suivant:

Le serveur utilise un bakend pour stocker les messages dans mon exemple j'utilise une base NoSQL MongoDB.


Le serveur se teste facilement avec un outil en ligne de commande: mosquitto
(MQTT est protocole de type : PubSub : publier , souscrire)
mosquitto_sub -t 'hello/you'

mosquitto_pub -m "c est moi" -t 'hello/you'


Le schéma général est le suivant:
réalisé avec http://shaky.github.bushong.net/

La partie web est en mode REST


Trois  motifs  sont utilisés pour décoder es URL , un pour l'axe des X , un pour l'axe des Y, le dernier pour allumer ou éteindre le laser.


La parie contrôle d'arduino est de la forme:

Le lasercat peut maintenant etre commandé depuis le site web sous Express , par un smartphone, en ligne de commande par curl.

Bonne fête les chats.




dimanche 27 juillet 2014

Des robots pour les humains et pour les chats

Samedi 26 Juillet, c'était le NodeBots day (Journée internationale) .


Des microcontrôleurs (Arduino ?)  pilotés en javascript dont Node.js


Le groupe des NodeBots de Paris avait organisé un atelier à la cité des sciences de la Villette (Carrefour Numerique)
Quelques photos



C'est ici un 'catbot' : robots pour amuser les chats

Ce robot utilise 2 servo-moteur et 1 laser.

Ici toutes les ressources nécessaires.

Les projets évoqués: cylon.js 


Et son homologue en Ruby:Artoo 
Ces deux projets proposent une implémentation en couche un peu à la mode MVC à destination des microcontroleurs

Nous avons parlé aussi du protocole MQQT qui permet de construire des dialogues de machine à machine. Ce protocole est basé sur le mode  publish-subscribe  et il est utilisé aussi pour les programmes de 'chat' (exemple facebook messenger) 
Le projet mosca  implemente un serveur MQQT:

Les clients existent en Javascript et en ruby.

La partie codage: 
ici mon code pour piloter le robot:


-----










----

Mais ce n'est pas la bonne  manière vraiment utiliser la combinaison javascript / arduino. L'idée est de piloter en temps réel l'arduino au travers d'une interface web. La pile est donc: express, mqqt pour la partie web et johnny-five et mqqt pour la partie robot.
A tester !




mercredi 27 avril 2011

Une platine vinyle hi-tech



Pour tous les nostalgiques amoureux du beau son, il existe un moyen de redonner une deuxième jeunesse à ses disques 33 tours sans faire le lourd achat d'une platine.

Sur cette vidéo, deux jeunes font une démonstration d'une platine construite en Lego.
La partie audio est constituée d'un cornet doublé de papier aluminium garant d'une sonorité 'chaude'. Bien sûr la lecture par une aiguille peut abimer 'légèrement' le disque.


Le matériel


La vidéo:



L'utilisation d'un microcontroleur Arduino pilotant un moteur pas-à-pas permettrait d'obtenir une vitesse stabilisée.

samedi 16 avril 2011

Gestion de livre ou ebook

Deux programmes à découvrir pour organiser ses livres

Calibre pour ebook.

Calibre est écrit en python (lien ici) . C'est l'outil de référence pour gérer ses livres au format numérique. Il est capable de convertir les fichiers de PDF en epub.


Alexandria.

Alexandria est un gestionnaire de livre 'papier' lien ici. Par un titre ou par un numéro ISNB, il est possible de d'ajouter automatiquement un ouvrage.
La plupart des grands sites de vente de livre offrent un service de recherche accessible par des programmes.
Alexandria est ecrit en Ruby.





Mes dernières lectures:

  • Lolita de Vladimir Vladimirovich Nabokov.



J'aime énormement le film éponyme de Stanley Kubrick, mais le film est très aseptisé par rapport au livre. C'est un livre assez 'perturbant' et difficile.
Rappel Stanley Kubrick est à la cinémathèque de Paris.

  • Deuxième livre:

L’Attrape-coeurs de J. D. Salinger


C'est un classique, étudié dans les écoles US. Après sa lecture, je n'avais pas envie de tuer John Lennon.(voir article sur wikipédia).

Et enfin, j'ai commencé:

  • Getting Started with Arduino




Et là c'est des heures de plaisir solitaire en perspective.
lien du site arduino.