Actualités Projets

Catch the Ball ! … or let it fall !

Envoyé par le 28 Jan 2014 dans Applications Android | 0 commentaire

« Catch the Ball » est un jeu d’adresse développé sous environnement Android durant l’intersemestre CodeCamp janvier 2014 par le trio d’élèves : Karim FARHANE, Abdellah NAKOUS et Yassir ELIDRISSI. Comme son l’indique, le jeu consiste à attraper – ou à éviter – , selon la couleur, une pluie de balles vertes qui tombent verticalement à l’aide d’une boîte adaptée que le joueur déplace horizontalement.

clip_image002

Concrètement, le déplacement de la boîte rectangulaire (en bleu) peut se faire digitalement sur l’écran ou par inclinaison de ce dernier (en amont, utilisation d’un accéléromètre restreint au mouvement horizontal).

La chute des balles (vertes & rouges), quant à elle, se fait par gravité (mouvement vertical sur lequel le joueur ne peut influencer) tout en ayant un caractère aléatoire (utilisation de la fonction math.random pour générer les positions initiales de la chute sur l’axe y).

clip_image003

Ceci est la page d’accueil. Les règles du jeu sont listées après clic sur le bouton Help. Le jeu commence après clic sur le bouton Play.

—> Améliorations possibles :

  •  L’idée initiale était de réaliser le jeu avec un vrai panier (oui, en osier et tout…) ainsi que de vrais œufs (au lieu de balles circulaires) mais le temps imparti nous était insuffisant pour manipuler des images importées. Vous pouvez l’essayer (utilisation de Bitmap) !
  • Vous pouvez également essayer d’ajouter une contrainte de temps au lieu de vous suffire celle du score.

BlueChat

Envoyé par le 28 Jan 2014 dans Applications Android | 0 commentaire

the_blue_cat1

BlueChat

Chatting via Bluetooth, version 1.0

BlueChat est une application pour envoyer/recevoir facilement et instantanément des messages via Bluetooth. C’est une application réalisée dans le cadre d’Intersemestre CodeCamp. Elle fournit une façon gratuite pour communiquer à courte distance, mais sans faire de bruit. Cette application sera très utile si on n’a pas l’Internet ou le wi-fi ou la carte SIM dans le portable.

La distance entre deux appareils peut-être jusqu’à 50 mètres.

Après télécharger l’APK de l’application sur le site de CodeCamp, on doit activer le Bluetooth avant de démarrer l’application.

On peut cliquer au bouton « Nouvelle conversation » pour connecter à un autre appareil et commencer une nouvelle conversation.

Le niveau recommandé d’API est plus de 16 (Android 4.1).

2014-01-23 10.18.32

Le poster de BlueChat

Pour télécharger l’APK de l’application: https://github.com/cbothorel/codecamp/blob/master/2014/BlueChat.apk

L’application est développé par SISMONDI Federico et NGUYEN Thanh Huy.

Playlisteric

Envoyé par le 28 Jan 2014 dans Applications Android | 0 commentaire

Dans le cadre de l’intersemestre CodeCamp Android 2014, l’application Playlisteric a été développée par Alexandre GASPARD. Le concept de cette application avait été pensé pendant le projet de troisième semestre avec l’aide de Laure LECOEUCHE, Shuting WANG, Pierre CASTELLANETA, Antonin DEVILLE, Guillaume LAURENT, Samuel DUSSON, Gabriel ANDRIN, et Alexandre GASPARD, d’après une idée originale d’Antonin DEVILLE. Le principe de cette application est de pouvoir décider de la playlist musicale à plusieurs, selon un système de vote.

Vous est-il déjà arrivé d’être en soirée avec des amis et de devoir subir la musique d’un seul, qui ne plaît pas forcément à tout le monde, ou pire encore, d’expérimenter l’effet « DJ Youtube » qui vient immanquablement plomber l’ambiance ? Playlisteric est là pour répondre à ce problème en proposant à un téléphone de jouer le rôle de serveur, c’est lui qui diffusera la musique de la soirée. Les autres participants utiliseront l’application en mode client et pourront se connecter au serveur, pour ajouter des chansons à la playlist et pour voter pour les morceaux, ce qui réorganisera la playlist en fonction.

Les téléphones communiquent en Wifi et les musiques diffusées sont pour le moment uniquement celles stockées sur le téléphone serveur.

Le menu

