CAISSE A SAVON

Samedi 9 juin 2018, la Vilaine Bidouille met de côté les outils numériques pour fabriquer une caisse à savon avec des restes d’ateliers.

atelier extérieur
Atelier extérieur
Prémontage
Prémontage

Securisation du périmètre
Securisation du périmètre
Premiers essais
Premiers essais

Retour sur le bizarbre

Bizarbre

arbreNous avions présenté rapidement notre Bizarbre dans un précédent article. 

Etant données les questions techniques qui nous ont été posées, voici le détail complet du tuto.

Matériel :

      un PC équipé de :

o    Processing

o    Arduino

      Une carte Arduino

      Une carte MPR121 de chez Adafruit

      Fils de cuivre rigides

      Des pommes

      Un câble USB

      De la connectique entre Arduino et MPR121

Logiciels et bibliothèques :

      Processing

      Arduino

Fichiers :

      Fichiers MP3 avec les histoires enregistrées

 

Etape 1 : Construire un arbre

Equipez vous d’une bibliothécaire munie d’une scie, de pots de peinture et de contre-plaqué épais. Laissez faire le temps. Et vous obtenez un belle arbre en bois.

Etape 2 : Suspendre les pommes

Il faudra une pomme par histoire et une supplémentaire pour faire la touche “stop”. Nous avons utilisé du petit fil de cuivre. La partie dénudée traverse la pomme pour assurer un bon contact avec le fruit. Nous avons utilisé des aiguilles à poisson pour percer les pommes.

Etape 3 : Préparer de la carte Arduino

La carte utilisée est une Duemillanove.

Au lancement de l’interface de programmation Arduino, il faut ajouter les bibliothèques suivante pour pouvoir communiquer avec les capteurs capacitifs MPR121

Etape 4 : Connecter l’Arduino à la MPR121

Câblage assez simple.

Connecter Vin à l’alimentation. Sur un Arduino, ça revient à alimenter en 5V.
Connecter GND à la masse commune à la puissance et aux données.

Connecter SCL à la fiche I2C clock SCL sur l’Arduino. Sur une UNO, c’est A5 ; sur une Mega, digital 21 ; sur Leonardo/Micro, digital 3.

Connecter SDA sur la fiche I2C data SDA sur l’Arduino. Sur une UNO, c’est A4 ; sur une Mega, digital 20 ; sur Leonardo/Micro, digital 2.

Etape 5 : Programmer la carte Arduino

Ouvrir l’interface Arduino (IDE) sur le PC et brancher la carte Arduino avec le câble USB.

Bien repérer le numéro de port de la carte. Pour ça, il y pleins de tutos sur internet. Inutile de surcharger celui-ci.

Télécharger la librairie master.zip pour que la carte Arduino puisse communiquer avec le capteur MPR121. Renommer le dossier décompressé en Adafruit_MPR121 et vérifier qu’il contient bien le fichier Adafruit_MPR121.cpp et Adafruit_MPR121.h.

Placer ce dossier Adafruit_MPR121 dans le dossier des librairies du logiciel Arduino arduinosketchfolder/libraries/. Si c’est votre première librairie, il faudra sans doute créer ce dossier. Arrêter et redémarrer l’IDE Arduino.

Si jamais vous avez un doute allez chercher l’info à la source chez Adafruit.

Tapez le programme suivant :

 

/*********************************************************
Arbre  histoire pour la mediathque d’Allaire (cote arduino)
Auteur : Cyrille Laulier
        www.lebiosphere.net
Date   : le 26/02/2016

Ce programme Arduino va de paire avec le programme Processing
arbreAHistoires
Grace  une carte MPR121 de chez Adafruit, la carte Arduino
detecte le contact de la main d’un enfant sur un fruit.
Elle envoie ensuite le numero du fruit au PC via le port serie
Sur le PC, Processing regarde le numero et lance la lecture
de l’histoire correspondante
**********************************************************/
#include <Wire.h>
#include « Adafruit_MPR121.h »
// declaration de l’objet « cap » qui est le capteur MPR121
Adafruit_MPR121 cap = Adafruit_MPR121();

