Born to be wired

Archive pour la catégorie ‘Bricolage’

 Retour de brocante

 5 juillet 2013  Bricolage  Aucun commentaire

Les brocantes, vous le savez, c’est ma grande passion !

ma-grande-passion

C’est une occasion unique de partir à la recherche de trésors cachés et parfois d’en ramener chez soi pour pas cher.  C’est pour cette raison que je n’ai pas pu résister à l’envie de présenter les acquisitions de ma dernière session. Le tout pour moins de 30€, ça va, je ne me suis pas ruiné.

  • Le porte-photos Tex Avery, massif, joliment détaillé et peint
  • Un ensemble de vaisselle de camping, comprenant casserole et assiette astucieusement packagés, parfait pour poser sur le mini réchaud à gaz. Hop, direct dans le coffre de la voiture avec ce dernier.
  • Un Uno comme neuf. Un jeu fantastique qui est encore plus marrant avec quelques verres dans le nez.
  • Une sélection de bandes dessinées en bon état, pour compléter ma collection.
Quelques trésors du grenier ont trouvé preneur.

Quelques trésors du grenier ont trouvé preneur.

Mais surtout, un minitel Magis Club ! La Rolls des minitels ! Le summum des terminaux Vidéotex ! Équipé d’un lecteur de cartes à puce, pouvant atteindre la vitesse démesurée de 9600 bits/s, et même capable d’afficher des images JPEG en 64 niveaux de gris ! Aujourd’hui, ça fait rire, mais à l’époque, c’était véritablement impressionnant ! (on croyait entendre Marcus présenter un Retro GAME ONE).

Il faut dire que depuis que j’avais changé de serveur, le montage électronique que j’avais réalisé pour mon minitel 1B était devenu incompatible, mais à cause de cet achat, je suis devenu assez impatient de me remettre sur ma platine d’essais pour tenter de faire communiquer ce nouveau modèle. Cet investissement marque donc le début de l’ère 2.0 de mes bricolages en rapport avec le minitel (à ne surtout pas confondre avec l’ère du Minitel 2.0).

C’est tout pour aujourd’hui. Dans mon prochain article, je terminerai (enfin) de présenter mon installation VDI, en détaillant comment j’ai mis en place le cœur de réseau.

 Youfo : le front-end pour Youpi

 13 septembre 2011  Bricolage  3 commentaires
L'interface utilisateur de Youfo

Avec la fin de mes travaux sur le back-end du robot Youpi, sauf remontée de bugs éventuelle, j’étais arrivé à la conclusion que je pouvais enfin passer à autre chose. Mais en même temps, j’avais sous la main un back-end plutôt abouti et pas avare en possibilités, et rien d’autre pour faciliter la manipulation du robot ou l’élaboration de scripts.

Je devais me rendre à l’évidence : il fallait que je réalise rapidement un petit front-end pour que le sujet soit bouclé. Libre ensuite aux gens de l’utiliser, de l’autopsier, et de l’adapter.

J’ai voulu un front-end pour un pilotage à la souris qui soit dans la mesure du possible léger et multiplateformes. Quoi de mieux qu’un front-end client léger accessible depuis n’importe quel navigateur — N’importe quel navigateur récent, s’entend. Fuck off IE6.

C’est de cette manière qu’est né Youfo (pour YOUpi FrOnt-end), une interface web ridiculement sobre, développée en quelques heures, articulée autour du framework jQuery et communiquant avec le back-end grâce à des messages Ajax/JSONP.

L'interface utilisateur de Youfo

L’interface utilisateur de Youfo

L’interface permet de piloter chacun des moteurs en cliquant sur le bouton approprié. Pour le fun, lors d’un survol des boutons, la partie du robot concernée par le mouvement se colorise sur l’image d’à côté.

En plus de cet aspect « pilotage en temps réel », à chaque fois que la position de l’ensemble du robot est satisfaisante, un clic sur le bouton au centre de l’écran permet de récupérer la position de tous les moteurs et enrichit le script dans la zone de texte. Il est ainsi possible de copier/coller le contenu de cette zone dans un shell qui, lorsqu’il est exécuté, rejoue les positions enregistrées de manière fluide et rapide.

Si vous considérez ces explications un peu abstraites, la vidéo suivante sera peut-être plus parlante :

Au final, même si cette interface reste dépouillée et souffre parfois d’un peu de lag, elle est facilement utilisable et elle démontre surtout un des gros avantages du back-end Youba : la possibilité d’écrire et d’intégrer au projet le front-end de son choix en très peu de temps. J’invite les bidouilleurs un peu curieux à regarder le code du cœur du front-end (resources/youfo.js) qui ne dépasse pas les 150 lignes.

