Hmmmm de la fraise !!!

Voila un projet qui traîne depuis très longtemps dans ma tête … me fabriquer une fraiseuse numérique. Il y a quelques temps le papa Noël m’a apporté un Dremel; élément de base pour venir à bout de ce projet (merci papa Noël !!!). Cependant c’est un projet assez onéreux mais comme j’avais des restes d’imprimante 3D qui dormaient dans la cave, cela ne m’a pas coûté grand chose.

IMG_20150107_231803

le plateau

 

J’ai été chez mon ami le Magicien Arthur (Leroy Merlin pour les novices) pour me fournir en bois (ils vendent des chutes à 1€) et en tige filetées, boulons, …

IMG_20150114_172208

ça prend forme

 

 

Pour l’électronique, les douilles et les guides j’ai récupéré tout ça de l’imprimante (merci les chats de l’avoir cassée). Et j’ai pas mal designer de pièces que j’ai imprimé en 3D pour adapter le tout (level up solidworks et freecad yeahhhh).

IMG_20150126_153243

c’est booooooooooooo

 

Donc j’ai assemblé tout ça, sans vraiment suivre de plan mais en m’inspirant de différents modèles vu sur internet et surtout au feeling. Le résultat n’est pas trop mal au final et en plus le pire c’est que ça a l’air de fonctionner ….

Si vous avez un casque pensez à baisser le son …

Smart speaking with tooth

Bien le bonjour …. longtemps que j’ai pas mis les pieds ici moi … le temps passe pourtant on à jamais le temps ….. enfin quand j’ai quelque chose à partager je reviens pas ici.

J’ai du faire quelques tests afin de faire communiquer un smartphone avec un arduino le tout sans fil et pour pas cher du tout.

J’ai pensé à trois solutions :

  1. Wifi : Cher et consommateur on oublie
  2. NFC : Peu consommateur et moyen cher, mais le smartphone en question ne possédait pas de NFC…
  3. Bluetooth : C’était la solution à mon problème, peu gourmand en énergie, pas cher et en plus simple d’utilisation.