placeit (4)

Le serveur

server_screen

Le client

client_screen_musiclist client_screen_playlist

Application CampEvent

Envoyé par le 26 Jan 2014 dans Applications Android | 0 commentaire

CampEvent réalisée par Emna JRIBI et Aminata SEYE

Capture

Réalisée dans le cadre de l’intersemestre CodeCamp , CampEvent est une application mobile permettant de répertorier tous les événements de Telecom Bretagne qui ont lieu au cours de l’année. L’application est accessible à tous les étudiants de Telecom Bretagne juste en s’identifiant avec l’adresse email de l’école. Une connexion est requise à chaque utilisation pour avoir accès à tous les événements classés par type: sport, soirée, sortie, art et culture, formation, autres événements. Son objectif  principal est de réorganiser et de filtrer les informations concernant les événements envoyées sur Zimbra. Pour ce faire un système de notification  est mis en place afin d’être informé que sur l’activité de notre choix un jour avant qu’elle ne se passe.

Ouch Trap

Envoyé par le 26 Jan 2014 dans Applications Android | 0 commentaire

Cette application a été développée durant la semaine d’inter-semestre « CodeCamp » par Maurice KETEVI, Mohamed Abbes BOURAOUI et Mohamed SDIRI. Il s’agit d’un jeu développé pour support « Android ». Le jeu consistait à faire rouler une bille sur l’écran pour trouver les bombes dissimulées sur le gazon et atteindre les quatre coins du terminal Android sans toucher ces derniers deux fois de suite.

Concrètement nous avons utilisé les API de contrôle des capteurs des appareils mobiles (Smartphone et tablettes) pour faire déplacer une bille sur un gazon. Le capteur auquel nous nous sommes intéressés est l’accéléromètre. Il permet d’obtenir la position de la tablette ou du smartphone suivant trois axes x, y et z. Ensuite il suffit de récupérer cette position avec trois variables que l’on peut manipuler.

20-24 janvier : intersemestre au Téléfab… des projets dans tous les sens !

Envoyé par le 21 Jan 2014 dans Téléfab, Évènements, Blog | 0 commentaire

Depuis lundi, des étudiants de l’EESAB et des étudiants de Télécom Bretagne se plongent dans l’univers passionant des objets et matériaux interactifs ou intelligents.

Petit tour d’horizon :

Signalétique d’intensité sonore dans une salle de classe : capteur de son, moyen d’affichage

avec Jérémy, César, Marine, Lucie et Quentin

SAM_1223

Retranscription d’une image en sensation utilsant des capteurs et des vibrations

avec Solène, Erlé, Alexandre, Erwan et Jean-Baptiste

SAM_1225

Voiture télécommandée équipée de capteurs environnementaux

avec Chloé, Laurianne, Younes, Matias, Carlos, Przemyslaw et Oussama

SAM_1181sm

Convertir des photos en dessin

avec Rodolphe, Marie et Beidi

SAM_1229

Réglage d’ambiance lumineuse selon les données de la station météo connectée

avec Thibault, Hui, Zi, Xing et Zhongxian

SAM_1204

Textile lumineux réagissant au toucher

avec Juliette, Noémi, Corentin, Arlette, Mohamed Ali et Ismaïl

SAM_1228

Clignotant et feux stops pour vélo

avec Aurélien et He

SAM_1226

Rendez-vous entre 11h et 13h30, vendredi 24 janvier au centre vie de Télécom Bretagne pour voir le résultat !

Programmer un ATMega

Envoyé par le 18 Jan 2014 dans Blog, Trucs & astuces | 1 commentaire

Au Téléfab, nous utilisons beaucoup d’Arduino pour prototyper simplement les projets qui sont développés. C’est un outil intéressant, mais qui devrait rester dédié au prototypage, pour plusieurs raisons. Dans mon cas, je dispose de deux Arduino, et quand je commence un projet, je suis obligé de démonter le projet précédent.

Arduino est un projet d’électronique Open Source, et nous avons donc accès au schéma de la carte. Il est donc possible de créer une nouvelle carte, similaire à une Arduino, mais dédiée à l’application qui nous intéresse. Ce n’est pas forcément moins cher qu’une Arduino, à cause du coût de gravure d’un prototype de circuit imprimé. Mais ça permet de finaliser un projet.

