Actualités Projets

Nouveaux horaires pour le Téléfab

Envoyé par le 15 Sep 2014 dans Projets | 0 commentaire

Le Téléfab a de nouveaux horaires cette année :

  • Tous les mardis de 18h00 à 20h30 : ouverture assurée par les étudiants : vous pouvez venir et utiliser les machines et le matériel en libre-service, mais vous ne pouvez pas emprunter de matériel.
  • Tous les jeudis de 12h à 14h00 : ouverture assurée par les enseignants : vous pouvez utiliser les machines et emprunter du matériel.

À tous les créneaux, des gens seront présents pour vous aider à utiliser les ressources du Téléfab, donc n’hésitez pas à venir !

Des ateliers seront aussi organisés sur le créneau du jeudi : imprimante 3D, Arduino… Consultez les ateliers prévus dans le calendrier.

Le premier créneau aura lieu demain soir.

Inauguration des Fabriques du Ponant

Envoyé par le 14 Sep 2014 dans Blog | 0 commentaire

Le 20 septembre, dès 14h, les Fabriques du Ponant ouvrent leurs portes.
C’est l’occasion de venir faire la fête du numérique : des ateliers de découverte, de co-construction d’objets connectés, d’aménagements du lieu vous seront proposés.

Les activités pour les 9-17 « Les Petits Hackers » de la Maison du Libre seront aussi présentées à cette occasion.

N’hésitez pas à venir.

Sonar DIY : Fonctionnement et architecture générale

Envoyé par le 1 Sep 2014 dans Projets | 4 commentaires

This entry is part 2 of 2 in the series Sonar DiY

Un sonar, c’est un dispositif qui se base sur la propagation d’une onde acoustique pour détecter et positionner des objets. Le radar est basé sur le même principe, mais utilise des ondes électromagnétiques. C’est un dispositif qui existe dans la nature : beaucoup d’animaux utilisent un sonar pour se repérer, comme par exemple la chauve-souris ou les dauphins. Dans les sonars artificiels, on distingue les sonars passifs (on écoute seulement les bruits ambiants), et les sonars actifs (on émet un son, puis on écoute le retour du son émis).

Le but n’est pas de faire un cours théorique sur le sonar, mais d’en expliquer grossièrement le fonctionnement et les caractéristiques dans notre cas. Je vais donc m’intéresser uniquement au sonar actif (sous-)marin. Le principe d’un sonar actif est simple : on émet une onde à un instant t connu, puis on mesure l’intensité du signal sonore reçu. Chaque matériau a ses propres caractéristiques de diffraction et de réflexion des ondes sonores, et les éléments présents dans le faisceau d’émission de l’onde sonore vont donc chacun renvoyer une portion plus ou moins grande de l’impulsion vers l’antenne du sonar (en gros, un micro). En mesurant cette puissance du signal reçu en fonction du temps, on peut savoir quels éléments sont présents à quelle distance. En traitant un peu le signal reçu, on peut aussi obtenir d’autres informations, comme par exemple la vitesse de l’élément qui renvoie (avec l’effet Doppler). Un dispositif sonar doit donc être capable d’émettre et de recevoir une onde sonore, et de traiter cette onde.

Un sonar est donc constitué de trois éléments principaux :

  • une antenne, qui peut être soit émettrice (comme un haut parleur), soit réceptrice (un micro), soit les deux ;
  • un dispositif électronique de réception et d’émission,
  • un dispositif de traitement des données et d’affichage.

Je passe sur la partie électronique et traitement de données, qui ne présentent que peu de particularités. C’est un élément standard de toute chaine de transmission, et le sonar ne déroge donc pas à cette règle. Ca ne rend pas ces parties faciles à réaliser cependant, comme on le verra lors de la réalisation ! Je vais détailler dans la suite les caractéristiques de l’antenne.

