Archives de catégorie : module: matériel

Module : Conception et impression 3D

Conception et impression 3D
  • Ulrich Kühne, ulrich.kuhne_at_telecom-paris.fr
Descriptif
ultimaker2

L’arrivée des imprimantes 3D a permis la simplification du processus de prototypage pour les produits industriels. L’impression 3D permet aussi la réduction des coûts pour la fabrication de pièces qui ne sont pas destinées à la production de masse. Parallèlement, la Conception Assistée par Ordinateur (CAO, CAD en anglais) s’est démocratisée avec l’émergence de logiciels gratuits/open source et/ou de logiciels simplifiés destinés à des utilisateurs non spécialistes.

Le processus de création d’une pièce en impression 3D se sépare en 3 étapes :

  • La conception

Il s’agit de créer le modèle 3D de la pièce à réaliser. Le fichier créé est vectoriel, il est donc modifiable ce qui permet d’itérer rapidement entre différentes phases de test.

  • Le « slicing »

Un slicer est un programme qui permet de convertir un fichier 3D généré par le logiciel de CAO en instructions compréhensibles par l’imprimante (le Gcode). L’impression se faisant couche par couche, l’objet est sectionné en tranches. Pour chacune, le code dit où et à quelle vitesse déplacer la buse et quand déposer du plastique.

Les paramètres du slicing dépendent de l’imprimante mais aussi de la qualité d’impression souhaitée. On peut par exemple changer le taux de remplissage en plastique pour obtenir un objet plus robuste ou encore diminuer la taille des tranches pour obtenir une meilleure précision. Ces paramètres influencent grandement le temps d’impression.

  • L’impression

Une fois le code généré, il peut être envoyé sur l’imprimante par connexion USB ou via une carte SD. Au préalable, l’imprimante doit être calibrée et réglée. La planéité du support et la distance entre la buse et la base doivent être précisément réglées. La surface doit être préparée pour maximiser l’adhésion du thermoplastique. La température de chauffe et le diamètre du filament plastique doivent être renseignés.

Ressources

FreeCAD est un outil gratuit, open-source et très complet de CAO. De nombreux tutoriels sont disponibles sur internet. Le wiki de Freecad fournit les bases de l’utilisation du logiciel.

L’imprimante à disposition est une Ultimaker 2 permettant des impressions avec des couches jusqu’à 20 microns d’épaisseur. Cura, est un slicer gratuit et très simple d’utilisation. Un guide assez complet des solutions aux défauts possibles d’impression est disponible ici.

Objectifs Pédagogiques
  • Conception Assistée par Ordinateur : savoir concevoir et modifier un objet 3D réaliste pour l’impression 3D. Savoir intégrer des pièces mécaniques et associer plusieurs pièces imprimées.
  • Slicing : savoir configurer l’étape de slicing en fonction du cahier des charges.
  • Configuration et utilisation de l’imprimante: Connaître les principales étapes de configuration, d’utilisation et d’entretien de l’imprimante pour un usage autonome ainsi que les règles de sécurité.
Résultats attendus
  • PAN1 :
    • Compréhension des étapes de l’impression 3D et de ses limitations.
    • Bases de CAO sur FreeCAD.
  • PAN2 :
    • Savoir réaliser des formes complexes avec FreeCAD.
    • Savoir paramétrer le slicer (Cura).
    • Livrable: Génération d’un fichier 3D utilisant les principales fonctions à maîtriser.
  • PAN3/4 :
    • Apprendre à surpasser les limitations de l’impression 3D par l’intégration des pièces non imprimées et/ou par combinaison de plusieurs pièces imprimées.
    • Livrable : Fabrication d’un objet composite.

Module : GPIO via Android

GPIO via Android
Proposé par :

  • Tarik Graba (@telecom-paristech.fr)
