Brique Lego augmentée

De Wiki d'activités IMA
Révision datée du 11 mai 2015 à 16:22 par Dsaunder (discussion | contributions) (Fichiers Rendus)


Cahier des charges

Présentation générale du projet

Contexte

Le briques Lego sont utilisées dans le monde entier comme jeu de construction. Cependant certains domaines de cette construction restent inexplorés comme la construction électronique. Ce projet s'inscrit dans la réalisation d'une sorte de jouet Lego équipé de divers composants électroniques.

Objectif du projet

L'objectif du projet est de créer des briques Lego avec fonctionnalités avancées. Autrement dit de créer des briques Lego compatibles aussi bien sur le plan de la construction que sur le plan électronique.

Description du projet

Ce projet a pour but de concevoir une maison en Lego qui puisse interagir avec son environnement et qui soit pilotable à distance. Ce projet se rapproche des technologies actuelles développées dans le domaine de la domotique qui permettent de contrôler sa maison à distance depuis un smartphone par exemple.

Les composants que nous implanterons, nous permettront de créer un système d'alarme dans la maison, ainsi qu'une ouverture automatique de la porte du garage. Le but final étant de développer un mode de fonctionnement autonome et un mode en pilotage à distance.

Choix techniques : matériel et logiciel

Conception/prototypage : Solidworks/Freecad/Cathia pour imprimante 3D

