P5 IOT 2018 : Différence entre versions

De Wiki d'activités IMA
(Page créée avec « ==Cahier des charges== ===Présentation générale du projet=== ====Contexte==== Dans le cadre du module transversal Internet des Objets (IOT), nous avons choisi de réali... »)
 
(Carte extension)
 
(82 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
==Cahier des charges==
+
= Présentation générale du projet =
===Présentation générale du projet===
 
====Contexte====
 
Dans le cadre du module transversal Internet des Objets (IOT), nous avons choisi de réaliser un dessous de verre connecté. En effet, ces technologies sont très en vogue d'un point de vue commercial. De plus, cet élément peut être un plus pour notre projet de fin d'étude (PFE) puiqu'il s'agit de réaliser une table de bar connectée.
 
  
====Objectif du projet====
+
<p align="justify"></p>
L'objectif du projet est de concevoir le dessous de verre afin d'avoir un produit fini et de démonstration. Nous allons donc commencer par établir le cahier des charges, puis réaliser la partie logiciel et enfin hardware.
+
<BR \>
 +
<BR \>
 +
<BR \>
  
====Description du projet====
+
== Description du projet ==
L'idée est d'avoir un support pour les verres afin d'avoir un moyen de protéger la table que l'on doit réaliser pour notre PFE. De plus, il est intéressant de rendre cet objet connecté pour intéragir avec la table. Ses principales fonctionnalités seront de détecter la présence d'un verre, de réaliser un contrôle de la température du verre et de la température ambiante, d'avoir un retour visuel de la température via des LEDs RGB, enfin nous souhaitons faire une détection et une lecture de tag NFC qui sera placé sous le verre afin de transmettre des informations sur la boisson(son nom, sa température idéale de dégustation ...)
 
  
Par la suite on pourrait envisager une application mobile qui donnerait toute sortes d'informations, comme un historique des boissons consommés, des alertes de temperatures lorsque la boisson ce réchauffe ou refroidie, des statistiques sur le temps mis à consommer la boisson, ou la durée passée avec le verre en main ...
 
  
====Choix techniques : matériel et logiciel====
 
* LEDs RGB NeoPixel
 
* SmartEveryThing FOX V2 qui embarque déjà le module BLE, le lecteur NFC et un premier capteur de température.
 
<br>
 
Nous souhaitons réaliser le dessous de verre en plexi avec un miroir gravé au Fabricarium sur le dessus qui aura l'avantage d'être facilement nettoyable.
 
Nous avons une contrainte de taille que nous avons fixé à 10x10cm dans l'idéal.
 
  
==Étapes du projet==
+
[[Fichier:IoT2019_PapLight_affiche.jpg |  720px| center |]]
* Dans un premier temps, nous allons réaliser un choix matériel et logiciel.
 
* Puis nous allons réaliser quelques tests pour son bon fonctionnement pour la réalisation du projet.
 
* Réalisation de la partie logicielle
 
* Réalisation de la partie mécanique/hardware
 
* Test
 
  
==Suivi de l'avancement du Projet==
 
  
===Séance 1===
+
=== Contexte ===
* Réalisation du cahier des charges.
 
* Choix matériel : SmartEveryThing FOX V2 pour la carte du microP qui a l'avantage d'embarquer le module BLE et le lecteur NFC et même un capteur de température.
 
* Choix logiciel : pour un gain de temps sur ce genre de petit projet, nous avons opté pour l'IDE arduino.
 
* problème : le smarteverything a juste un émulateur de tag et pas de lecteur
 
* lecteur de chez Seeed Studio fonctionne sous 5V et le RFDuino sous 3V donc pas possible
 
* donc on part sur un RFDuino RFD22102 + un Shield NFC de  DFRobot DFR0231
 
* on ne peut utiliser ce shield NFC car il communique en série et il n'y en a qu'une sur le RFDuino (du moins pour effectuer les tests et la programmation)
 
  
On obtient donc :
+
<p align="justify">Le nœud papillon est un élément indispensable en soirée. Dans la société d'aujourd'hui, il est signe de classe et de distinction. Néanmoins, depuis des décennies, une grande partie de la population a les moyens de s'en offrir. Ainsi, de nos jours, on peut se retrouver avec des personnes dans une même soirée avec le même nœud papillon. Même couleurs, même forme, même texture ou encore même motif. On dit STOP.</p>
*Matériel :
 
**Rfduino
 
**Bouton pour détecter la présence d'un verre
 
**2 capteurs de température TMP36 (et donc pouvoir comparer la température d’ambiance et celle du verre)
 
**Shield DFR0231 de DFRobot pour la lecture du NFC, il faudra tester le code sur un arduino MEGA ou due avant de le mettre sur le RFduino
 
**Anneau de 24 leds neopixels par adafruit, afin d'avoir un retour visuel sur l’état du sous bock
 
**Batterie externe Samsung, qui permettra l'alimentation du Rfduino et des composant, en branchant son shield USB directement sur la batterie.
 
*Logiciel :
 
**L'IDE arduino, comme indiqué précédemment permettra un développement rapide ainsi qu'une gestion plus aisé des communications BLE, du module NFC, ainsi que des leds.
 
**L'application android sera minimaliste et permettra uniquement la connexion puis la visualisation des données provenant du sous bock. Néanmoins, on pourrait envisager avec plus de temps des graphiques pour suivre l'évolution des températures, des alertes lorsque la boisson se réchauffe ou refroidis, le temps mis pour terminer la boisson, les boissons les plus consommées,  le nombre de boissons consommés dans la semaine ou le mois et bien d'autres choses.  
 
La suite de cette séance a été consacré à la prise en main du RFduino, ainsi qu'au test de communication BLE avec un téléphone android. En effet, il n'existe pas d'application de test ou d'exemple disponible sur le site officiel ou sur le github du fabricant. Plusieurs tutos on été testé, et après de longues recherches infructueuse nous avons fini par trouver un projet à compiler sous androidStudio utilisable.
 
Des solutions à base de projet eclipse ou de AppInventor n'ont pas fonctionné car elles ne supportent pas le BLE. L'application suivante  https://github.com/donaldhwong/rfduino permet donc la connexion puis la visualisation de caractères ascii envoyés par le RFduino (ainsi que l'envoi vers le duino, mais ce n'est pas pertinent ici).
 
  
===Séance 2===
+
[[Fichier:PapLight1_Stop.png |  320px| center]]
Lors de cette séance nous avons cherché à con troller le fonctionnement des leds avec le RFduino. En effet, malgré l'utilisation de l'IDE, la librairie prévu pour les cartes arduino ne peut se compiler pour le RRFduino. Nous avons donc trouvé et adapté des fonctions ajustables dans notre code et qui permettront d'envoyer les données de commande une a une aux leds. Ces fonctions remplissent donc un tableau ajusté au nombre de led*3 canaux de couleurs puis envois toutes les données sur le GPIO indiqué. Ces fonctionnalités sont donc implémentés dans les 2 fonctions suivantes :
 
  void setPixelColor(int pixel, byte red, byte green, byte blue)
 
  void showStrip()
 
  
Nous avons aussi réussi a récupérer la températures des capteurs, avec les commandes suivantes :
+
<BR \>
  int sensorValueExt = analogRead(PinTempExt);
 
  float outputValueExt = (((float)(sensorValueExt))*3300.0)/1023.0;
 
  float outputTempExt = ( (float) outputValueExt - 500.0) /10.0;
 
Il y a donc la récupération de la valeur analogique, puis conversion en millivolts puis en degrés C.
 
  
Enfin nous avons testé le fonctionnent du lecteur NFC, en exécutant le code present sur le wiki du constructeur sur un arduino DUE, possédant donc deux ports séries. (http://www.dfrobot.com/wiki/index.php/NFC_Module_for_Arduino_(SKU:DFR0231) )
+
=== Objectif du projet ===
Celui ci fonctionne et va donc permettre la création d'une fonction qui associe au numéro d'un tag le nom d'une boisson et le retourne.
 
Cette fonction pourra par la suite être implémenté dans le RFduino monopolisant son port série. (L'utilisation d'un virtual serial a aussi été envisagé mais ne semble ici aussi pas compatible avec le RFduino)
 
  
===Séance 3===
+
<p align="justify">L'objectif de ce projet était d'imaginer, modéliser et créer un objet connecté. Cet objet devait avoir une réelle utilité. Tout cela devait être fait en 24 h reparties en 6 séance sur deux semaines. Nous avons choisi de réaliser un nœud papillon composé de leds et connecté à une application mobile. Ce nœud serait personnalisable avec la possibilité de choisir différents motifs parmi une liste sur l'application mobile, ainsi que leurs couleurs. Ainsi, avec votre PapLight, une infinité de style s'offre à vous. Des plus sobres au plus voyants, vous pouvez contrôler et le changer votre style à volonté en deux ou trois clics sur votre smartphone.</p>
Lors de cette séance nous avons essayé d'assembler les différentes pièces logicielles validés individuellement pour l'arduino.  
+
<p align="justify">Disco ou année 80, ne choisissez plus en magasin. Avec PapLight, contrôlez votre style du bout des doigts.</p>
Malheureusement, lors de nos tests l'activation des fonctions bluetooth sur le RFduino entraînaient des ralentissement et des bugs sur l'actualisation des leds.  
+
<BR \>
Après de longues recherches, nous avons trouvé une solution dans le manuel de programmation BLE fourni par rfduino.  
 
En effet, on ne peut anticiper le moment ou le BLE va communiquer (advertisement par exemple) et lorsqu'il y a émission, les instructions en cours sont arrêtées. Cela pose donc évidemment problème lorsque l'émissions des donnés destinés aux leds est effectué.  
 
Le document propose donc de placer la fonction suivante avant d'effectuer du code sensible au timing
 
  while (RFduinoBLE.radioActive) ;
 
En plaçant cette instruction au début de la fonction showStrip(), nous n'avons plus constaté de soucis.
 
Une augmentation de la valeur de RFduinoBLE.advertisementInterval permet aussi de laisser plus de temps à nos instructions.
 
  
Nous nous sommes aussi attaqué a un autre aspect de ce projet, la réalisation de la maquette.
+
=== Cahier des charges ===
Nous solutions avoir un sous bock rond, avec un disque central mobile permettant de recevoir le verre et de s'enfoncer sous son poids afin d'actionner le bouton.
 
L’épaisseur et nécessairement assez importante pour ce premier prototype, et ce en grande partie a cause de la taille imposante de notre batterie. Mais il serait par la suite envisageable de la réduire avec une batterie de téléphone portable par exemple, et/ou un module de recharge Qi (sans fil)
 
L'idée de base était de réaliser le prototype dans du plexiglas, principalement pour l'aspect esthétique ainsi que pour la qualité de la surface après découpe. En effet cela permettrait d'assurer une bonne liaison entre le disque qui s’enfonce pour recevoir le verre et l'autre.
 
Nous avons donc préparé des dessins vectoriels du socle, d'anneaux extérieurs à empiler afin de parvenir a la bonne hauteur ainsi que le dessus.
 
Le fabricarium ne disposant de plexiglas, nous avons décidé d'adapter nos dessins de découpe pour un modèle en carton. Le prototypage sera alors plus rapide et moins coûteux.
 
Nous avons donc remplacé les anneaux extérieurs par un rectangle a replier, permettant d'atteindre directement la bonne hauteur. Le dessus a aussi été séparé en plusieurs couches, pour remplacer les gravures en profondeur permettant d’intégrer les leds, le bouton et le capteur de température par des découpes.
 
Les fichiers utilisés sont disponibles ici. [[Fichier:Model_Laser_SousBock.zip]]
 
  
===Séance 4===
+
<p align="justify">Avec le PapLight, nous avons pour objectif de vous proposer un nœud papillon composé de presque 50 leds sous sa première version afin d'avoir un beau rendu. De plus, ce nœud papillon serait connecté en bluetooth sur votre smartphone pour le contrôler et le modifier selon votre volonté. Ainsi, une fois connecté en bluetooth aux nœud papillon vous aurez la possibilité de choisir le motif que vous souhaitez, ainsi que sa couleur.</p>
Le code de lecture Nfc n'ayant pas encore fonctionné sur le RFduino, nous avons essayé de le porter. Malheureusement celui ci n'a pas fonctionné comme c’était le cas avec l'arduino DUE, en effet le RFduino n'est pas supposé être capable de dépasser 9600 bauds avec une communication BLE. Or le module NFC DFrobot envois les données à la vitesse de 115200 bauds.
+
<BR \>
Nous avons tout de même réussi après de nombreux tests et recherches, en ajoutant une ligne permettant de passer outre la limite de 9600 puis en réduisant la fréquence des advertisements bluetooth afin de gagner en temps.
 
  overide_uart_limit = true;
 
  RFduino.BLEadvertisementInterval=1000;
 
[[Fichier:Error_BLE_sb.PNG|600px]]<br>
 
Avec ces ajouts, nous avons réussi à extraire les donnés d'un tag, et les envoyer via BLE.  
 
Par contre, en alimentant le RFduino avec le shield USB, nous avons rencontré un nouveau problème : Si le port USB est branché sur un pc, pas de soucis la liaison série reste libre et disponible pour le shield nfc et le retour par communication BLE, mais si celui est alimenté par notre batterie externe, rien n'arrivait. Cela est du au fait que les pin RX et TX du port usb du batery bank sont court-circuitée afin d'indiqué à un éventuel telephone la possibilité de recharger avec un courant supérieur à 500mA. Ce court circuit à donc aussi pour effet de bloquer toute liaison serie du RFduino, et donc nous ne recevions rien via l'application android. La solution : ne pas enfoncer le port usb complètement dans la batterie, afin de ne relier que les broches VCC-GND qui sont plus longues.  
 
  
Cependant lors de la fusion de ce programme, avec la version complète, le programme ce bloque dans un état et ne réagi plus à rien. La liaison série étant paralysé pour le shield NFC, malgré de nombreux tests nous n'avons pas pu débloquer la situation.
+
== Choix techniques : matériel et logiciel ==
  
La suite de la séance à été consacré à la finalisation de la maquette et la réalisation de la planche A3
+
* <p align="justify">Côté Hardware nous avons : </p>
 +
** 6*TLC5947
 +
** 48* [https://fr.farnell.com/avago-technologies/asmb-mtb1-0a3a2/led-rgb-plcc4-surface-noire/dp/2401106 LED RGB ASMB-MTB1-0A3A2]
 +
** 1* Atmega 328P
 +
** 1* Qwartz FA238
 +
** 1* module Bluetooth MDBT40
 +
** 1* régulateur de tension 5V/3.3V LM M17 MP33 (SOT223)
 +
** 3* diodes SSS3P5-M3/84A
 +
** 1 smartphone Android
  
===Séance 5===
+
<BR \>
[[Fichier:Connexion_BLE_sb.png|300px]]
 
[[Fichier:NFC_BLE_sb.png|300px]]
 
[[Fichier:Temperature_BLE_sb.png|300px]]
 
  
== Fichiers Rendus ==
+
* <p align="justify">Côté logiciel nous avons choisi d'utiliser l'application développée par Google App Inventor. Elle nous a permis de gagner du temps car elle simplifie le développement des applications sous Android et le rend accessible même pour les novices et ceux qui ne sont pas familiers avec les langages de programmation avec son interface graphique.  </p>
*[[Fichier:Model_Laser_SousBock.zip]]
+
 
*[[Fichier:Sous_bock_IoT.zip]]
+
[[Fichier:PapLight2_AppInv.jpg |  320px| center]]
*[[Fichier:sous_bock_IoT.pdf]]
+
 
 +
== Étapes du projet ==
 +
* Étape 1 : trouver le projet
 +
* Étape 2 : voir la faisabilité
 +
* Étape 3 : lister le matériel nécéssaire à la réalisation du projet
 +
* Étape 4 : commande du
 +
* Étape 5 : création de la carte électronique sou eagle
 +
* Étape 6 : programmation du nœud papillon
 +
* Étape 7 : programmation de l'application mobile
 +
<BR \>
 +
 
 +
=Suivi de l'avancement du Projet=
 +
 
 +
 
 +
== Design de l'objet ==
 +
 
 +
<p align="justify">Pour notre PapiLight, nous avons choisi d'imprimer une carte électronique directement en forme de nœud papillon réalisé sous ulistrator. Ce choix nous a permis de définir avec précision au préalable la position de tous nos composants. Ainsi, nous avons pu placer les leds sur la face avant du PapLight et les autres composant électronique sur la face arrière. De plus, pour faute de place, nous avons choisi de placer le module Bluetooth sur une carte d'extension qui pourrait être caché sous le col de la chemise.</p>
 +
<BR \>
 +
<BR \>
 +
 
 +
[[Fichier:PapLight3_formefinal.jpg |  320px| center |]]
 +
 
 +
== Création de la carte électronique ==
 +
 
 +
 
 +
<p align="justify">Concernant les cartes électroniques, nous avons donc choisi de créer une carte suivant la forme du nœud sur laquelle se trouvera les 50 LEDs sur une face et les contrôleurs sur l'autre face, tandis qu'une autre carte hébergera le module Bluetooth et le régulateur de tension pour ce dernier. L'alimentation 5V continu nécessaire au bon fonctionnement de notre projet sera ainsi branchée sur cette seconde carte qui nous laisse davantage de libertés que la première.</p>
 +
 
 +
 
 +
=== Carte extension ===
 +
 
 +
<p align="justify">Tout d'abord, nous allons parler de la seconde carte. En effet, de part l'absence de contrainte sur cette carte, celle-ci a été nettement plus simple à concevoir.</p>
 +
 
 +
[[Fichier:IoT2019_PapLight_carte-extension_schematic.png | 480px | center | ]]
 +
 
 +
[[Fichier:IoT2019_PapLight_carte-extension_board.png | 480px | center | ]]
 +
 
 +
=== Carte principale ===
 +
 
 +
<p align="justify">La carte principale, elle, a été plus difficile à concevoir et seule la moitié droite du nœud est presque finie. La difficulté de la conception de cette carte repose sur le fait de placer les 48 LEDs RGB sur une surface inférieure à 7.5*4.5 cm² et de les relier aux connecteurs des différents contrôleurs qui sont sur l'autre surface.</p>
 +
 
 +
<p align="justify">Au cours de ce projet, il nous a donc d'abord fallu importer un fichier au format bitmap (.bmp) afin de s'en servir comme contour de carte. Pour cela, il nous faut utiliser une des différentes fonctions d'importation de fichier que nous pouvons retrouver en cliquant sur le bouton 'ULP'.</p>
 +
 
 +
[[Fichier:IoT2019_Paplight_ULP-bouton-importation-forme-sous-eagle.png | 720px  | thumb | center | Le bouton ULP permet de sélectionner une fonction afin d'importer une forme pour la carte électronique, par exemple]]
 +
 
 +
[[Fichier:IoT2019_Paplight_fonction-imoprtation-image.png | thumb | 1080px | center | La fonction 'import-bmp' permet à l'utilisateur d'importer un fichier au format bitmap ]]
 +
 
 +
<p align="justify">Il nous faut ensuite sélectionner les réglages tels que la couleur sur laquelle doit se baser la forme ou encore l'échelle de taille correspondant au fichier. Nous pouvons ensuite visualiser la forme et placer nos composants à l'intérieur avant de les router.</p>
 +
 
 +
[[Fichier:IoT2019_Paplight_forme-importee-sur-eagle.png | 320px | thumb | center | Visualisation de la forme sur le PCB]]
 +
 
 +
<p align="justify">Nous réalisons donc le schematic de notre carte constitué des LEDs et de leur contrôleurs, du microprocesseur et des autres composants. Il est ensuite nécessaire de les placer sur la carte établie au sein du nœud importé plus tôt. Comme dit auparavant, la difficulté résulte donc de l'espace limité au sein de ce nœud et il est donc indispensable de placer au plus près des contrôleurs les différentes LEDs en les orientant aussi de manière à éviter le plus de vias possible entre la partie bot et la partie top de la carte. </p>
 +
 
 +
[[Fichier:IoT2019_PapLight_main_schema.png | 720px | center |]]
 +
 
 +
[[Fichier:IoT2019_PapLight_main_board.png | 720px | center |]]
 +
 
 +
 
 +
<p align="justify">Nous avons donc pu router la moitié droite du nœud papillon au cours de ce projet à quelques LEDs près et nous devrions donc pouvoir essayer par la suite un programme après impression et soudure des composants sur la carte. </p>
 +
 
 +
 
 +
<BR \>
 +
<BR \>
 +
<BR \>
 +
 
 +
== Programmation du noeud papillon ==
 +
== Programmation de l'application mobile ==
 +
 
 +
<p align="justify">Pour programmer l'application mobile, nous avons choisi d'utiliser App Inventor. App Inventor permet à chacun de créer sa propre application sur Smartphone android. Son fonctionnement est simple. L'utilisateur emboîte des composants visuels, associés à des blocks de codes pour paramétrer l'application.</p>
 +
<BR \>
 +
 
 +
[[Fichier:PapLight_AppInv1.jpg |  520px| center]]
 +
 
 +
<p align="justify">Il est possible d'assembler des fonctionnalités simples comme pour un puzzle : boutons, zones de textes, images, sons, géolocalisation, sélection de contact ou de numéro de téléphone, accès à une mini base de données, scanneur de code-barres ect.<p/>
 +
<BR \>
 +
[[Fichier:PapLight_AppInv2.jpg |  480px| center]]
 +
 
 +
==Séance 1==
 +
 
 +
• Choix du sujet <BR \>
 +
• Redaction du cahier des charges du projet <BR \>
 +
• Etude de la faisabilité <BR \>
 +
• Choix du matériel à utiliser <BR \>
 +
 
 +
==Séance 2==
 +
• Rédaction de la liste du matériel <BR \>
 +
• Récupération des schémas électroniques pour concevoir la carte
 +
 
 +
==Séance 3==
 +
 
 +
• Continuation du design de la carte électronique <BR \>
 +
• Conception de la forme de la carte et importation sur Eagle de cette forme
 +
 
 +
==Séance 4==
 +
 
 +
==Séance 5==
 +
 
 +
= Fichiers Rendus =
 +
 
 +
=== Cartes électroniques ===
 +
 
 +
==== Carte principale ====
 +
[[Fichier:IoT2019_PapLight_carte-principale.zip]]
 +
 
 +
==== Carte secondaire ====
 +
[[Fichier:IoT2019_PapLight_carte-secondaire.zip]]
 +
 
 +
= Bibliographie =
 +
 
 +
== Composants électroniques ==
 +
 
 +
=== Module Bluetooth ===
 +
[https://www.seeedstudio.com/MDBT40-ANT-P256V3-nRF51422-based-BLE-Module-p-2507.html Site fournisseur de notre module Bluetooth]
 +
 
 +
 
 +
=== Régulateur de tension 5-3.3 V ===
 +
[https://octopart.com/lm1117mp-3.3-texas+instruments-24812449 Site avec liens commerciaux, documentation et librairies pour la CAO]
 +
 
 +
 
 +
=== LEDs RGB ===
 +
* [https://fr.farnell.com/avago-technologies/asmb-mtb1-0a3a2/led-rgb-plcc4-surface-noire/dp/2401106 Lien d'achat]
 +
* [http://www.farnell.com/datasheets/2111106.pdf?_ga=2.114606791.1148764771.1547121729-1969629952.1546967250 Documentation]
 +
 
 +
 
 +
<BR \>
 +
<BR \>
 +
 
 +
== Tutoriels ==
 +
 
 +
=== Utilisation des contrôleurs de LEDs ===
 +
[https://projets-ima.plil.fr/mediawiki/index.php/IMA4_2017/2018_P18 Wiki projet IMA4 utilisant ces contrôleurs de LEDs]
 +
 
 +
=== Utilisation du module Bluetooth ===
 +
[https://projets-ima.plil.fr/mediawiki/index.php/IMA4_2017/2018_P15 Wiki projet IMA4 utilisant le module Bluetooth]

Version actuelle datée du 21 janvier 2019 à 19:22

Présentation générale du projet




Description du projet

IoT2019 PapLight affiche.jpg


Contexte

Le nœud papillon est un élément indispensable en soirée. Dans la société d'aujourd'hui, il est signe de classe et de distinction. Néanmoins, depuis des décennies, une grande partie de la population a les moyens de s'en offrir. Ainsi, de nos jours, on peut se retrouver avec des personnes dans une même soirée avec le même nœud papillon. Même couleurs, même forme, même texture ou encore même motif. On dit STOP.

PapLight1 Stop.png


Objectif du projet

L'objectif de ce projet était d'imaginer, modéliser et créer un objet connecté. Cet objet devait avoir une réelle utilité. Tout cela devait être fait en 24 h reparties en 6 séance sur deux semaines. Nous avons choisi de réaliser un nœud papillon composé de leds et connecté à une application mobile. Ce nœud serait personnalisable avec la possibilité de choisir différents motifs parmi une liste sur l'application mobile, ainsi que leurs couleurs. Ainsi, avec votre PapLight, une infinité de style s'offre à vous. Des plus sobres au plus voyants, vous pouvez contrôler et le changer votre style à volonté en deux ou trois clics sur votre smartphone.

Disco ou année 80, ne choisissez plus en magasin. Avec PapLight, contrôlez votre style du bout des doigts.


Cahier des charges

Avec le PapLight, nous avons pour objectif de vous proposer un nœud papillon composé de presque 50 leds sous sa première version afin d'avoir un beau rendu. De plus, ce nœud papillon serait connecté en bluetooth sur votre smartphone pour le contrôler et le modifier selon votre volonté. Ainsi, une fois connecté en bluetooth aux nœud papillon vous aurez la possibilité de choisir le motif que vous souhaitez, ainsi que sa couleur.


Choix techniques : matériel et logiciel

  • Côté Hardware nous avons :

    • 6*TLC5947
    • 48* LED RGB ASMB-MTB1-0A3A2
    • 1* Atmega 328P
    • 1* Qwartz FA238
    • 1* module Bluetooth MDBT40
    • 1* régulateur de tension 5V/3.3V LM M17 MP33 (SOT223)
    • 3* diodes SSS3P5-M3/84A
    • 1 smartphone Android


  • Côté logiciel nous avons choisi d'utiliser l'application développée par Google App Inventor. Elle nous a permis de gagner du temps car elle simplifie le développement des applications sous Android et le rend accessible même pour les novices et ceux qui ne sont pas familiers avec les langages de programmation avec son interface graphique.

PapLight2 AppInv.jpg

Étapes du projet

  • Étape 1 : trouver le projet
  • Étape 2 : voir la faisabilité
  • Étape 3 : lister le matériel nécéssaire à la réalisation du projet
  • Étape 4 : commande du
  • Étape 5 : création de la carte électronique sou eagle
  • Étape 6 : programmation du nœud papillon
  • Étape 7 : programmation de l'application mobile


Suivi de l'avancement du Projet

Design de l'objet

Pour notre PapiLight, nous avons choisi d'imprimer une carte électronique directement en forme de nœud papillon réalisé sous ulistrator. Ce choix nous a permis de définir avec précision au préalable la position de tous nos composants. Ainsi, nous avons pu placer les leds sur la face avant du PapLight et les autres composant électronique sur la face arrière. De plus, pour faute de place, nous avons choisi de placer le module Bluetooth sur une carte d'extension qui pourrait être caché sous le col de la chemise.



PapLight3 formefinal.jpg

Création de la carte électronique

Concernant les cartes électroniques, nous avons donc choisi de créer une carte suivant la forme du nœud sur laquelle se trouvera les 50 LEDs sur une face et les contrôleurs sur l'autre face, tandis qu'une autre carte hébergera le module Bluetooth et le régulateur de tension pour ce dernier. L'alimentation 5V continu nécessaire au bon fonctionnement de notre projet sera ainsi branchée sur cette seconde carte qui nous laisse davantage de libertés que la première.


Carte extension

Tout d'abord, nous allons parler de la seconde carte. En effet, de part l'absence de contrainte sur cette carte, celle-ci a été nettement plus simple à concevoir.

IoT2019 PapLight carte-extension schematic.png
IoT2019 PapLight carte-extension board.png

Carte principale

La carte principale, elle, a été plus difficile à concevoir et seule la moitié droite du nœud est presque finie. La difficulté de la conception de cette carte repose sur le fait de placer les 48 LEDs RGB sur une surface inférieure à 7.5*4.5 cm² et de les relier aux connecteurs des différents contrôleurs qui sont sur l'autre surface.

Au cours de ce projet, il nous a donc d'abord fallu importer un fichier au format bitmap (.bmp) afin de s'en servir comme contour de carte. Pour cela, il nous faut utiliser une des différentes fonctions d'importation de fichier que nous pouvons retrouver en cliquant sur le bouton 'ULP'.

Le bouton ULP permet de sélectionner une fonction afin d'importer une forme pour la carte électronique, par exemple
La fonction 'import-bmp' permet à l'utilisateur d'importer un fichier au format bitmap

Il nous faut ensuite sélectionner les réglages tels que la couleur sur laquelle doit se baser la forme ou encore l'échelle de taille correspondant au fichier. Nous pouvons ensuite visualiser la forme et placer nos composants à l'intérieur avant de les router.

Visualisation de la forme sur le PCB

Nous réalisons donc le schematic de notre carte constitué des LEDs et de leur contrôleurs, du microprocesseur et des autres composants. Il est ensuite nécessaire de les placer sur la carte établie au sein du nœud importé plus tôt. Comme dit auparavant, la difficulté résulte donc de l'espace limité au sein de ce nœud et il est donc indispensable de placer au plus près des contrôleurs les différentes LEDs en les orientant aussi de manière à éviter le plus de vias possible entre la partie bot et la partie top de la carte.

IoT2019 PapLight main schema.png
IoT2019 PapLight main board.png


Nous avons donc pu router la moitié droite du nœud papillon au cours de ce projet à quelques LEDs près et nous devrions donc pouvoir essayer par la suite un programme après impression et soudure des composants sur la carte.





Programmation du noeud papillon

Programmation de l'application mobile

Pour programmer l'application mobile, nous avons choisi d'utiliser App Inventor. App Inventor permet à chacun de créer sa propre application sur Smartphone android. Son fonctionnement est simple. L'utilisateur emboîte des composants visuels, associés à des blocks de codes pour paramétrer l'application.


PapLight AppInv1.jpg

Il est possible d'assembler des fonctionnalités simples comme pour un puzzle : boutons, zones de textes, images, sons, géolocalisation, sélection de contact ou de numéro de téléphone, accès à une mini base de données, scanneur de code-barres ect.<p/>

PapLight AppInv2.jpg

Séance 1

• Choix du sujet
• Redaction du cahier des charges du projet
• Etude de la faisabilité
• Choix du matériel à utiliser

Séance 2

• Rédaction de la liste du matériel
• Récupération des schémas électroniques pour concevoir la carte

Séance 3

• Continuation du design de la carte électronique
• Conception de la forme de la carte et importation sur Eagle de cette forme

Séance 4

Séance 5

Fichiers Rendus

Cartes électroniques

Carte principale

Fichier:IoT2019 PapLight carte-principale.zip

Carte secondaire

Fichier:IoT2019 PapLight carte-secondaire.zip

Bibliographie

Composants électroniques

Module Bluetooth

Site fournisseur de notre module Bluetooth


Régulateur de tension 5-3.3 V

Site avec liens commerciaux, documentation et librairies pour la CAO


LEDs RGB




Tutoriels

Utilisation des contrôleurs de LEDs

Wiki projet IMA4 utilisant ces contrôleurs de LEDs

Utilisation du module Bluetooth

Wiki projet IMA4 utilisant le module Bluetooth