vendredi 18 avril 2014

Le V3 est fonctionnel

Et voilà, les câbles ont été raccourcis et bien cachés, un support en plastique pour la makey-makey a été ajouté... Premiers tests concluants.





Prochaine étape : les ateliers avec les enfants du CLSH durant les vacances de pâques

mardi 15 avril 2014

Lentement mais sûrement



Bon alors, des fois tout ne se passe pas comme prévu... la planche en bois que j'avais collée (à la super glue) sur le cadre en fer du magnétoscope n'a pas tenu malgré les serres-joints... Du coup ponçage et nettoyage et essai avec de la colle néoprène... et cette fois-ci miracle ! Ça tient super bien :)


Pareil pour les verres que j'avais siliconés, j'ai opté pour une autre technique : les vis ont été collées de l'intérieur à la super-glue et après tests, ne fuient pas.


J'en ai profité aussi pour fixer des écrous à l'intérieur du magnétoscope. Ils permettront de fixer les verres à l'intérieur lors de nos divers transports.... ça évitera surement la casse. Deux clips blancs en plastique ont été aussi collés, ils serviront au maintien de la makey-makey


Prochaine étape : raccourcir les câbles, les fixer correctement (et dans le bon ordre)....

lundi 14 avril 2014

Biglophone V3 in progress

Après avoir programmé scratch, ne reste plus qu'à préparer l'habitacle. Finalement au lieu d'une UC, j'ai opté pour un vieux magnétoscope que j'ai déshabillé.



Une fois la plaque du magnéto découpée ne reste plus qu'à la remplacer par une planche en bois où sont percés et collés les vis papillons (à la super glue)


Premiers tests OK, va falloir maintenant planquer correctement tout ça :)

mardi 8 avril 2014

Configuration de Scratch pour la makey makey

Le programme scratch qui nous servira pour déclencher les sons du biglophone v2 et v3


Code disponible en ligne sur scratch : Eveil musical...

lundi 7 avril 2014

Biglophone version V2 et V3 : acte 1

Yann, un des trois mousquetaires de l'équipe fabrique numérique du Csjc Ajaccio, a inventé le biglophone : jeu d'éveil musical à base d'arduino et de makey makey. Chaque immersion dans un des verres d'eau déclenche un son, une note, un instrument....



Notre participation avec Gégé au Festival D à Nantes fin mai nous pose un léger problème : le transport du biglophone de Yann par avion....



Du coup nous avons décidé d'en créer deux autres versions plus facilement transportable :

  • La V2 qui sera montée sur un vieux laptop. Pour la partie logicielle, elle fonctionnera à l'aide d'une makeymakey raspberry pi et scratch
  • La V3 qui sera montée sur un vieux magnétoscope. Pour la partie logicielle, elle fonctionnera à l'aide d'une makeymakey et scratch 

Première étape : démontage de laptop. Sous la partie clavier seront insérés la makeymakey et le raspberry



 Mise en place de deux vis histoire que la carte ne bouge pas





Deuxième étape : Préparation des verres pour la v2 et la V3 : On chauffe une aiguille, on perce les verres en plastoque (plus deux verres imprimés avec la makerbot)


Troisième étape : Une fois les verres percés on y insère des vis et on silicone



Quatrième étape : Des écrous sont collés à la super glue sur l'ancienne partie de l'écran et la partie clavier est remontée



Dernière étape (pour l'instant) après avoir laissé sécher les verres et vérifié qu'ils sont bien étanches, ne reste plus qu'à les visser sur les écrous



Fin de la première partie... prochaine étape la soudure :)

dimanche 6 avril 2014

Feu tricolore et passage pièton

TP semaine 4 Mooc Fabrication numérique

