You are on page 1of 76

.

- FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Sommaire
Edito Volume 1

Tribune - Semences striles et donnes futiles

What The Feuille ?

Piloter des dispositifs sans fil

17

Cindermedusae - Les Cratures Gnratives

25

Cable d'interface pour Raspberry Pi

35

5 petits trucs sur la photographie culinaire

45

The Midst ?

50

Rencontre au LabFab de Rennes

55

Un Juke Box avec le Raspberry-Pi

59

Le monde merveilleux des CNCs

64

A propos

74

Page 2/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Edito Volume 1 - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Edito Volume 1
Vous affichez sur votre cran (ou tenez entre vos mains, qui sait ?) le tout premier numro de Fait Main, un magazine
en ligne qui couvre plusieurs sujets, savoir :
l'informatique,
l'lectronique,
la cuisine
l'art,
et enfin l'cologie.
Certains de ces sujets peuvent paratre loigns les uns des autres, comme l'cologie de l'lectronique mais en y
rflchissant les projets les plus originaux et intressants sont souvent la croise de plusieurs domaines.
Un projet base d'Arduino pour contrler un fumoir saumon ou de la cuisine sous vide, un logiciel de domotique pour
diminuer les factures d'lectricit, un script Python de gnration de musique, sont autant d'applications trs concrtes
de savoir-faire en informatique, lectronique.
Nous entrons dans l'poque reine du Do It Yourself, o, pour un budget raisonnable, n'importe lequel d'entre nous peut
raliser un projet avanc que ce soit en soudant quelques composants sur un Arduino ou un Raspberry Pi, ou en
commandant l'usinage de 10 pices moules sur un service en ligne, voire imprimes avec l'imprimante 3d du coin.
Mais cela ne s'arrte pas l'lectronique: la maison, on peut bricoler du meuble, de la cuisine, des produits
cosmtiques

Une voiture de rcupe, pilote avec un Arduino.


Fait Main a pour objectif de montrer travers ses articles ce qu'il est possible de faire avec les outils d'aujourd'hui et
sans dpenser des sommes folles (ou sans rien dpenser du tout). Fait Main a envie d'veiller la crativit de chaque
lectrice et lecteur, et peut-tre de lui donner l'envie de se lancer dans son propre projet DIY.

Le magazine qui se rapproche finalement le plus de ce que nous souhaitons faire avec Fait Main est le magazine
amricain Make.

Page 3/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Contenu du volume 1 - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Fait Main sera dans un premier temps trimestriel et chaque numro, nous prsenterons une srie d'articles avec une
mise en page trs pure et sans chichi.
Chaque article essayera de toucher au moins deux des domaines cits, et nous chercherons sans cesse de nouveaux
auteurs qui auront envie de participer un numro.
L'objectif terme est de faire de Fait Main un magazine participatif o chacun puisse venir proposer un article et tre
relu par d'autres passionns, puis dit.
Fait Main est entirement gratuit et son contenu est distribu sous licence CC-By-NC-SA 3.0 et l'auteur(e) de chaque
article conserve tous ses droits.
L'objectif de cette licence est de protger le contenu des auteur(e)s afin qu'il ne puisse pas tre rutilis sur le web
des fins commerciales.
Bien videmment, les auteurs peuvent choisir de publier leurs articles sous une autre licence (par exemple dans le cas
o la clause "non commerciale" ne serait pas souhaite).
Le magazine est conu en ligne, cette adresse : https://github.com/faitmain
Si vous souhaitez participer ce projet, la page http://faitmain.org/apropos.html regroupe toutes les informations
ncessaires.

Contenu du volume 1
La tribune de ce numro est un parallle entre web hberg et OGM. Lire la tribune.
Le premier article prsente une application de reconnaissance de feuille crite pendant un Hackathon. C'est
l'application qui a t crite en 24 heures par Olivier, Ronan & Tarek lors du dernier AngelHack Paris. On y parle de
machine-learning au service des plantes, des hackathons de programmation & de responsive design. Lire l'article
Le deuxime article parle de domotique et vous explique comment piloter des dispositifs sans fils - portails, dtecteurs
de mouvements etc. On y parle d'Arduino, de Raspberry-PI et de signal en 433 mhz. Lire l'article
Le troisime article prsente le travail de Marcin Ignac: des mduses animes en 3D. Des captures d'cran de ces
mduses ont ensuite t utilises pour faire partie d'un projet de livre gnratif. On y parle d'animation procdurale, de
processing.js & d'hachurage. Lire l'article
Le quatrime article vous donne 5 conseils de photos culinaires pour que vous puissiez prendre en photos vos soupes,
gigots et autres desserts comme un(e) pro. Lire l'article,
Suit une interview de Hugues Aubin au LabFab de Rennes. Lire l'article.
Un cinquime article sur la conception d'un Juke box avec un Raspberry-PI, sans aucune soudure requise :) Lire
l'article.
Le sixime article vous explique comment recycler une vieille nappe de disque dur pour connecter le GPIO de votre
Raspberry. Lire l'article.
Le septime article est une rapide prsentation du jeu The Midst, conu avec Processing et WebPD. Lire l'article.
Enfin, le huitime article aborde les bases du fonctionnement d'une CNC. Lire l'article.
Bonne Lecture!
Tarek

Equipe
Le projet FaitMain est mont par Tarek Ziad mais est surtout possible grce aux crateurs d'articles et aux
relecteurs.
Ont particip ce numro :
Yannick Jost, Xavier Fernandez, Mathieu Agopian, Alexis Mtaireau, Martine Cadot, Lina Ziad - relectures
Tarek Ziad - Article "What The Feuille", Traduction "Cindermedusae", Article "Un Juke Box avec le
Raspberry-Pi".
Marcin Ignac - Article "Cindermedusae".
Jonathan Schemoul - Article "Dispositifs sans fils"
David Larlet - Tribune - "Semences striles et donnes futiles"

Page 4/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Contenu du volume 1 - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Franois Dion - Article "Cable d'interface pour Raspberry Pi"
Brin de Cuisine - Article "5 petits trucs sur la photographie culinaire"
Florian Strzelecki - Interview "Rencontre au LabFab de Rennes"
Alcor Walter - Article "Le monde merveilleux des CNCs"
Brenger Recoules - Article "The Midst"

Page 5/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Tribune - Semences striles et donnes futiles - FaitMain Magazine - Volume 1 Fvrier/Avril 2013

Tribune - Semences striles et donnes futiles


date:
category:
level:
author:

2013-02-01
autre,ecologie
vulgarisation
David Larlet

Champ de bl
La problmatique des semences gntiquement modifies pose des questions d'ordre thique, sanitaire et social. Les
semences striles utilisant le gne au doux nom de Terminator sont emblmatiques de la socit Monsanto qui
est prte diffuser tout prix ses semences, mme gratuitement titre humanitaire pour avoir un contrle de la
production mondiale de nourriture.
Les schmas de penses court-termistes apportant un confort immdiat ont tendance se reproduire d'un
domaine un autre et c'est notamment ce qui est en train de se passer avec le Web.

Aprs une tape de standardisation prometteuse qui permettait une interoprabilit entre les diffrentes publications
(RSS, Atom, trackbacks), la mode est plutt la centralisation des donnes (Twitter) voire leur dconnexion du Web
(Facebook) au profit d'un confort de publication bien rel avec la promesse de l'instantanit et de l'approche
ubiquitaire.
Le tout associ une flatterie de l'go par une quantification du partage (nombre de retweets/likes/followers/etc) qui
se rapproche, osons le dire, d'une comptition malsaine capitaliste du toujours plus, d'une approche en consommateur
des liens sociaux, d'une course effrne la socialisation numrique qui dtruit les communauts locales au profit
d'une communaut de suiveurs inconnus.
Or, au mme titre que les associations pour le maintien d'une agriculture paysanne (AMAP), il existe une voie pour un
web ouvert qui encourage l'artisanat et la rutilisation via un modle acentr et local. Certaines initiatives comme La
Distribution ou CozyCloud encouragent de telles approches permettant de garder un contrle sur ses donnes et
mme un hbergement sur son propre serveur afin d'assurer la prennit de ses URI. L'avnement d'outils de
publication gnrant des fichiers statiques facilite grandement le dploiement et l'hbergement de ses ides et
minimise les connaissances techniques ncessaires son expression sur le web. Les problmes techniques restants

Page 6/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Tribune - Semences striles et donnes futiles - FaitMain Magazine - Volume 1 Fvrier/Avril 2013
rsoudre sont la notification de manire distribue et l'agrgation en temps-rel mais ceux-ci ne pourront tre valids
qu'aprs une adoption large chelle de tels services, permettant d'atteindre la masse sociale critique pour rendre ces
services utiles.
tudions la liste des composants ncessaires pour garder son indpendance vis--vis de services web centraliss :
un nom de domaine, ce qui cote entre 5 et 15 selon le niveau de support et de confiance que l'on souhaite
avoir ce niveau, en bonus non ngligeable vous pouvez associer ce domaine un certificat SSL qui assurera la
confidentialit des changes entre vos visiteurs et vos publications. Mme si vos crits ne sont pas critiques,
pensez au fait qu'une banalisation de tels usages permet de rendre une telle pratique moins suspecte lorsqu'elle
est ncessaire (nous ne vivons pas tous en dmocratie) ;
un hbergement, il en existe tous les prix et si vous vous dirigez vers un site au rendu statique grce des
gnrateurs locaux vous n'tes soumis aucune contrainte technique si ce n'est celle de l'espace disque et de la
bande passante qui ne devraient pas poser problme dans un premier temps au moins ;
un logiciel de tlversement, permettant de dployer le contenu gnr sur le serveur d'hbergement. Il en existe
de nombreux qui ne demandent aucune connaissance technique particulire.
Et voil ! Il ne reste plus qu' faire connatre votre URI au reste du monde. N'oubliez pas de produire un flux
permettant vos visiteurs de s'abonner vos publications (cela est normalement gr par le gnrateur) sans avoir
dpendre d'une plateforme non prenne et centralise.

Barbels
Vos publications, mme titre futile, constituent une partie de votre identit numrique, vos interactions sur le web
participent votre propre dfinition et vos relations sociales. Il serait dommage de laisser des services tiers
montiser votre identit et vos interactions avec vos amis, d'autant plus qu'ils ne garantissent aucun engagement dans
la dure et conduisent de vritables gnocides de donnes que j'appelle datacides lors de la fermeture brutale
des entreprises qui ont du mal trouver un business modle rentable associ la gratuit du service propos.
Si vous tes un jardinier numrique, je vous encourage reprendre le contrle de vos semences^W^donnes afin de
prenniser votre rcolte^W^identit numrique. Il n'est pas trop tard pour nourrir d'ides ouvertes et gratuites vos
concitoyens du web.
Ragissez sur cet article.

Page 7/76 - 2013 FaitMain Magazine - CC-By-NC-SA

What The Feuille ? - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

What The Feuille ?


date:
category:
level:
author:

2013-02-01
ecologie,informatique
vulgarisation
Tarek Ziad

Tarek & Ronan en train de tester What The Feuille (by Kenneth Reitz)
Le Hackathon est un mot-valise, m'apprend Wikipdia contraction de hacking et de marathon. Un marathon de
hacking est un vnement durant lequel des dveloppeurs vont travailler ensemble pour tenter d'acclrer le
dveloppement d'un projet en se concentrant dessus le temps d'un week-end ou parfois d'une semaine.
Dans la communaut Python, on parlera plus de sprints, terme invent par Tres Seaver pour dcrire les runions de
2-3 jours pendant lesquelles des paires de programmeurs bossaient sur Zope 3 un logiciel crit en Python.
Les Hackatons organiss par AngelHack sont encore une autre variante : vous avez 24 heures pour produire un projet
de A Z dans des locaux o tous les participants se runissent et restent veills toute la nuit soigns coup de
pizzas et Red Bull par les organisateurs.
A la cl, la possibilit de gagner un A/R San Francisco pour pitcher des Angel Investors de la Silicon Valley.
La plupart des projets sont des applications web. Plus rarement des applications desktop ou du hardware.
Il ne faut pas se leurrer, mon avis, derrire la plupart des quipes participantes se cachent des startups en devenir
qui planchent sur leur sujet depuis des mois voir des annes pour elles, un concours comme AngelHack est une
opportunit de s'exposer aux investisseurs, voire d'avoir la chance d'aller leur rendre visite en Californie.

De mon cot la partie startup/pitch ne prsentait aucun intret. Mais l'ide d'essayer d'crire une appli fonctionnelle
et moderne en 24h par contre...
On s'est donc inscrit avec Olivier & Ronan et on a particip au concours sans carte de visite, ni rien vendre juste
l'envie de hacker une appli.

Page 8/76 - 2013 FaitMain Magazine - CC-By-NC-SA

What The Feuille - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

What The Feuille


What The Feuille c'est l'excellent nom trouv par Olivier pour l'application que l'on a dcid de construire pendant le
hackathon.
Le but de cette application est de deviner de quelle plante ou quel arbre provient une feuille que l'on vient de prendre
en photo depuis son mobile ou sa tablette.

Note
Oui, j'ai dj vu des promeneurs prendre des photos avec une tablette en fort.

On a choisi assez rapidement d'crire cette application web entirement en Javascript et HTML5 pour le cot
utilisateur, sans passer par des dvelopements spcifiques la plateforme iOS ou Android pour plusieurs raisons :
mme si des outils comme PhoneGap permettent de dvelopper une application mobile qui est ensuite compile
pour chaque plateforme native, le principe de subir une modration sur l'app store d'Apple ou Google Play nous
rebute profondment.
le HTML5 et le Javascript sont compris par tous les priphriques, et notre application n'a pas besoin d'accder
des fonctionnalits avances des mobiles ou tablettes, comme l'envoi de texto.
le HTML5 et le Javascript pour les applications mobile, c'est l'avenir !
avec un peu de responsive design, la mme interface marchera aussi sur les ordinateurs de bureau ou laptop.
Cette technique consiste adapter la mise en page en fonction du priphrique qui se connecte sur le site :
tlphone, tablette, ou ordinateur. En fonction de la taille de l'cran, le serveur essayera d'optimiser l'affichage.
Ct serveur, l'application web n'a pas grand chose faire : servir 2 ou 3 crans, rcuprer les photos et les stocker,
et enfin lancer l'algo d'apprentissage automatique - ou machine learning en anglais.
Mais mine de rien, ce genre d'application touche pas mal de domaines de programmation :
du responsive design, de manire pouvoir afficher l'application sur une tablette, un tlphone, etc ;
du stockage d'images et de mta-donnes associes, avec potentiellement beaucoup, beaucoup d'entres ;
une bonne dose de Javascript pour les interactions avec l'utilisateur ;
du machine learning pour toute la partie intelligente ;
de la programmation web pour lier le tout, avec les composantes classiques comme l'identification, le templating,
etc.