Descriptif
L’objectif de ce module est de mettre en oeuvre un composant électronique réalisant l’interface USB/GPIO et à le piloter depuis un smartphone ou une tablette sous Android.Un GPIO est un port qui permet à un système de communiquer numériquement  avec le monde extérieur. Il peut être configuré comme une entrée : dans ce cas, en fonction de la tension appliquée à la broche, le circuit « lit » un 1 ou un 0 logique. Il peut également être configuré comme une sortie : dans ce cas le circuit « écrit » un 0 ou un 1 logique, ce qui est traduit par une tension différente sur la broche. Le port GPIO peut ainsi être connecté à des capteurs ou à des actionneurs.Le circuit électronique proposé possède une interface USB, permettant ainsi de le brancher à un smartphone par exemple, et un certain nombre de GPIO. Il est également facilement pilotable depuis Android.En le mettant en oeuvre, votre application Android pourra ainsi récupérer des informations depuis des capteurs ou piloter des actionneurs.
Ressources dont le module dépend
  • Site de référence du composant
    • http://www.ftdichip.com/Android.htm
Objectifs pédagogiques
  • Électronique : savoir lire une documentation technique d’un composant (datasheet), comprendre le fonctionnement d’un GPIO
  • Informatique : savoir dialoguer avec un périphérique
Exemples d’utilisation du module
  • Pilotage de LEDs, d’afficheurs, de moteurs depuis une application Android
  • Récupération d’informations de capteurs depuis une application Android
Résultats attendus (à adapter en fonction des besoins)
PAN1

  • Compréhension du fonctionnement du composant en lisant sa datasheet

PAN2

  • Réalisation du circuit imprimé mettant en oeuvre le composant
  • Application Android pilotant le composant

Module : Raspberry pi

Raspberry Pi
proposé par :

  • Tarik Graba (@telecom-paris.fr)
Descriptif
La Raspberry pi est un système embarqué, comparable à un petit ordinateur.
Elle contient un processeur ARM et un ensemble de ports d’entrée/sortie tels que:
– 2 USB.
– sortie audio.
– sorties vidéo.
– réseau ethernet.
– port d’extension SD card.
– des GPIO (General Purpose Input Output).
Elle est capable de faire tourner un système d’exploitation Linux ainsi qu’un ensemble de logiciels standards.
Ses dimensions sont celles d’une carte de crédit standard (85.60mm x 53.98mm x 17mm) et elle ne pèse que 45g.
Ressources dont le module dépend
  • Site de référence de la carte
    • http://www.raspberrypi.org/faqs
  • Plusieurs machines virtuelles Java existent sur cette carte vous permettant d’exécuter vos programmes Java.
Exemples d’utilisation du module
  • Système de contrôle intelligent pour vidéo-projecteur ou écran.
  • Boîtier multimédia
  • Domotique
Résultats attendus (à adapter en fonction des besoins)
PAN1

  • Documentations et tutoriel de prise en main et d’installation
  • Exemple type « hello world » en java s’exécutant sur la carte

PAN2

  • Code d’une application Java accédant aux GPIO

Module : Smart phones et tablettes Android

Programmation Android
proposé par :

  • Jean-Claude Dufourd, 9691, bureau 5D30, dufourd@telecom-paris.fr
Descriptif
L’utilisation de smartphones ou de tablettes est devenue depuis quelques années presque incontournable. Parmi les différents systèmes d’exploitation permettant de contrôler ces smartphones et tablettes, le système Android représente près de la moitié des périphériques. La programmation des smartphones ou tablettes Android fait appel au langage Java, vu lors du cours INF103. Elle ne devrait pas poser de difficulté majeure, néanmoins une des difficultés souvent rencontrées est la prise en main de l’environnement de développement et des spécificités des applications Android. Ce module a pour vocation d’aider les élèves à surmonter cette difficulté.
Ressources
Le site de référence pour l’environnement de développement Android (bibliothèques, simulateur, environnement de développement, etc.) et pour l’auto-formation est le site http://developer.android.com.
Transparents du mini-cours:
PACT-2014-Android-Mini-cours
Une bonne introduction (en français) se trouve sur:
http://openclassrooms.com/courses/creez-des-applications-pour-android
Exemples d’utilisation du module
  • Application Android avec une interface graphique simple
  • Application Android utilisant la caméra d’un téléphone mobile
  • Application Android utilisant l’écran tactile d’une tablette