Consignes :
    • TP À FAIRE POUR LA SEMAINE 4

    Sur le forum, Reidid a souhaité compliquer un peu le TP Feu Tricolore en lui ajoutant un passage piéton. Nous avons trouvé cette idée chouette d'autant que nous avons appris aujourd'hui à lire l'état d'un bouton.
    Le TP à faire pour la semaine prochaine consiste à réaliser un feu tricolore accompagné d'un feu "piéton" bicolore (rouge et vert). Le montage devra également avoir un bouton pour piétons qui viendra passer le feu au orange puis au rouge tout en passant le feu piéton au vert (un peu comme dans la vraie vie finalement :)

      Consignes du TP

    Fonctionnement normal
    • Feu tricolore : même consigne que la semaine dernière
      • Une LED orange allumée pendant 1 seconde
      • Une LED rouge allumée pendant 3 secondes
      • Une LED verte allumée pendant 3 secondes
    • Feu bicolore (piéton)
      • Le feu piéton est constamment rouge tant que le bouton n'est pas appuyé
    Si le bouton est appuyé
    • Le feu tricolore passe au orange allumé pendant 1 seconde puis rouge pendant 5 secondes durant lesquelles le feu vert piéton passe au vert
    • Après ces 5 secondes, le feu piéton repasse au rouge et le fonctionnement normal reprend
    Comme on est sympas, on vous donne le montage à réaliser :

/*
  TP bouton pressoir / feux tricolores piétons - semaine 3 mooc fabrication numérique

Feu tricolore  (merci gégé pour la correction)

Une LED rouge allumée pendant 3 secondes => ftr
Une LED jaune allumée pendant 1 seconde => ftj
Une LED verte allumée pendant 3 secondes => ftv

Feu bicolore (piéton)
Le feu piéton est constamment rouge tant que le bouton n'est pas appuyé
Si le bouton est appuyé Le feu tricolore passe au orange allumé pendant 1 seconde puis rouge pendant 5 secondes durant lesquelles le feu vert piéton passe au vert
Après ces 5 secondes, le feu piéton repasse au rouge et le fonctionnement normal reprend

Feu pieton rouge => fpr
Feu pieton vert => fpv
 */

// const signifie constant => non modifiable
// Déclare une constante (const) de type entier (int) appelée buttonPin
// set pin numbers:
const int buttonPin = 2;     // buttonPin a pour valeur 2
const int ftr =  12;      // feu tricolore rouge a pour valeur 12
const int ftj = 11;       // feu tricolore jaune a pour valeur 11
const int ftv = 10;       // feu tricolore vert a pour valeur 10
const int fpr = 9;        // feu piéton rouge a pour valeur 9
const int fpv = 8;        // feu piéton vert a pour valeur 8

// variable qui change (puisqu'il n'y a pas la const marqué derrière)
int buttonState = 0;         // la valeur de buttonState pour changer pendant l'exécution du programme

// le bloc setup contient les instructions qui doivent être executées au début
void setup() {
  // pinMode permet de spécifier si une broche est une entrée ou une sortie
  pinMode(ftr, OUTPUT);
  pinMode(ftj, OUTPUT);
  pinMode(ftv, OUTPUT);
  pinMode(fpr, OUTPUT);
  pinMode(fpv, OUTPUT);  
  // les leds sont en sortie puisque du courant va sortir pour l'alimenter
  pinMode(buttonPin, INPUT);  
// le buttonPin est une entrée puisqu'il va recevoir du courant  
}