Pour rsumer le fonctionnement dans un schma simple :

C'est pas compliqu...


L'utilisateur trouve une feuille o l'arrache discrtement, puis dgaine son portable pour prendre un clich, et
demande notre serveur de reconnatre la feuille.
En dtail, le flow est le suivant :
1. La page principale permet d'uploader une photo golocalise.
2. La photo est stocke sous un nom unique sur le disque dur du serveur.

Page 9/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Responsive ? - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


3. L'utilisateur dite la photo en indiquant au doigt (ou la souris) le haut et le bas de la feuille.
4. Les informations de positionnement sont envoyes au serveur, qui redimensionne la photo.
5. La photo est mise jour et affiche pour que l'utilisateur valide l'dition.
6. L'algorithme de reconnaissance de feuilles cherche ensuite dans la base les feuilles considres comme similaires.
7. Une liste de suggestions d'arbres/plantes est ensuite propose, et l'utilisateur peut en choisir une.
8. Enfin, toutes les informations sur la photo sont stockes dans la base de donnes.
Le va-et-vient entre 3. et 4. est d au fait que toutes les transformations de l'image de la feuille se font sur le
serveur, car moins d'crire une application native chaque priphrique, Javascript est assez limit sur ce genre de
fonctionnalits.

Edition de la feuille
D'autres fonctionalites mineures que nous avons ajoutes au fil de la nuit sont un plantopedia une page qui liste
les plantes et arbres avec les feuilles correspondantes trouves dans la base ; une page d'accueil qui affiche les
dernires photos uploades et enfin un systme d'authentification bas sur Mozilla Persona

Responsive ?
Crer un joli design responsive en 24 heures est impossible sans utiliser un toolkit qui mche le travail. Le plus souple
et le plus puissant est Bootstrap, qui permet trs rapidement de crer un design propre et qui s'adaptera tout seul
comme un grand n'importe quel type de priphrique.
L'autre grande qualit de Bootstrap est de permettre des dveloppeurs comme moi qui n'ont aucune notion de
design, de faire une application web peu prs jolie, avec des botes qui s'alignent bien, un rendu moderne et
standard.
C'est aussi le gros dfaut de Bootstrap finalement : rien ne ressemble plus un site fait avec Bootstrap qu'un autre
site fait avec Bootstrap, souvent car les intgrateurs se sont contents de copier-coller les mises en page fournies en
exemple, et aussi parce que il y a un Bootstrap look and feel.
Mais pour notre hackathon, c'est parfait !
Si vous avez envie de tester Bootstrap, je vous conseille de tester Bootswatch qui offre plusieurs thmes pour
Bootstrap. C'est un excellent moyen de dmarrer son propre thme.
La killer feature de Bootswatch c'est son Bookmarklet en bas de la page. Un lien dposer dans Firefox dans la barre
des bookmarks et hop !, un menu droulant permet d'essayer les thmes fournis par le projet en live sur n'importe quel
site fait avec Bootstrap !

Page 10/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Responsive ? - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Le bookmarklet de bootswatch en plein action

L'autre outil indispensable pour un design propre en 24 heures, c'est Google Web Fonts.

La police facile.
En quelques minutes, on trouve forcment une police qui nous plait, et il suffit d'ajouter un lien vers la CSS fournie par
Google.
En deux heures, les premires pages de What The Feuille taient affiches sur notre navigateur, et correctement
retailles sur nos tlphones.

Page 11/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Du Javascript - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Il a quand mme fallu par la suite tout le talent de Ronan pour ajouter un logo, une texture de fond de page sympa et
tous les petits rglages qui ont donn notre appli web un vrai look pro.

Du Javascript
Pour toutes les interactions avec l'utilisateur et les petits effets spciaux, jQuery est incontournable. De toute faon,
il est disponible d'office dans un environnement Bootstrap.
On s'est servi de jQuery pour le positionnement interactif des feuilles par exemple. L'utilisateur clique sur la feuille
pour indiquer le haut et le bas, avec son doigt sur un cran tactile ou sa souris. Les coordonnes sur l'image sont
envoyes au serveur, qui applique une rotation de l'image.

Tape ta feuille.
On est loin de la barre d'outils de Photoshop, mais l'ide est l : l'utilisateur peaufine son image avant de demander au
serveur de faire une reconnaissance de la plante ou l'arbre.
Ce genre de fonctionnalit n'est pas dure ajouter mais prouve qu'il est possible d'crire des applications mobiles un
minimum interactives bases sur HTML5 et Javascript.

Elastic Search
Les photos uploades dans l'application sont stockes sur le disque dur, ainsi que les diffrents thumbnails, gnrs
la demande.
Elastic Search est le systme que nous avons choisi pour stocker toutes les autres informations.
Ce n'est pas une base de donnes dans le sens strict du terme, mais un moteur de recherche bas sur le trs
performant Apache Lucene.
Au vu des donnes que nous stockons, et au vu des requtes raliser comme par exemple une liste de feuilles
correspondant une plante donne, en batch Elastic Search est l'outil idal.

Page 12/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Le Cloud - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Elastic Search ajoute au dessus de Lucne un service web qui permet d'indexer et de rechercher en utilisant des
messages JSON, ce qui nous permet de ne pas avoir manipuler du XML, qui est le format d'change natif de Lucene
et assez laborieux.
Mais Elastic Search c'est bien plus que a. Les donnes indexes sont schemaless, c'est--dire qu'il n'est pas
ncessaire comme la plupart des moteurs de recherche de dfinir pour chaque type de document les valeurs indexer.
On passe un dictionnaire JSON Elastic Search et il se dbrouille comme un grand pour crer ou mettre jour le
schma.
L'autre intrt d'Elastic Search est la possibilit de dployer plusieurs serveurs et de le laisser sharder les donnes de
manire redondante c'est--dire de distribuer les donnes sur au moins deux serveurs de manire ne rien perdre
si un des serveurs tombe.
Pour le hackathon, on ne dploie qu'une machine avec tous les lements, mais potentiellement, si on prend en photo
toutes les feuilles de la plante, le sharding devient indispensable.

Le Cloud
En parlant de dploiement, nous avons choisi de mettre l'application sur un serveur Amazon EC2 de type Spot
Instance pour minimiser les cots au maximum pour ce premier prototype.
Les Spot Instance sont des serveurs chez Amazon qui ne sont pas attribus des clients fixes et dont le prix de
location fluctue en fonction de l'offre et de la demande.
C'est un systme malin pour rduire le parc de machines non utilises : Amazon met jour en temps rel son prix de
location, et pour obtenir une Spot Instance il faut faire une enchre dont le montant est suprieur au prix fix.
L'avantage est que l'on peut avoir une machine un prix trs avantageux, comme l'explique cet article.
Le gros inconvnient est que si le prix fix par Amazon dpasse le prix de votre enchre, vous perdez brutalement la
machine.
Pour notre dmo, ce n'est pas trs grave et mme terme, on peut trs bien imaginer une architecture ou des
machines Spot Instance sont utilises comme noeuds pour Elastic Search du moment que l'ensemble est tolrant
la disparition d'un des noeuds.
Les donnes sont stockes dans un volume EBS (Elastic Block Store), qui est compltement indpendant des
instances. Un EBS est simplement mont comme volume supplmentaire au dmarrage d'une ou plusieurs instances.
Les EBS sont hautement disponibles, contrairement aux spot instances, si bien qu'il est possible de dployer des
projets dont les bases de donnes sont stockes sur un EBS et dont toutes les applications excutes sur des
instances plus ou moins fiables.
Il existe d'autres cloud providers comme Rackspace, qui offrent encore d'autres solutions mais Amazon est
probablement le provider qui offre le plus d'options et de souplesse, et permet de s'adapter tout type de projet.
Bien sr, toute cette belle technologie dploye sur http://whatthefeuille.com n'avait aucun intrt pour notre dmo
puisque le WiFi tait trop mauvais : les manipulations ont t prsentes sur une version locale .

La partie web
Pour ce projet la partie web a pour principaux objectifs :
l'authentification des utilisateurs
le requtage de la base Elastic Search
le calcul et l'affichage de pages HTML
Il existe une plthore de frameworks qui permettent de fournir ces fonctionalits, et nous avons choisi Pyramid pour
pouvoir recycler une petit application existante qui une fois dpouille de son contenu, nous a fourni un squelette avec
tout les outils ncessaires.
Sans cette application de dpart, nous aurions probablement choisi un outil plus lger, comme le micro-framework
Bottle ou Flask qui permettent de monter une application web en Python en quelques lignes.
La dfinition de micro-framework est vague, mais dans le monde Python, elle regroupe les outils dont le principal
objectif est de simplifier au maximum la cration d'une application web, au dtriment des fonctionnalits secondaires
habituellements fournies dans les frameworks web. Il est rare par exemple de retrouver des fonctionnalits de
permissions trs avances, ou des systmes de schmas de base de donns.
Bottle par exemple est un framework distribu dans un seul module Python - et il est ncessaire d'intgrer des
librairies externes pour la plupart des fonctionnalits avances.

Page 13/76 - 2013 FaitMain Magazine - CC-By-NC-SA

La partie intelligente - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Pyramid reste malgrs tout un bon choix, mme en partant de zro. Mme si dmarrer une application avec ce
framework est un exerice plus contraignant, c'est en gnral un choix gagnant moyen terme. En effet, il est assez
frquent de voir les projets qui grossissent abandonner les micro-frameworks pour passer des outils qui fournissent
plus de fonctionnalits de base.
Voici un exemple de code Pyramid dans notre application :
@view_config(route_name='plants', request_method='GET',
renderer='plants.mako')
def plants(request):
"""Plants page."""
query = StringQuery('*')
plants = request.db.search(query, size=10, indices=['plants'],
sort='name')
data = {'messages': request.session.pop_flash(),
'user': request.user,
'gravatar': gravatar_image_url,
'came_from': request.path_qs,
'plants': plants,
'format_date': format_es_date}
return data
Cette fonction est appele quand l'utilisateur visite l'URL /plants. request.db.search lance une recherche sur la base
Elastic Search pour rcuperer les 10 premires plantes. data est un dictionnaire qui contient toutes les donnes
ncessaires l'affichage. Dans ce cas, la liste des plantes, et quelques donnes annexes comme l'utilisateur (user).
La fonction renvoie Pyramid le dictionnaire et indique le nom du template a utiliser : plants.mako. Le rendu est
automatiquement gnr et renvoy par le framework.
Le reste de l'application est construit sur le mme modle : une fonction par URL.
L'authentification est gre par Mozilla Persona, l'affichage des pages est obtenue via le moteur de template Mako et
les formulaires valids via FormEncode.
Enfin le requtage d'Elastic Search est fait par la librairie pyes.

La partie intelligente

Scikit-image en action.
La partie la plus intressante est la reconnaissance des feuilles bien sr, et pour la mettre en oeuvre, nous avons
utilis la librairie Python scikit-image qui fournit un ensemble d'algorithmes pour la vision artificielle.
Chaque feuille entre dans l'application subit d'abord une rotation et une normalisation de taille, afin d'avoir un jeu de
donnes le plus homogne possible. La rotation consiste positionner avec l'aide de l'utilisateur le haut de la feuille en
haut au milieu de l'image et le bas de la feuille, sans compter la tige, en bas au milieu.
Ces tapes de normalisation amliorent grandement les rsultats puisque l'algorithme de reconnaissance ne sait pas
qu'il manipule des feuilles. Il se contente d'essayer de dtecter sur chaque photo le maximum de zones d'intrt, ou
features en anglais.

Page 14/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Conclusion - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Il existe plusieurs algorithmes d'extractions de features, celui que nous avons choisi d'exprimenter est le HOG
(histogramme de gradient orient).
HOG extrait des histogrammes de gradients sur des blocs carrs de pixels contigus.
Cet algorithme est trs efficace pour dtecter des personnes sur une photo, et par extension tous types d'objets
comme des voitures, des chiens, des chats, etc. Pour que l'algorithme soit efficace sur une classe d'objets donne,
comme les feuilles, il convient de faire varier certains paramtres comme les tailles de blocs.
Nous ne savons pas si les paramtres que nous utilisons sont optimaux pour la dtection de feuilles, et nous ne le
saurons pas tant que la base de donnes ne sera pas plus fournie.

Une fois que chaque feuille de la base est transforme en son histogramme, il devient possible de suggrer pour une
nouvelle feuille les feuilles qui s'en rapprochent le plus et donc par extension la plante ou l'arbre d'appartenance.
Pour faire cette suggestion, notre application calcule la distance euclidienne entre l'histogramme de la feuille et
l'intgralit des histogrammes de la base.
Dans le prototype actuel, tous ces calculs sont faits la vole. Mais comme cette opration de comparaison est de
complexit O(n), elle ralentira au fur et mesure que la base de feuilles grossit.
Une solution potentielle consisterait en la construction d'un vocabulaire de taille limite de 1000 10000 images
prototypiques qu'ont appelle des mots visuels. Ce vocabulaire peut etre construit par l'utilisation d'un algorithme de
clustering sur les features extraites de la base d'images existantes.
Chaque image de la base sera ensuite approximativement encode dans ce vocabulaire en lui attribuant les 10 ou 100
mots visuels les plus reprsentatifs pour cette image. On utilise alors ces mots pour indexer les images de la base dans
l'index Elastic Search.
On parle de reprsentation creuse (sparse en Anglais) car chaque image est encode en utilisant moins de 10% du
vocabulaire possible. Cette technique permet de faire des requetes de suggestion qui fonctionnent mieux sur une base
de donnes trs large
En effet quand une nouvelle image normalise arrive, on extrait ses features, on cherche et on fait une requete de
similarit ("MoreLikeThis") dans l'index Elastic Search avec les identifiants des mots visuels les plus reprsentatif de la
nouvelle image.
L'utilisation de l'index Elastic Search permet ainsi de pre-filtrer de manire efficace les 1000 candidats les plus
probables.
Pour trouver la suggestion finale on calcule la distance euclidienne sur les features de ces 1000 candidats au lieu de la
base complte.
Quoi qu'il en soit, toute la partie intelligente de l'application ne prouvera son efficacit que lorsque la base sera
suffisamment riche en plantes et en arbres.