Objectifs Pédagogiques
  • Informatique : prendre en main l’environnement de développement Android, comprendre le fonctionnement d’une application Android, savoir lire et utiliser la documentation des API Android, savoir créer une application Android de base et utiliser certaines fonctionnalités avancées (affichage graphique, réseau, multimédia …), savoir debugger une application
Résultats attendus (A affiner selon vos besoins)
  • PAN2 :
    • Réaliser une application Android sur émulateur mettant en oeuvre le cycle de vie, l’enchaînement de plusieurs activités, y compris en tâche de fond, et le lancement d’une autre application.
  • PAN3 :
    • Réaliser une application spécifique (à définir en fonction des besoins du projet). Cette application fonctionnera sur un smartphone ou une tablette et pourra mettre en oeuvre:
      • la communication via le réseau, par exemple selon le protocole HTTP,
      • un affichage graphique simple avec quelques éléments interactifs,
      • la lecture ou la capture de données multimédia (son, image, vidéo)
    • Décrire le fonctionnement et l’intégration du module dans le prototype allégé
  • PAN4 :
    • Analyser comment le module est intégré dans le prototype, quelles pistes d’améliorations seraient à envisager (performance, simplicité)

Module : Ecrans 3D

Ecrans 3D
proposé par :

  • Jean Le Feuvre, jean.lefeuvre_at_telecom-paris.fr

Description
Afin d’expérimenter la visualisation en relief, Telecom ParisTech dispose d’écrans 3D sans lunettes, offrant 5 point de vues différents pour un surface d’affichage de 19 » et d’une résolution de 1440×900 pixels. Ces écrans doivent impérativement être connectés à une sortie numérique de l’ordinateur; le lien analogique (VGA) introduit en effet du bruit non compatible avec le format d’affichage, cassant ainsi l’effet 3D.

Ressources
Ce logiciel nécessite les bibliothèques Java suivantes:LWJGL: une librairie Java de jeux permettant d’écrire facilement des programmes Java OpenGL slick-util:une librairie d’utilitaires Java permettant de charger rapidement des images pour les manipuler en OpenGL:NYU Media Research Lab, avec une petite animation permettant de comprendre rapidement la technologie.Un bon aperçu du fonctionnement de ces écrans est disponible sur le site de Paul Bourke.Site expliquant comment les images sont générées pour ces écrans.

Les spécifications détaillées de ces écrans sont disponibles ici: SVI_19.

Exemples d’utilisation
  • Affichage en 3D
  • Affichage simultané de contenus différents
Objectifs Pédagogiques
  • Vision stéréoscopique : savoir expliquer les principes de bases de la vision stéréoscopie et de la perception du relief.
  • Dispositifs d’affichages stéréoscopiques : savoir expliquer les différents dispositifs d’affichages, leurs avantages et inconvénients.
  • Application de visualisation en relief: compréhension de la programmation GPU par shader. Etre capable de justifier les choix techniques faits.
Résultats attendus
  • PAN1 :
    • Principes de bases de la vision en relief.
    • Expliquer comment le programme manipule l’écran 3D.
  • PAN2 :
    • Expliquer les principes de bases de la programmation de GPU par shader
    • Livrable: rendu anaglyphe d’un couple stéréoscopique
  • PAN3 :
    • Livrable : Programme OpenGL pour le rendu sur écran 3D, rendu d’un objet simple.
    • Expliquer le fonctionnement de l’afficheur
    • Décrire le fonctionnement et l’intégration du module dans le prototype allégé
  • PAN4 :
    • Analyser comment le module est intégré dans le prototype, quelles pistes d’améliorations seraient à envisager (performance, simplicité,)
    • livrable: Exemple de code permettant l’affichage 3D d’un objet (modèle ou cube ou série d’image) avec variation de l’effet de profondeur.
    • livrable biblio : les principes de fonctionnement de la vision 3D.

Module : Wiimote

La WiiMote
proposé par :

  • Jean Le Feuvre, jean.lefeuvre@telecom-paris.fr