// Garder la trace du dernier contact touche
// pour savoir quand un bouton est « relache »
uint16_t lasttouched = 0;
uint16_t currtouched = 0;

void setup() {
 Serial.begin(9600);
 // adresse par defaut 0x5A, si alimentation 3.3V alors 0x5B
 // si cablage SDA alors 0x5C et si SCL alors 0x5D
 if (!cap.begin(0x5A)) {
   Serial.println(« MPR121 introuvable, verifier le cablage »);
   while (1);
 }
 Serial.write(0);
}

void loop() {
 // recuperation des touches appuyees
 currtouched = cap.touched();
 // controle de tous les contacts et envoi sur port serie
 for (uint8_t i=0; i<12; i++) {
   // it if *is* touched and *wasnt* touched before, alert!
   if ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) {
     Serial.write(i);
   }
 }
 // pour tour suivant
 lasttouched = currtouched;
 delay(100);
}

 

 

Envoyez ce programme dans la carte Arduino.

Etape 6 : Connecter la MPR121 aux pommes

Câblage encore plus simple. On a dix pommes pour les histoires et une pomme “stop” qui interrompt toutes les lectures.

Pour la pomme “stop”, on plante un fil électrique rigide dans la pomme qu’on connecte à l’entrée 0 de la MPR121.

Pour les autres pommes, on fait pareil sur les entrée de 1 à 10. Dans notre cas, nous n’avions enregistré que 8 histoires. Alors nous n’avons câblé que 8 pommes en plus du “stop”.

Etape 7 : Préparer Processing

On oublie un peu l’électronique pour revenir sur le PC.

Installer et lancer Processing.

On importe la bibliothèque Minim pour pouvoir manipuler du son. Pour cela, dans l’interface Processing, il suffit d’aller dans le menu Sketch > Import Library… > Minim audio. C’est fait.

Etape 8 : Programmer Processing

Dans la fenêtre Processing, on va taper le programme. Le programme est le suivant :

import processing.serial.*;
import ddf.minim.*;

Minim minim;
AudioPlayer hist01,hist02,hist03,hist04,hist05,hist06,hist07,hist08,hist09,hist10;
Serial port;
int val;

void setup() {
 fullScreen();
 String arduinoPort= »COM3″;
 port=new Serial(this, arduinoPort, 9600);
 
 minim = new Minim(this);
 hist01 = minim.loadFile(« chewinggum.mp3 »);
 hist02 = minim.loadFile(« bouteille.mp3 »);
 hist03 = minim.loadFile(« chocolat.mp3 »);
 hist04 = minim.loadFile(« Saucisse.mp3 »);
 hist05 = minim.loadFile(« Minuscule.mp3 »);
 hist06 = minim.loadFile(« envers.mp3 »);
 hist07 = minim.loadFile(« envers.mp3 »);
 hist08 = minim.loadFile(« envers.mp3 »);
 hist09 = minim.loadFile(« histoire09.mp3 »);
 hist10 = minim.loadFile(« histoire10.mp3 »);
 //song.play();
}

void draw() {
 if (port.available() > 0) {
   val=port.read();
 }
 background(map(val,0,10,0,255));
 rect(40,(val+1)*50-10,360,20);
 if (val==1) {
   hist01.rewind();
   hist01.play();
 }
 if (val==2) {
   hist02.rewind();
   hist02.play();
 }
 if (val==3) {
   hist03.rewind();
   hist03.play();
 }
 if (val==4) {
   hist04.rewind();
   hist04.play();
 }
 if (val==5) {
   hist05.rewind();
   hist05.play();
 }
 if (val==6) {
   hist06.rewind();
   hist06.play();
 }
 if (val==7) {
   hist07.rewind();
   hist07.play();
 }
 if (val==8) {
   hist08.rewind();
   hist08.play();
 }
 if (val==9) {
   hist09.rewind();
   hist09.play();
 }
 if (val==10) {
   hist10.rewind();
   hist10.play();
 }
 if (val==0) {
   hist01.pause();
   hist02.pause();
   hist03.pause();
   hist04.pause();
   hist05.pause();
   hist06.pause();
   hist07.pause();
   hist08.pause();
   hist09.pause();
   hist10.pause();
 }
 val=99;
}

 