Conclusion
On tait pas trs jolis voir le lendemain matin, mais le pari a t tenu et la dmo a fonctionn pendant les 3
minutes sur scne. Les retours taient assez positifs dans l'ensemble, et l'application va devenir un bon terrain de jeu
pour Olivier, qui va pouvoir peaufiner son algorithme de pattern matching.

Page 15/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Conclusion - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Des heu-reux gagnants du AngelHack (by Kenneth Reitz)


Ce hackathon m'a fait raliser la diffrence majeure entre les moyens que nous avions il y a 5 ans et aujourd'hui
nous autres petits dveloppeurs.
Il n'y a plus besoin d'un budget consquent et d'une quipe complte pour dvelopper une ide d'application qui peut
potentiellement s'adresser des centaines de milliers d'utilisateurs.

Du platane. C'est du platane je vous dis.


Pour un budget de moins de 50 euros et un petit week-end de travail, nous avons pu mettre en ligne, dans le cloud
une application mobile qui ressemble quelque chose.
Le code source est ici : https://github.com/whatthefeuille/whatthefeuille et l'application en ligne.
Ragissez sur cet article.

Page 16/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Piloter des dispositifs sans fil - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Piloter des dispositifs sans fil


date:
category:
level:
author:

2013-02-01
electronique,informatique
avanc
Jonathan Schemoul

Partie 1: Rception en 433 MHz


Vous avez sans doute entendu parler ou vu des dtecteurs de fume, d'ouverture de porte, des tlcommandes, des
prises murales, etc. sans fil ?
Que ce soit les modles chers que vous trouvez en magasin ou les modles chinois bon march, la plupart, s'ils ne sont
pas avancs, utilisent la bande de frquence 433 MHz (n'essayez pas ceux en 315, ils sont illgaux en France).
Certains autres sont en 2.4 ghz, mais nous les laisserons de cot pour l'instant.
En ce qui concerne ces capteurs en 433 MHz, il se trouve qu'ils utilisent pour la plupart un protocole trs simple,
introduit par des circuits intgrs chinois bas cot, les PT2262 ct mission et les PT2272 ct rception (d'autres
plus exotiques comme les SC5262 / SC5272, HX2262 / HX2272, EV1527, RT1527, FP1527 ou encore HS1527
peuvent tre trouvs et fonctionneront aussi).
Plutt que de nous lancer dans l'acquisition de ces chips, on va utiliser notre microcontrleur, plus que capable de le
faire, pour dcoder et encoder les signaux, grce la librairie RC-Switch pour Arduino, ou RCSwitch-pi pour la
Raspberry Pi.

Regardons de plus prs ce que nous avons disposition :


Un Arduino (ici un Leonardo, mais un Uno ou un clone quelconque fera l'affaire) - Une breadboard
Un 433 MHz RF link kit (un metteur, un rcepteur) - Des fils breadboard

Page 17/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Piloter des dispositifs sans fil - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Montage dtaill
Niveau dtecteurs :
Un dtecteur d'ouverture de porte
Un dtecteur PIR

Dtecteur PIR

Dtecteur d'ouverture de porte

Regardons ce dtecteur d'ouverture de porte de plus prs :

Gros plan sur le dtecteur d'ouverture de porte

Page 18/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Installation de la librairie RC Switch - FaitMain Magazine - Volume 1 - Fvrier/Avril


2013
On voit bien le PT2262 pour l'encodage et gauche des jumper pour choisir le code (ainsi chaque metteur aura un
code diffrent). Pas besoin de dduire le code de ces jumpers, on va faire un petit programme Arduino qui nous les
dira au fur et mesure de leur activation.

Installation de la librairie RC Switch


Tlcharger RCswitch_2.3.zip et extraire le contenu dans le sous-repertoire "libraries" (s'il n'existe pas, crez le) de
votre rpertoire "sketchbook", pour que cela donne :
sous Mac, /Users/VOTRE_UTILISATEUR/Documents/Arduino/libraries/RCswitch
sous Linux, /home/VOTRE_UTILISATEUR/sketchbook/libraries/RCswitch
sous Windows, C:UsersVOTRE_UTILISATEURDocumentsArduinolibrariesRCswitch

Connexion du rcepteur
Le rcepteur est simple, il suffit de le connecter au courant (+5v et GND) et un pin de l'Arduino ayant une
interruption.

Rcepteur
Voici un petit tableau des interruptions :
Carte

int.0

int.1

int.2

int.3

Uno, Ethernet

Mega2560

21

20

Leonardo

int.4

19

int.5

18

Sur notre Leonardo, si nous voulons connecter notre rcepteur sur l'interrupt 0, il nous faut le connecter sur le pin 3 :

Montage

Reevoir des codes


Pour cela, nous allons lancer l'IDE Arduino et charger l'exemple de RCSwitch, "ReceiveDemo_Simple".
Pour le Leonardo, il faut ajouter "while (!Serial) ;" avant d'crire sur le port srie (li l'utilisation de l'USB aprs le
lancement) :

Page 19/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Installation de la librairie RC Switch - FaitMain Magazine - Volume 1 - Fvrier/Avril


2013

Le code dans Arduino IDE


Envoyons le croquis sur la carte, et lancons le moniteur srie (Outils > Moniteur Srie, aprs avoir vrifi que le port
tait le bon dans Outils > Port srie).
Actionnez votre senseur (ici le dtecteur d'ouverture de porte, en cartant les deux parties) :

Page 20/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Installation de la librairie RC Switch - FaitMain Magazine - Volume 1 - Fvrier/Avril


2013

Montage
Et magie, des codes s'affichent dans le moniteur srie :

Retours dans le port srie


Ce code, 13464924 dans cette capture d'cran, est l'id unique de votre senseur, 24bit est la taille de celui-ci et 1 le
protocole utilis (ici celui du PT2262).
Si l'on active un autre senseur (le capteur de mouvement ici, il s'allume en rouge lorsqu'il dtecte un mouvement) :

Page 21/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Interprtation - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Dtection de mouvement

Deux codes

On voit que l'on reoit un nouveau code : 12449942.


Note : si vous ne voyez rien dans la console avec un Leonardo, c'est quelque chose qui arrive souvent, n'hsitez pas
ouvrir un autre moniteur srie que celui livr avec l'IDE Arduino. Par exemple, putty fait trs bien l'affaire mme sous
Linux. La commande "putty -serial /dev/ttyACM2 -sercfg 9600" permet d'ouvrir ttyACM2 en 9600 baud. (remplacer
/dev/ttyACMx par COMx sous windows :))

Interprtation
De l garder ces codes et donner une information humainement comprhensible, il n'y a qu'un pas.
Essayons d'envoyer une information utile sur le port srie
#include <RCSwitch.h>
#define couloir 12449942
#define porte 13464924
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0);
}
void loop() {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
while (!Serial) ;
switch (value) {
case porte:
Serial.println("Quelqu'un a ouvert la porte

Page 22/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Interprtation - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


!");
break;
case couloir:
Serial.println("Quelqu'un marche dans le couloir !");
break;
default:
Serial.print("Dispositif inconnu: ");
Serial.println(value);
break;
}
mySwitch.resetAvailable();
}
}
D'abord dans setup() on initialise mySwitch sur l'interrupt 0, ensuite, dans le loop() lorsque l'on reoit un message, on
agit selon ce qui est reu. On envoie un message simple "Quelqu'un a ouvert la porte !" ou "Quelqu'un marche dans le
couloir !" selon le cas.
Voici ce que l'on reoit sur le port srie :

Capture du port srie


Comme vous pouvez le voir, on a l'information, mais elle se rpte. C'est d la nature du protocole, qui ne permet pas
de vrifier la rception de l'information. Du coup, elle est envoye plusieurs fois pour tre sr de sa rception.
Pour rgler ce problme, il suffit d'ajouter un timer sur la rception, pour ne l'avoir qu'une seule fois :
#include <RCSwitch.h>
#define couloir 12449942
#define porte 13464924
RCSwitch mySwitch = RCSwitch();
// On limite un vnement par seconde long
#define debounceDelay 1000
// On a deux dtecteurs, donc on a deux timers.
last_times[2] = {0,0};
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0);
}
bool debounce(int number) {
if ((last_times[number] == 0) ||
((millis() - last_times[number]) > debounceDelay)) {
last_times[number] = millis();
return true;
}

Page 23/76 - 2013 FaitMain Magazine - CC-By-NC-SA

La suite ? - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


return false;
}
void loop() {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
// on remet zero le timer
while (!Serial) ;
switch (value) {
case porte:
if (debounce(0))
Serial.println("Quelqu'un a ouvert la porte !");
break;
case couloir:
if (debounce(1))
Serial.println("Quelqu'un marche dans le couloir !");
break;
default:
Serial.print("Dispositif inconnu: ");
Serial.println(value);
break;
}
mySwitch.resetAvailable();
}
}
Notre fonction debounce permet, pour un dtecteur donn (de 0 1 ici), de dire si c'est un nouvel vnement ou pas.
Voici ce que cela donne si j'ouvre la porte, marche jusqu' une autre porte puis ouvre cette autre porte inconnue :

Capture du port srie


Comme vous pouvez le voir, nous n'avons pas de timer sur l'metteur inconnu mais on en a un sur ceux qui sont
connus.

La suite ?
Dans la deuxime partie nous verrons comment envoyer des signaux une prise en 433 MHz, et envoyer et recevoir
des signaux entre Arduino selon le mme principe.
Ragissez sur cet article.

Page 24/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Cindermedusae - Les Cratures Gnratives - FaitMain Magazine - Volume 1 Fvrier/Avril 2013

Cindermedusae - Les Cratures Gnratives


date:
category:
level:
author:
translator:

2013-01-02
art,informatique
avanc
Marcin Ignac
Tarek Ziad

Note
Cet article est une traduction adapte de l'article de Marcin Ignac originalement paru en anglais sur son blog
cette addresse.
Vous pouvez retrouvez tous les projets de Marcin ici : http://marcinignac.com/projects/category/featured/

Les mduses en action


Cindermedusae est un projet qui me tient beaucoup cur. Il a t ralis trs vite (en une semaine) et a t intensif.
Mais les rsultats que j'ai obtenus sont trs concluants. J'ai toujours aim l'ide de livre gnratif et la premire fois
que j'ai entendu parler du concours de Written Images cela m'a tout de suite donn envie de participer.
Written Images est un projet de livre gnratif qui a t financ via la communaut KickStarter et qui prsente des
images gnres par des programmes fournis par des artistes. Chaque impression de livre est calcule individuellement
afin de crer des livres uniques.
Cindermedusae a t selectionn avec 47 autres projets pour faire partie du livre.

Page 25/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Animation procdurale - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Un des livres imprims d_effekt


Je travaillais encore chez shiftcontrol cette poque, pour un projet de jeu sous-marin pour la ZDF appel Universum
Der Oceane en collaboration avec les architectes de Hosoya Schaefer. Vous pouvez trouver plus d'information sur ce
projet ici.
Nous avions beaucoup de runions pour discuter de l'ergonomie du jeu et du comportement des cratures
sous-marines et c'est probablement ce qui m'a intress aux mduses gantes.
Ces animaux sont extraordinaires j'adore la faon dont elles se dplacent lentement. Un choix parfait pour tordre
des fils de fers avec du code.

Animation procdurale
L'animation procdurale consiste animer des objets en temps rel par le biais d'un ensemble de rgles procdurales,
c'est--dire une description des rgles de fonctionnement du monde physique et un ensemble de conditions initiales.
Ce n'est pas la premire fois que je fais de l'animation procdurale. En fait, toute la Scne dmo en use et abuse. Un
bon exemple est le torus en forme de cactus dans l'introduction de mon projet Borntro.
Le code original de Cindermedusae est en C++ et utilise la bibliothque Cinder mais je dcris dans cet article les ides
de base de l'animation de mduses avec des exemples de code en processing.js, le portage de Processing en
Javascript.
La plupart des exemples sont interactifs et en 2D c'est plus facile comprendre (et dessiner !). Dans quelques cas
je prsente des exemples en 3D et il faut un navigateur compatible WebGL pour que cela fonctionne.

Tte de la mduse
Commenons avec un cercle ou une sphre en 3D, vue du dessus. C'est l'ensemble des points quidistants d'un
point unique, le centre du cercle. Si ce cercle a pour coordonnes (0, 0), et que le rayon du cercle est r, tous les points
du cercles peuvent tre dcrits comme les fonction de l'angle phi, variant de 0 2.

Page 26/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Animation procdurale - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


x = r * cos(phi)
y = r * sin(phi)
L'tape suivante consiste ajuster dynamiquement le rayon avec une fonction sinusodale pour qu'il varie de 0.925
1.075 soit de 92.5% 107.5% de sa valeur initiale.
On multiplie aussi l'angle par dix pour avoir cet effet de vague dix fois dans le cercle.
x = r * (1 + 0.075 * cos(phi * 10)) * cos(phi)
y = r * (1 + 0.075 * cos(phi * 10)) * sin(phi)
Les segments rouges que vous voyez sur l'image sont les segments slctionns comme points de dpart pour
accrocher les tentacules de la mduse. Nous nous y intresserons plus tard.

Vue des ttes du dessus cliquez pour le code


Si l'on regarde la tte de notre mduse en 2D sur le ct, c'est aussi un cercle, puisqu' la fin nous jouons avec des
sphres.
La diffrence avec le calcul prcdent est que cette fois-ci, la variation de l'angle theta va de 0 (en haut) 2 (en bas)
La tte est symtrique le long de l'axe Y, donc nous construirons 2 points chaque tape un gauche et un
droite :
x = r * cos(theta)
y = r * sin(theta)
x' = -x
y' = y
Sachant que la tte de la mduse ressemble plus un dme qu'une sphre, nous devons faire une forme qui est
convexe au dessus et concave en dessous.
Il suffit d'inverser la valeur de la coordonne Y en atteignant /2, ou 90' dans notre cas. On ajoute aussi r/2 pour
pousser l'arc de cercle obtenu aprs /2 vers le bas, afin que les deux arcs ne se confondent pas :
if (theta < PI/2) {
x = r * cos(theta) y = r * sin(theta)
} else {
x = r * cos(theta)
y = -r * sin(theta) + r * 0.5
}
Enfin, on arrondit les angles pour un meilleur rendu, et aussi pour viter des artefacts d'ombre. Je ne vais pas dcrire
cette tape ici, car c'est juste un if et un sin supplmentaires. Vous pouvez lire le code source fourni.