Descriptif
La WiiMote est le contrôleur de la console de jeu Wii.La WiiMote communique avec la console via BlueTooth, et peut par conséquent communiquer avec tout appareil supportant le protocole BlueTooth.
Ressources
  • Vous trouverez de nombreuses ressources bibliographiques traitant de la WiiMote sur internet. Les possibilités offertes par la WiiMote sont nombreuses, comme en témoignent ces vidéos youtube.Vous trouverez par ailleurs de nombreuses ressources sur l’architecture matérielle de la WiiMote sur le site Wiimote Project
  • Il existe un logiciel libre permettant de dialoguer avec la WiiMote depuis un programme Java: http://code.google.com/p/wiiusej/.D’autres logiciels existent mais n’ont pas été testés dans le cadre de PACT.
Exemples d’utilisation du module
  • Suivi de mouvement (accélération)
  • Actionneurs simples entrée (boutons) et sorties (vibreur, haut-parleur, leds).
  • Récupérer l’état de capteurs.
  • Suivi de sources infrarouges ponctuelles
Objectifs Pédagogiques
  • Comprendre le fonctionnement de la wiimote
  • Savoir expliquer les limitations du capteur
Résultats attendus
  • PAN1 :
    • Comment le capteur s’interface avec le programme
  • PAN2 :
    • Principes de fonctionnement de la Wiimote
    • Premiers tests d’interaction avec la Wiimote
  • PAN3:
    • Wiimote intégrée au prototype allégé
    • Justifiez comment le capteur s’intègre dans l’architecture, et les limites éventuelles.

Module : Kinect

La Kinect
proposé par :

  • Jean Le Feuvre, jean.lefeuvre_at_telecom-paris.fr

kinect

Descriptif
La Kinect est un capteur de mouvement développé par Microsoft, afin de servir de contrôleur de jeux à la console XBox 360. La Kinect communique avec la console via USB 2.0, et peut par conséquent communiquer avec tout appareil supportant le protocole USB 2.0.
Ressources
  • Logiciel Java associé : Un logiciel libre permettant de dialoguer avec la Kinect depuis un programme Java a été créé à Telecom ParisTech. Ce logiciel utilise les drivers open-source freenect et la librairie JavaCV, surcouche Java autour de OpenCV ( librairie d’outils pour la vision par ordinateur).Les instructions pour installer JavaCV et OpenCV sont disponibles ici: InstallationJavaCV_Kinect.Les pilotes OpenKinect pour Windows sont disponibles ici: freenect_win32.Une application Java montrant comment manipuler les données vidéo (couleur et profondeur) est disponible (KinectGrabber.java). Attention, cette application ne fait pas la calibration des vues profondeur et couleur, les images restent légèrement décalées.Resources Bibliographiques :OpenKinect : implémentation libre des pilotes logiciels de dialoguer avec la Kinect depuis un ordinateur. Vous trouverez sur ce site de nombreuses ressources liées à la Kinect.OpenNI : utilitaires de développement pour les interactions homme-machine, avec entre autre un support pour la Kinect, utilisé pour la version 2 de la Kinect.
  • Vous trouverez de nombreuses ressources bibliographiques traitant de la Kinect sur internet, ainsi que de nombreux exemples d’applications utilisant ce capteur.
Exemples d’utilisation du module
La Kinect ne fournit comme information que les trames vidéo et profondeur. Un système utilisant la Kinect à par conséquent besoin d’une composante logicielle importante pour analyser ces images afin d’en extraire des informations utiles à l’application, par exemple:

  • détection et suivi des mains, reconnaissance des gestes
  • détection du nombre de personnes
  • analyse de la position d’un corps et calcul du « squelette » ou ensemble de points nécessaires à l’animation d’un avatar.
  • permettre la visualisation en relief de la scène filmée
Objectifs Pédagogiques
  • Capteurs : Principe de base du fonctionnement de la Kinect.
  • Traitement d’image: comprendre les formats images et vidéos, de couleurs et les notions de seuillage et de segmentation.
Résultats attendus
  • PAN1 :
    • Principes de bases du fonctionnement de la kinect
    • Expliquer les interfaces entre Kinect et votre programme
  • PAN2:
    • Premiers tests de lecture depuis la Kinect.
  • PAN3:
    • Lecture et seuillage en profondeur depuis la Kinect.
  • PAN4:
    • Analyser comment la Kinect est intégrée dans le prototype final, quelles pistes d’amélioration seraient possibles ?