À partir de là, on peut aussi envisager d’autres front-ends pour un pilotage au clavier, au joystick, à la Wiimote… Les plus motivés pourront décliner le produit en version un poil plus réactive grâce à une réécriture Java ou Qt… Il y a de quoi faire : amusez-vous, faites-vous plaisir.

Dernières recommandations :

  • Youfo nécessite une version de Youba >= 1.4
  • Les deux applications se trouvent sur la page des téléchargements.

Enjoy !

 Youba : release du back-end pour robot Youpi

 8 août 2011  Bricolage  54 commentaires
Le workbench pour tester le back-end Youba

Youba Logo

Une bonne nouvelle pour ceux qui attendaient désespérément un outil pour contrôler leur robot Youpi : je me suis botté le cul ces derniers jours, j’ai pu terminer la réalisation de mon back-end, le tester avec le robot, et même apprécier le résultat en générant un scénario de mouvements pour le robot en quelques secondes !

Le nom de cette merveille : Youba (pour YOUpi BAck-end), un petit programme de 500 lignes écrit en Python. Pour rappel, ce programme a été réalisé dans le contexte suivant :

  • Indépendance du front-end : le programme se contente d’attente ses ordres sur un port TCP. Les instructions en questions peuvent être envoyées par n’importe quel front-end (un terminal, un script, une page web, un programme analysant les commandes d’un joystick, tout ce que vous voulez).
  • Bufferisation : les ordres peuvent être envoyés en temps réel ou à l’avance.
  • Portabilité : au moins dans la mesure du possible. 99% du code est indépendant de la plate forme. Les 1% restants concernent l’envoi de données sur le port parallèle, que je n’ai pas su réaliser de manière totalement portable à l’heure actuelle. Les systèmes Linux et Windows sont supportés.
Le workbench pour tester le back-end Youba

Mon plan de travail : un PC, le robot, le câble de connexion adéquat, et un objet à saisir.

Le plan de travail qui m’a permis de valider mes tests se présente comme ceci : un PC avec une distrib Linux (Linux Mint dans ce cas), le robot, le câble de connexion parallèle fabriqué lors des étapes précédentes, et le tube en plastique d’un médicament générique quelconque préalablement lesté avec des contrepoids de touches de piano (j’ai pris ce que j’avais sous la main). Sur le PC, deux terminaux sont ouverts : à gauche le programme Youba qui écoute sur son socket et à droite le terminal d’envoi des instructions par netcat.

Les résultats des tests ont été au delà de mes espérances :

  • Fonctionnellement, le back-end rempli correctement son rôle, enquille les ordres et envoie leur traduction au robot.
  • Le mouvement sur plusieurs axes en simultané est possible. Cela peut paraitre anodin mais ce n’était pas forcément évident à concevoir.
  • Les mouvements sur chaque axe sont réalisés à une vitesse plutôt raisonnable. J’avais peur que le robot soit trop lent à réagir après avoir constaté des problèmes de mise en sommeil trop longue lors des essais avec mon programme Robotest. J’ai quand même réussi à minorer ce problème en revoyant complètement la gestion des intervalles d’envoi d’octets sur le port parallèle.
  • La précision sur les axes est au rendez-vous, et la pince dispose de suffisamment de pression pour tenir des objets cylindriques.

Et enfin, l’utilisation du back-end, grâce à la commande « I!! » qui affiche l’état des compteurs de demi-pas, permet de « cartographier » les déplacements sur chaque axe de manière très précise et d’utiliser ces informations pour scripter des scénarios très rapidement, dès qu’on connait un minimum la syntaxe attendue. J’ai réalisé le mien en moins de 5 minutes, c’est celui que j’utilise dans mon terminal de droite. Voici le script utilisé pour ordonner au robot de chopper mon tube cylindrique et de le déposer quelques centimètres plus loin :

#!/bin/bash
function sendyoupi {
	echo "$1" | nc localhost 12080
}

# Positionner le bras au-dessus du tube
sendyoupi 'C!W!0,R,H,750,1|1,L,H,999,1|2,R,H,4332,1|3,L,H,7334,1|5,R,H,2000,1'
# Serrer la pince
sendyoupi 'A!W!5,L,D,80,1'
# Lever le bras
sendyoupi 'A!W!1,R,D,30,1'
# Tourner la base de 60°
sendyoupi 'A!W!0,L,D,60,1'
# Baisser le bras
sendyoupi 'A!W!1,L,D,30,1'
# Desserrer la pince
sendyoupi 'A!W!5,R,D,80,1'
# Revenir en position de départ
sendyoupi 'A!W!A,I,S,1,1'

