Actualités Projets

Agrégateur flux RSS

Envoyé par le 14 Oct 2015 dans Projets, Blog | 0 commentaire

Ce projet a été réalisé dans de cadre d’une validation du mooc « La fabrication numérique ».
Après avoir suivi la formation en ligne, j’ai conçu un projet d’agrégateur RSS avec Arduino.
Jeremy Sfez

Présentation du projet

Le dispositif récupère les informations sur le flux RSS de « Googles news ». Après avoir parsé le flux (bibliothèque « TextFinder »), il affiche le premier titre sur un l’écran LCD 2×16. Quand l’utilisateur appui sur le bouton, le titre suivant est affiché.

N’ayant pas à ma disposition de carte ethernet, le téléchargement du flux RSS est fait par script python. Le programme communique directement avec le dispositif sur le port série grâce la bibliothèque « serial ».

 

Présentation du dispositif

Photo du dispositif 1

Le dispositif attend le xml de google news

Photo du dispositif 2

Le dispositif affiche un des titres de l’actualité

 

Présentation de l’algorithme

Présentation de l'algorithme

Algorithme flux RSS

 

Matériel utilisé

  • 1 cartes Arduino Uno
  • 1 écran LCD 2×16
  • 1 breadboard
  • 1 bouton
  • 1 résistance de 560 Ohms
  • potentiomètre de 10 kOhms (pour régler le contraste de l’écran)
  • fils de connexions

 

Schéma du montage

Schéma flux RSS

Schéma du montage

 

Code Arduino
//Bibliothèques
#include <LiquidCrystal.h>
#include <TextFinder.h>

LiquidCrystal lcd(12, 11, 4, 5, 6, 7); //Variables pour ecran LCD
TextFinder finder(Serial); //Variables pour parser le XML
char actualite[5][320];
int nbrArticlesRecu;
int nbrArticlesMax=5;
int t[] = {0, 0, 0, 0, 0};
int tmp = 0;
int numArticle = 0;
int cursor = 0;
int nbrAppelAffichage = 0;
//Variables pour le bouton
const int buttonPin = 2;
int buttonState = 0;
int lastButtonState = 0;
void setup() {
  // delay(2000);
  Serial.begin(115200);
  nbrArticlesRecu=0; //Initialisation parseur
  nbrAppelAffichage=0;
  pinMode(buttonPin, INPUT); //Initialise bouton comme input
 
  //Initialise ecran LCD
  lcd.begin(16, 2); 
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Download news...");
  lcd.setCursor(0,1);
  lcd.print("Launch file .py");
  Serial.println("Debut du programme");
}
void loop(){
  if(nbrArticlesRecu<nbrArticlesMax){ // Récupération du flux RSS google news
    // Le XML est parcouru pour récupérer les titres des articles à une 
   if((t[nbrArticlesRecu]=finder.getString("<item><title>","</title>",actualite[nbrArticlesRecu],320))>0){
     nbrArticlesRecu=nbrArticlesRecu+1; 
   }
   delay(50);
  }
  else{
    afficherMessage2(actualite[numArticle], t[numArticle], nbrAppelAffichage);
    nbrAppelAffichage++;
    delay(4000);
    buttonState = digitalRead(buttonPin);
    if (buttonState != lastButtonState) {
      if (buttonState == HIGH) {
        numArticle=(numArticle+1)%nbrArticlesMax;
        nbrAppelAffichage=0;
        Serial.println(" bouton ");
      }
      delay(50);
    }
    lastButtonState = buttonState;
  }
}
void afficherMessage2(char* message, int taille, int numAppel){
  int nombreEcran = (taille-1)/32 + 1;
  // Serial.println(numAppel);
  int choixEcran = numAppel%nombreEcran;
  int pointeurMsg = choixEcran*32;
  for(int i=0;i<16;i++){
    lcd.setCursor(i,0);
    if(pointeurMsg+i<taille) lcd.print(message[pointeurMsg+i]);
    else lcd.print(" ");
    lcd.setCursor(i,1);
    if(pointeurMsg+16+i<taille) lcd.print(message[pointeurMsg+16+i]);
    else lcd.print(" ");
  }
}

 

Code Python
#!/usr/bin/python

import serial
import unicodedata
import urllib2

ser = serial.Serial(‘/dev/tty.usbmodem1411’, 115200);