Lorsqu’on émet une impulsion sonore, on va insonifier (c’est à dire « éclairer » mais avec une onde sonore au lieu de lumière) une zone. La zone insonifiée dépend de facteurs géométriques (forme du faisceau sonore émis), du milieu (vitesse de propagation du son, atténuation) et de facteurs temporels (en particulier, la durée de l’impulsion). Commençons par les contraintes : le milieu. L’eau de mer est un milieu hétérogène, mais l’équation de MacKenzie permet d’obtenir une approximation suffisante pour nos besoins. Vous trouverez un calculateur ici : http://resource.npl.co.uk/acoustics/techguides/soundseawater/. Dans les eaux brestoises, au mois de septembre, on peut tabler sur une température de 18°C en surface, et de 14/15°C à 30m de fond. Si on fait une approximation à 16°C, avec une salinité de 35,  et une profondeur (très rarement atteinte !) de 50m, on obtient environ 1510m/s. La température est la variable qui influe le plus sur cette vitesse. Concernant l’atténuation de l’onde dans le milieu, on reste dans du classique : plus la fréquence de l’onde est faible, moins il y a d’atténuation. Par contre, d’après les règles de la diffraction, la pouvoir de résolution d’un sonar est de l’ordre de la longueur d’onde utilisée. Ainsi, plus on diminue la fréquence, plus la résolution diminue. Si on cherchait à trouver des poissons solitaires, ou si on travaillait dans la guerre numérique et la chasse aux mines sous-marines, il nous faudrait une résolution très faible, et on chercherait donc à avoir une fréquence élevée. Cependant, ce n’est pas du tout l’objectif. De plus, comme on le verra, la réalisation d’une antenne sonar est relativement complexe sans les moyens adéquats, et notre antenne sera donc forcément un peu limitée. On va donc chercher à minimiser l’atténuation plutot que de travailler sur la résolution. Ceci a également l’avantage de nous faire travailler sur des fréquences faibles (< 100kHz), plus faciles à manipuler en électronique. En l’occurrence, on choisira une fréquence de l’ordre de 25kHz pour des raisons pratiques que je détaillerai dans une partie suivante.

Maintenant qu’on a nos contraintes, voyons sur quoi on peut influer. On se place dans le cas idéal, dans lequel on peut réaliser n’importe quelle antenne. La forme géométrique du faisceau sonore est l’élément crucial lors de la conception de l’antenne. Il existe différentes configurations d’utilisation d’un sonar. Par exemple, un sondeur bathymétrique est en fait un sonar, qui envoie une onde sonore étroite directement vers le fond, et qui compte le temps nécessaire pour le retour, ce qui donne la profondeur. Il faut une onde étroite, afin d’éviter d’avoir trop de reliefs à l’intérieur de la zone insonifiée, mais cette contrainte n’est pas forte. Une faisceau en cône est tout à fait satisfaisant.

Il existe d’autres types de systèmes sonars. Par exemple, on peut positionner plusieurs antennes fixes sur des bouées dans une zone que l’on veut couvrir. Puis, on émet un (ou plusieurs) bruit(s) depuis un endroit connu, et on traite les données reçues sur chacune des antennes pour « cartographier » la zone. Dans ce cas, il n’y a que des antennes de réception, qui peuvent avoir un angle d’ouverture très large. Dans notre cas, un tel système est trop complexe à mettre en œuvre, mais il est pratique pour des systèmes de détection destinés à rester en place. Dans un système plus portable, le problème est de couvrir une large zone. On va donc utiliser un bateau qui déplacera l’antenne. En répétant des mesures le long du déplacement, on pourra également cartographier une zone sans avoir besoin de plusieurs antennes de réception. Dans ce cas, la zone insonifiée doit être la plus grande possible, mais également la plus fine possible. En effet, si le faisceau est trop large, on saura qu’il y a un objet à une distance connue, mais cet objet sera sur un arc de cercle, on ne pourra pas le positionner en deux dimensions. Par contre, il faut balayer une grande largeur autour du sonar. Un faisceau en cône ne convient donc pas, il va falloir une forme de pyramide très large sur le côté perpendiculaire au déplacement (altitude), et très étroit sur l’autre côté (azimut).

Afin de se débarrasser des problèmes liés aux mouvements du bateau et à la thermocline (changement brutal de température, qui réfléchit les ondes sonores), on va utiliser un sonar à balayage latéral (side scan sonar). Un tel sonar utilise un engin tracté (« towfish ») que j’appellerai poisson ou poisson tracté par la suite. L’antenne est installée sur le poisson, qui est tracté sous l’eau par le bateau. Le long du cable de tractage, on fait également passer les données reçues. Il est également possible de refaire ce travail sur un sonar embarqué sur le bateau.

Image issue de Wikipedia

Image issue de Wikipedia

Un schéma d’un sonar à balayage latéral est présenté dans l’image précédente, issue de Wikipedia. L’antenne est sur le poisson. Le faisceau idéal pour un transducteur de ce type est un faisceau rectangulaire. L’angle d’azimuth est très étroit (idéalement, 1° ou moins), et l’angle de l’altitude est large, idéalement 30° de chaque côté dans des eaux peu profondes. On trouve des antennes performantes à un prix abordable chez Garmin ou Humminbird, cependant les spécifications ne sont pas disponibles et ces antennes ne fonctionnent qu’avec l’électronique associée. On va donc construire notre propre antenne (ou transducteur).