Page 27/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Animation procdurale - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Vue des ttes de ct cliquez pour le code

Il y a de meilleures techniques d'animations mais comme Written Images n'tait pas un concours d'animation, j'ai utilis
l'outil le plus simple : sin(). Personne ne verra la diffrence sur des pages statiques de toute faon.
Pour chaque frame o je calcule les positions x et y, je calcule aussi la droite normale la surface.
Ensuite, si l'animation est lance, je dplace le point le long de la normale en utilisant la valeur de la fonction sin() un
instant t . Cette formule dplace les points mais sans rien faire de plus, la tte se mettrait faire des pulsations
comme un cur, en grossissant et rtrcissant car tous les points se dplacent en phase.
C'est pourquoi j'ajoute y * 0.5 t pour introduire un dcalage de phase le long de l'axe Y et la structure en fil de fer
(wireframe ou mesh en anglais) commence bouger d'une manire un peu plus naturelle.
x += normal.x * sin(t + y * 0.5)
y += normal.y * sin(t + y * 0.5)

Vue anime des ttes de ct cliquez pour code & animation


J'ai dcid de combiner toutes les tapes dans un script processing.js en 3D, et ma surprise le code obtenu est
quasiment un copier-coller de la version C++. J'ai essay de garder le code le plus simple & clair possible pour cet
article, donc il n'est pas optimal : les performances ne sont pas au rendez-vous.

Page 28/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Tentacules - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Vue anime en 3D cliquez pour code & animation

Tentacules
Problme Etant donn une courbe ou plutt une ligne polygonale, fabriquez un mesh en forme de tube autour de
cette ligne.
Solution On dmarre avec trois vecteurs perpendiculaires :
Forward - gnralement le vecteur normal l'endroit o je veux accrocher la tentacule ou si j'ai l'quation de
la courbe, ce serait le vecteur tangeant.
Up - choisi arbitrairement : (0,1,0) et
Left qui peut tre calcul avec la rgle de la main droite.
La formule de la rgle de la main droite s'applique ainsi :
L = U x F
O x est le produit vectoriel des deux vecteurs trois dimensions.
Pour le deuxime point de notre ligne, on a le nouveau vecteur F' et l'on conserve le mme vecteur L, on peut calculer
le nouveau vecteur U' :
U' = F' x L
En rptant cette opration pour chaque point/segment de la ligne, on obtient une srie de coordonnes pour chaque
vecteur Up, Front et Left.

Rgle de la main droite


Tous ces calculs sont inspirs du repre de Frenet.
Si vous dveloppez dans Cinder, vous n'avez pas vous soucier de tous ces calculs, car le dveloppeur Chaoticbob a
contribu un systme encore plus performant : les Parallel Transport Frames.
Maintenant que nous avons les vecteurs Up et Forward, il est facile de construire des triangles. Dans l'exemple suivant
j'ai ajout deux lements supplmentaires. Le premier ajout est une rduction du vecteur Up pour que la pointe de la
tentacule apparaisse plus fine.

Page 29/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Rendu final - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Le deuxime ajout est un enroulement de la tentacule en fonction de la position de la souris. La tentacule est de plus
en plus enroule au fur et mesure que l'on se rapproche de la pointe la force de cette enroulement est
reprsente par des lignes rouges.

Tentacules animes cliquez sur l'image


Nous sommes maintenant prts attacher les tentacules la tte. Je regroupe tous les lments car le travail des
ombres masquera les discontinuits de la surface.

Tentacules & corps anims cliquez sur l'image

Rendu final
J'ai utilis une gomtrie de triangles beaucoup plus dense pour le rendu ci-dessus, pour des plus belles courbes et
pour viter des artefacts d'antialiasing.

Page 30/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Ombres procdurales - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Rendu final

Ombres procdurales
Lorsque j'ai commenc ce projet, je faisais des essais avec de la Transluminescence et j'avais des rendus assez beaux.
Mais j'ai chang d'avis aprs tre tomb sur le travail de Ernst Haeckel et son livre incroyable : "Kunstformen der
Natur". Je savais que c'tait la bonne voie.
La premire tape est d'utiliser de la lumire diffuse standard juste pour vrifier que mon wireframe est suffisament
lisse et n'a pas de normales au comportement trange.

Page 31/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Hachurage - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Lumire diffuse applique au modle 3D.

Hachurage
Il y a beaucoup d'articles de recherche sur les techniques pour avoir un rendu croquis. J'ai bas mon implmentation
sur du code issu du livre OpenGL Shading Language Book
L'algorithme gnre d'abord des traits verticaux avec les coordonnes de texture, puis choisit la densit des traits en
fonction de la lumire diffuse. Moins il y a de lumire, plus la densit des traits augmente.
Un paramtre important pour un beau rendu est de bien choisir l'paisseur des traits : ni trop fin pour ne pas avoir
d'effet de moir, ni trop pais pour ne pas perdre en finesse de rendu.
Un grand rendu hors-cran dans un framebuffer object de 4080 sur 2720 pixels, et l'antialiasing aident beaucoup
choisir la bonne paisseur.

Hachurage cliquez pour la version hi-res


Malheureusement il n'y a aucun exemple bas sur processing.js, en partie car j'utilise des fonctionnalits qui dpendent
des extensions WebGL GLSL, comme GL_OES_standard_derivatives et les fonctions dFdx / dFdy.
Pour aller plus loin, vous pouvez consulter le livre mention.

Couleurs
Chaque image est compose de cinq couches :

Page 32/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Paramtrage - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


un fond jaune
des coins de page orange
un hachurage en noir
des reflets bleus
des bordures roses
Les reflets bleus et les coins de pages ont t bruits pour donner une impression de coloriage la main.

Colorisation cliquez pour la version hi-res

Rsultat final combin

Paramtrage
J'ai aussi cr une interface graphique de paramtrage trs simple. Cette interface me permet de jouer avec
l'ensemble des paramtres de la simulation et de regarder comment la crature volue en temps rel. Pour les
paramtres qui varient entre une valeur minimale et maximale, l'interface me permet de calibrer ces limites afin de
garder un rendu de mduse raliste.

Page 33/76 - 2013 FaitMain Magazine - CC-By-NC-SA

La suite ? - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Interface de paramtrage

La suite ?
J'ai trs envie de continuer le travail sur ce projet. Une amlioration vidente serait d'optimiser le code pour que le
nombre de frames par secondes (FPS) soit correct. Il plafonne actuellement 10 FPS.
Je pensais aussi faire un portage sur WebGL pour que les utilisateurs puissent s'amuser crer leurs propres
cratures en ligne.
Enfin, j'aimerais tendre le systme et jouer avec d'autres types d'organismes ou de plantes.
Ragissez sur cet article.

Page 34/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Cable d'interface pour Raspberry Pi - FaitMain Magazine - Volume 1 - Fvrier/Avril


2013

Cable d'interface pour Raspberry Pi


date:
category:
level:
author:

2013-02-01
informatique,electronique
vulgarisation
Franois Dion

Exemple de circuit fait main reli a un Raspberry Pi, avec un cable fait main.
Une des fonctions qui a contribu au succs du Raspberry Pi, c'est la possibilit d'interface avec le monde extrieur.
On parle ici des GPIO (en anglais les General Purpose Input and Output entres et sorties pour tout usage), qui
se retrouvent au connecteur P1. En fabricant notre propre cble, on pourra se connecter des DELs (diodes
lectroluminescentes), des moteurs ou autres composants physiques.

Comment faire un cable d'interface GPIO


Nous allons faire du recyclage aujourd'hui. En effet, le type de cble que l'on va faire, un cble plat a 26 conducteurs,
est trs proche d'un cble trs commun que l'on peut retrouver un peu partout, dans le fond d'un tiroir, dans une boite
de vieux composantes d'ordinateur... Il suffit de fouiller un peu, il y en a des dizaines de millions qui ne demandent qu'
se rendre utile une fois de plus.
De quoi s'agit'il ? D'une nappe pour disque dur IDE (ou ATA) 40 conducteurs. On peut aussi utiliser un cble
ATA66/133 80 conducteurs, mais c'est beaucoup plus de boulot, et il y a le risque de se retrouver avec un cble qui
ne fonctionne pas, d un court-circuit entre la mise la masse et notre signal. Je recommande donc plutt les cbles
40 conducteurs, plus vieux et trs communs :

Page 35/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Au boulot - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Cable IDE pour disque dur, 40 conducteurs.

Au boulot
Nous aurons besoin de 2 connecteurs, et non de 3. Avec un cble comme celui de la photo, on coupe une section avec
des ciseaux :

Page 36/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Au boulot - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

On coupe l'extra avec des ciseaux.


Il faut ensuite diviser le cble. En effet, on n'a besoin que de 26 conducteurs, et on en a 40. Avec le fil rouge a
gauche, on compte 26 fils et on marque avec un feutre permanent la division. On compte du cote droit pour s'assurer
que l'on a bien 14 fils, pas un de plus ou de moins.

Page 37/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Au boulot - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Marquer au feutre une ligne qui dlimite 26 et 14 conducteurs.


La prochaine tape consiste a faire une incision avec un couteau genre X-acto ou un scalpel, dans la rainure entre les
2 fils, et ceci sans endommager l'isolation des fils. Le plus simple c'est de commencer l'incision au couteau et de la finir
la main, en tirant de chaque cote de l'incision.

Page 38/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Au boulot - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Faire l'incision et sparer les 2 parties.


Il faut maintenant couper le connecteur exactement sur la septime range de trous, en partant de la droite. On peut le
faire avec une petite scie a dcouper le mtal, ou encore avec une meule a dcouper, dans le genre Dremel.

Page 39/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Au boulot - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Faire la dcoupe. Ici, on a mis un connecteur male de 2x13 pour s'assurer de ne pas se tromper d'endroit.
On enlve la partie du dessus, puis la section de cble 14 conducteurs, et puis finalement, aprs avoir fait une
entaille, on enlve la partie de dessous.

Page 40/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Au boulot - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

On enlve la portion de droite.


On est prt connecter notre cble notre Raspberry Pi. Le fil rouge marque la position #1 sur le connecteur P1. Il
faut donc insrer le cble pour que ce fil rouge soit du cote de la carte SD, et non pas du cote du connecteur RCA /
video composite (jaune) :

Page 41/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Connections - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Conducteur rouge sur position #1, pres de la carte SD.

Connections
Afin de vrifier le fonctionnement de notre cble, on va faire une connexion de 2 DELs, une rouge et une verte. Pas
besoin de fil ou soudure car on va simplement insrer les DELs dans les trous du cble.
En suivant le diagramme ci dessous :
La patte courte de la DEL rouge et de la DEL verte vont se connecter au troisime trou du cote gauche
La patte longue de la DEL rouge au deuxime trou du cote droit
La patte longue de la DEL verte au troisime trou du cote droit

Page 42/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Le Python - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Le Python
Avant toute chose, on doit se procurer un module Python du nom de RPi.GPIO. C'est un module qui permet de
contrler les GPIO sur un Raspberry Pi. Sur Raspbian, il est maintenant inclus, mais si on utilise une autre version de
Linux, on peut l'installer grce a
easy_install RPi.GPIO
ou bien par apt-get :
$ sudo apt-get install python-rpi.gpio
Crer un fichier portant le nom flashled.py ayant le contenu suivant :
#!/usr/bin/env python
""" 2 DEL qui s'allument en alternance """
import RPi.GPIO as gpio
import time
PINR = 0
PING = 1

# on utilisera 2 sur un RPi V2


# on utilisera 3 sur un RPi V2

gpio.setmode(gpio.BCM) # mode Broadcom


gpio.setup(PINR, gpio.OUT) # DEL rouge en mode sortie (OUT)
gpio.setup(PING, gpio.OUT) # DEL verte en mode sortie (OUT)
#On alterne pour l'eternite
try:
while True:
gpio.output(PINR, gpio.HIGH)
gpio.output(PING, gpio.LOW)
time.sleep(1)
gpio.output(PINR, gpio.LOW)
gpio.output(PING, gpio.HIGH)
time.sleep(1)
except KeyboardInterrupt:
gpio.cleanup()

PINR est le GPIO pour la DEL rouge (0 pour un Rpi V1 et 2 pour un V2)
PING est le GPIO pour la DEL verte (1 pour un Rpi V1 et 3 pour un V2)
On slectionne le mode Broadcom (BCM), et on active les 2 GPIO comme sorties (OUT). La boucle va alterner entre
DEL rouge allume / DEL verte teinte durant 1 seconde, et DEL rouge teinte / DEL verte allume durant une
seconde (time.sleep(1)). Si on fait un CTRL-C durant l'excution, le programme termine aprs avoir fait le mnage, par
l'entremise de gpio.cleanup().

On y va
Normalement, on doit toujours protger une DEL avec une rsistance, pour limiter le courant. Toutefois, comme les
GPIO ne peuvent fournir que 20mA et que dans ce test on allume les DELs de faon intermittente, on peut ignorer
cette rsistance sans risque dans ce cas particulier.
Pour un usage prolong, on va devoir ajouter une rsistance en srie de 220 a 360 Ohm.
Pour lancer le script que l'on vient de sauver, on doit le rendre excutable, et le lancer avec permission root (sudo),
cause du module RPi.GPIO qui a besoin d'accder en criture /dev/mem :

Page 43/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Le Python - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


$ chmod +x flashled.py
$ sudo ./flashled.py
CTRL-C interrompt l'excution.

DEL Rouge

DEL Vert

Ceci conclut notre petit article. Dans un prochain numro, nous allons fabriquer un adaptateur pour plaque de
prototypage.
Ragissez sur cet article.

Page 44/76 - 2013 FaitMain Magazine - CC-By-NC-SA

5 petits trucs sur la photographie culinaire - FaitMain Magazine - Volume 1 Fvrier/Avril 2013

5 petits trucs sur la photographie culinaire


date:
category:
level:
author:

2013-02-01
cuisine,art
vulgarisation
Brin de cuisine

Contrairement ce qu'on croit, raliser une jolie photo culinaire ncessite de la prparation. D'abord, imaginer, et cette
tape doit avoir lieu avant mme d'avoir ralis la recette ! Ensuite, si l'on est tout seul revtir la fois la toque de
cuisinier, les gants des assistants lumire et la casquette de photographe, mieux vaut s'organiser. C'est bien plus facile
plusieurs ...