Matériel nécessaire :

  • Un arduino
  • Un module bluetooth JY-MCU (http://goo.gl/u3ErZT)
  • Deux résistances pour faire un pont diviseur pour le RX, genre 10K et 20K ou 1K et 2.2K
  • des fils

Câblage :

BluetoothHookupWeb

On voit bien sur l’image le pont diviseur et que le serial du module Bluetooth est connecté au serial de l’arduino. Pour plus de souplesse vous pouvez utiliser d’autres pin de l’arduino avec la librairie SoftSerial, ça facilitera le débug, j’utilise les pin 4 (RX) et 2 (TX) dans mon code.


Software arduino :

Rien de sorcier ici, on parle en série avec le module bluetooth donc on regarde juste si l’on reçoit bien la commande envoyée par le smartphone “blink”, cette commande activera le clignotement de la led présente sur l’arduino.

Le code est sur Github : https://github.com/tmator/Smart-speaking-with-tooth

Coté Smartphone ???

Point important je n’ai jamais développé sur smartphone, ou alors simplement un HelloWorld avec le SDK android pour faire le curieux …. je me suis alors demandé de quelle manière j’allais développé l’application mobile.

Après une longue réflexion (environ 30 secondes) je me suis tourné vers phonegap/cordova; je ne suis habituellement pas fan de ce genre de solution, je préfère les applications natives mais comme mes collègues bossent la dessus je n’ai pas trop cherché à me compliquer la vie. Donc j’ai installé phonegap et crée une application avec le plugin https://github.com/don/BluetoothSerial qui permet d’envoyer facilement des messages via bluetooth, seul défaut que je trouve à cette librairie c’est qu’il faut avoir appairé les deux devices en passant par les paramètres du smartphone.

Forcément ce n’est pas optimal, mais pour faire une application avec un bouton qui fait clignoter une led c’est largement suffisant. L’avantage de phonegap c’est que en théorie votre application est compilable sur différentes plate-formes (mais à l’usage on s’aperçoit vite que l’on doit quand même faire du code spécifique …).

Screenshot_2015-01-15-18-09-35

Le code est sur Github : https://github.com/tmator/Smart-speaking-with-tooth

Donc rien de spécial, dans le index.html un bouton “blink” sur lequel j’ai mis une action onTouch dans le fichier js; cette action appelle la fonction blink qui envoi la commande “blink” via bluetooth.

IMG_20150115_181024

Et voila de quoi bien commencer 🙂

Parlons en OSC

Bonjour, on s’ennuie alors on fait un peu de technique 🙂

L’idée ?

Contrôler depuis son PC une LED RGB :

On va donc faire un programme en Arduino qui tournera sur la Galiléo, il recevra les messages OSC pour controler la LED; coté PC on fera un petit programme en Processing.

OCS ?

logo berk

OSC ( http://opensoundcontrol.org/implementations) a été développé par l’université de Berkeley pour interfacer des ordinateurs (et autre bijoux technologiques) et des périphériques multimédia (synthétiseurs, platine, éclairages, …) qui sont connectables en réseau. OSC est de plus en plus utilisé par les artistes et autres bidouilleurs, on trouve des librairies pour l’utiliser avec la plupart des langages de programmation.

Processing ?

processinglogo

Processing ( https://processing.org/ ) est à la fois une librairie JAVA et un environnement de développement crée par des artistes pour simplifier l’accès à l’art numérique sans avoir à trop s’y connaitre en programmation. Tout cela est bien sûr ouvert et on peut trouver de nombreuses librairies pour rajouter des fonctionnalités.

Avant de commencer …

Il nous faut :

C’est parti !!!!

Le code côté Galileo :

https://github.com/tmator/GalileoOSCsample/blob/master/GalileoOscRgb/GalileoOscRgb.ino

Le code côté Processing (n’oubliez pas l’image qui va avec dans le dépôt).

https://github.com/tmator/GalileoOSCsample/blob/master/RGBOSCDemoProcessing/RGBOSCDemoProcessing.pde

Bonne création,

Brice

Un petit tour de Galileo

J’ai eu la chance d’avoir une carte Galileo et je l’ai trouvé bien sympathique donc je vais en dire deux mots. Pour commencer quelques photos de la boite, car je la trouve jolie 🙂

photo 2

photo 1

A quoi que ça sert ?

C’est tout simplement un mini PC avec un Arduino embarqué. L’idée de la carte est de faciliter les installations un peu complexes à base d’Arduino qui souvent nécessite un PC ou certains shields additionnels (ethernet, usb-host, sd,  …).

Un petit tour rapide de la carte :

  • CPU X86 à 400 Mhz
  • 256 Mo de ram
  • Lecteur SD (permet de stocker une image linux plus complète que celle embarquée et les sketchs)
  • Connecteur RJ45 10/100 Mb
  • Slot Mini PCIe2 pour ajouter par exemple du wifi, bluetooth, …
  • Port USB Host
  • Des ports série

photo32 photo 4

Pour quoi j’en parle ?

J’ai beaucoup apprécié les possibilités d’ES de la carte, l’intégration des différents ports à Arduino (par exemple si l’on ajoute une carte Wifi PCIe on peut l’utiliser avec la librairie Arduino).

J’ai surtout tripé sur le fait de pouvoir s’amuser avec les GPIO directement depuis le linux tout simplement en faisant des « echo », un petit exemple pour allumer la led (on peut aussi faire avec du python, du c, … mais c’est beaucoup moins marrant) :

#!/bin/sh
# la led est connecté sur le pin 3
# on ajoute le port gpio dans la liste des ports dispo
echo 3 > /sys/class/gpio/export

#on dit qu’on l’utilise en mode « sortie »
echo out > /sys/class/gpio/gpio3/direction

#on envoie 1 la led s’allume
echo 1 > /sys/class/gpio/gpio3/value

Conclusion

Ma conclusion ne conclue rien du tout car cette carte a encore beaucoup de choses à dévoiler je pense, le seul bémol actuelle et que certaines librairies (soft serial par exemple) ne fonctionnent pas car toutes les fonctions AVR n’ont pas encore été portées.