Etant donnée la solution adoptée, il y a quatre grosses parties à concevoir et construire pour le sonar :

  • le transducteur (et son poisson)
  • la partie électronique de transmission, qui sera principalement analogique
  • la partie traitement du signal
  • l’affichage et le stockage des résultats du sonar

Les deux dernières parties seront numériques, il faudra donc aussi réaliser une interface analogique/numérique. Dans le prochain article, je commencerai à présenter la solution utilisée pour l’antenne.

Globe à persistance rétinienne

Envoyé par le 18 Août 2014 dans Projets, À la une | 3 commentaires

Le globe à persistance rétinienne consiste à donner l’impression d’un globe de LEDs sur lequel on peut afficher des images, en faisant simplement tourner à grande vitesse un demi-cercle sur lequel sont fixées des LEDs RGB. En allumant les LEDs exactement aux bons instants, on peut produire n’importe quelle image. Voici quelques exemples :

Globe : terre Globe : texte

Ce globe est le résultat du travail d’une succession de personnes au Téléfab. Un premier projet S2 (CHAIEB Hassen, EL AABOUDI Khalid, RAYNAL Damien et TELLAT Wael, étudiants en première année) a permis de construire la structure du globe ainsi que les premières version des logiciels de contrôle et d’obtenir le premier prototype fonctionnel. Un projet d’intersemestre (Boris Claverie et Rémy Bétus, étudiants en troisième année) a permis de travailler sur la conception du contact électrique entre les parties fixes et tournantes et sur la synchronisation de l’image par rapport à la vitesse du moteur. Enfin, divers intervenants du Téléfab (Benoit Larras, Pierre-Henri Horrein et Tristan Groléat) ont travaillé sur la fiabilisation générale du globe (structure, électronique, logiciel). Cet article mis à jour régulièrement présente le fonctionnement du globe dans son état actuel, ainsi que les leçons apprises des tentatives précédentes.

Voici le globe à l’arrêt :

Globe : à l'arrêt

Il est composé de plusieurs parties importantes :

  • la partie fixe qui permet la stabilité du système, avec un moteur à courant continu qui fait tourner le globe ;
  • la partie tournante avec les LEDs contrôlées par un Arduino Mega ;
  • l’interface entre la partie fixe et tournante, qui permet à la partie tournante de recevoir de l’énergie et des ordres, et de détecter sa vitesse de rotation ;
  • la carte électronique de contrôle, fixe, qui fournit une alimentation à différents niveaux de tension, contrôle le moteur, et facilite la communication entre les parties fixes et tournantes ;
  • le logiciel embarqué, qui contrôle le tout ;
  • les logiciels de support, qui permettent de travailler avec le globe.

Le code et les objets 3D utilisés pour la conception du globe sont disponibles sur Github.

La partie fixe

La partie fixe est composée d’une planche de contreplaqué sur laquelle sont fixés quatre mâts faits de profilés d’acier en cornière. Ces mâts sont rejoints en haut par des profilés plats en acier qui se rejoignent au centre. À cet endroit, un trou est percé. L’axe de la partie tournante est une tige filetée. En haut, une tige lisse graissée est vissée sur la tige fileté. C’est ce qui sert à maintenir la tige.

Le bas de la tige est fixé au moteur à courant continu fixé au centre de la planche de contreplaqué. Il s’agit d’un moteur récupéré qui provient apparemment d’un essuie-glace.

Cette structure remplace la précédente qui était faite en bois, avec un seul mât. Elle est beaucoup plus rigide que la précédente, ce qui permet de parer en partie au balancement dû à un mauvais équilibrage de la partie tournante.

La partie tournante

Globe : partie tournante

La structure de la partie tournante est un anneau en plastique. Cette anneau est traversé par une tige filetée servant d’axe. Des trous sont percés sur l’anneau pour laisser passer 39 LEDs RGB réparties uniformément en un demi-cercle. Chaque LED est connectée directement à l’Arduino MEGA accroché sur l’axe au centre de l’anneau. Pour faciliter les connexions, un shield a été créé pour l’Arduino avec une plaque de prototype.

Pour diminuer les connexions, les cathodes des LEDs sont reliées. Ainsi, toutes les cathodes « rouge » sont reliées à un pin de l’Arduino, de même pour les cathodes « vert » et « bleu ». L’anode de chaque LED est connectée à un pin différent de l’Arduino. De cette manière pour contrôler  39 LEDs, il faut 39 + 3 = 42 pins. Cela signifie qu’à un instant donné, toutes les LEDs allumées ont la même couleur. Pour afficher des images, il faut donc allumer très rapidement chaque LED l’une après l’autre.