Note
Retrouvez toutes les recettes sur http://www.brindecuisine.fr

1. Scnariser
Certains plats dlicieux ne sont pas forcement prsentables, il est donc ncessaire d'en tenir compte. Par exemple,
pour un plat mijot, il vous sera ncessaire de veiller soigner le dcoupage de votre viande, ainsi que le parage de
vos lgumes, pour pouvoir les prsenter d'une manire agrable l'il.

Le tajine est un bon exemple. Pour le rendre apptissant, j'ai dispos les morceaux dans une assiette, en otant le jus
de cuisson
Penser aussi ds cette tape l'harmonisation du plat avec la vaisselle et le dcor, que vous pouvez choisir neutre ou
signifiant.

Page 45/76 - 2013 FaitMain Magazine - CC-By-NC-SA

2. clairer - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Un fond blanc et un voilage trs simple sont un exemple


de dcor neutre.

Un dcor signifiant donne aussi beaucoup d'ambiance


une photo.

2. clairer
Privilgiez autant que possible la lumire naturelle, c'est elle qui donne les couleurs les plus apptissantes. Dehors ou
derrire une fentre, le soleil permet de multiples clairages. Un voilage servira de diffuseur. Attention la lumire
directe, qui donne des ombres dures.

Une lumire du jour rasante donne de la profondeur


l'image

La lumire artificielle est plus difficile grer. Mais


parfois, on n'a pas le choix, notamment en hiver,
lorsque le jour est de courte dure.

Page 46/76 - 2013 FaitMain Magazine - CC-By-NC-SA

3. Prparer - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Les nuages forment le meilleur des diffuseurs.

3. Prparer
Avant de raliser votre photo, faites votre mise en scne avec la vaisselle et accessoires, sans le plat. Cela vous
permettra de vrifier quelle prise de vues est la plus adapte. Variez la focale, les angles et l'orientation de la lumire,
la distance de prise de vues, et si votre appareil se dbraye, la profondeur de champ : ces paramtres ne donnent pas
du tout les mmes effets.

La macro donne toute sa place au sujet de la photo

4. Cadrer
La photo culinaire se prte de nombreux styles photographiques. Clair ou sombre, en plan rapproch ou plus loign,
en nature morte ou avec prsence humaine, vous de trouver votre prfr. Ou bien de varier selon les recettes. Voici
quelques exemples :

Lifestyle, c'est--dire prise de vue intgrant la prsence


humaine

Style "nature", lumire du jour et ingrdients frais

Page 47/76 - 2013 FaitMain Magazine - CC-By-NC-SA

5. Planifier - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Plan rapproch en studio, double clairage latral de


mme puissance.

La vue plongeante est adapte aux recettes


familiales, ralises dans de grands plats.

Clair-obscur.

Le high key consiste clairer fortement le sujet, et


lgrement surexposer afin qu'il n'y ait aucune zone de
couleur noire, et le moins possible d'ombre grise.

5. Planifier
Les prparations froides permettent videmment de prendre tout son temps, mais ce n'est pas le cas des plats chauds
dont l'aspect se matifie en refroidissant, le rendant moins apptissant. Il faut donc que tout soit prt avant de mettre
votre prparation dans le cadre de la photo. Je vous conseille de poser votre appareil sur pied, l'allumer, cadrer, et
d'ensuite seulement disposer les lments.

Page 48/76 - 2013 FaitMain Magazine - CC-By-NC-SA

5. Planifier - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Ragissez sur cet article.

Page 49/76 - 2013 FaitMain Magazine - CC-By-NC-SA

The Midst ? - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

The Midst ?
date:
category:
level:
author:

2013-02-01
art, informatique
vulgarisation
Brenger Recoules

Un arbre rcursif
The Midst est un projet de art-game se jouant en ligne : comme cela arrive souvent aux personnages principaux de
jeux vido, la petite-amie de Hro s'est fait enlever ; cette fois ci ce sont de mchants pixels blancs qui ont fait le coup
(the white meanies) ; en consquence Hro est condamn errer dans un labyrinthe de fentres pop-up en noir et
blanc truff d'obstacles, dans le but de dnicher une sortie et d'alors pouvoir peut-tre retrouver sa dulcine.
Ce jeu se dcline aussi en un atelier et une srie de ressources en ligne permettant de dcouvrir les technologies
luvre : beaucoup de processing.js pour la cration graphique et l'animation, une gnreuse portion de Webpd pour la
synthse sonore en temps rel, un soupon de HTML5 et une pince de jQuery pour faire en sorte que tout cela
fonctionne dans une page web. C'est du coup l'occasion de comprendre comment implmenter une succession de
petits jeux simples allant du pong au casse-brique...
Le code complet du jeu est disponible et consultable en ligne cette adresse : https://github.com/b2renger/TheMidst
Au programme et en vrac : systme particules, physique et vecteurs pour l'animation, interaction, tweening, collisions
non orthogonales, synthse sonore, musique gnrative...
Du point de vue des technologies on utilise des outils libres et gratuits et qui disposent d'une large communaut
d'acteurs internationaux. Cet article va se concentrer sur webpd qui n'est pas encore compltement document alors
que processing.js, lui, dispose dj d'une communaut vibrante et d'une multitude d'exemples de code en ligne.
Pour rappel, Processing est un langage de programmation apparu en 2001 au MIT, qui a pour vocation de faciliter
l'apprentissage de la programmation objet en l'appliquant au dessin, l'animation, l'interaction et la visualisation de
donnes. Aujourd'hui il y a une trs large communaut internationale et le langage permet aussi bien de dvelopper
pour des ordinateurs, que pour des tlphones Android ou encore des navigateurs web.
Pure Data est un langage de programmation visuelle n en 1996, il est la rsultante d'une partie des travaux de Miller
Puckette l'IRCAM : c'est le petit frre libre et gratuit de MAX/MSP. Il permet de crer du code en reliant des botes
entre elles l'aide de fils : c'est un langage de programmation trs utilis pour la cration sonore, mais aussi graphique
ainsi que pour l'interaction.

Page 50/76 - 2013 FaitMain Magazine - CC-By-NC-SA

La Structure du jeu et du code - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

La Structure du jeu et du code


Le code du jeu est structur de manire assez simple. Pour chaque fentre nous avons recours un canvas html qui
va excuter un sketch processing ainsi qu'un patch Pure Data. Deux pages html sont prsentes, index.html et
level-template.html qui font appel a diffrents scripts JavaScript permettant d'aller chercher les fichiers level*.pde
(pour l'animation) et level*.pd (pour le son).

cran d'accueil
Lorsqu'on clique sur le bouton "start" une fentre pop-up va s'ouvrir : c'est le premier niveau incarn par la fentre
"level-template.html" : partir de ce moment l toutes les ressources seront charges dans cette mme fentre de
200x200 pixels. On se dplace ainsi de niveau en niveau en cherchant o sont les murs et o sont les passages vers
les cases adjacentes.

La case de dbut du jeu.


La base de code produite au niveau un permet d'avoir une ellipse (notre personnage principal), qui est anime de deux
faons : la premire consiste modifier la largeur et la hauteur de cette ellipse en fonction de son loignement de la
souris et la seconde animation consiste permettre ce personnage de se dplacer dans l'espace de chaque case
l'aide de l'application de lois physiques.
Le personnage une masse, une position, une vlocit ainsi qu'une acclration. Une force de friction a aussi t
implmente. Lorsque l'on clique quelque part, le personnage va alors subir une modification de son acclration qui va
donc se rpercuter sur sa vitesse puis sur sa position. La relation est tout simplement une addition de vecteurs : pour
obtenir le nouveau vecteur de vlocit on lui ajoute le vecteur acclration; pour obtenir le nouveau vecteur de
position on y ajoute le vecteur de vlocit etc.
A partir de l tout est permis. L'avantage d'utiliser Processing dans ce contexte se situe dans le fait que l'on peut avoir
accs des notions de programmation objets, il est donc possible de structurer sont code l'aide de classes et du
coup de gagner une certaine flexibilit. De plus procession offre tout un tas de primitives de dessin dont la syntaxe est
grandement simplifie.

Page 51/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Le moteur audio : webpd - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Le moteur audio : webpd


Webpd est une librairie JavaScript qui permet de faire de la synthse audio en temps rel. Pour ceux qui connaissent
dj Pure-Data, s'en est un port partiel pour JavaScript : cela veut dire que vous pouvez faire tourner certains patchs
directement dans votre navigateur. Pour ceux qui ne connaissent pas Pure-Data je vous invite lire la suite...

Le hello world de Pure Data.


The midst prsente une particularit au niveau du gameplay et de l'implmentation du moteur audio. J'ai choisi
volontairement de conserver la mme fentre pour tous les niveaux, cela signifie qu' chaque fois qu'on l'on quittera
une case une nouvelle page va se charger (un canvas avec un sketch Processing et un patch Pure Data). J'ai donc
choisit de crer l'ambiance sonore de chaque case l'aide d'un "drone" audio, c'est dire un accord tenu le temps que
l'on reste dans la case, mais cet accord est modul par la position du hros dans sa case ainsi que par son animation.

La source audio.
L'accord est form de deux sons : un oscillateur, et un phasor (forme d'onde en triangle), on utilise la convention MIDI
pour choisir la frquence laquelle vont osciller ces deux sources, l'objet [mtof] permet la conversion de notes midi en
frquences.

Une premire enveloppe contrle par l'animation du personnage.

Une seconde enveloppe contrle par la position du personnage dans la case.

La sortie audio : l'objet [dac~] reprsente les haut-parleurs de votre ordinateur.


Il reste maintenant dupliquer ce code quatre fois (et changer la valeur de la note midi joue chaque fois pour
former un accord) puis interfacer le code de notre ambiance sonore avec notre code processing.js qui rgit
l'animation de notre personnage principal, c'est dire permettre notre code processing.js d'envoyer des messages
webpd pour moduler le son de notre synthtiseur en temps rel.

Page 52/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Le moteur audio : webpd - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Linterfaage d'un seul drone avec processing JS.


En ce qui concerne le son de collision on peut se servir d'un bruit blanc qui va tre modul par une enveloppe maison.

La source sonore est cette fois un bruit blanc [noise~].

L'enveloppe "maison" : un enveloppe attack (1ms) decay (10ms).

Les deux parties assembles.


Pour jouer ce son, on pourra maintenant envoyer un message de type :
patch.send("pjstick","bang");
Il ne nous reste alors plus qu' tout assembler, pour obtenir la base du moteur audio du jeu :

Page 53/76 - 2013 FaitMain Magazine - CC-By-NC-SA

The Midst ... - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Le moteur audio au complet


Nous ne sommes bien sr pas du tout obligs de synthtiser tous les sons ! Il est possible de charger des sons et de
les jouer comme on le souhaite (une fois, en boucle, ou alors juste des bouts droite gauche). Si vous y arrivez, le
dernier niveau vous permettra de dcouvrir une premire approche de la musique gnrative pour le web. L'avantage
de Pure Data et qu'il existe une large communaut de musiciens qui l'utilisent, ceux-ci seront mme de mettre en
place un moteur audio complet et interactifs pour le web.

The Midst ...


Comme je le mentionnais au dbut ce jeu est aussi un atelier dont la premire dition aura lieu du 16 janvier au 20
fvrier Stereolux Nantes, sous forme de six sances de deux heures, qui permettront leurs participants de se
familiariser avec ces technologies mais aussi de dvelopper une case du jeu. J'espre qu'avec le temps le jeu
s'toffera que le labyrinthe s'tendra... alors si vous souhaitez contribuer n'hsitez pas me contacter !
Ragissez sur cet article.

Page 54/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Rencontre au LabFab de Rennes - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Rencontre au LabFab de Rennes


date:
category:
level:
author:

2013-02-01
electronique,informatique,art
vulgarisation
Florian Strzelecki

Hugues Aubin en train de montrer une carte Arduino un atelier du LabFab


Depuis que je frquente Hugues Aubin aka @Hugobiwan sur Twitter, je suis chaque fois surpris non seulement par ses
projets et par les nouvelles qu'il apporte, mais aussi (et surtout) par la ferveur et l'nergie qui l'animent.
Rencontre avec le porteur du projet "LabFab", un FabLab Rennes, qui a ouvert ses portes l'anne dernire, et qui va
bientt employer temps plein une personne pour accueillir le public.

Petite introduction

Page 55/76 - 2013 FaitMain Magazine - CC-By-NC-SA

L'exprience du LabFab Rennes - FaitMain Magazine - Volume 1 - Fvrier/Avril


2013
Lorsque je lui demande de se prsenter en quelques mots, il me tend sa carte : Hugues Aubin, "Charg de Mission TIC",
sous les logos de Rennes Mtropole et de la Mairie de Rennes. Sa situation est assez exceptionnelle pour tre note,
car elle lui permet de faire le pont entre des activits de la ville, et les activits de toute l'agglomration.
Son lien avec le LabFab ? Il l'a mis en place, en contactant les bonnes personnes, et en runissant des acteurs locaux
qui se posaient dj les mmes questions sur les FabLab, les Hackerspaces, et tous ces lieux qui proposent des
espaces de fabrication au plus proche des gens.
Parce que le LabFab ne s'est pas fait tout seul ! D'abord, il y a l'Ecole europenne suprieure d'Art de Bretagne, qui
prte des locaux pour le LabFab. Et tout comme Telecom Bretagne, l'intrt pour eux est ce qu'un FabLab apporte aux
tudiants.
Il y a la ville de Rennes, ainsi que Rennes Mtropole, qui s'intressent tous deux ce qu'un FabLab peut apporter ses
habitants. Et n'oublions pas non plus la rgion Bretagne, qui participe pour des raisons similaires.
Enfin il y a les associations BUG et la Cantine Numrique Rennaise (CNR), centrs sur les communauts et les
nouvelles technologies, ce que reprsente parfaitement le LabFab.

L'exprience du LabFab Rennes


La question qui revient souvent, me dit-il, c'est comment apprivoiser ces espaces ? Comment les inclure dans la
socit et dans ses projets ? Parce que mme s'il ne fait pas de doute que ces lieux ouverts sont trs intressants, il
reste savoir comment les mettre en place.
l'origine, le but de l'exprience est d'essayer quelque chose, et d'essayer vite, en investissant peu de moyens d'une
part, mais surtout sans attendre quelque chose en retour : ni objectif, ni russite, ni rsultat particulier. Le but est
justement de savoir comment a va se passer, comment l'espace est pris en main, et qui s'y intresse.