Module : La visualisation en relief

La Visualisation en Relief
  • Jean Le Feuvre
  • Yves Mathieu
Descriptif
La visualisation en relief d’images, ou stéréoscopie, se retrouve sous les lumières des projecteurs depuis le récent regain d’intérêt pour le cinéma en 3D. Pour autant, les technologies de visualisation en relief sont loin d’être matures. On peut rapidement citer les techniques suivantes:

  • Anaglyphes

La coloration des images (resp. droite et gauche) est modifiée avec des filtres de couleurs (resp. rouge et cyan), puis on mélange les deux images en une seule. A l’aide de lunettes équipées de filtres de même couleur, un utilisateur verra un effet 3D, au détriment de la perte de couleur. De telles lunettes sont faciles à fabriquer, et quelques exemplaires sont à votre disposition à Telecom Paristech.

  • Lunettes passives

La lumière est polarisée différemment pour la vue droite et la vue gauche, et les vues ainsi polarisées sont projetées en alternance à une fréquence élevée. A l’aide de lunettes équipées de filtres de même polarité  un utilisateur verra un effet 3D, au détriment d’une légère perte de luminosité.

  • Lunettes actives

La lumière est bloquée devant l’œil gauche (resp. droit) lorsque l’écran affiche la vue droite (resp. gauche). En projetant les images à une fréquence élevé, le cerveau reconstruira un effet 3D, au détriment d’une perte de luminosité.

  • Ecrans sans lunettes

Des lentilles semi-cylindriques (on parle alors d’écrans lenticulaires) ou de « petits trous » (on parle de barrière de parallaxe) sont placés au-dessus de l’écran. Pour chaque pixel (ou sous-pixel R, G ou B) de l’écran, le chemin de la lumière jusqu’à l’œil de l’utilisateur est ainsi modifié par la forme géométrique de ce réseau. On peut alors diriger certains pixels vers l’œil droit et d’autres vers l’œil gauche. En mélangeant les vues droites et gauche lors de la phase d’affichage, l’utilisateur verra un effet 3D, au détriment d’une perte de résolution. De tels écrans 3D sont disponibles dans le cadre de PACT.

Ressources
De nombreuses ressources bibliographiques sont disponibles sur Internet. Vous pouvez entre autre consultez les sites suivants:Stereo3D, site dédié au technologies d’affichage 3DLe site de Paul Bourkecontient de nombreux liens sur ses travaux autour de la vision 3D.Attention, créer l’illusion de la stéréoscopie n’est pas facile, même avec le bon équipement. De nombreux paramètres sont à prendre en compte, comme le montre la page de Paul Bourke sur la calibration de points de vue.
Exemples d’utilisation du module
  • Rendu immersif de monde virtuels
  • Consultation d’œuvre d’art (modèles 3D)
Objectifs Pédagogiques
  • Vision stéréoscopique : savoir expliquer les principes de bases de la vision stéréoscopie et de la perception du relief.
  • Dispositifs d’affichages stéréoscopiques : savoir expliquer les différents dispositifs d’affichages, leurs avantages et inconvénients.
  • Application de visualisation en relief: compréhension de la programmation GPU par shader. Etre capable de justifier les choix techniques faits.
Résultats attendus
  • PAN1 :
    • Principes de bases de la vision en relief.
    • Expliquer comment le programme manipule l’afficheur 3D.
  • PAN2 :
    • Expliquer le fonctionnement de la programmation de GPU par shader
    • Livrable: rendu anaglyphe d’un couple stéréoscopique
  • PAN3 :
    • Livrable : Programme OpenGL pour le rendu sur afficheur 3D.
    • Expliquer le fonctionnement de l’afficheur
    • Décrire le fonctionnement et l’intégration du module dans le prototype allégé
  • PAN4 :
    • Analyser comment le module est intégré dans le prototype, quelles pistes d’améliorations seraient à envisager (performance, simplicité,)
    • livrable biblio : les principes de fonctionnement de la vision 3D.