Cette partie est celle qui a été la moins modifiée depuis le début. La seule nouveauté est le remplacement des serre-joints utilisés pour fixer l’Arduino par des pièces faites à l’imprimante 3D, disponibles sur Github dans le dossier Things (ficher OpenSCAD ou STL arduino_holder).

L’interface fixe/tournant

Globe : connexion tournante

 

Contact électrique

L’interface entre les parties fixes et tournantes est une partie cruciale du globe. Elle sert avant tout à alimenter en énergie la partie tournante. Pour cela, deux contacts doivent être faits : la masse, et un 9V qui permet d’alimenter l’Arduino Mega par le pin Vin. Un composant appelé collecteur tournant est disponible dans le commerce pour réaliser des contacts électriques tournants. Mais celui utilisé est fait maison à l’imprimante 3D. Les plans sont sur Github dans le dossier Things. (fichier OpenSCAD connection-base, les fichiers STL sont aussi disponibles).

Le principe est simple : deux larges rondelles sont utilisées comme contacts tournants. Elles sont fixées à la partie tournante par des pièce réalisées à l’imprimante 3D (une base, un séparateur pour éviter le contact entre les deux rondelles, et des petites cales pour tenir le tout fixé). Des fils électriques passent par l’intérieur de la base et sont soudés aux rondelles. Sur la partie fixe, deux petites vis poussées par des ressorts appuient sur les rondelles. Elles sont visibles à gauche sur la photo. Elles sont maintenues par une pièce faite à l’imprimante 3D, et sont chacune soudées à un fil électrique arrivant par derrière.

Ce mécanisme permet d’alimenter l’Arduino MEGA sans avoir de problèmes de fils qui s’emmêlent. Le défaut est que cela crée des frottements et du bruit. Mais le contact est fiable. Pour s’assurer que l’Arduino fonctionne sans problème en rotation, une grosse capacité a été placée sur la partie tournante en parallèle de l’alimentation de l’Arduino. Elle agit comme une mini batterie en cas de coupure de très courte durée.

Ce contact électrique a été une source majeure de difficultés dans la conception de ce globe. Différentes solutions ont été tentées : enrouler du fil de fer sur la partie tournante et tendre un fil entre deux bouts de bois pour appuyer sur la partie tournante, coller du scotch cuivré sur la partie tournante et tendre des bandes de cuivre avec une pièce faite à l’imprimante 3D, utiliser une prise jack en faisant tourner la partie mâle dans la partie femelle. Toutes ces solutions ont marché pendant un temps, mais se sont vite usées et ont cessé de fonctionner. La solution actuelle a duré beaucoup plus longtemps que ces solutions.

Détection de la vitesse de rotation

Une fonction annexe de l’interface fixe/tournant est de permettre à l’Arduino MEGA de détecter un point fixe lors de la rotation, pour avoir une référence et permettre d’afficher une image fixe. Ceci est réalisé grâce à une LED cachée dans le petit cube noir visible à droite sur la photo précédente. La LED est constamment allumée et fixe. Dans la partie tournante, en face de la LED, se trouve une photorésistance (fils violets qui arrivent en haut de la photo). Quand la photorésistance passe devant la LED, elle détecte la lumière. La photorésistance est directement connectée à l’Arduino MEGA, avec un montage pull-down, qui fait que la valeur 0 est lue constamment, sauf quand la photorésistance est devant la LED. Dans ce cas, la valeur 1 est lue par l’Arduino.

Au début, nous utilisions un montage pull-up, la photorésistance lisait un 1 constamment et un 0 en passant devant la LED. Mais nous avons remarqué que ce montage était beaucoup plus sensible au bruit provoqué par l’alimentation instable, provoquant des fausses détections difficiles à ignorer côté logiciel.

La carte électronique de contrôle

Globe : carte électronique

Alimentation

L’objectif principal de cette carte est d’alimenter l’Arduino et le moteur. Elle reçoit en entrée du 12V (ou un peu plus) fourni par un vieux transformateur récupéré. Pour alimenter l’Arduino, elle contient un simple régulateur 9V.

L’alimentation du moteur est un peu plus complexe car nous voulons pouvoir contrôler sa vitesse. Cela permet de le ralentir pour montrer aux gens le fonctionnement de la persistance rétinienne. Pour cela, nous utilisons un potentiomètre visible en bas à droite sur la photo. Mais le moteur demande beaucoup de puissance, il n’est donc pas possible de le mettre simplement en série avec le potentiomètre. La meilleure manière de contrôler un moteur à courant continu est d’utiliser des PWM, c’est à dire un signal carré alternant rapidement entre la tension maximale (les 12V reçus en entrée) et 0. Selon le rapport cyclique entre la durée à 12V et la durée à 0v, la vitesse du moteur change. Pour générer ces PWMs à rapport cyclique variable en fonction de la valeur d’un potentiomètre, nous avons utilisé un montage à partir du composant NE 555 trouvé sur instructables. Le montage décrit dans l’article est exactement celui réalisé ici. Les valeurs de résistance sont adaptées pour aller avec la valeur du potentiomètre, selon la formule indiquée dans l’article. Les PWMs générées ne supportent pas assez de puissance pour contrôler le moteur. C’est pourquoi elles sont utilisées comme signal de contrôle pour un transistor MOSFET, qui contrôle le moteur, suivant le montage décrit dans la partie « Simple Power MOSFET Motor Controller »  de cet article.