Enregistrer ce programme sous le nom de arbreHistoires_processing.pde.

On peut l’optimiser. Si j’avais eu 200 histoires avec 201 pommes, j’aurais utilisé la programmation orientée objet.

On voit que le programme appelle des fichiers joints. Vous pouvez enregistrer vos propres histoires ou les récupérer sur mon site Google. Il faut les coller dans le même dossier que le fichier du programme arbreHistoires_processing.pde.

Etape 9 : Connecter le PC

Le plus facile de tous les câblages. Il faut s’assurer que l’IDE d’Arduino ne tourne pas sur le PC. Il faut brancher la carte Arduino au PC via le câble USB. Et lancer le programme arbreHistoires_processing.pde en appuyant sur la flèche “Play” de Processing. Pensez à monter le son.

Etape 10 : Faire un lâcher d’enfants

Tout est dans le titre. Les enfants vont toucher une pomme. Au simple contact, le PC va commencer la lecture de l’histoire associée. Il suffit d’appuyer sur la pomme “STOP” pour faire silence.

Etape 11 : Penser à la suite

Comme chaque bidouille, elle laisse un sentiment d’imperfection une fois réalisée. Une frustration. En fait, c’est nul. Ce n’est pas comme ça qu’on aurait dû avoir une approche complètement différente. On voit les fils qui dépassent de partout, les enfants mangent les pommes, ça monopolise un PC et des enceintes, l’erreur de câblage est facile à faire, il n’y a pas d’image…

Aussi, je fais un appel à contribution. Qui est motivé pour :

      Trouver le moyen de connecter un haut-parleur directement à l’Arduino ?

      Forger des pommes en or (ou accessoirement en bronze) ?

      Trouver un moyen de cacher les câbles, voire les cartes électroniques, dans l’épaisseur du bois de l’arbre ?

      Rendre la carte Arduino capable de gérer les sons et les images sans PC ?

      Connecter l’Arduino à un vidéo projecteur ?

      Concevoir un shield pour brancher toutes les petites cartes électroniques à l’Arduino sans fils ?

      Raconter de nouvelles histoires d’arbres ?

Pour toute question, truc qui ne marche pas, bug, difficultés et autre, n’hésitez pas à vous retrousser les manches et à suer sang et eau pour obtenir un résultat satisfaisant. Ou bien passez nous voir à la Vilaine Bidouille.

Cyrille Laulier, www.lebiosphere.net

 

Course d’escargots du 10 mars

Course

Ca avance doucement.

Course
presque prêts pour le départ

En attendant le départ les programmes qui vont enregistrer les images et les passer en boucle sont prêts.

import picamera
import time

with picamera.PiCamera() as camera :
    camera.start_preview()
    frame= 1
    while (frame<100):
        camera.capture('/home/pi/animation/frame%d.jpg' %frame)
        frame += 1
        camera.stop_preview()
        time.sleep(4.0)
escarMotion.py
import pygame
from pygame.locals import *
import time

pygame.init()

fenetre = pygame.display.set_mode((1440,900),RESIZABLE)

continuer = 1
nb = 1

while continuer:
    try:
        fond=pygame.image.load("/home/pi/animation/frame{}.jpg".format(nb)).convert()
    except:
        nb=1
        fond=pygame.image.load("/home/pi/animation/frame{}.jpg".format(nb)).convert()
    finally:
        fenetre.blit(fond,(0,0))
        pygame.display.flip()
        time.sleep(0.1)
        nb=nb+1
affichage

Prenez une Raspberry Pi 3 avec une caméra. Lancez le premier script puis le second pendant que le premier tourne encore.

Il ne manque que des volontaires pour faire le parcours.

Retour sur le Yéti

yeti
yeti
yeti ouest france

Voici avec un peu de retard le support pdf de l’animation à la médiathèque de Redon sur la carte Raspberry Pi embarquée dans le yéti de la station des 5000 de Redon

171125_Yeti

Vous y trouverez l’essentiel pour utiliser les entrées/sorties, un peu de Python et quelques astuces pour démarrer automatiquement des scripts au boot de la carte.