Alors avec juste quelques hommes, des locaux et un peu de matriel, le LabFab est mis en place, avec diffrents axes
de recherche.
Tout d'abord, que le lieu soit utile aux gens qui viennent. Qu'il serve l'ducation populaire pour accder au numrique,
et aux objets qui touchent ces technologies. Hugues insiste d'ailleurs sur l'approche de consommation actuelle de la
technologie, qui amne selon lui peu d'innovation, et qui bloque l'mergence de nouveaux usages, notamment
dmocratiques.
Aujourd'hui, Internet sort des PCs, mais il reste l'apanage des spcialistes et de ceux qui savent.
L'cole des Beaux Arts formant des tudiants au design, elle cherche obtenir plus d'intgration dans la fabrique de
nouveaux usages, avec les technologies de l'information (rseau, lectronique, communication inter-objets, etc.), dans
les savoirs dispenss.
Ils veulent gnrer une dynamique entre les tudiants et l'usage du LabFab.
On retrouve aussi cette notion de mixit que ce soit pour la ville ou Tlcom Bretagne : comment faire venir autant
des professionnels que Monsieur et Madame tout le monde ? Comment intresser la fois des ingnieurs, des
chercheurs et des spcialistes ? Des jeunes, vieux, amateurs, nophytes et tous les curieux ?
Il y a une relle volont d'attirer tout le monde en mme temps.
Les axes de recherche ne manquent dcidment pas, et Hugues est intarissable sur le sujet. Il me raconte ple-mle
que ce projet apporte un tas de questions, que les gens se posent un tas de question : quel va tre le regard des
experts auprs des amateurs ? Quelles questions est-ce que cela pose, de fabriquer des choses sans brevet, sans
rgles sur la "proprit intellectuelle" ?
Sans compter que si le LabFab s'inscrit dans un environnement local, il y a une volont d'essaimer, de faire qu'un
cosystme international se dveloppe.
En 2012 Montral lors du MakerFair, ce qui se voyait le plus c'tait "tout le monde monte son FabLab" !

Le public et le rseau des FabLab


Parce que le LabFab de Rennes, ce n'est qu'un tout petit lment finalement. Depuis dbut 2012, c'est un vritable
rseau de lieux qui est en train de se dvelopper : Hugues me parle du Vietnam, de Qubec, de Dakar, ou encore du
Burkina Faso, bref, tout un ensemble de pays avec des communauts francophones.
Le problme rencontr aujourd'hui en Afrique, c'est qu'ils apprennent ventuellement leur langue maternelle et le
franais, mais rarement l'anglais. Alors que les documentations techniques, elles, sont toutes en anglais.

Page 56/76 - 2013 FaitMain Magazine - CC-By-NC-SA

L'exprience du LabFab Rennes - FaitMain Magazine - Volume 1 - Fvrier/Avril


2013
La traduction des documents et le partage de ces traductions, est devenu l'un des objectifs du LabFab.
Parce que le public aujourd'hui est vraiment trs htrogne : j'ai pu moi-mme m'en rendre compte avec une petite
sance photo lors d'un atelier sur Arduino.
Nous avons des artistes, des vieux bricoleurs, etc. L'anne dernire avec la CNR, c'est 26 ateliers que nous avons
fait. Et ils ont tous t complets en moins de 48h ! a reprsente plus de 450 dbutants qui ont t forms !

Un public htrogne pour cet atelier du LabFab sur Arduino connect.


Le succs est au rendez-vous, parce qu'outre les ateliers frquents, il y a les diffrents salons auxquels est invit
Hugues pour parler du FabLab Rennais :
Entre Laval Virtual et le forum des usages Brest, Vivacit, nous avons aussi reu des invitations pour aller
l'tranger. Ce n'tait pas prvu du tout l'origine.

Page 57/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Le futur du LabFab - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Plusieurs "Starter Kit" sont disponibles pour former les gens sur Arduino.
Hugues ayant un emploi du temps de ministre, l'entretien touche bientt sa fin, et il y a encore une question ou deux
que je me pose. La premire, c'est "comment peut-on utiliser le LabFab ?".
Il n'y a pas de rgles trs prcises. Les gens doivent venir avec un projet, c'est dire une phrase qui prsente le
projet et ventuellement un dessin de ce que c'est cens faire, et c'est tout. On ne juge pas des projets, chacun
peut faire ce qu'il a envie, et chacun a accs au matriel du LabFab (kit Arduino pour du prototypage, une
MakerBot, etc.). On demande seulement ce que le porteur du projet partage quelque chose en change.
Intrigu, je lui demande pourquoi cette rgle : pourquoi ne pas simplement imposer une licence ou proposer des
licences libres - puisque c'est le but.
Les gens qui viennent n'ont pas forcment la culture du logiciel libre ou de Creative Commons. Parfois ils ne
savent mme pas que a existe. Alors on leur demande de partager quelque chose : leur produit, une comptence,
un savoir ou une petite partie de leur projet. Certains arrivent et savent tout de suite quelle licence utiliser, mais
la majorit dcouvre le concept en venant ici.
a laisse songeur

Le futur du LabFab
Le succs tant au rendez-vous, Hugues est serein pour l'avenir. Il a prsent un rapport d'activit Rennes
Mtropole le 21 Dcembre dernier, un bilan d'une quarantaine de pages qu'il m'invite tlcharger sur le site du
LabFab une fois publi.
Il est plein d'espoir pour 2013, surtout qu'il a obtenu la cration d'un poste temps plein pour l'anne. Et puis il y a
tellement de projets, et tellement d'expriences tenter.
Le lendemain de notre entretien, je suis pass un atelier sur "Arduino connect", o j'en ai profit pour faire quelques
photos. Il y avait quelque chose de magique voir autour de cette table toutes ces personnes : plusieurs tudiants, un
vieux pp qui a fait de l'lectronique, un couple qui vient en apprendre plus, et tous avec des connaissances et
comptences trs varies.
Si seulement j'avais un peu plus de temps En tout cas, je vous invite franchir les portes de ce FabLab, il y a plein
de bonnes choses.
Ragissez sur cet article.

Page 58/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Un Juke Box avec le Raspberry-Pi - FaitMain Magazine - Volume 1 - Fvrier/Avril


2013

Un Juke Box avec le Raspberry-Pi


date:
category:
level:
author:

2013-02-01
electronique,informatique
dcouverte
Tarek Ziad

Le Raspberry-PI Jukebox
Aprs trois mois d'attente interminable, j'ai finalement reu mon Raspberry Pi (R-Pi), accompagn d'un joli T-shirt
Element 14.
J'ai plusieurs projets en tte avec un peu d'lectronique, mais pour me familiariser avec la bte, j'ai dcid de
commencer par un projet simple qui marcherait avec un R-PI nu.
Le projet est un Juke-Box sans fil que je peux trimballer chez moi, qui se connecte mon rseau local en wifi - et qui
fournit une application web o tout le monde peut se connecter pour ajouter des morceaux de musique dans une file
d'attente.
Le projet final est une petite boite qui contient le R-PI et :
une cl USB pour stocker de la musique. J'ai choisi la PNY 16G qui est vraiment toute petite.
un dongle USB wifi. J'ai choisi l'Airlink Nano pour les mmes raisons : il dpasse peine du port USB.
Une batterie USB pour ne pas avoir brancher le R-PI sur le courant ou sur mon ordinateur. J'ai choisi celui-ci
qui s'avre tre beaucoup plus volumineux que le R-PI, mais qui fournit jusqu' 1 ampre de courant - ce qui
couvre les besoins et devrait permettre d'viter avoir recours un Hub USB aliment.
Un mini-speaker. J'ai command le X-Mini II qui est tout simplement incroyable. Ce petit speaker sort un trs bon
son vu sa taille, est auto-aliment et on peut en brancher plusieurs la suite. J'en ai achet un deuxime pour
mon fils et je le recommande chaudement. Dans tous les cas, le Juke-Box peut toujours tre branch sur de
vraies enceintes.
Petit dtail agrable : Le speaker et la batterie USB ont t tous les deux livrs pr-chargs.

La carte SD
Page 59/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Configuration de base et wifi - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Carte SD 4 Gigas
A rception du R-PI, j'ai branch une carte SD qui tranait chez moi et elle ne marchait pas du tout. J'ai contrl que la
carte tait bien alimente avec un multimtre et j'ai test trois autres cartes SD glanes dans les appareils photos de
la famille en me disant que quelque chose clochait ce niveau l.
Avec la dernire carte que j'ai test, le R-PI bootait mais freezait au bout d'un moment avec une -101 error.
Il s'avre que le R-PI est trs sensible au type de carte SD qu'il reoit. Rien voir avec la marque ou le prix de la carte,
ou sa classe. Certaines marchent, certaines de marchent pas...
Le plus simple est de prendre une carte qui est liste ici : http://elinux.org/RPi_VerifiedPeripherals#SD_cards
Je suis all au supermarch du coin et j'ai pris une SanDisk SDHC 4G class 4 7 euros - et tout a fonctionn.
Prparer la carte SD pour le R-PI sous Mac OS X est trs simple. Il y a mme un script Python : RasPiWrite qui
automatise la tche.
J'ai eu quelques bugs avec ce script pour ma part, j'ai donc utilis quelques commandes shell.
J'ai d'abord tlcharg l'image Raspbian officielle. C'est une Debian optimise pour le R-PI :
cd /tmp
wget http://files.velocix.com/c1410/images/raspbian/2012-12-16-wheezy-raspbian/2012-12-16-wheezy-raspbian.zip
unzip 2012-12-16-wheezy-raspbian.zip

Vous pouvez regarder sur http://www.raspberrypi.org/downloads s'il y en a une plus rcente.


Une fois que l'image est tlcharge et dzippe, il convient de la transfrer sur la carte SD avec la commande dd.
Sous Mac OS X, la commande diskutil list m'a permis de trouver le disque correspondant la carte : /dev/disk3
Puis le transfert s'opre en dmontant la carte et en utilisant dd :
$ diskutil umountDisk /dev/disk3
Unmount of all volumes on disk3 was successful
$ sudo dd bs=1m if=/tmp/2012-10-28-wheezy-raspbian.img of=/dev/rdisk3
[... 5-10 minutes ...]
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 388.257496 secs (4996338 bytes/sec)
$ diskutil eject /dev/disk3
Disk /dev/disk3 ejected
Notez que la commande dd prend beaucoup de temps s'excuter. La copie peut durer de 5 10 minutes.

Note
La notation rdisk3 est spcifique Mac OS X. Elle permet d'acclerer la procdure. Sous Linux, il faut enlever le
"r".

Une fois que la carte est prte, il suffit de la plugguer dans le R-PI et de le dmarrer avec un cran et un clavier
branchs.

Configuration de base et wifi


Vous devriez voir dfiler la squence de boot puis obtenir un cran de configuration.
tendez la partition sur toute la carte SD grce expand_rootds,
overclockez votre R-PI dans le menu overclock : J'ai mis le mien en medium

Page 60/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Configuration de base et wifi - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


activez le serveur SSH dans ssh
dsactivez le desktop dans boot_behavior
Je n'ai pas reconfigur le clavier car j'utilise un QWERTY.
Une fois la configuration effectue, branchez le dongle Wifi et relancez le R-PI via Finish, Raspbian va appliquer au
redmarrage la configuration, et un prompt de login doit apparatre.
Pour se logguer le user est pi et le mot de passe raspberry.
Une fois loggu, ditez le fichier /etc/network/interfaces pour que le dongle s'autoconnecte au rseau. J'ai branch le
dongle sur le port USB du bas, ce qui correspond selon iwconfig l'interface wlan0.
Voici ma configuration pour wlan0 :
auto wlan0
iface wlan0 inet dhcp
wpa-ssid Villa_Des_Mouches
wpa-psk motdepasse
Villa_Des_Mouches est le ESSID de mon rseau wifi. Une fois le fichier modifi, relancer le rseau :
$ sudo /etc/init.d/networking restart
Votre R-PI va obtenir une adresse IP sur le rseau sur laquelle on pourra se connecter en SSH pour la suite.
teignez le R-PI avec sudo halt, puis dbranchez l'cran et le clavier. Branchez la clef USB la place du clavier et
relancer le R-PI.
Au bout d'un moment il devrait rapparaitre dans le rseau et tre accessible en SSH. Le seul dfaut de cette
technique est que l'adresse IP peut changer. Une adresse IP statique peut tre prfre mais dans mon cas ce n'est
pas trs grave car je retrouve facilement le R-PI en scannant le rseau avec nmap 192.168.1.*.
$ ssh pi@192.168.1.96
Linux raspberrypi 3.2.27+ #250 PREEMPT Thu Oct 18 19:03:02 BST 2012 armv6l
...
Last login: Sun Oct 28 23:10:12 2012
pi@raspberrypi ~ $
Pour la suite, il est plus simple de tout faire en SSH car moins d'avoir un cran adapt, la rsolution du mode console
du R-PI sur un cran moderne va vous brler les yeux en 5 minutes.
Testez que le son fonctionne en branchant une enceinte amplifie sur le R-PI et en tlchargeant un WAV et en le
jouant avec aplay :
$ wget http://www.freespecialeffects.co.uk/soundfx/sirens/police_s.wav
$ aplay police_s.wav
Playing WAVE 'police_s.wav' : Unsigned 8 bit, Rate 22000 Hz, Mono
^CAborted by signal Interrupt...
Vous devriez entendre une sirne.
Installez maintenant mpg123 pour jouer des MP3 prsents sur la clef USB. Il a fallu monter le disque manuellement par
contre :
$ sudo mkdir /media/usbstick
$ sudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/usbstick
$ mpg123 "/media/usbstick/01 Hidden Orchestra - Flight Mixtape.mp3"
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
version 1.14.4; written and copyright by Michael Hipp and others
free software (LGPL/GPL) without any warranty but with best wishes

Page 61/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Application JukeBox - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Directory: /media/usbstick/
Playing MPEG stream 1 of 1: 01 Hidden Orchestra - Flight Mixtape.mp3 ...
MPEG 1.0
Title:
Artist:
Comment:
Album:
Year:

layer III, 320 kbit/s, 44100 Hz joint-stereo


Hidden Orchestra - Flight Mixtape
Hidden Orchestra (Joe Acheson)
Exclusive mix for http://www.parisdjs.com
Paris DJs Podcast
2012
Genre: Podcast