Dans sa première version, le globe n’avait aucune carte de contrôle. Une alimentation réglable à deux sorties était donc nécessaire pour le faire fonctionner, ce qui était encombrant. Dans une version suivante, une alimentation de PC a été récupérée, et la vitesse du moteur était contrôlée par un gros potentiomètre en série avec le moteur. Ce système fonctionnait mais toute la puissance non utilisée par le moteur était dissipée par le potentiomètre, qui chauffait beaucoup et risquait de brûler l’utilisateur. La version actuelle est plus compacte et ne chauffe quasiment pas.

 Communication avec la partie tournante

Globe : circuit comm.

Envoyer des informations à la partie tournante sans l’arrêter permet d’apporter de l’interactivité au globe. Pour ce faire, un bus de communication entre la partie fixe et la partie tournante est nécessaire. Mais nous ne disposons que de deux conducteurs entre la partie fixe et mobile : la masse et le 9V. Pour ne pas compliquer la mécanique, l’alimentation peut être modulée par un Arduino fixe pour envoyer des informations à l’Arduino MEGA tournant. Pour ceci, il modifie la masse en la passant à 5V pendant de très courts instants, ce qui crée des impulsions. Le délai entre les impulsions permet de coder des 1 et des 0, et donc d’envoyer des messages binaires.

Le mécanisme pour créer ces impulsions sur le fil de masse est intégré à la carte. Il est visible sur la partie gauche de la photo et détaillé sur le schéma ci-dessus. La sortie GND_MOD peut être utilisée à la place de la vraie masse pour alimenter la partie tournante. Un condensateur branché en parallèle sur l’alimentation de l’Arduino évite qu’il ne soit perturbé par les impulsions. Ce condensateur est isolé du PIN de lecture (3) par une diode pour rendre les impulsions visibles par le PIN 3. L’entrée CTRL est un signal géré par l’Arduino externe. Quand cette entrée passe à 0, GND_MOD passe à 5V à cause du transistor (un MOSFET N) par l’intermédiaire d’une résistance de pull-up d’1kΩ. Sinon GND_MOD reste à la masse. Si aucun fil n’est connecté à CTRL, GND_MOD reste à la masse grâce à la résistance de pull-up de 10kΩ sur CTRL. L’Arduino de contrôle externe est donc facultatif.

Le circuit qui permet de générer les impulsions a été fait « au feeling », en s’inspirant du système de communication 1-wire. Des retours d’experts pour améliorer le circuit seraient les bienvenus. Mais pour le moment, ce circuit fonctionne bien.

Le logiciel embarqué

Le logiciel embarqué est en une librairie qui gère l’affichage et la communication, et des exemples d’utilisation. Tout le code est sur Github dans le dossier « Globe ».

Librairie : l’affichage

L’affichage est géré par la classe singleton Globe. Cette classe fournit une méthode d’initialisation (begin), à partir de son appel, l’affichage sur le globe est géré par l’Arduino. La classe fournit aussi des méthodes de dessin (setLedgetLedrotate, setLedRot, getLedRot) qui permettent de modifier l’image affichée sur le globe. Les changements sont visibles dés le prochain rafraichissement de l’image. Enfin, la librairie contient des méthodes de synchronisation (delayRound, passedRound) qui permettent de synchroniser le déroulement du programme par rapport à la vitesse de rotation.

Le fonctionnement de la librairie est entièrement basé sur des interruptions : les interruptions du capteur de tour permettent de mesurer la vitesse de rotation et de commencer l’affichage ; les interruptions d’un timer permettent d’allumer les LEDs les unes après les autres. L’exécution de la librairies est critique et les interruptions ne doivent pas être inhibées. La librairie utilise une part non négligeable du temps du processeur, qui augmente avec la vitesse de rotation.

L’affichage de l’image se fait colonne par colonne et LED par LED. Une seule LED est allumée à un instant donné. Chacune des trois couleurs est gérée en binaire (allumée ou éteinte), ceci à cause du faible nombre de sorties analogiques de l’Arduino. Il serait possible d’afficher les colonnes couleur par couleur (rouge puis vert puis bleu) au lieu de LED par LED pour aller plus vite. Cette alternative a été tentée, mais elle nuit au mélange des couleurs.