Si quelqu’un peut expliquer simplement comment ajouter un Watchdog au yéti, je suis preneur.

Passez de bonnes vacances.

Appli homebrew avec App Inventor 2 du MIT

Programmation graphique

Pour les amateurs de Scratch, il existe un site qui vous permet de créer vos propres application sur Android avec le (presque) le même langage.

J’ai créé une petite App d’après un exercice de calcul de ma fille. Il s’agit de résoudre un maximum de divisions en moins d’une minute. Voilà à quoi ressemble l’interface …

multivitesse
capture ecran

… et à quoi ressemble mon programme.

Programmation graphique
Programmation graphique

Pas une ligne de code ! Voici le lien si vous voulez le détail : ai2.appinventor.mit.edu/?galleryId=4709185023115264

Prochaine étape, créer des app homebrew pour communiquer en Bluetooth avec Arduino ou Raspberry Pi. Pour ceux que ça branche, rendez-vous les lundi soir de 21h à 22h à la médiathèque de Redon.

Programme pour la saison 2017-2018

Les animations de la Vilaine Bidouille reprennent cette année. Comme l’an dernier, ça a lieu à la médiathèque de Redon le samedi matin de 10h à 12h. Voici un petit aperçu du programme :
18 novembre 2017 : Initiation au langage de programmation Scratch. Aucune ligne de code requise.

scratch

25 novembre 2017 (*) : Arduino pour les yétis. « Tempête de cerveau » pour créer une animation électronique.
yeti
9 décembre 2017 : Hackarthon. Créations libres de sculptures en carton et découverte des outils numériques dédiés à ça.
carton
13 janvier 2018 : Cartographie 3D avec Blender. Convertir des relevés de satellites de la NASA en fichier 3D.
nasa
27 janvier 2018 : Colonisation spatiale avec le jeu de programmation Colobot sur Linux.
colobot
10 février 2018 : Modélisation 3D avec FreeCAD. Pour créer les pièces qui seront imprimées sur la future  imprimante 3D de la médiathèque.
24 mars 2018 : Montage imprimante 3D. Première séance de montage d’un kit.
7 avril 2018 (*) : Montage imprimante 3D, suite (et fin ?).
imprimante
12 mai 2018 : Retour à Redoncraft. Construction de Redon sur Minecraft dans le cadre du Morbicraft.
minecraft
26 mai 2018 : Jet-pack et fusées au bicarbonate pour profiter du beau temps.
fusee
9 juin 2018 : Défi de caisses à savon motorisées ou non.
caisse
23 juin 2018 : Présentation des projets de l’été des makers.
(*) Animations dont le lieu reste à définir. C’est l’avantage d’être des bidouilleurs, ça laisse la place à l’improvisation.

Maker Faire Nantes (2017)

Robots

 

La Maker Faire de Nantes c’est dérouler du Vendredi 7 juillet au Dimanche 9 juillet. Nous étions présent le Dimanche et cette année contrairement à l’année dernière la Vilaine Bidouille n’était qu’en visite.

Globalement cette édition était moins impressionnante que la première année mais il y a avais comme même de nombreux truc sympa. Comme par exemple les caisse à savon présenter par l’association Lorem un FabLab de Paris.

 

Il avait aussi un autre atelier présentant des création en carton très impressionnante.

Vivement l’an prochain qu’on présente une bidouille bien avancée…

Animation Vibrobot exceptionnelle

L’animation VIBROBOT de ce matin (03/06/2017) à la médiathèque de Redon a été un franc succès. Yoann Guard, de la Ferme de Ecotais, a mis la barre très haut pour les futures animations de la Vilaine Bidouille.

Après nous avoir conté le parcours scolaire et professionnel du petit Scott (du magnétoscope cassé de son père à la robotique au JPL). Yoann a fait un lâcher d’enfants sur les caisses de moteurs, piles, câbles pour l’atelier de fabrication de Vibrobot.

 

 

 

On a pu admirer de beaux spécimens de robots dessinateurs, sprinters, frotteurs, tourneurs et autres sous-espèces encore non répertoriées par la communauté scientifique.

Félicitation à tous les petits bidouilleurs qui ont participé.