Victoire ! Et un super mix de ParisDjs avec un son propre.


mpg123 utilise environ 6% de CPU, ce qui est plus qu'acceptable.

Application JukeBox
Pour la partie JukeBox, je comptais crire une petite application web au dessus de mpg123 et je le ferais peut-tre un
jour, mais il en existe dj plusieurs.
Jukebox est crite en Python avec Django et fournit les fonctionnalits de base d'un JukeBox, savoir un affichage
des morceaux prsents et un moyen pour les utilisateurs du rseau d'ajouter des morceaux dans la playlist.

Pour installer JukeBox, il faut un environnement Python/Virtualenv mais aussi la librairie libshout3 qui est utilise par
l'application :
$ sudo apt-get install python-virtualenv libshout3 libshout3-dev pkg-config python-dev

Une fois les paquets systmes installs, il faut crer un virtualenv et y installer ez_setup puis JukeBox :
$
$
$
$
$

virtualenv --no-site-packages jukebox


cd jukebox
bin/easy_install -U distribute
bin/pip install ez_setup
bin/pip install jukebox

Pour la configuration de Jukebox, tout est expliqu ici : https://github.com/lociii/jukebox#readme


Le gros dfaut de cette application est qu'elle force les utilisateurs utiliser un compte social comme Twitter - et je
n'ai pas eu le temps de plugger un systme d'authentification plus simple.
Quoi qu'il en soit je suis ravi du rsultat - ce petit juke box peut se brancher sur de bonnes enceintes et rivaliser avec
les systmes sans fils hors de prix du march, comme les Sonos.

Page 62/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Application JukeBox - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Ragissez sur cet article.

Page 63/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Le monde merveilleux des CNCs - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Le monde merveilleux des CNCs


date:
category:
level:
author:

2013-02-01
electronique,informatique
moyen
Alcor Walter

2012 a vu l'impression 3D devenir un sujet qui n'intresse plus uniquement les blogs spcialiss et certains geeks au
fond de leur garage ; on entend dire que "monsieur tout le monde" aura bientt une imprimante 3D cot de son
imprimante-jet-d'encre-A4-photo-wifi. L'effet "nouveaut" est rel mme si on ne sait pas encore l'avenir d'un tel
produit. C'est galement l'image industrielle de ses semblables (dcoupe laser, dcoupe plasma, tours numriques,
CNCs etc) qui s'estompe ; on s'imagine possible d'utiliser, voire de construire ou d'acheter ces outils. D'ailleurs on vient
de s'y mettre et voici ce qu'on peut vous dire pour vous accompagner lors de votre lancement :

Ce que nous allons apprendre de la CNC qui est dans ma cave

Un peu d'histoire pour mieux comprendre


L'histoire de la machine-outil commande numrique n'est pas rcente, on trouve la premire machine-outil en 1751
(Jacques de Vaucanson invente le tour charioter), les premires machines-outils automatises (par cames) au
XIXme sicle et c'est vraisemblablement en 1942 que l'histoire de la machine-outil commande numrique dbute,
grce John T. Parsons.
La programmation se faisait avec des cartes perfores, tout d'abord pour les calculs et quelques annes plus tard lorsque les servomoteurs ont t mis au point - pour le contrle. Cependant, les cots et les usages rservent de
telles machines l'industrie de pointe, l'armement, etc et ne sortent que rarement des laboratoires de recherche.
La technologie va continuer de se perfectionner mais aussi devenir plus abordable et va rejoindre les bureaux d'tudes
et les chanes de production de produits destins au grand public. tel point que depuis deux ou trois dcennies cette
technologie devient accessible aux petites entreprises et aux passionns avertis ; demain elle arrivera peut-tre dans
le grand public sous la forme d'une imprimante 3D, qui sait ?

Dfinition
Une CNC (Computer Numerical Control) ou MOCN (Machine-Outil Commande Numrique) est donc tout d'abord une
machine-outil : elle permet selon ses caractristiques d'effectuer diverses oprations - percer, scier, rectifier,
dcouper, fraiser, plier, graver, tarauder, souder, visser, dposer un matriau, etc - ncessitant des gestes prcis et/ou

Page 64/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Possibilits - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


rptitifs, sur des matriaux divers. Dans le cas d'une CNC, ces oprations seront donc commandes par un ordinateur
ou un dispositif numrique.

Note
Sous la dnomination "CNC" se retrouvent de nombreux dispositifs qui diffrent entre eux principalement par
l'outil qui est utilis. Je prsenterai ici le principe d'une CNC permettant d'usiner par retrait de matire l'aide
de fraises, forets, etc. Cette CNC a t imagine et construite par un particulier qui nous l'avons achete
rcemment. Enfin, ma connaissance du domaine est trs rcente et surtout autodidacte ; je n'ai jamais suivi de
formation et n'ai aucun diplme de technicien d'usinage ou autre.