Et le résultat du script en images :

Attention, quelques conseils pour ceux qui souhaitent utiliser Youba :

Avant tout, il y a un fichier README.txt à la racine du projet. Si je me suis cassé la tête à l’écrire, c’est qu’il contient des tas d’informations intéressantes à respecter pour que tout puisse fonctionner. Donc, lisez-le. Vérifiez en particulier que le port parallèle est activé dans le BIOS, de préférence en mode EPP, que son driver est bien chargé par le système d’exploitation, et que vous avez correctement configuré son n° d’I/O dans le fichier de configuration. Si le robot ne répond pas aux ordres donnés, lancez Robotest (disponible en page de téléchargements) pour vous assurer que la partie matérielle fonctionne à minima. D’autre part, je n’ai pas eu l’occasion de tester l’intégralité du programme avec Windows (les 50% des 1% qui ne sont pas portables), j’ai bon espoir que cela fonctionne mais on ne sait jamais. Enfin, je rappelle que je ne réponds en général pas aux questions par mail car je préfère qu’elles soient abordées en commentaires afin que tous les intéressés puissent avoir accès aux réponses.

Voila, il est maintenant temps de dévoiler où il est possible de télécharger Youba : c’est sur la page de téléchargements !

Une dernière chose : je serai content de savoir si vous utilisez ce back-end, ce que vous en pensez, quel front-end vous utilisez, et surtout si vous avez de bonnes idées quand à l’utilisation du robot Youpi.

 Testons hardiment et ardemment le hardware de l’Arduino

 1 décembre 2010  Bricolage  Aucun commentaire

Une fois n’est pas coutume, et sans vouloir céder à la tendance des déballages de produits qu’on rencontre de plus en plus sur la partie fadasse de la blogosphère 2.0, je vais exceptionnellement publier quelques photos d’un déballage maison et d’un petit test de matériel. Car j’ai eu la chance de me faire prêter, comme l’indique le titre, un Arduino ! Et même plusieurs !

Un grand merci à Romain pour m’avoir spontanément proposé de tester ce merveilleux matériel.

Mais je vois déjà mes (trois) lecteurs déconcertés, à la limite du décrochage, qui se posent des questions. Et je lis sur leurs lèvres : C’est quoi, un Arduino ?

Un condensé de technologie si flexible dans une si petite surface !

Un condensé de technologie si flexible dans une si petite surface !

Un Arduino, c’est un peu le rêve des bidouilleurs en herbe. C’est une plate-forme électronique open-source pouvant être programmée et interfacée avec de nombreux autres systèmes, par de nombreuses possibilités de communication. C’est encore trop vague ? Alors disons que c’est une carte qui permet à des bidouilleurs de faire communiquer très facilement des systèmes informatiques divers et/ou/avec des systèmes électroniques divers. Comme avec le Meccano, les possibilités sont infinies.

Une partie du matériel gentiment prété par Romain

Une partie du matériel gentiment prété par Romain

Il y a quelques mois en arrière, dans la même optique de bidouillage, mais dans un registre un peu différent, j’avais acheté un PIC et un peu de matos pour le programmer. L’ennui, c’est que même si un PIC est hyper flexible dans sa programmation, il n’en reste pas moins dénué de périphériques, et il faut donc avoir des connaissances un peu plus que basiques en électronique pour piloter des appareils externes. Je comptais d’ailleurs me limiter au pilotage de circuits TTL et de quelques LED avec cette puce.

Mais l’Arduino change tout. Disposant de bibliothèques pour la programmation, flashable par USB, connectable à différents modules dédiés et a des prix raisonnables, et enfin open source, le dispositif est très séduisant. Ça tombe bien, je me disais que ça serait le périphérique parfait pour gérer une installation domotique. Par exemple, on pourrait imaginer de lui greffer un détecteurs de gaz, des relais électriques, ou des détecteurs de portes ouvertes, ou même plusieurs de ces composants en même temps.

En bonus dans la boite, quelques relais, un buzzer, et un servo

En bonus dans la boite, quelques relais, un buzzer, et un servo

On pourrait imaginer plusieurs Arduino communiquant dans la maison ou l’appartement en mode maître/esclave via des liaisons RF.

Y'a qu'à demander, des modules radio en veux-tu en voila !

Y'a qu'à demander, des modules radio en veux-tu en voila !

On pourrait imaginer le maître relié au réseau local grâce à un module Ethernet, pilotable ou interrogeable via ce biais. Et on pourrait même envisager un affichage des information sur un écran à cristaux liquides, TFT, ou même un touch screen ! Il y a vraiment de quoi s’amuser.