Librairie : la communication

La communication entre la partie fixe et tournante ne fonctionne que dans un seul sens : l’Arduino fixe envoie des ordres à l’Arduino MEGA tournant. L’Arduino fixe est donc le maître et l’Arduino tournant est l’esclave. La librairie est donc divisée en deux classes : BusMaster et BusSlave. Elles ont toutes les deux une méthode d’initialisation (begin). Ensuite la classe maître a une méthode send et la classe esclave a des méthodes available, read et readString pour savoir si un message est disponible, lire un octet du message, ou lire une chaine entière.

La communication fonctionne par impulsions. Il y a 3 symboles : 0, 1, et fin qui correspondent à des délais différents entre deux impulsions. Chaque octet est envoyé suivi de 2 bits permettant de numéroter l’octet, d’un bit de parité, et d’un symbole fin. Chaque octet est envoyé à 3 reprises. Cette redondance est ajoutée pour fiabiliser la communication. Deux facteurs rendent la communication complexe : le bruit dû au contact tournant et l’imprécision de mesure due au fait que l’Arduino esclave s’occupe déjà de l’affichage, ce qui l’empêche de mesurer les délais avec précision. Le second facteur est au moins aussi important que le premier.

Du côté maitre, les messages sont envoyés de manière bloquante en utilisant la fonction Arduino delay. Du côté esclave, les mesures sont faites à l’aide d’interruptions et de deux timers. Nous avons essayé d’utiliser un ICP (Input Capture Pin) de l’ATMega pour rendre les mesures plus précises (le timer est déclenché automatiquement par les interruptions) mais les interruptions ICP ont une priorité trop forte qui ne peut pas être réglée, ce qui empêche le fonctionnement de l’affichage du globe.

Les exemples

Différents exemples sont disponibles avec la librairie : une carte du monde qui tourne sur lui-même, un texte qui défile et un bonhomme qui court à contre-sens du globe. Deux exemples interactifs sont aussi disponibles : la possibilité d’afficher le texte qu’on veut en l’envoyant sur le port série de l’Arduino fixe, ainsi qu’un jeu de Snake pouvant se jouer à 2. Pour ce dernier jeu, des joysticks doivent être connectés à l’Arduino fixe.

Les logiciels de support

Certains logiciels ne servent pas directement à faire fonctionner le globe, mais sont utiles pour le programmer. C’est le cas par exemple du programme ImageConverter disponible sur Github. Il a été développé en Java par les premiers étudiants qui ont travaillé sur le globe. Il permet de prendre une image, de diminuer sa résolution, de convertir ses couleurs, et de générer un format qui permet d’intégrer l’image dans du code pour l’afficher le globe. C’est ainsi qu’a été fait le programme avec la carte du monde qui tourne.

Sonar DIY : Introduction

Envoyé par le 10 Août 2014 dans Projets | 0 commentaire

This entry is part 1 of 2 in the series Sonar DiY

Qu’y a-t’il sous la mer ? C’est une question qui intéresse beaucoup de monde, mais dont la réponse peut se révéler assez compliquée. Selon les personnes, l’objectif n’est pas le même : les pêcheurs veulent repérer les poissons, les militaires veulent repérer les dangers potentiels, et d’autres veulent juste savoir ce qu’il y a au fond, par exemple pour préparer une plongée sympa…

Image issue du site Internet du SHOM

Image issue du site Internet du SHOM

L’objectif de ce projet est de s’attarder sur ce troisième cas. Trouver une plongée sympa, comme sur l’image au dessus issue du site du SHOM, si on ne connait pas les coordonnées exactes à 10m près peut s’avérer délicat. En effet, une fois au fond, la visibilité est parfois limitée,et on peut passer à moins de 10 mètres d’une épave sans même se douter qu’elle est là. L’une des solutions est d’utiliser le sondeur d’un bateau pour repérer les changements brutaux de profondeur sous le bateau, mais la zone couverte par un sondeur dépasse rarement le mètre, ce qui est donc insuffisant. De plus, pour trouver une épave, on connait généralement le point de naufrage, mais avec les courants, une épave peut se situer à plusieurs kilomètres de là où elle a coulé !

Il existe donc plusieurs solutions :

  • avoir beaucoup de patience et de chance, et tenter de trouver au sondeur quand même (par expérience, c’est fastidieux !)
  • avoir beaucoup de contacts qui vous donnent quelques points précis. Cependant, ces points, c’est un peu comme pour les coins à champignons : c’est personnel !
  • avoir un beau budget, et s’offrir un sonar tout fait, qui coûtera pour les moins chers un peu plus de 2000$ (montés sur le bateau), et pour les plus chers jusqu’à plusieurs (dizaines de) milliers de dollars.