Possibilits
Les matriaux qui peuvent tre usins sont trs divers, la caractristique principale qui les diffrencie est la duret.
Plus le matriau est dur, plus il faudra que la CNC, ainsi que l'outil qui l'quipe aient la qualit et la puissance
ncessaires pour usiner le matriau. Cependant pour commencer usiner sans forcment aller rapidement, c'est
principalement l'outil et la vitesse de rotation de celui-ci qui vont influer.
Voici une liste non exhaustive de matriaux que l'on peut usiner :
acier
aluminium
laiton
polycarbonate
bois massif
contreplaqu
rsine
mdf
mousse
Dans certains cas, l'usinage requiert de l'huile de coupe, de l'air sous pression, ou autre. Le but recherch est de
refroidir le matriau et l'outil, mais galement de lubrifier pour rduire les frottements et l'usure prmature. L'air
comprim est plus adapt lors de la dcoupe du polycarbonate par exemple pour viter que le matriau fonde et
vienne se recoller sur l'outil ou le matriau. Attention ne pas utiliser n'importe quel produit, pensez d'abord votre
scurit et votre sant. Dans tous les cas, avec ou sans huile de coupe, le port d'un masque, de lunettes de
protection et de bouchons d'oreille est obligatoire si la CNC n'a pas d'quipement vous protgeant des nuisances
(projections de copeaux, de fluide de coupe, fumes, casse, bruit, etc).
En dehors de l'industrie, les domaines d'utilisation d'une CNC sont nombreux, voici quelques exemples : Le modlisme
(ailes et panneaux d'avions, chssis de voiture, lments de btiments), l'lectronique (circuits imprims, botier pour
montages), la rparation (poignes, butes, guides, engrenages), la dcoration, l'bnisterie, la lutherie, la mcanique,
etc.
L'imagination, lexprimentation et la recherche de chacun amneront leur part de nouveaut dans ce domaine.

Structure
Observons techniquement de quoi est compose une CNC, en partant de la table qui accueillera le matriau usiner.
La base est similaire ce qu'on aurait dans le cas d'un usinage manuel : le matriau doit tre solidement fix une
table d'usinage l'aide d'un tau, de butes, de pinces, ou colle, etc, selon les besoins. Parfois la table d'usinage
peut-tre une table aspirante ou un "martyr".

Page 65/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Possibilits - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Table d'usinage "martyr"

Table aspirante

L'usinage du matriau peut se faire avec un outil (une fraise, un foret, une lame, une pointe graver, etc) dont les
caractristiques sont adaptes au matriau et l'opration raliser. Cet outil est mont sur ce qu'on appelle une
broche, c'est--dire, l'ensemble form par le systme de fixation de l'outil et le moteur permettant la rotation
l'origine de l'usinage.
Tout cela est trs proche de ce qui est mis en place lors d'une opration manuelle. Maintenant voyons comment
l'action de l'homme a t remplace par la commande d'une machine :
Si on usine avec un outil en position verticale, 3 axes (X, Y et Z) suffisent pour le dplacer dans l'espace. Et pour se
reprer dans cet espace orthonorm, on utilisera l'unit de mesure du systme international ou l'unit du systme
anglo-saxon.
De nombreuses CNC ont pour base un chssis rigide sur lequel les diffrents organes de la machine reposent pour
oprer. Essentiellement deux catgories de structures existent : la table mobile et le portique mobile. Dans le premier
cas, le portique est fix sur le chssis en son centre et c'est la table d'usinage qui se dplace sur un axe (X). Dans le
deuxime cas, plus courant, c'est l'inverse : la table est fixe au chssis et le portique se dplace sur l'axe (X) pour
parcourir la table d'usinage. Ce dispositif est moins coteux en espace et se rvle plus versatile, c'est le cas de notre
CNC.

Le portique est mobile sur toute la longueur du chssis.

Page 66/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Mcanique - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Le portique quant lui sert de base pour le dplacement sur l'axe Y du porte broche. Le porte broche enfin sert de
base pour le dplacement sur l'axe Z de la broche.

L'ensemble des axes X, Y et Z permet de dplacer l'outil de coupe verticalement.


Dans certaines situations, il est pratique d'avoir un quatrime, cinquime ou nime axe pour orienter l'outil et/ou
orienter le matriau ; ainsi des oprations peuvent s'appliquer sur des faces du matriau non accessibles sur une CNC
3 axes.

Mcanique
La libert de mouvement est donc gre par ces axes mais il faut encore assurer le dplacement avec force et
prcision ; ceci est possible grce de nombreuses solutions mais je vais expliquer ici la plus populaire : les moteurs
pas pas, les vis billes et les axes supports.
Le moteur pas pas est un moteur dont le fonctionnement est relativement fiable, puissant, prcis mais pas trs
rapide. Lorsque les moyens le permettent, des servomoteurs pas pas sont utiliss, permettant d'avoir une correction
en cas d'erreur - le servomcanisme permettant l'asservissement et la rtroaction (on donne une commande et on
vrifie qu'elle se ralise). Un ou parfois plusieurs moteurs pas pas peuvent tre utiliss pour mouvoir chaque axe.

Page 67/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Mcanique - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Le moteur pas pas de l'axe Z, coupl indirectement la vis billes


La vis billes permet de convertir la rotation du moteur en translation (comme lorsqu'on visse une vis !). Les billes
remplacent les pas de l'crou, limitant ainsi les frottements et augmentant considrablement la prcision. Le couplage
entre le moteur et la vis billes peut tre :
direct, au moyen d'un coupleur d'axe spcifique qui protgera de la casse le moteur et la vis,
ou indirect, au moyen de poulies et de courroies qui permettront une dmultiplication de l'effort tout en gardant
une certaine souplesse de mouvement.
Pour finir, un axe support est un axe rond en acier tremp mont sur un support en aluminium permettant ainsi de
fixer et soutenir l'axe sur toute sa longueur. Ces axes sont donc trs utiles pour des axes longs qui pourraient flchir
s'il n'taient pas supports. La partie mobile glisse sur l'axe grce des paliers monts sur des douilles billes. On
conserve ainsi une grande stabilit lors du dplacement.

Page 68/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Les moteurs pas pas et les contrleurs - FaitMain Magazine - Volume 1 Fvrier/Avril 2013

Un peu de mcanique ...


D'autres solutions existent :
les vis trapzodales (meilleures que le pas de vis classique) et les axes non supports sont bon march mais
sont plus sensibles l'usure et sont moins prcis que la solution vis billes et axes supports.
les rails guids billes sont coteux mais remplacent avantageusement les axes supports et douilles billes,
offrant encore plus de prcision et de stabilit.
les vis rouleaux satellites offrent galement un niveau suprieur de puissance, de durabilit et de prcision par
rapport aux vis billes. On les trouve sur des machines dont les conditions de mise en uvre sont soumises de
fortes contraintes ce qui explique leur cot lev.

Les moteurs pas pas et les contrleurs


Pour comprendre le pilotage d'une CNC, il faut d'abord connatre un peu le fonctionnement d'un moteur pas pas :
Un moteur pas pas est conu pour effectuer un tour complet en un certain nombre de pas. Cette caractristique est
indique sur le moteur sous la forme 1,8/step ou 200 steps/rotation. Le pas correspond donc l'unit de mouvement
du moteur. Cette rotation peut se faire dans le sens des aiguilles d'une montre ou inversement.
Le moteur pas pas est gnralement aliment sur 4 fils, relis deux deux des bobines. C'est en alimentant ces
bobines et en tenant compte de la polarit d'alimentation, que le moteur tournera d'un pas dans un sens ou dans
l'autre ; en alternant cette alimentation dans un ordre prcis, on fait faire plusieurs pas au moteur. Sans rentrer dans le
dtail du fonctionnement, cela signifie qu'il faut tre capable d'alimenter le moteur avec un courant de forte intensit
en alternant trs rapidement les bobines et les polarits, tout en conservant une qualit d'alimentation. Pour cela, on
peut utiliser un contrleur de moteur, sur lequel on branche directement le moteur pas pas et une alimentation
lectrique. Ce contrleur peut tre paramtr pour limiter le courant fourni aux bobines afin de ne pas abmer le
moteur.

Page 69/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Les moteurs pas pas et les contrleurs - FaitMain Magazine - Volume 1 Fvrier/Avril 2013
Alimentation du contrleur de moteur pas pas
Le contrleur de moteur limite le courant fourni aux bobines par hachage ; il est par
consquent possible d'utiliser une alimentation fournissant une tension suprieure ce que
peut supporter le moteur. Le hacheur limite le courant en fonction du rglage disponible sur le
contrleur de moteur. Sachant que la vitesse de monte du courant la valeur nominale
dcroit l'approche de celle-ci, il est intressant d'utiliser une alimentation capable de fournir
plusieurs fois la tension dont on besoin : le hachage du courant empchera de toute manire
qu'on dpasse les valeurs dsires et on profitera d'une vitesse de monte du courant bien
meilleure ce qui permettra une rponse optimale des moteurs.
Le contrleur de moteur pas pas possde galement une interface de commande compose de 3 fils prenant en
charge une commande chacun, sous forme de niveau logique binaire (0 ou 5V) :
[ENABLE] moteur allum ou teint,
[DIRECTION] direction de rotation horaire ou anti-horaire,
[STEP] rotation de l'axe du moteur d'un pas.
Le moteur peut donc tre :
teint (ENABLE 0V) : aucune autre commande n'est interprte et l'axe du moteur est en rotation libre (on peut
le positionner la main),
ou allum (ENABLE 5V) : en l'absence de commande de rotation, le moteur maintient une position (on ne peut
pas le bouger manuellement) ; lorsqu'une commande de rotation arrive (passage de 0 5V sur le fil [STEP]), le
moteur effectue une unit de rotation dans le sens qui lui est command pas le fil de direction.
La vitesse de rotation du moteur dpend au final de la frquence des commandes sur le fil [STEP]. La documentation
du contrleur est importante pour connatre la dure des impulsions et leur squencement afin de bien optimiser le
contrle du moteur.

Un peu d'lectronique ...

Calculer la prcision de la CNC


En connaissant l'angle d'un pas du moteur pas pas, ainsi que le pas de vis billes et le rapport de
couplage, on peut calculer la prcision thorique de la CNC. Par exemple, pour l'axe X :
notre moteur pas pas peut effectuer un angle minimum de 1.8, soient 200 pas par tour,
la poulie crante sur l'axe du moteur a 15 dents ,
la poulie crante sur la vis billes a 20 dents,
la vis bille a un pas de 5mm (1 tour de vis dplace l'crou de 5mm).
La prcision thorique de l'axe X de la CNC est donc de :

Page 70/76 - 2013 FaitMain Magazine - CC-By-NC-SA

La commande numrique - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

(5 mm / 200 pas) * ( 15 / 20) = 0,025 * 0,75 = 0,01875 mm


La prcision de cet axe est ici thorique puisqu'aucune mesure du jeu des diffrentes parties mcaniques
n'a t faite. Bien qu'un soin important ait t apport aux technologies utilises, il existera toujours une
marge d'erreur lors de l'usinage dans laquelle intervient galement le type d'opration, sa vitesse
d'excution, la nature du matriau, l'usure de l'outil, etc. Une autre source ventuelle d'imprcision est
valuer galement, mme si aujourd'hui les chances sont faibles d'avoir ce problme, c'est la capacit
lectronique et surtout informatique traiter des informations avec une grande prcision, tant pour le
calcul que pour la commande.
Dans notre cas, il reste possible d'augmenter la prcision sans trop de difficult, soit en augmentant le
rapport du couplage moteur/vis billes, soit en remplaant le moteur par un moteur plus prcis (attention
de conserver des caractristiques suffisantes - couple moteur, vitesse), ou plus simplement, si les moteurs
pas pas le permettent, en adaptant l'lectronique de contrle pour permettre d'augmenter le nombre de
pas par rotation.

La commande numrique
On comprend que le moteur pas pas rpond l'impratif de prcision, mais le principe de commande est trop basique
pour pouvoir tre programm directement par l'homme.
Ds lors, l'interface de commande de chaque contrleur de moteur pas pas sera relie un dispositif numrique afin
de permettre un contrle intelligible et programmable par l'homme.
Ce rle sera tenu soit par l'ordinateur, soit par des systmes ddis cette tche. Une troisime solution intermdiaire
consiste utiliser un ordinateur pour les calculs et l'affichage, coupl un contrleur de CNC pour le pilotage. La
principale contrainte est d'tre capable de dlivrer les commandes au contrleur de moteur (enable/step/direction) de
manire trs rapide et synchrone. L'ordinateur seul ne prsente pas une solution idale ; seul le port parallle permet
de rpondre en partie ces impratifs mais l'architecture matrielle n'est pas optimise pour ce type d'utilisation et un
ralentissement de quelques microsecondes ne peut tre tolr. Complter ou remplacer l'ordinateur par du matriel
ddi est un peu plus coteux mais permet un contrle plus adapt aux contraintes des CNCs.

Schma thorique d'une CNC 3 axes avec 2 moteurs sur l'axe X


Ce systme de commande envoie donc des informations de contrle des moteurs, mais peut aussi grer l'activation et
le rglage de la vitesse du moteur de la broche, l'aspiration des copeaux, l'adjonction d'eau ou d'huile de coupe, la
ventilation des fumes, le changement d'outil automatique, etc. Le systme de commande ncessite cependant d'tre
inform de certains vnements, par exemple, la prise d'origine des axes (calibration du repre orthonorm). Cette
opration requiert l'utilisation de contacteurs de position sur chaque axe, informant de manire prcise le bout de
course des axes. Autre exemple, lorsqu'un outil est fix la broche, la hauteur de celui-ci doit tre mesure l'aide
d'un contacteur pour que la commande ajuste le parcours d'outil. Certains servomoteurs peuvent galement envoyer
un retour au systme de commande.

Page 71/76 - 2013 FaitMain Magazine - CC-By-NC-SA

La commande numrique - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Un des deux contacteurs de position de l'axe Y


Toutes ces possibilits peuvent tre gres par l'homme en utilisant un langage de programmation spcifique. Le
langage le plus populaire aujourd'hui pour le contrle des CNCs est le G-Code ; le dispositif numrique sera donc en
mesure d'interprter ce langage pour commander, entre autres, les contrleurs de moteurs pas pas. Ce langage met
disposition des instructions de dplacement de l'outil de coupe, de vitesse de coupe, de gestion de chemins, etc.
Le langage peut-tre crit directement par l'homme d'aprs les dessins techniques du projet, en effectuant un certain
nombre de calculs - pas toujours vidents - pour prvoir le passage des outils. Mais cette tache de calcul du passage
d'outils, ainsi que la cration des dessins techniques sont aujourd'hui assists par ordinateur.
Les outils informatiques qui interviennent dans le domaine des CNCs sont rangs dans les catgories suivantes :
CAO (= CAD en anglais) : Conception Assiste par Ordinateur. Permet de concevoir et d'laborer les dessins
techniques des pices raliser. Les fichiers sont souvent des formats propritaires contenant des informations
de plans 2D ou de volumes 3D.
FAO (= CAM en anglais) : Fabrication Assiste par Ordinateur. Permet de calculer les chemins des oprations
d'usinages sous forme de parcours-outils. Les fichiers sont galement propritaires mais les outils permettent
pour la plupart d'exporter ces parcours-outils en G-Code.
Interprteurs G-Code et contrleurs de CNCs (G-Code parser and CNCs controller en anglais) : Permet
d'interprter le G-Code et de commander les contrleurs de moteurs de la CNC.

Note
La norme dcrivant le G-Code est cependant rarement implmente en sa totalit, ni toujours conformment,
et ce pour plusieurs raisons :
d'une part, le langage a t standardis en 1980 aprs 20 ans d'utilisation, et cette norme n'a pas
volue depuis 1980 ; depuis, de nombreux fabricants de machines ont donc adapt le langage leurs
besoins.
d'autre part, l'automatisation des tches de conception et de fabrication a rendu certaines instructions
moins utiles, voir inutiles.

Voici la chane de logiciels que j'utilise ; ces logiciels ont t choisis spcifiquement dans le domaine du libre :

CAO

Page 72/76 - 2013 FaitMain Magazine - CC-By-NC-SA

Et maintenant ? - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


FreeCAD gre de nombreux formats de fichiers en importation et en exportation. L'outil est assez facile prendre en
main : un certain nombre "d'ateliers" permettent de grer la modlisation 3D diffrentes tapes et en fonction des
besoins. Un systme de graphe permet de revenir sur les tapes de modlisation sans utiliser d'historique linaire.
L'approche globale est la modlisation paramtrable base sur des contraintes. Beaucoup plus facile prendre en main
qu' expliquer !
LibreCAD gre la modlisation 2D avec une approche traditionnelle, un peu comme si vous tiez sur une table dessin,
avec rapporteur, querre, papier millimtr, calques, etc.

FAO
HeeksCAD + plugin HeeksCNC. Ce plugin permet le calcul de passages d'outils en partant de modles 2D ou 3D. La
prise en main est plutt ergonomique et le novice s'y retrouve facilement aprs avoir regard un ou deux tutoriaux
vidos. Les oprations d'usinage de poche, de profil, de perage, d'bauche en zigzag, etc sont disponibles mais il reste
des bugs et il manque des oprations. Dommage que le dveloppement semble en pause parce que le plugin est fort
intressant et il n'y a pas beaucoup de concurrent dans le monde libre sur ce crneau. Voir galement PyCam.

Interprteurs G-Code et contrleurs de CNC


LinuxCNC, anciennement EMC2 est incontournable et presque seul dans ce domaine. L'outil possde plusieurs
interfaces graphiques bien pratiques. Il gre le port parallle de votre ordinateur mais peut aussi grer plusieurs types
de cartes ddies au contrle de cnc. Il accepte le G-Code le plus couramment utilis. Il est livr par dfaut sur une
distribution Ubuntu 10.04 LTS spcialement optimise pour LinuxCNC.
Il existe de nombreux autres logiciels libres de CAO et des scripts et petits outils de FAO trs pratiques (voir
notamment le plugin de gnration de G-Code pour Inkscape, F-Engrave, etc). Et dans la catgorie interprteur
G-Code/contrleur de CNCs, l'arrive de solutions embarques (Grbl sur Arduino et son portage SmoothieWare sur
mbed, Smoothieboard et autres) sont tester rapidement ! Elles permettront terme de ne plus utiliser le port
parallle et d'obtenir de meilleures performances.

Port parallle et CNC


Comme je l'indiquais plus haut, un ordinateur seul n'est pas vraiment conu pour rpondre aux
contraintes de commande numrique. Lors du paramtrage de LinuxCNC, un programme
permet d'effectuer un test de latence un peu empirique mais fonctionnel, dont le rsultat
permettra de rgler le dbit du port parallle de votre ordinateur. Pour optimiser la rponse de
l'ordinateur et grer au mieux l'envoi des donnes sur le port parallle, LinuxCNC utilise le
noyau linux temps rel RTAI dont le dveloppement semble ne pas voluer rapidement. De ce
fait, il est difficile de l'adapter un environnement logiciel et du matriel rcents. Il est
d'ailleurs recommand d'installer le CD de LinuxCNC 2.5.1 (Ubuntu 10.04 LTS compile avec
RTAI) sur un ordinateur simple cur et dont la configuration mmoire ne dpasse pas 1Go.
Ces recommandations vont devenir rapidement problmatiques pour les utilisateurs, mme si
le logiciel n'est effectivement pas gourmand en puissance, il deviendra de plus en plus difficile
de trouver ce type de matriel d'occasion. Le dveloppement est cependant toujours trs actif
et tente justement de se sparer de noyau temps rel RTAI.

Et maintenant ?
Cet article aborde les bases du fonctionnement d'une CNC 3 axes pour hobbyiste ; il reste ensuite apprendre les
techniques d'usinage ainsi que la conception et la fabrication assists par ordinateur. Ne pas oublier que c'est un
mtier avant tout, ce qui n'empche pas, avec du srieux et des prcautions, d'attaquer le sujet sous divers angles. Sur
internet on trouve assez facilement des informations et de l'aide :
Plusieurs communauts existent, comme par exemple usinages.com ou pour les anglophones : cnczone.com.
Les sites des fabricants d'outils et des logiciels de CAO/FAO (principalement dans la communaut du libre) ont souvent
des ressources trs bien faites et compltes. Consultez la documentation de LinuxCNC, qui va bien au del de
l'utilisation du logiciel et donne de nombreuses rfrences, explications et exemples.
Enfin, le dtournement d'un tel outil est bien sr possible, jetez un oeil sur hackaday.com par exemple !
Ragissez sur cet article.

Page 73/76 - 2013 FaitMain Magazine - CC-By-NC-SA

A propos - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

A propos
Le projet
Fait Main est un magazine en ligne conu par des bnvoles passionns par la bidouille en gnral.
Plus d'infos dans l'dito du premier numro.
Fait Main n'a pas de structure officielle, bien qu'il soit question de monter une association but non lucratif.
Les articles sont protgs par la licence CC-By-NC-SA 3.0 et le site web est en licence Apache v2.0
Le projet est fond et maintenu par Tarek Ziad mais Fait Main est un projet open-source et a pour vocation de
construire une communaut de contributeurs, que ce soit pour l'criture d'articles, les relectures ou la conception et la
mise jour du site (code ou design)- ou tout simplement pour proposer un sujet ou un auteur.
Si vous avez envie de participer il suffit de vous inscrire sur la mailing list et de vous prsenter - ou bien de forker un
de nos repositories sur Github.
N'oubliez pas de lire le guide l'usage des auteurs
Vous pouvez aussi contacter Tarek : tarek@faitmain.org

Le site web
Le site web est un site statique gnr avec le moteur kompost, un script Python cr pour l'occasion, et des
templates Mako.
Le contenu est au format reStructuredText. Ce format permet de gnrer les pages html mais aussi le PDF (spartiate),
et dans le futur un ePub, voir un magazine papier au format un peu plus lch.
Le site utilise Bootstrap pour un rendu correct sur tous les priphriques. Les icnes sont de chez Glyphicons.
Le design est un deriv du thme Amelia du projet Bootswatch de Thomas Park. Les polices de caractres viennent de
Google Fonts
Chaque lien sortant est transform en short link avec https://github.com/faitmain/short.faitmain.org. Cette redirection
permet de corriger d'ventuels liens casss de manire centralise.

Avis
Fait Main ajoute tous les liens vers Amazon.fr un tag de rfrencement, qui rapporte au magazine un petit
pourcentage des ventes ralises si vous achetez sur cette boutique quelque chose. A terme, l'ide serait de
voir si ce rfrencement permet de couvrir les frais d'hbergement du site.
Conscients que c'est une option opt-out - nous envisageons aussi un modle de dons, et les liens sont pour
l'instant exprimentaux.

Le moteur de recherche est un web service crit avec Cornice, bas sur Xapian, appel en Javascript depuis l'cran de
recherche. La base Xapian est mise jour chaque modification de contenu.

Le PDF
Le PDF est gnr grce rst2pdf, qui lui mme utilise ReportLab.
La mise en page est spartiate mais suffisante pour une lecture sur cran.

Informations lgales
Magazine publi en France. Numro ISSN: 2261-8376.
Contact & adresse:
Tarek Ziad - tarek@faitmain.org 6 rue de l'Eglise 21540 Turcey France
diteur - Tarek Ziad

Page 74/76 - 2013 FaitMain Magazine - CC-By-NC-SA

A propos - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013


Directeur de la publication - Tarek Ziad
Donne personnelles stockes: chaque accs au site est stock dans un fichier de log des fins de statistiques - mais
les adresses IP ne sont pas collectes et le serveur ne contact aucun service tiers.

Page 75/76 - 2013 FaitMain Magazine - CC-By-NC-SA

A propos - FaitMain Magazine - Volume 1 - Fvrier/Avril 2013

Page 76/76 - 2013 FaitMain Magazine - CC-By-NC-SA

You might also like