Le shield Ethernet connecté sur l'Arduino

Le shield Ethernet connecté sur l'Arduino

À titre d’exemple, Romain voulait se servir de l’Arduino pour piloter ses radiateurs électriques, de manière automatique en fonction de l’heure, ou à la demande. Il est parti sur un petit bout de code que j’ai un peu étayé durant la période de prêt, afin d’obtenir un draft d’interface de pilotage via un navigateur web.

Le matériel de base pour mon expérience

Le matériel de base pour mon expérience

Pour mes essais, je suis parti avec le minimum de matériel : 1 Arduino, 1 shield Ethernet, une batterie, un câble USB. Et pour le confort : un switch, des câbles RJ-45, un PC pas trop à la ramasse et mes petits doigts pour coder. 🙂

On mélange les ingrédients, on ajoute une pincée de code, on enfourne 30 secondes et on laisse reposer à feu doux

On mélange les ingrédients, on ajoute une pincée de code, on enfourne 30 secondes et on laisse reposer à feu doux

Grâce au module Ethernet et aux bibliothèques qui gèrent son fonctionnement, je suis arrivé à obtenir en quelques lignes de code un petit serveur web personnalisé sur une carte électronique autonome de 10cm de long !

En quelques lignes de code, une page web commandant les périphériques !

En quelques lignes de code, une page web commandant les périphériques !

OK, les inconditionnels de l’embarqué et du temps réel me hurleraient dessus en voyant le code, tellement j’ai développé ça comme un porc en codant avec les pieds et dans la hâte. Mais le draft fonctionne et démontre les possibilités étonnantes qu’on peut obtenir de ce hardware en quelques minutes.

Dans mon cas, les radiateurs ne sont bien sûr pas branchés. Ça ne servirait à rien, de toutes façons. Je fonctionne au chauffage central.

Une petite réflexion pour finir, sur les optimisations possible d’un tel système : Compte tenu de la mémoire limitée dans ce type de matériel embarqué, on pourrait imaginer que l’Arduino renvoie simplement une page XML, donc non verbeuse et réduite au minimum, qui serait formatée via une XSL externe, et qui proposerait tout l’habillage CSS et Ajax pour se la péter quand on montre à ses potes comment on fait du remote-heating-control depuis le boulot. 🙂

C’est décidé, je mets l’Arduino sur ma liste de courses.

 Une racing cab custom WipEout-like

 15 août 2010  Bricolage, Projet Arcade  Aucun commentaire

D’habitude je n’aime pas trop colporter bêtement toutes les vidéos qui sont diffusées à foison via d’autres blogs. D’abord parce que si je le faisais, un lecteur avisé remarquerait que le news n’est pas de la plus belle fraicheur, mais aussi parce que je considère un peu que poster des vidéos à foison sur un blog sans réel commentaire à côté est un signe avant-coureur de sécheresse éditoriale. Et si je peux me permettre un commentaire purement gratuit et strictement personnel, le réchauffement climatique semble également être en mesure de propager peu à peu la sécheresse sur le PBF (paysage blogosphérique francophone).

Voila, c’est fait, je vais me faire plein d’amis blogueurs. Mais je m’en fiche puisque je ne tiens pas un blog mais un CMS :p

Une fois n’est pas coutume, je vais rentrer dans le moule et masquer ma flemme rédactionnelle et le manque de contenu actuel de ce site en postant à mon tour une vidéo dont la fraicheur laisse à désirer.

Il s’agit d’une personne qui a eu l’idée un peu folle de bâtir une racing cab un peu particulière puisqu’elle retransmet les images capturées par une caméra miniature positionnée sur un petit véhicule motorisé, et piloté sur un circuit réel par le joueur. Je ne peux que m’extasier d’admiration devant un tel montage, eu égard à l’originalité du concept, l’ingéniosité du montage, et l’inspiration WipEout’esque du circuit. Et pour cause, WipEout est un des jeux qui m’aura le plus scotché devant un écran dans ma prime jeunesse (en dehors de Street Fighter II’), le plus fait pulser d’adrénaline jusqu’au cerveau, et le plus conforté dans l’idée qu’on pouvait écouter la B.O. d’un jeu vidéo en boucle (ce qui soit dit en passant était assez difficilement concevable à l’époque pour des personnes normales).

Ce concept récolte donc mon coup de cœur ainsi que la retransmission des vidéos qui vont avec.

Racer v0.1

Racer v0.2

Plus d’infos sur le site officiel.