Aucune de ces solutions ne me satisfaisait vraiment, et j’ai donc décidé de chercher comment faire un sonar maison à prix réduit (attention, on parle quand même de centaines d’euros), avec une qualité correcte, pour explorer les fonds marins.

Un sonar, sur le principe, c’est simple : on envoie une impulsion acoustique dans l’eau (un bip), puis on écoute le retour en chronométrant le temps que ça a mis pour revenir. Comme on connait la vitesse de propagation du son dans l’eau (environ 1500m/s), on peut obtenir la distance parcourue par l’onde et donc la position de l’objet qui a renvoyé.

Ca c’est la théorie extrêmement simplifié. Mais dans la pratique, le problème est un peu plus complexe : comment émettre un son puissant dans l’eau ? Comment le récupérer ? Comment mesurer la distance et en déduire la position ? Comment l’adapter à un bateau ? Plus on rentre dans les détails, plus le problème se complexifie.

En cherchant un peu sur le grand-n-Internet, on trouve quelques références, pas mal de demande (sur les forums Arduino entre autres), mais rien de bien probant. La plupart des solutions proposées s’appuient sur des éléments de sonar ou de « FishFinder », ce qui augmente « un peu » le prix ! Puis, en cherchant un peu plus, on tombe sur une solution extrêmement séduisante : http://www.mbtelectronics.com/side-scan-sonar.php

En feuilletant le document, on se rend compte que le problème est effectivement très complexe, et qu’il implique de faire de l’électronique analogique, un peu de mécanique, et du matériau. Cependant, c’est la seule solution vraiment DIY que j’ai réussi à trouver, et j’ai essayé de m’y intéresser plus en détail.

Le but de cette série d’article est de présenter ma version du Sonar DIY proposé par Mark Thompson (que je remercie d’ailleurs ici, ses conseils lors de nos échanges de mails m’ont permis de me sortir de problèmes qui m’auraient autrement empêché de continuer !). Voici les contraintes que je me suis fixé :

  • un sonar utilisable par un non électronicien/informaticien/ingénieur. Même si la réalisation n’est clairement pas faisable sans connaissances en électronique, le but est de pouvoir mettre ce sonar « entre toutes les mains »
  • un sonar à moins de 250€. Le prototype va clairement couter plus cher, mais j’aimerais pouvoir fournir à la fin du projet une liste du matériel, qui permettra de le refaire pour un prix accessible. Bien sûr, je ne compte pas le coût de l’outillage, ou du matériel « classique » (comme par exemple le bout pour le tractage du poisson) qui sera utilisé
  • un traitement numérique. La solution proposée par Mark Thompson est intégralement analogique, ce qui ne permet pas d’envisager d’évolutions au niveau du traitement des données reçues. Le traitement sera réalisé en numérique dans le sonar proposé, et permettra à terme de faire un sonar de qualité correcte..

Je posterai sur ce projet de manière assez irrégulière, en fonction du temps et des avancées du projet. Le prochain post présentera de manière générale les différents éléments du sonar, et les différentes possibilités retenues.

Openbidouille : 2 jours de découvertes en tout genre

Envoyé par le 20 Mai 2014 dans Innovation & créativité | 0 commentaire

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

Pour cet nouvelle édition de l’Openbidouille Brestois, le Téléfab avait choisi

  • de faire découvrir le fonctionnement de l’imprimante 3D à travers la réalisation de marque-pages,
  • de proposer des ateliers d’initiation à arduino
  • de jouer sur la sphère à persistance rétinienne

il-y-en-avait-pour-tous-les-gouts-ce-week-end-lors-de-la_1910600_660x372

source : article du Télégramme 19/05/2014

L’imprimante 3D commence a être un outil connu, mais en voir une en action pour en comprendre le fonctionnement et avoir un objet réalisé à emporter chez soi a été un vrai plaisir pour un large public ! Nous avions choisi un marque-page à personnaliser avec plumes, yeux, gommettes : un véritable succès auprès des jeunes lecteurs pressés d’utiliser leur nouveau compagnon de lecture !

à bientôt pour de nouvelles découvertes…

Le téléfab imprime les roues pour le concours « course en cours » du collège de Kerallan

Envoyé par le 9 Mai 2014 dans Innovation & créativité | 0 commentaire

Le Collège de Kerallan avec qui nous avons régulièrement des échanges autour de la robotique s’est lancé cette année dans un nouveau concours.