# Recuperation du flux rss google news
data = urllib2.urlopen(« http://news.google.fr/?output=rss »).read();
# Overture d’un fichier tampon
f = open(‘Flux RSS.txt’, ‘r+’);

# Ecriture dans le fichier des donnes recu
f.write(data);

s1 = unicode(data,’utf-8′);
data = unicodedata.normalize(‘NFD’, s1).encode(‘ascii’, ‘ignore’);
data = data.replace(« ‘ », »‘ »);
ser.write(data);

Présentation du Fablab Ecodesign lab de Montreuil

Envoyé par le 7 Oct 2015 dans Blog | 1 commentaire

Usine MozinorL’écodesign fablab est un espace de 102m2 situé au dernier étage de l’usine verticale Mozinor. Ce lieu héberge un cinquantaine d’entreprises qui génèrent 3000 tonnes par an de déchets bois, plastiques et divers matériaux. Le fablab récupère ces matériaux et les machines obsolètes et les mets à disposition des adhérents.

L’écodesign fablab est un espace de travail ou les makers peuvent créer et échanger. Les adhérents  sont architectes, designers, ébénistes et des makers amateurs.

On peut y réaliser du mobilier ou luminaires, réparer des objets, concevoir des projets, des maquettes ou des prototypes et mener des projets en équipes. Les mots d’ordre sont apprendre créer et partager.

Les adhérents sont accompagnés depuis la conception jusqu’à la réalisation.

fablab3 fablab1

On y trouve les machines suivantes :

  • Imprimante 3D
  • Découpeuse à fil chaud
  • Fraiseuse numérique
  • Machine à coudre professionnelle
  • Poste C.A.O.

Et biens d’autres… (notamment pour travailler le bois).

Comme dans la plupart des fablab, ici le l’open source et le partage sont mis à l’honneur.

Merci a Philippe Schiesser, Président de l’Apedec (association de l’écodesign et de l’éco-conception), qui m’a ouvert les portes du fablab, et présenté l’espace de coworking.

IMG_1799  IMG_1779  Fablab

Réparation du dispositif d’entrée de coulisseaux de grand-voile pour Neraki

Envoyé par le 11 Août 2015 dans Projets, À la une | 1 commentaire

article rédigé par Paul Friedel

Depuis une dizaine d’année le dispositif d’insertion des coulisseaux de guindant de grand-
voile dans la gorge du mât de Neraki (Feeling 326) était défectueux. D’origine dans ce mât Francespar (repris par Sparcraft), le matériau polymère avait un peu durci mais surtout les efforts imposés lorsque l’on prenait un ris sans sortir les coulisseaux se traduisaient dans une direction non prévue par le fabricant. Ces efforts ont conduit à une rupture de la cage dans laquelle se meut le levier d’insertion.
Dans les premières années, j’ai fait des réparations à base de tissu de verre polymérisé. J’ai tenté de reconstruire les parties disparues de la cage mais sans succès. Les fabricants de gréement contactés m’ont assuré que ces pièces n’existaient plus chez les fabricants.

En 2012 lors d’un démâtage, le désarmement de la voile a conduit à une rupture de la partie mobile au niveau de l’axe de rotation. Dès lors la pièce devenait  radicalement  inutilisable,  aucune  colle  ne  permettant  de  tenir  les  efforts  imposés par cette rotation sous la pression de la mousse qui repousse la partie mobile en position alignée  à  la  gorge  de  mât  après  introduction  des  coulisseaux.  J’ai  donc  dû  me  passer  de cette  pièce pendant  deux  ans  et  gérer  le  maintien  des  coulisseaux  dans  le  mât  avec  un Sandow.

fig1

Figure 1 : Cage d’origine dans son état actuel

fig2

Figure 2 : Partie mobile d’origine dans son état actuel, axe recollé.

En 2011 Télécom Bretagne s’est procurée une imprimante 3D d’entrée de gamme pour le fablab. Intéressé à tester les nouveaux moyens de production, j’ai donc pensé utile de tracer les plans des deux pièces du dispositif avant de les envoyer au Téléfab pour un test de fabrication.

Ceci m’a permis de découvrir les impressionnantes possibilités de l’outil gratuit Sketchup de Google pour les tracés 3D de pièces relativement précises et complexes. En revanche les essais  effectués  sur  l’imprimante  par  Sylvie  Kerouedan  ont  montré  les  limites  de  nos capacités. L’imprimante de l’école ne permettait pas de faire de parties en porte-à-faux. Par ailleurs le matériau d’impression n’avait très probablement ni la résistance mécanique ni la précision  d’impression  nécessaires  pour  une  pièce  de  gréement  (non  soumis  en  temps
normal à des efforts importants néanmoins).

fig3

Figure  3 :  Plan  3D  sous  Sketchup  de  la  pièce  :  cage,  mobile  et  assemblage  des  deux.  Plan
établi sur un relèvement de mesures de la pièce dégradée et une extrapolation pour la partie
manquante.

Ce  n’est qu’en  découvrant  le robot  humanoïde  imprimé  en  Chine  sous commande  de  Mai Nguyen  que  j’ai  pris  conscience  des  possibilités  réelles  d’une  impression  3D  de  qualité professionnelle.  Ayant  rencontré  David  Pliquet  à  la  Cantine  et  surtout  aux  Fabriques  du Ponant, il m’a semblé intéressant de chercher une solution en passant par un professionnel de l’impression 3D, la société E-Mage-In 3D créée par David Pliquet.
Pour un coût très raisonnable pour un prototype (à voir en production de série) la société E-Mage-In 3D a produit un premier exemplaire à base d’un polyméthyl métacrylate, Verowhite dont les caractéristiques sont données dans la fiche technique.

fig4

Figure 4 : premier prototype produit par E-Mage-In 3D sur plans personnels

Au  premier  essai  de  montage, force  a  été  de  constater que  les  cotes  étaient  trop  serrées d’un demi millimètre en particulier pour la « pince » de la cage dans sa partie haute (à droite sur  la  figure  ci-dessus).  J’ai  usiné  la  pièce  pour  faire  disparaître  le  plateau  supérieur  en espérant qu’elle rentrerait dans le logement. Las, tout le plateau supérieur était dessiné un peu  trop  bas  par  rapport  à  la  partie  interne  et  en  forçant  pour  insérer  la  pièce  dans  le logement prévu du mât, la paroi latérale a cassé comme du verre. Le mobile en revanche semble   suffisamment   compact   pour   tenir   les   efforts   qui   lui   sont   imposés   pendant
l’introduction.
Très gentiment, David Pliquet a proposé de refaire une impression de cage avec un matériau plus  résistant.  J’ai  repris  le  dessin  en rehaussant  le  plateau  de  0,3mm  et  en renforçant  la pente pour tenir compte de la rotondité du mât. J’ai aussi amélioré le dessin qui laissait voir des  « vides »  par  endroit  (qui  ne  semblent  pas  gêner  pour  l’impression !).  Davis  Pliquet  a refait une impression avec un matériau « plus chargé ». Le résultat est très intéressant : le matériau bien que plus rugueux en surface a une certaine élasticité que ne démontre pas le PMMA de départ. Moyennant quelques ajustements nécessaires : le double triangle arrondi (visible sur la Figure 4 en bas à gauche) est trop long de 0,7mm ; la partie haute du plateau (à  droite)  et  le  plan  incliné  du  haut  doivent  encore  avoir  0,1mm  ou  0,2mm  d’écartement supplémentaire et surtout arrondi pour la partie plan incliné ; enfin le jonc rajouté (non visible sur  les  photographies)  pour  caler  la  mousse  encollée  sur  le  fond  de  la  cage  est  trop proéminente du fait que j’ai dessiné le renfort inférieur de la partie mobile en plein plutôt que deux  jonc  partant  de  l’axe  et  longeant  les  bords  de  la  partie mobile.

J’ai pu faire tous ces petits ajustements avec mon outil Dremel sur  place  au  ponton.  Le  résultat  est  une  insertion  parfaite  de l’ensemble.  Il  faut  forcer  un  peu  pour  insérer  et  la  cage  et  le mobile au fond de la cage comme c’était le cas avant dans le système d’origine.

Reste   à   tester   le   fonctionnement   du   système,   la   facilité d’introduction  des  coulisseaux  que  je  n’ai  pas  encore  eu  le temps  de  tester  ainsi  que  l’usure  avec  le  temps  et  les intempéries.
Mais la conclusion à de stade est que l’impression 3D permet de  faire  des  pièces  mécaniques  résistantes  et  usinables.  Je suis à ce stade, extrêmement satisfait de cet essai.

fig5

à suivre…

Projet 63 : L’éolienne Savonius

Envoyé par le 25 Juin 2015 dans Projets, Formation | 0 commentaire

Résumé :

Pour pouvoir utiliser une éolienne sur le campus, il est d’abord indispensable de se procurer les droits administratifs nécessaires pour la pose d’un tel système et d’être vigilant aux contraintes qui nous sont imposées. Les matériaux de récupération nécessaires à la construction ont été collectés depuis de diverses sources : casse automobile, Emmaüs, LeBonCoin, port de commerce de Brest, “Guyot environnement”… La construction de l’éolienne est menée à terme et est capable de tourner à 2 tours/seconde et de délivrer une tension correcte. Cependant, il reste des voies d’amélioration, notamment en ce qui concerne la solidité du bâti et le système de réduction.

image.FUSQ0X

Éolienne Savonius

Liste des matériaux de récupération utilisés pour la construction :

– Roulement arrière de voiture

– Dispositif de rotation du tambour d’une machine à laver

– Un bidon bleu de 120L

– Deux pans de placard

– 4 tringles à rideaux

– Deux planches de bois

– Un moteur (fonctionnant en génératrice)

– Une poutre métallique

– Un set de vis

Moteur FabLab utilisé (appartien au club robotique)

Moteur FabLab utilisé (appartient au club robotique)

Pré-conception de l’éolienne :

Nous avons tout d’abord effectué une modélisation CAO de l’éolienne sous SolidWorks, qui a été le fil directeur de la conception de l’éolienne.

image.DTCD0X

Modélisation CAO de l’éolienne

Étapes de la construction :

Dans un premier temps, nous avons fixé les pales de l’éolienne (les deux demi-bidons de 1m20 de hauteur) entre deux plaques de bois que l’on a usinées de manière circulaire. Cette pièce représente le corps des pales, la partie tournante de l’éolienne.

Nicolas visse les pales

Nicolas visse les pales

Ensuite, nous avons fixé le réceptacle du roulement du haut de l’éolienne sur la planche des pales. Le roulement du haut, appartenant au bâti, repose sur cette pièce. Il faut par la suite fixer le roulement du haut à la planche du bâti de l’éolienne.

Nicolas visse les roulements

Nicolas visse les roulements

Il nous a fallu ensuite concevoir le système de roulement du bas. Pour cela, nous avons superposé deux planches de bois circulaires à l’aide de portions de poutres de bois, pour des raisons d’architecture : les pales ne doivent pas entrer en contact avec le boîtier du moteur ! Sur la planche supérieure, nous avons fixé le réceptacle du roulement du bas.

Plateau élévateur des pales

Plateau élévateur des pales

Nous avons découpé le panneau en bois de protection, très robuste, pour soutenir l’éolienne. C’est au travers de cette planche que l’on a fixé le système de roulement de machine à laver, comportant aussi le système poulie-courroie.

Système de roulement du bas

Système de roulement du bas

Nicolas scie les planches

Nicolas scie les planches

Système poulie-courroie de l'éolienne

Système poulie-courroie de l’éolienne

Enfin, nous assemblons le tout et fixons les tringles à rideaux pour soutenir l’éolienne et solidariser le bâti. L’éolienne est sur pied !

11421514_10206830169297951_1316199667_n

Jinhai et Nathan, victorieux face au fruit d’un dur labeur

Conclusion :

Après avoir effectué une étude préalable sur l’éolienne que nous allions construire, nous avons recherché les matériaux de récupération dont nous avions besoin pour l’édification de l’éolienne. Suite à cela, nous avons débuté la
construction l’éolienne en se basant sur sa version CAO. L’éolienne est fonctionnelle et est capable de délivrer une tension de 10V environ, pour une vitesse de rotation de 1 tour/seconde. Néanmoins, il reste des pistes d’améliorations qui pourraient être explorées dans le cadre d’un autre projet, notamment au niveau de la solidité du bâti, de la génératrice et du système de réduction. On peut aussi envisager la conception d’une application permettant de visualiser la vitesse de rotation de l’éolienne en temps réel, comme nous l’avions souhaité initialement, en espérant que notre travail suscitera le désir d’un autre groupe de projet de poursuivre et d’approfondir la conception totale de notre éolienne !

Projet 5 : Un système de surveillance à distance de la spiruline

Envoyé par le 25 Juin 2015 dans Projets, Formation | 2 commentaires

Résumé :

Afin de faciliter la supervision de la culture de la spiruline, nous avons développé un système de capteurs mesurant la température, la luminosité et l’humidité de la serre ainsi que la température, la turbidité et le pH de l’eau des bassins de culture. Il permet de récupérer et de stocker ces mesures et de les afficher sur un écran grâce à un site web.

Objectifs :

Pour simplifier la surveillance de la culture nous nous proposons de :

  • Faciliter le remplissage du journal de bord pour le spirulinier.

  • Automatiser le relevé des mesures.

  • Permettre la supervision à distance de la culture.

  • Avoir un budget inférieur à 250 €.

Développement technique :

SchemaTechniquePr5DevV2

Comme on peut le voir sur le schéma de la figure 1, notre système est décomposable en quatre sous parties :

Un regroupement de 5 capteurs lié à un premier Arduino afin de collecter les données environnementales ;

Une communication sans fil via une liaison radio pour permettre une certaine mobilité des capteurs ;

Une base de données qui stocke toutes les mesures réalisées par les capteurs depuis leur mise en service ;

Un site web permettant la consultation et l’édition du journal de bord du spirulinier ainsi que la visualisation graphique de l’évolution des mesures au cours du temps.

Matériel

2 Arduino UNO avec les câbles USB pour connecter avec l’ordinateur ;

Un sonde PH Smecatronix DF028 ;

Un sonde de température étanche DS18B20 ;

Un capteur lumière TSL2561 ;

Un capteur de température ( dans l’air ) et humidité RHT03(DHT22) ;

Un capteur de turbidité que nous avons fabriqué à l’aide d’une photorésistance, d’une résistance de 1,16KOhm et d’une LED;

Un transmetteur FS1000A ;

Un récepteur XY-FST ;

3 résistances : 2 de 4.7kOhm.

  • Un système de 5 capteurs :

Un capteur de température et d’humidité. Sa référence est RHT03 (DHT22). Il existe de nombreux tutoriels sur internet qui nous permettent de bien apprendre à l’utiliser. Il est cependant nécessaire d’installer la bibliothèque DHT.

Un capteur de température étanche dont la référence est DS18B20.

Une sonde pour mesurer le pH de référence Smecatronix DF028.

Un capteur de luminosité TSL2561. Nous avons réussi comme précédemment à trouver des montages et des codes pour les faire fonctionner. Si nécessaire, il faut aussi installer la bibliothèque pour le capteur.

Enfin, nous avons associé tous les capteurs. Nous avons également rassemblé les différents codes pour faire fonctionner notre système sur l’Arduino.

Notre principal défi a été de créer par nous même un capteur de turbidité. La difficulté réside dans le fait que ce capteur n’existe pas pour le moment. Mme Ménard nous a montré comment elle évaluait la turbidité avec un disque de Secchi. Cette mesure n’est pas très précise, elle est faite pour évaluer en gros la turbidité. C’est pourquoi pour ce capteur nous avons décidé d’utiliser une photorésistance plutôt qu’un capteur de luminosité plus précis. Face à cette photorésistance nous avons fixé une LED qui s’allume à intervalle régulier quand la photorésistance prend des valeurs. La structure ainsi créé est étanchéifiée grâce à du film plastique. On la place alors dans le bassin. Plus l’eau est trouble plus elle absorbe la lumière donc plus la valeur renvoyée par la photorésistance. On peut ainsi estimer la turbidité de l’eau.

  • Une transmission radio :

Notre cliente souhaite une communication sans fil entre les capteurs collectant les résultats des mesures et le lieu où ceux-ci sont stockés puis analysés. Pour ce faire, nous avons opté pour l’utilisation d’une liaison radio. Nous travaillons avec les modules radio FS1000A/XY-FST RF, émetteur et récepteur, utilisant la fréquence 433 MHz (cf figure 6). Ceux-ci sont peu chers et facile d’utilisation.

Nous avons utilisé la librairie VirtualWire, disponible en téléchargement libre sur internet, où les fonctions prennent en compte cette faille et introduisent de la redondance dans leur code. Par précaution, nous avons introduit dans notre propre code une méthode semblable à celle du bit de parité. En effet, lorsque le transmetteur envoie des données, il envoie également leur somme. Le récepteur, quant à lui, reçoit les données, en fait la somme et compare celle-ci à la somme reçue (celle qui a été envoyé par l’émetteur). Si les sommes sont différentes, c’est qu’il y a probablement eu une erreur dans la transmission donc le récepteur refuse les données. Elles ne seront pas enregistrées dans la base de données. Cependant, cette méthode ne nous permet pas d’identifier l’erreur ni de la corriger. Elle peut donc être améliorée.

  • Une base de données persistante :

Pour récupérer les données reçues par l’Arduino et les mettre dans une base de données, nous avons utilisé le langage de programmation Python. En effet, son utilisation est simple et les ressources sont nombreuses sur internet pour nous aider à implémenter un code nous permettant de récupérer les informations sur l’ordinateur, de les afficher et de les placer dans une base de données MySQL . Notre base de données est composées de tuples (lignes) et d’attributs (colonnes) permettant d’enregistrer et de retrouver aisément l’information recherchée par l’utilisateur c’est-à-dire le spirulinier. On utilise phpMyAdmin pour visualiser rapidement l’état de notre base de données (Figure 2). Il nous permet également de la modifier sans avoir à écrire de requêtes SQL comme décrite précédemment. Ceci simplifie le processus. En outre, il possède un outil d’importation et d’exportation des tables qui nous permettra par la suite d’accéder à notre base de données sur Internet lorsque nous mettrons notre site en ligne.

CaptureBDD

Figure 2: Capture d’écran de notre base de données

  • Un site web :

Pour créer notre site web, nous utilisons le langage PHP. Cependant, le PHP ne permet pas de gérer le contenu de la page web autrement dit sa mise en page. On leur associe alors généralement le langage CSS pour combler cette lacune (Figure 3).

Nous avons besoin d’un site web dynamique qui doit afficher de nouvelles données toutes les heures. Les principaux outils que nous utilisons sont donc :

le serveur web Apache ;

le programme PHP qui permet au serveur web d’exécuter des pages PHP ;

la navigateur qui affiche la page sous forme de fichier HTML.

CaptureSite

Figure 3 : Capture d’écran de l’affichage du journal de bord sur notre site web

Perspective d’amélioration :

  • Intégrer d’autres capteurs au dispositif existant (couleur, niveau d’eau…).

  • Ajouter un Système d’alerte.

  • Créer une nouvelle fonction d’actions directes sur le milieu (régulation à distances des paramètres).

 

Fichier zip des codes utilisés :

Code_Arduino+Python

Projet 11 – De bonnes vagues pour le surf

Envoyé par le 24 Juin 2015 dans Formation, Projets | 0 commentaire

Ce projet a été réalisé dans le cadre d’un projet développement S2 2015 par Jordan Alcaraz, Thomas Abraham, Abdelakrim Bahouss, Alice Calliger sous la supervision de Sylvie Kerouedan et Fabio Tony Braz.

 

Résumé :
Un surfeur en action !Ces dernières années, l’industrie du surf s’est associée à la technologie pour faciliter l’activité des surfeurs. C’est dans cette même logique que s’inscrit notre projet développement. Il consiste en la conception d’un objet permettant la visualisation de la hauteur et la fréquence des vagues selon les spots. L’objet est destiné aux surfeurs et doit ainsi leur facilité la recherche d’un spot optimal pour surfer.

 

Outils :

  • une carte Intel Galileo
  • un câble Ethernet
  • un câble USB
  • une imprimante 3D
  • un ruban à LEDs
  • une trentaine de LEDS RGB
  • un cadre
  • un miroir de la même taille que le cadre
  • un film teinté
  • un fer à souder, des fils, des planches de bois, des clous, une scie, de la colle

 

But :

Construire un objet qui permet de visualiser la hauteur et la fréquence des vagues selon le spot sélectionné par l’utilisateur en temps réel.

 

Contraintes du projet :

La principale contrainte a été d’utiliser une carte Intel Galileo.

carte Intel Galileo

 

Il fallait pouvoir brancher l’objet avec un câble Ethernet et répondre à des critères esthétiques et de fiabilité.

 

Principe technique :

principe technique objet projet 11

Notre objet utilise une carte Intel Galileo pour récupérer les données relatives aux spots. Celle-ci se connecte à internet par câble Ethernet, récupère les données affichées sur une page Web codée en PHP, stocke et traite les données, permettant ainsi d’allumer les LEDs en fonction de la hauteur et la fréquence des vagues récupérées. Le choix du  spot se fait à l’aide d’un bouton poussoir. L’actualisation des données se fait tous les 20 clignotements.

 

Objet réalisé :
photo (1)

Un cadre contenant un miroir et un film teinté, un ruban à LEDs sur le pourtour et des LEDS sur un support en forme de vague imprimé à l’imprimante 3D permet de créer l’illusion d’une profondeur. En effet, selon la hauteur de vagues récupérées, on modifie la couleur des LEDs. De 0 à 2 m, les LEDs s’allument en vert, de 2m à 4m les LEDs sont bleus et au-dessus de 4m elles sont rouges. De plus, la fréquence des LEDs correspond à la fréquence des vagues récupérées sur le site internet. L’utilisateur peut choisir un spot sur 3 spots définis par le constructeur en cliquant sur le bouton poussoire, l’affichage du spot choisi est réalisé à l’aide de LEDs. En effet, la LEDs placée au-dessus du spot s’allume s’il est sélectionné.

Structure en forme de vague sur le logiciel SketchUp

Structure en forme de vague sur le logiciel Cura

Nous avons du utiliser des LEDs discretes RGB car le ruban à LEDs utilisé n’était pas compatible avec la carte Intel Galileo. De plus, la visualisation des vagues se fait à l’aide d’une échelle de couleurs et non d’une échelle d’intensité car les variations de cette dernière étaient peu visibles.

 

Améliorations possibles :

Notre projet possède néanmoins des pistes d’amélioration :

  • laisser le choix à l’utilisateur entre une connexion  Ethernet et Wifi
  • permettre à l’utilisateur de visualiser les données d’un plus grand nombre de spots.

 

Maker-Faire Saint-Malo 2015 !

Envoyé par le 23 Juin 2015 dans Innovation & créativité | 0 commentaire

This entry is part 18 of 24 in the series évènement

 

L'accueil de la Maker Faire St-Malo

L’accueil de la Maker Faire St-Malo

Les 11 et 12 avril dernier, les Fabriques du Ponant et le Telefab ont été présentes lors de la Mini Maker -Faire Saint-Malo 2015. Cet événement a été l’occasion pour la communauté des Makers de se (re)rencontrer et de (re)voir les projets des uns et des autres… Si le Telefab et les Fabriques ont pu exposer leurs projets, cela a aussi été l’opportunité de découvrir de nouvelles idées, de nouvelles méthodes, et surtout, de nouveaux makers !

 

Le programme de cette Maker-Faire est désormais figé dans le marbre d’Internet et est toujours disponible ici !

 

Parmi les nombreux projets vus et qui ont attiré l’attention, on retrouve… (suite…)

Les Fabriques du Ponant à la Maker-Faire Saint-Malo

Envoyé par le 12 Avr 2015 dans Innovation & créativité | 0 commentaire

This entry is part 17 of 24 in the series évènement

En ce WE du 11-12 avril 2015, les Fabriques du Ponant, représentée par le Téléfab, les Petits Hackers et OpenPathView de la Maison du Libre, sont sur un évènement grand public à Saint-Malo, la Maker-Faire, un lieu d’exposition où plein de fablabs, makerspace, particuliers, entreprises viennent montrer des projets divers et  variés.

Sur les stands brestois avec

Horacio de Citizen Data,
Benjamin et Arnaud pour OpenPath View,
Les Petits Hackers de la Maison du Libre et les outils App makers de Mozilla,
Pierre-Henri & Tristan et les globes à persistance rétinienne, Melvin et Loic et le teaser du projet Ty-Bee,

l’ambiance est au beau fixe et la bidouille est présente.

Samedi matin, un défi est lancé aux Petits Hackers : une interface pour dessiner en direct sur la sphère. C’est Tristan G. qui se lance dans l’écriture d’une interface en python et dimanche en début d’après-midi après l’intégration par Pierre-Henri de l’interface avec le logiciel de la sphère : ça marche !

 

20150412_153032

Toutes les infos sur cette sphère à suivre bientôt sur le site du Téléfab.

 

 

Scanner 3D à taille humaine

Envoyé par le 25 Mar 2015 dans Projets, Formation | 9 commentaires

Nous avons un nouveau projet (de plus) au Téléfab : construire un scanner 3D à taille humaine pour obtenir des modèles 3D de personnes ou d’objets de taille similaire. Contrairement à la plupart des scanners 3D, nous voulons que le notre puisse capturer un modèle en moins de 5 secondes, de manière à pouvoir rester immobile facilement.

Nous voulons aussi diminuer les coûts au maximum : nous nous sommes fixés un maximum de 1000 € de matériel, même si nous risquons de dépasser cette somme pour le premier prototype.

Ressources existantes

Pour la structure du scanner, nous nous inspirons du scanner Pi3DScan fait de 100 caméras et de 100 raspberry pi, mais nous voulons fortement diminuer les coûts (indiqués à 8450€ pour ce projet).

Pour la reconstruction logicielle, nous pensons nous servir du logiciel VisualSFM qui est libre, semble très puissant, mais n’est pas facile à prendre en main.

Originalité du projet

Pour diminuer les coûts, nous pensons acheter des webcams pas chères (on en trouve 100 à 350€, frais de ports express compris, sur AliExpress). Nous n’allons pas utiliser un ordinateur par caméra comme Pi3DScan, l’idéal serait d’arriver à connecter toutes les webcams sur le même PC. Ceci causera évidemment des problèmes de débit pour communiquer avec les caméras, mais nous espérons prendre les photos les unes après les autres dans un délai suffisamment court.

Avancement

L’objectif actuel est de présenter et d’utiliser le scanner pour l’Open Bidouille Camp de Brest les 23 et 24 mai.

25 mars 2015

Nous avons récupéré un ordinateur avec une carte graphique Nvidia pour faire des tests avec VisualSFM. Nous avons aussi commandé chez Conrad (malgré des prix bien trop élevés) 50 webcams, 12 hubs USB 4 ports non alimentés, 4 hubs USB 10 ports alimentés, et 16 rallonges USB. Ceci devrait nous permettre de construire 12 poteaux verticaux de 4 caméras et de tout connecter au PC.

Construction

Voici un petit point d’avancement sur la construction du scanner 3D à taille humaine. Nous avons reçu tout le matériel nécessaire, ce qui nous a permis de faire 2 choses :

  • tester la capture de photos sur les 48 webcams depuis un seul PC : cette partie est encore en cours, j’en parlerai donc dans un futur article (spoiler : ça marche mais c’est un peu lent) ;
  • construire la structure qui supporte les webcams : c’est de cette partie que je vais parler ici.

Objectifs

Il nous faut une structure solide, et simple à monter et démonter pour pouvoir la déplacer selon les évènements. Le coût doit être le plus réduit possible puisque le scanner complet doit rester en dessous de 1000€.

Nous sommes partis sur une structure circulaire, en supposant que la personne à scanner est à peu près contenue dans un cylindre de 70cm de diamètre. Nous avons pris une distance de 70cm entre les webcams et la personne pour avoir suffisamment de recul. Les caméras sont donc montées sur un cylindre de de 210cm de diamètre. Il y a 12 poteaux disposés autour de ce cylindre, et 4 caméras sur chaque poteau. Les poteaux font 2m10 pour permettre aux caméras du haut de voir au-dessus de la tête de la personne scannée.

Voici à quoi ça ressemble :

Scanner 3D : structure

 

Réalisation mécanique

Le matériel que nous avons utilisé se trouve dans tous les magasins de bricolage :

  • 20 tubes IRL (pour passer des fils électriques) diamètre 20mm pour les poteaux et les liens horizontaux en haut ;
  • 30 clips pour IRL à visser pour les fixations ;
  • 2 panneaux OSB3 de 9mm d’épaisseur de 2440x1220mm pour découper l’anneau qui sert de support ;
  • 10 tasseaux de 2m de 20mmx30mm pour placer sour le socle et solidifier la fixation des poteaux ;
  • 8 grandes équerres pour fixer les poteaux au support.

L’anneau de support est découpé à la scie sauteuse en quatre quarts, ce qui permettra de déplacer le scanner plus simplement. Les  équerres sont fixées au support grâce à des vis qui se fixent dans des bouts de tasseaux sous le socle, car les panneaux OSB3 sont trop fragiles pour la fixation.

La fixation des poteaux se fait uniquement par des clips à visser. 3 clips sont vissés sur chaque équerre pour la fixation au support. Un clip est aussi vissé à l’extrémité de chaque bout de tube utilisé comme lien vertical. Ceci permet de monter ou démonter le scanner facilement, sans outils.

Nous avons ajouté deux bouts de tasseaux sous le support entre chaque poteau pour solidifier le panneau d’OSB. Sinon une personne montant sur la structure risquerait de la casser. Les bouts de tasseaux sont collés à la colle à bois sour le support.

Connexion des webcams

Les webcams sont simplement fixées grâce à la pince avec lesquelles elles ont été fournies. Elles sont orientées à la verticale car le sujet à capturer est plutôt vertical, et il y a 12 caméras pour capturer tout le tour du sujet, et seulement 4 pour la hauteur.

Les webcams sont des caméras USB bas de gamme capturant du 640×480 pixels. Ce genre de caméras se trouvent à 3€ en commandant en grande quantité directement en Chine.

Les 4 caméras d’un poteau sont connectées ensemble par un petit hub 4 ports non alimenté. Ensuite, les poteaux sont regroupés par 3 et connectées à un hub 10 ports avec une alimentation 4A. Cette alimentation est indispensable pour pouvoir faire fonctionner les 12 caméras. Tous les poteaux ne sont pas connectés sur le même hub pour ne pas surcharger l’alimentation. On se retrouve ainsi avec 4 ports USB, que l’on peut connecter directement au PC, ou chaîner sur l’un des hubs pour n’obtenir qu’une seule prise pour toutes les caméras. Des rallonges USB sont utilisées au niveau de chaque poteau car les fils des hubs sont trop courts.

À améliorer

Il existe différents points qui pourraient être améliorés :

  • il aurait été préférable d’utiliser un support plus épais, pour pouvoir visser directement les équerres dedans, et éviter d’utiliser des tasseaux en dessous ;
  • la fixation des webcams par leur pince n’est pas très fiable. Il sera peut-être préférable de refaire cette fixation.

Il y a aussi des choses qui restent à faire :

  • la luminosité doit être maîtrisée pour obtenir de bonnes images. J’ai des rubans à LEDs blancs à fixer sur les poteaux ;
  • la partie logicielle est commencée mais pas terminée, mais ça sera pour un prochain article.

Résultat actuel

Voici à quoi ressemble le scanner actuellement :

Scanner 3D : structure

 

Les explications sont disponibles ici :

Aidez nous

Si vous avez des idées pour améliorer ou simplifier le projet, ou si vous voulez vous impliquer, contactez nous ! C’est le moment.

Bildung

Envoyé par le 26 Jan 2015 dans Projets, À la une | 0 commentaire

Ce projet a été réalisé pendant la première semaine d’intersemestre 2015 au Téléfab par Louis Frehring, Fady George Remila, Alizée Gerard, Anas Ihrboula, Julie Kelberine et Jean-Baptiste Rebuffi.

 

Résumé

Bildung est un système permettant de produire de la musique à l’aide de la détection du mouvement et de la position des mains.

 

Matériel utilisé

  • un capteur à ultrasons (http://www.seeedstudio.com/wiki/Ultra_Sonic_range_measurement_module#Resources)
  • un breadboard
  • une carte Arduino
  • des fils
  • le Leap Motion (https://www.leapmotion.com/)
  • une boîte en bois pour contenir le tout

Le système est relié à un Mac sur lequel fonctionne le logiciel Max.

Le lien suivant renvoie vers les sept fichiers de son de base et vers les deux fichiers Max, correspondant à deux versions différentes de Bildung: la première étant orientée vers la modulation du son et la deuxième étant plus musicale (https://github.com/BildungBox/Fichiers-Max).

 

IMG_0201

Carte Arduino et capteur à ultrasons

 

IMG_0225

Bildung replié

 

IMG_0207

Bildung déployé

 

IMG_0208

Test de Bildung

 

Fonctionnement

 L’utilisateur utilise ses mains pour produire de la musique. Une première main permet de déclencher la musique ou de l’arrêter selon qu’elle se trouve ou non devant le capteur d’ultrasons. La deuxième main permet de moduler cette musique. Ainsi, en décalant cette main vers la gauche, on produit un son plus aigu tandis qu’il sera plus grave si on déplace sa main vers la droite. On peut de même contrôler le volume en levant sa main ou en la descendant. La pureté fréquentielle du son est gérée en avançant plus ou moins sa main (modification du facteur de qualité).

 

Capture d’écran du logiciel Max

10948132_830745906964729_1212502151_o

Interface de réglage des paramètres de Bildung

 

10948030_830745903631396_1948291745_o

 Interface destinée à l’utilisateur

 

Code Arduino du capteur ultrason

#include "Arduino.h"
class Ultrasonic
{
public:
    Ultrasonic(int pin);
    void DistanceMeasure(void);
    long microsecondsToCentimeters(void);
    long microsecondsToInches(void);
private:
    int _pin;//pin number of Arduino that is connected with SIG pin of Ultrasonic Ranger.
    long duration;// the Pulse time received;
};
Ultrasonic::Ultrasonic(int pin)
{
    _pin = pin;
}
/*Begin the detection and get the pulse back signal*/
void Ultrasonic:istanceMeasure(void)
{
    pinMode(_pin, OUTPUT);
    digitalWrite(_pin, LOW);
    delayMicroseconds(2);
    digitalWrite(_pin, HIGH);
    delayMicroseconds(5);
    digitalWrite(_pin,LOW);
    pinMode(_pin,INPUT);
    duration = pulseIn(_pin,HIGH);
}
/*The measured distance from the range 0 to 400 Centimeters*/
long Ultrasonic::microsecondsToCentimeters(void)
{
    return duration/29/2;
}
/*The measured distance from the range 0 to 157 Inches*/
long Ultrasonic::microsecondsToInches(void)
{
    return duration/74/2;
}
Ultrasonic ultrasonic(7);
void setup()
{
    Serial.begin(9600);
}
void loop()
{
    long RangeInInches;
    long RangeInCentimeters;
    ultrasonic.DistanceMeasure();// get the current signal time;
    RangeInInches = ultrasonic.microsecondsToInches();//convert the time to inches;
    RangeInCentimeters = ultrasonic.microsecondsToCentimeters();//convert the time to centimeters
//        Serial.println("The distance to obstacles in front is: ");
//        Serial.print(RangeInInches);//0~157 inches
//        Serial.println(" inch");
//        Serial.print(RangeInCentimeters);//0~400cm
//        Serial.println(" cm");

    if(RangeInCentimeters <= 15 && RangeInCentimeters>=0 ){

        Serial.println(1);
        Serial.println("\r") ;
    }
    else {
        Serial.println(0);
        Serial.println("\r") ;
    }

    delay(100);
}

Améliorations possibles

Les valeurs des positions des doigts ou de la paume de la main renvoyées par Max ne sont pas très fiables, elles varient tout le temps, ce qui est assez restreignant lorsque l’on essaie d’assigner par exemple à un intervalle une fréquence donnée.

On pourrait rajouter des paramètres pour prendre en considération la capacité du Leap Motion à détecter le mouvement des doigts. Hélas, on se heurte là aussi à des problèmes de précision et de sensibilité.

Outre les défauts de conception et les imprécisions musicales, nous pouvons tenter d’améliorer notre maîtrise de cet instrument de musique assez particulier. Il est par exemple assez difficile de gérer à la fois l’activation et la désactivation de la musique grâce à une main et la modulation du son par l’autre main.