Composants à incruster (dans l'idéal compatible arduino et de petite taille):

  • LED RGB petite compatible arduino : lumière dans la maison et à l’extérieur [2 fournies le 26/1/2015]
  • Moteurs pour ouverture d'une porte de garage lego type : http://store.arduino.cc/product/T010160 [1 fourni le 26/1/2015]
  • interrupteur
  • Capteur RFID pour ouverture de porte par detection : http://www.adafruit.com/product/789 [à commander] [on a des choses qui y ressemble]
  • Détecteur de mouvement pour l'alarme : sonar LV-MaxSonar-EZO [1 fourni le 26/1/2015]
  • alimentation sur pile ou via PC

Si le temps le permet :

  • Capteur de température
  • Affichage digital (matrice de LED RGB), pour afficher la température
  • Petit haut parleur pour la sirène d'alarme
  • Capteur de bruit pour déclencher l'allumage de la lumière par un clap.
  • Communication XBee

Communication pilotage à distance :

  • Arduino pour centraliser [1 Arduino nano v3.0 fourni le 26/1/2015]
  • pcDuino pour hébergement site internet de commande à distance [à commander]
  • [arduino mini ou pour faire plus petit, un PCB avec un attiny (quartz non nécessaire), ça roule]


Etapes du projet

Conception des briques

  • Partie plastique (solidworks/imprimante 3D)
    • Dimensionnement composant/taille de la brique
    • Verification compatibilité des briques entre elles
  • Partie électronique
    • Choix des composants (dimensions adaptés à la taille usuelle des briques)
    • Implémentation des composants dans les briques (réalisation du circuit interne, ex : led + resistance, et mise en place des connecteurs et liaisons électriques)
    • Mise en place de l'alimentation des briques
  • Test de chaque briques

Pilotage à distance des briques : mode manuel (pilotage depuis une tablette)

  • Création du programme arduino
  • Création de la page web de contrôle des différents éléments

Fonctionnement autonome de la maison (réagit uniquement à son environnement)

  • Amélioration du programme Arduino précédent
  • Si le temps le permet amélioration de la page Web pour recevoir un message d'alerte en cas de déclenchement de l'alarme.

Avancement du Projet

Semaine 1

Discussion du sujet, recherches documentaires sur les légo (dimensions, modélisation), sur les éléments électroniques à utiliser.

Découverte de l'imprimante 3D, manipulations et premiers tests. Voici notre première tentative de création d'une brique de légo via impression 3D (problème d'adhérence de la matière sur la plate-forme ce qui nous a obligé de stopper l'impression):

Première impression 3D

Première impression d'une brique de lego standard réussie:

Première impression 3D réussie !

Semaine 2

Initiation au logiciel de modélisation FreeCad et création de la brique lego de base avec ce logiciel.

A partir ce cette brique standard nous allons pouvoir réaliser plusieurs modifications qui nous permettront d'intégrer des éléments électroniques à nos briques.

Nous sommes partis sur l'idée d'intégrer des fils à l’intérieur de nos briques; nous aurons donc 3 types de briques: les blocs conducteurs, les blocs modules (contenant les éléments électroniques tels que la LED, le sonar ...) et des blocs normaux pour la construction.

Tests de la conductivité des différents ressorts et du clou (séparément et ensemble) à notre disposition pour vérifier la conduction de briques en briques.

Voici un schéma explicatif de notre idée ainsi que les modélisations de la brique que nous avons imprimé:


Modélisation brique principale
schéma explicatif
Modélisation brique principale

Semaine 3

Pour que nous puissions facilement assembler nos briques, nous avons choisi de les concevoir en 2 parties. Nous sommes donc partis de la brique initiale, construite à la semaine 2 et nous l'avons coupée en 2 à l'aide du logiciel Freecad. Nous avons également réalisé un trou pour loger la LED à L'assemblage. Voici les modélisations de notre bloc led:

Modélisation de la partie haute de la LED
Modélisation de la partie basse de la LED



Nous l'avons ensuite imprimée et avons vérifié sa compatibilité.

Semaine 4

Nous avons soudé les composants de la brique LED, à savoir une LED, une résistance 330 ohms et les deux ressorts conducteurs. Nous les avons ensuite assemblés en collant la partie haute et la partie basse de la LED ainsi qu'en insérant les composants soudés à l'intérieur. L'assemblage s'est fait à l'aide de colle epoxy. Ce procédé sera utilisé sur toute la suite du projet; imprimer la brique voulu en 2 fois, incorporer les éléments internes puis coller la partie haute et la partie basse de la brique entre elles.

Nous avons également procédé au test de la brique qui a fonctionnée normalement à 5V.


Zoom sur l'assemblage
brique LED alimentée 5V
Assemblage LED/Connecteur


Nous avons également conçu la brique réceptacle du servo moteur.

Conception brique servo-moteur

Semaine 5

Nous avons imprimé la brique pour le servo moteur et terminé la conception de la brique de translation.


Conception brique translation 2x2 partie basse


Conception brique translation 2x2 partie haute


Premier assemblage pour le servo moteur



Impression d'une brique de translation. Soudage de plusieurs ensemble clou-vis pour insertion dans les briques de translation à la rentrée.

Semaine 6

Nous avons imprimé 4 briques de translations qui permettent toutes les communications possibles (nous en aurons besoin d'un plus grand nombre si nous voulons rendre un produit fini à la fin de notre projet, c'est à dire notre maison complètement assemblée). Nous avons également soudé les éléments de la brique servo moteur.

Nous avons commencé les tests Arduino, nous avons réussi à faire clignoter la brique LED.

Nous avons collé la brique servo moteur et les briques translations.

Branchement arduino
Les 4 briques translations

Semaine 7

Une nouvelle imprimante 3D plus performante (Witbox) est arrivée au fablab; un test a été réalisé sur une brique de translation et le résultat est bien meilleur. Par contre les impressions étant plus précises et apparemment plus épaisses les nouvelles pièces ne s'emboîtent pas avec les autres. Si nous voulons utiliser cette nouvelle imprimante il faudra adapter nos modélisation 3D (le rendu étant plus propre et plus net cela faciliterait la connectivité entre nos briques).

Comparaison nouvelle impression (brique noir) et ancienne
Comparaison nouvelle impression (brique noir) et ancienne


Des soucis de connexion nous ont obligé à refaire l'assemblage de la brique moteur. Nous attendons de vérifier la compatibilité des pièces imprimées à la nouvelle imprimante 3D, pour avancer un peu plus.

Des tests sur les briques connectrices ont été réalisés avec succès, les connexions fonctionnent bien .

Nous avons été formé pour utiliser la nouvelle imprimante 3D et de nouvelles perspectives peuvent s'ouvrir à nous:

On peut envisager stopper l'impression, inserer un composant et reprendre l'impression (via une manipulation du g-code) ce qui nous réduirai le temps de production des pièces et obtenir un meilleur rendu (on ne serait alors pas obligé de coller nos pièces à l'époxy).

Au lieu d'acheter la plaque support nous pourrons l'imprimer (le plateau de la nouvelle imprimante est bien plus grand).

Néanmoins il reste des configurations à changer sur nos impressions car avec les mêmes fichiers de conception les briques ne s’emboîtent plus entre elles. Nous pourrons ensuite produire des pièces plus rapidement et en plus grande quantité (cela pourrait être utile pour finaliser notre projet et réaliser notre maison).

Semaine 8

Nous avons réalisé divers tests d'impressions sur la nouvelle imprimante. Il est difficile d'imprimer une plaque 8x8 à l'imprimante, car la largeur de la pièce fait remonter les cotés de la plaque. Or, utiliser une plaque non plate n'est pas envisageable. Cependant, cette impression nous a permis de faire un premier test de configuration des connexions sur la plaque.

Plaque 8x8 vue de dessus
Plaque 8x8 vue de dessous


Nous avons également remarqué qu'il fallait être vigilant sur le sens d'impression des pièces, car nous avons constaté un tassement des couches inférieures. Nous avons fait un comparatif, avec la même pièce, des impressions pour savoir d'où vient le problème.

Comparatifs des impressions vue de dessus
Comparatifs des impressions vue de dessous


Semaine 9

Nous avons commencé à réaliser la plaque (perçage, soudage des éléments clous/fils). Réalisation d'un support en bois pour poser notre plaque sans abîmer nos soudures; la plaque étant très souple cela pourrait être gênant quant à la fixation et la connectivité de nos briques.

Nous avons conçu et fabriqué la brique ultrasons, et une deuxième brique LED (rouge pour le signal d'alarme).

Vue face verticale
Vue de dessous


Semaine 10

Lors de cette semaine nous avons du refaire des soudures qui s'étaient défaites. Notamment sur le servo-moteur et le sonar (nous avons été obligé de refaire une impression de la partie basse de notre servo-moteur), ce qui nous as pris beaucoup de temps.

Nous avons tout de même implanté un programme basique sur l'arduino qui permet de controler les 2 LED, le servo-moteur et le capteur ultrasons pour les tester sur notre plaque support.

Premier test de la plaque concluant: La LED rouge s'allume ! Les tests sur le servomoteur et les autres briques auront lieu à la semaine 10.

Test de connectivité avec l'arduino

Semaine 11

Suite aux remarques concernant notre plaque support comme étant trop souple, nous avons décidé de coller sous notre plaque Lego une plaque en bois assez épaisse pour nous permettre de fixer nos briques facilement. Pour cela nous avons du enlever tous nos éléments clous/fils déjà assemblés.

Une fois la plaque collé, les perçages et soudages réalisés, les premiers tests s'avèrent concluant et la mise en place des éléments est bien plus facile et moins risqué.

Topologie de la plaque dessus
Topologie de la plaque dessous
Zoom sur les soudures



Voici des photos de nos différents éléments en état de marche sur notre plaque support:

Etat de marche de la plaque vue 1
Etat de marche de la plaque vue 2


On peut voir sur ces photos que les différents éléments sont en état de marche (Les leds s'allument, s'éteignent en fonction de la valeur transmise par le sonar et le servo-moteur fonctionne).


Une première esquisse d'une page HTML a été commencé; elle contient pour l'instant uniquement des éléments de base (choix du mode manuel/automatique) mais n'est pas encore relié directement à notre arduino.

Page basique html

Semaine 12

Pour finaliser notre projet, nous commençons à réfléchir à une mise en scène pour notre vidéo (mise en place de la maison, démonstration des fonctionnalités...).

Pour réaliser une maison avec toutes nos briques en état de marche et que le rendu soit présentable nous avons encore besoin d'imprimer des briques de translation (notamment pour le servo-moteur qui doit être assez élevé pour représenter la porte du garage).

Réalisation de la page PHP/HTML. Mise en place de la communication série à l'aide d'un fichier CGI-BIN et d'un appel javascript. Mise en place d'un affichage dynamique d'image dans la case vide à l'aide de CSS. Le but étant d'afficher un panneau attention quand l'alarme est déclenchée, et un pouce vert sinon.

Nous avons embarqué la page Web sur un eePC pour servir de serveur pour visualiser la page Web sur un ordinateur en réseau pour le tournage.

Nous avons construit la maison et paufiné le programme arduino.

Enfin nous avons tourner la vidéo.

Sources de documentation

Documentation sur l'arduino (arduino nano v3.0) à utiliser: http://hardware-libre.fr/2014/07/arduino-le-nano-officiel/ http://arduino.cc/en/Main/arduinoBoardNano

Datasheet du sonar (LV-MaxSonar-EZO) : http://maxbotix.com/documents/LV-MaxSonar-EZ_Datasheet.pdf

Visualisation des briques en 3D: http://www.thingiverse.com/thing:591/#made

Briques Bricklink : http://www.bricklink.com/browseCustom.asp

Exemples de briques existantes avec de la lumière à l'intérieur, mais non interactive avec l'environnement : http://www.bricklink.com/imgView.asp?imgID=J243330&viewFrom=SC&invID=67530155&itemText=

Idées pour l'inscrustations des LED : http://www.instructables.com/id/LEGO-brick-LED-lights/

Fichiers Rendus

CGI-BIN-lire


CGI-BIN_envoyer


HTML


InitPortSerie


LibrairieSerie