Il s’agit de Courses en cours organisé au niveau de l’académie de Rennes par l’IUT de Rennes.

Il s’agira de faire rouler en ligne droit le plus rapidement possible une voiture… celle-ci devra avoir des roues et c’est là que nous intervenons.

En effet, en utilisant l’imprimante 3D du Téléfab nous avons imprimé de jolies roues à la voiture, on en a profité pour imprimer la tête du conducteur !

Les fichiers stl ont été fournis par les élèves de Kerallan qui ont fait le travail de modélisation sous Catia.

Vous trouverez plus d’infos sur leur projet sur leur blog.

On leur souhaite BONNE CHANCE pour le concours qui aura lieu le 19 mai !

 

voitureKerallan2

 

 

L’équipe « décibel » gagne le startup day

Envoyé par le 14 Avr 2014 dans Innovation & créativité | 0 commentaire

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

Le startup day a eu lieu samedi 12 avril au Téléfab. Le soleil et les idées étaient au rendez-vous.

Startup day avril 2014

Le startup day au soleil

De très nombreuses idées ont été proposées en début de journée, puis des équipes se sont formées autour de 3 projets :

  • Décibel (Quentin Gillardin, Jérémy Nadal, Constance Pages, Romain Picot-Clemente) : indications lumineuses de niveau de bruit
  • Maison numérique (Hussein Abdallah, Benjamin Bernard, Florian Coste, Tristan Groléat, Jianfei Pan, Hervé Sousset) : réseau social distribué sur une box chez l’utilisateur
  • Wikanim (Mohamed-Ikbel Boulabiar, Hassen Chaieb, Ismail Elouafiq, Hammad Squalli-Houssaini) : conception collaborative et partage  d’animations explicatives

Tout le monde a travaillé sur les aspects techniques et commerciaux, et a cherché à présenter son projet de manière convaincante. Les coaches Pierre Allée, Sylvie Kerouédan, Marianne Laurent et Pierre Trémembert ont apporté leurs conseils aux groupes tout au long de la journée.

En fin de journée, le jury, composé de Pierre Allée (Fabriques du Ponant), Sylvie Kerouédan (Téléfab), Marianne Laurent (incubateur à Rennes), Pierre Trémembert (incubateur à Brest) et Sandrine Vaton (Télécom Bretagne), a établi un classement :

  1. Décibel
  2. Maison numérique
  3. Wikanim

Félicitations à l’équipe de Décibel ! Et merci à tous les participants et aux coaches et membres du jury pour leur implication.

Startup day : équipe décibel

L’équipe gagnante : décibel

L’arduino Day, un moment de découverte

Envoyé par le 4 Avr 2014 dans Projets | 0 commentaire

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

C’est avec surprise et plaisir que nous avons accueilli plus de 200 visiteurs cet après-midi du 29 mars venus découvrir les possibilités d’arduino et fêter le 10ème anniversaire de cette petite carte qui a révolutionné l’approche de la fabrication numérique.

certificat_arduinoDAY

Avec nos partenaires créateurs des Fabriques du Ponant, nous avons organisé cet anniversaire en moins d’un mois. La dynamique brestoise nous a permis de profiter d’un lieu central, La Cantine Numérique, pour proposer au public de découvrir  ce qu’on peut faire avec arduino : de l’imprimante 3D à la station météo, en passant par des objets lumineux en tout genre, petits et grands ont pu venir non seulement voir, mais aussi prendre conseil et se former à l’utilisation de cette carte.

13564652113_84173e2323_b13564651235_aeb3ae9dfd_b13564601515_0a15e3a064_b

 

Pour fêter dignement cet anniversaire, un gâteau s’imposait et quoi de mieux qu’un kouign-amann surmonté de leds clignotantes pilotées par arduino !

13564693565_cb8ca8c3de_b

Startup day au Téléfab

Envoyé par le 31 Mar 2014 dans Innovation & créativité | 0 commentaire

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

Si vous êtes intéressé par le monde des start-ups, que vous ayez une idée de projet ou pas, participez au start-up day samedi 12 avril au Téléfab sur le campus de Brest de Télécom Bretagne. L’objectif : rencontrer des gens qui veulent créer ou s’impliquer dans des start-ups, proposer des idées et les développer en une journée, bénéficier d’avis de professionnels, et voir son idée choisie par le jury à la fin.

Les infos détaillées pour s’inscrire et participer sont disponibles sur la page du startup day. Le déroulement prévu a été mis à jour, et la journée un peu raccourcie.

C’est une journée sympa, sans pression, et très enrichissante, n’hésitez pas à venir, même si vous n’avez pas d’idées, ou ne voyez pas comment vous pouvez aider…