void loop(){
  // digitalReand est une fonction qui va aller lire la valeur d'une broche (ici buttonPin=2)
  
  if (buttonState == LOW) {buttonState=digitalRead(buttonPin);}
  // le code vérifie que le bouton n'est pas déjà été appuyé et dans ce cas il vérifie l'état du bouton
  
     // feu pieton vert éteind :
   digitalWrite(fpv, LOW);
     // feu pieton rouge tout le temps allumé
   digitalWrite(fpr, HIGH);
    if (buttonState == LOW) {buttonState=digitalRead(buttonPin);}
    
   // feu tricolore vert allumé pendant 3 secondes puis s'éteind
   digitalWrite(ftv, HIGH);
   delay(3000);
   digitalWrite(ftv, LOW);
    if (buttonState == LOW) {buttonState=digitalRead(buttonPin);}
    
   // feu tricolore jaune allumé pendant 1 seconde puis s'éteind
   digitalWrite(ftj, HIGH);
   delay(1000);
   digitalWrite(ftj, LOW);
    if (buttonState == LOW) {buttonState=digitalRead(buttonPin);}
    
   // feu tricolore rouge allumé pendant 3 secondes)
  // feu tricolore rouge pendant 5 secondes 
    digitalWrite(ftr, HIGH);
    digitalWrite(fpv, HIGH);
    // feu pieton rouge s'éteind   
   digitalWrite(fpr, LOW);
    delay(3000);
    digitalWrite(ftr, LOW);
    digitalWrite(fpv,LOW);
    digitalWrite(fpr, HIGH);
    if (buttonState == LOW) {buttonState=digitalRead(buttonPin);}
    
  // Si le bouton est pressé (cad si on reçoit du courant sur la broche 2)
  if (buttonState == HIGH) { 
   buttonState=LOW; // le code teste si le bouton est appuyé ou pas. Permet de forcer le fait que le bouton a été relaché
 
        // feu tricolore jaune pendant 1 seconde
    digitalWrite(ftj, HIGH);
    delay(1000);
    digitalWrite(ftj, LOW); 
  
   // feu tricolore rouge pendant 5 secondes 
    digitalWrite(ftr, HIGH);
    digitalWrite(fpv, HIGH);
    // feu pieton rouge s'éteind   
   digitalWrite(fpr, LOW);
    delay(5000);
    digitalWrite(ftr, LOW);
    digitalWrite(fpv,LOW);
   
 // feu tricolore vert s'eteind  
   digitalWrite(ftv, LOW);
   
  } 

 
}

vendredi 4 avril 2014

Bouton pressoir et Arduino

Exercice Semaine 3 Mooc Fabrication numérique :

exemple Button dans 0.2 Digital


 /*
  Bouton pression - semaine 3 mooc fabrication numérique

 Allume ou éteind une led connected to digital
 pin 13, quand tu presses le bouton lié au pin pin 2.


 The circuit:
 * LED attached from pin 13 to ground
 * pushbutton attached to pin 2 from +5V
 * 10K resistor attached to pin 2 from ground

 * Note: on most Arduinos there is already an LED on the board
 attached to pin 13.


créé initialement en  2005
 by DojoDave <http://www.0j0.org>
 modified 30 Aug 2011
 by Tom Igoe
modifié en 2014 par moi :))

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/Button
 */

// const signifie constant => non modifiable
// Déclare une constante (const) de type entier (int) appelée buttonPin
// Déclare une constante (const) de type entier (int) appelée ledPin
// set pin numbers:
const int buttonPin = 2;     // buttonPin a pour valeur 2
const int ledPin =  13;      // ledPin a pour valeur 13

// variable qui change (puisqu'il n'y a pas la const marqué derrière)
int buttonState = 0;         // la valeur de buttonState pour changer pendant l'exécution du programme

// le bloc setup contient les instructions qui doivent être executées au début
void setup() {
  // pinMode permet de spécifier si une broche est une entrée ou une sortie
  pinMode(ledPin, OUTPUT);    
  // la ledPin est une sortie puisque du courant va sortir pour l'alimenter
  pinMode(buttonPin, INPUT);
// le buttonPin est une entrée puisqu'il va recevoir du courant
}

void loop(){
  // digitalReand est une fonction qui va aller lire la valeur d'une broche (ici buttonPin=2)
  buttonState = digitalRead(buttonPin);

  // Si le bouton est pressé (cad si on reçoit du courant sur la broche 2)
  // j'allume la led
  if (buttonState == HIGH) {  
   
    digitalWrite(ledPin, HIGH);
  }
  // si le bouton n'est pas pressé sur la broche 2(LOW)
  // j'éteinds la led
  else {

    digitalWrite(ledPin, LOW);
  }
}