Le composant principal des cartes Arduino Uno est l’ATMega328P. C’est un microprocesseur RISC à faible consommation énergétique, basé sur l’architecture AVR développée par Atmel. Il rentre dans la même catégorie que les célébres PIC de MicroChip. Pour plus d’information sur l’architecture ATMega, vous pouvez consulter la page d’Atmel (http://www.atmel.com/products/microcontrollers/avr/default.aspx). D’une manière simplifiée, l’architecutre AVR inclut une EEPROM (dont la taille dépend du modèle de processeur), qui permet de stocker le code qui sera exécuté. Il contient également ce qu’on appelle les « fuses » en anglais (les fusibles), qui permettent de configurer le processeur.

Pour programmer un ATMega, on utilise un programmateur ISP (In-System Programming), qui utilise un protocole de type SPI (non, il n’y a pas de coquilles, l’ordre des lettres est important !). Ce type de programmateur peut se révéler relativement cher, mais comme on dispose d’une carte Arduino qui est équipée pour être programmée en ISP via l’USB, c’est une dépense inutile !

Le programme qui implante le programmateur est disponible dans les exemples de code fournis avec le logiciel Arduino, il s’appelle ArduinoISP.

Contrôle à distance des radiateurs

Envoyé par le 10 Nov 2013 dans Portfolio, Blog | 15 commentaires

Pouvoir contrôler ses radiateurs automatiquement sans avoir besoin de tous les passer en revue est un confort non négligeable dans une maison, en plus d’être source d’économies d’énergie substantielles. Cependant, l’achat d’un programmateur peut se révéler assez cher, surtout si on veut pouvoir contrôler beaucoup de radiateurs indépendamment. En plus de ça, il n’est pas possible de rajouter le dit programmateur dans un logement en location.

Je vous propose ici une solution moins couteuse faite maison, et sans passage de cable. Cette solution s’applique uniquement pour des radiateurs électriques contrôlables par fil pilote. Cette solution s’appuie en particulier sur ce qui est présenté ici : http://1wire.spyou.org/wordpress-mu/2008/03/08/realisation-d-un-gestionnaire-de-fil-pilote-pour-radiateur-en-1wire/

Commençons par un peu de théorie sur le fonctionnement du fil pilote. Le principe est simple : un signal alternatif modulé est envoyé sur une entrée spécifique du thermostat du radiateur. La modulation utilisée permet de spécifier le mode de fonctionnement souhaité. Dans le cas d’un contrôle centralisé, 3 ordres sont principalement intéressant : confort, éteint, et hors gel. Lorsque le radiateur est en mode confort, il chauffe à la température indiqué par le thermostat du radiateur. En mode éteint il ne chauffe pas, et en mode hors gel il garantit une température comprise entre 6 et 8°C selon les modèles. La liste des ordres avec les modulations correspondantes est très bien détaillée ici : http://bernard.lefrancois.free.fr/pilote.htm.

Pour contrôler un radiateur, il faut donc moduler le signal alternatif. On se concentrera uniquement sur les 4 ordres qui utilisent des alternances complètes du signal, à savoir ! éteint, confort, hors-gel, éco. Moduler le signal alternatif pour ces 4 cas là, cela revient à pouvoir bloquer ou laisser passer des alternances du signal, en fonction de ce qui nous intéresse. Qui dit bloquer une alternance dit diode, et dans notre cas l’élément de base du circuit sera une diode 1N4007 (en fait, deux, une par alternance). Avec ces diodes, nous pouvons donc bloquer ou laisser passer le courant dans un sens ou dans l’autre. Ceci dit, il faut pouvoir contrôler par quelle diode on veut laisser passer le signal. On va donc utiliser un photocoupleur capable de gérer des tensions de plus de 240V, j’ai nommé, le MOC3041.

De manière simplifiée, un photocoupleur est un composant séparé en deux parties :

  • une LED intégrée au circuit qui va permettre d’envoyer une impulsion lumineuse à la deuxième partie pour la controler,
  • un phototransistor, qui est un équivalent du transistor NPN, sauf que le collecteur n’est pas activé par du courant, mais par une impulsion lumineuse.

Si on résume, lorsqu’on allume la LED du MOC, le phototransistor est passant, lorsqu’on l’éteint il est bloquant. C’est donc, de manière simplifiée, un interrupteur contrôlée par une tension continue. Le phototransistor du MOC3041 est capable d’accepter plusieurs centaines de Volts, mais une intensité de moins de 1A. Ceci n’est pas problématique, le fil pilote ne consomme pas grand chose (et heureusement, vue sa fonction).

Maintenant qu’on a trouvé les deux composants principaux du circuit, à savoir la diode et le photocoupleur, on peut le dessiner. Le logiciel utilisé ici est Eagle. On a rajouté un fusible (F1) afin de protéger un peu tout ça, mais il n’est pas très utile. On a sélectionné une valeur de 500mA. X1-2 est « l’entrée » du circuit secteur. Il doit être connecté à une phase de votre installation électrique. Comme on a rajouté le fusible, on peut sans trop de risques utiliser la phase du radiateur que l’on veut contrôler. L’avantage de cette solution est qu’elle permet de déployer un contrôleur par radiateur, et elle limite donc le besoin de passer des cables. X1-1 est le fil pilote, à brancher donc sur l’entrée fil pilote du radiateur. Sur le connecteur SV1, l’entrée 1 est la masse, les entrées 2 et 3 permettent respectivement de controler les alternances positives et négatives du fil pilote.

filpilote

Comme on a le circuit, on peut aisément avoir le typon :

fil_pilote_board

Et ce petit circuit devrait permettre de contrôler les radiateurs. Pour confirmer ça, il a été testé, avec un Arduino pour la génération des signaux sur les entrées 2 (qu’on appellera MOCP) et 3 (qu’on appellera MOCN). Le circuit a été réalisé sur une protoboard est branché à un radiateur. En faisant varier à l’aide de l’Arduino les valeurs sur les entrées MOCP et MOCN, on a pu obtenir ce que l’on souhaitait, à savoir :

  • MOCP=1, MOCN=1 : éco
  • MOCP=1, MOCN=0 : éteint
  • MOCP=0,MOCN=1 : hors gel
  • MOCP=0,MOCN=0 : confort

montage_seul_small

montage_rad

Maintenant que le petit module fil pilote est conçu, il reste à l’intégrer dans une installation domotique qui permettent de gérer le radiateur. Ceci sera le sujet d’un autre article. Un boitier imprimable pour le module est actuellement en cours de réalisation, il sera disponible sur cette page prochainement.

Impression 3D et Thingiverse

Envoyé par le 29 Août 2013 dans Blog, Trucs & astuces | 0 commentaire

Si l’impression 3D se démocratise, faire une version électronique de l’objet que l’on souhaite imprimer est souvent difficile. Le scanner 3D sera certainement une solution dans un futur proche à condition de vouloir refaire une pièce existante mais c’est à l’aide d’outils parfois complexes (libres ou payants) comme solidworks, sketchup, freecad, openscad, autocad qu’il faut créer sont objet sur l’ordinateur avant de le voir se matérialiser sur l’imprimante. Sauf si quelqu’un d’autre à fait un objet identique à celui qu’on veut et qu’il en fournit le code !

Heureusement, ceux qui savent faire des objets numériques sont souvent partageurs et il existe des sites qui regorgent d’objets mis à disposition du monde entier par leurs auteurs.

Thingiverse est un de ces sites, on y trouve des milliers d’objets utiles ou pas avec les sources disponibles pour les réimprimer (découper ou fraiser).

Le Téléfab participe à ce site sous une étiquette dédiée http://www.thingiverse.com/Telefab/overview . Pour l’instant nous avons encore peu d’objets mais si vous souhaitez participer en mettant vos créations, n’hésitez pas à me contacter pour que je vous donne la marche à suivre.

Persistance rétinienne et affichage d’image 3D

Envoyé par le 16 Juin 2013 dans Projets | 6 commentaires

Ce projet a été réalisé dans le cadre du projet développement du cursus d’ingénieur de Telecom Bretagne en 2013. Ce projet a été réalisé par CHAIEB Hassen, EL AABOUDI Khalid, RAYNAL Damien et TELLAT Wael.

PENTAX DIGITAL CAMERA

Concept

Le système réalisé est un système très visuel qui permet d’afficher n’importe quelle image sur une sphère en 3D. Grâce à une unique barre de leds (diodes) le système permet, en faisant tourner cette barre à une periode inférieure à la persistance rétinienne (50ms) , d’afficher l’image sur la surface de la sphère.

Matériel

  • Carte Arduino Mega
  • 40 leds RGB (rouge,vert ,bleu)
  • une photodiode
  • un moteur electrique
  • un support mécanique

Déroulement du projet

Premiers tests:

Pour être sûr que notre approche était la bonne, nous avons d’abord réalisé des tests de notre
code et du circuit avec un nombre réduit de LEDs (3 puis 13). Ceci nous permettait également de
vérifier qu’il n’y avait pas de perte de luminosité ou autre problème engendré par le nombre
important de soudures.

IMAG0331

Développement de la solution:

Le développement de notre solution s’est fait en deux principales parties :

La première étant le développement d’une interface graphique en Java :
qui à partir d’une image, nous donne une matrice simplifiée prête à être affichée.
La seconde étant la programmation du circuit, qui à partir de la matrice obtenue, va contrôler l’allumage des diodes.

I.  L’interface graphique

  1. Rôle principal
    Prend en entrée une image et renvoie une matrice divisant image en 40 lignes, et autant de colonnes que nécessaire. Cette matrice contient les codes couleurs qui permettront d’afficher l’image.
  2. Le code:
    https://github.com/telefab/POV3DLED/tree/master/ImageConverter
  3. Comment ca marche ?
    • Ouvrir une image
    • Dessiner la matrice
    • Exemple
      world_map_color_continents
      map40
  4. Fonctionnalités principales
    • Simplification de la couleur :
      Comme nous utilisons des diodes RGB, nous sommes limités à  6 couleurs : Blanc-Rouge-Vert-Bleu-Cyan-Magenta-Jaune.
      Nous allons donc récupérer l’information sur les couleurs de l’image, et décider, selon ces informations, quelle est la couleur « la plus proche » parmi nos 6 couleurs. Ceci est réalisé par les fonctions :

      • protected int arrondi (int x){ } :
        Cette fonction reçoit un entier (couleur) entre 0 et 255 et renvoie 0 ou 1 pour dire que cette couleur existe ou pas.
        Ce choix est fait selon une valeur limite d’existence de la couleur qu’on a fixé à 110
        Sans titre
        Par exemple :
        Ici, Arrondi(r) renvoie 1 et Arrondi(b)=Arrondi(g)=0.
        Donc on décide que c’est la couleur Rouge.
      • protected int correspondanceNombre (Color c){ }fait la correspondance couleur->nombre
    • Découpage de l’image :
      Une fois le nombre de lignes de la matrice résultantes choisi, ici fixé à 40, on calcule le nombre de colonnes (=largeur de l’image/(hauteur de l’image /40)). Puis on découpe notre image en petits carrés.
    • Moyennage des couleurs des pixels de chaque carré :Une fois l’image découpée en carrés, on parcourt ces carrés en faisant la moyenne des couleurs de chaque carré, 3 moyennes sont calculées : la moyenne Rouge, Bleue et Verte. On peut ensuite déduir la couleur
    • Exportation de la matrice en fichier texte

A la fin du traitement un fichier texte est créé, utilisant comme séparateur « ; » pour les lignes et « , » pour les colonnes.

II.La programmation du circuit Arduino

  1. Rôle principal :
    Le circuit Arduino prend en entrée la matrice retournée par l’interface graphique et contrôle l’affichage de chaque diode (couleur et temps d’affichage)
  2. Code
    povled.ino
  3. Fonctions principales
    • Conversion texte en matrice : (Pas encore implémenté)
    • Conversion chiffre en couleur :
      C’est ‘opération inverse que ce qui a été fait dans l’interface graphique, mais ici, c’est des courants qu’on contrôle : Pour afficher la diode 5 en rouge:

              //initialisation
              for (int i=0;i<40;i++) {digitalWrite( leds[i], LOW);}; 
              //Allumage des leds concernees
              digitalWrite( leds[5], HIGH);}
              //initialisation des couleurs
              digitalWrite( r, HIGH);
              digitalWrite( g, HIGH);
              digitalWrite( b, HIGH);
              //Allumage de la couleur
              digitalWrite( r, LOW);
    • Allumage colonne/colonne :Grâce à une boucle, les diodes d’une même colonne sont allumées les unes après les autres (la persistance rétinienne permet de voir une colonne allumée).
      Une deuxième boucle permet de passer d’une colonne à une autre.
    • Synchronisation grâce à un capteur d’intensité lumineuse
      Grâce à un capteur, le passage de notre système par sa position initiale va être détecté. Tout de suite, l’allumage des colonnes reprend à la première colonne.