Aimant intelligent : Différence entre versions
(→Semaine 9) |
|||
(35 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | <include nopre noesc src="/home/pedago/pimasc/include/video-AimantIntelligent-iframe.html" /> | ||
__TOC__ | __TOC__ | ||
<br style="clear: both;"/> | <br style="clear: both;"/> | ||
Ligne 5 : | Ligne 6 : | ||
====Contexte==== | ====Contexte==== | ||
− | Les objets connectés sont de plus en plus présent et deviendront très utiles au quotidien. Vous voulez avoir une liste de course ou un rappel sur un rendez-vous que vous avez dans la journée, tout | + | Les objets connectés sont de plus en plus présent et deviendront très utiles au quotidien. Vous voulez avoir une liste de course ou un rappel sur un rendez-vous que vous avez dans la journée, tout ceci peut être possible grâce aux objets connectés. |
====Objectif du projet==== | ====Objectif du projet==== | ||
Ligne 14 : | Ligne 15 : | ||
− | Le but de ce projet est de développer un "aimant" qui utilisera une balise BLE (Bluetooth Low Energy) qui nous permettra de partager des données simplement et localement depuis un téléphone portable | + | Le but de ce projet est de développer un "aimant" qui utilisera une balise BLE (Bluetooth Low Energy) qui nous permettra de partager des données simplement et localement depuis un téléphone portable. Cela reprend l'idée du post-it sur le réfrigérateur. |
On sépare ce projet en deux parties : | On sépare ce projet en deux parties : | ||
Ligne 27 : | Ligne 28 : | ||
[[Partie système :]] | [[Partie système :]] | ||
− | * RFduino et programmateur [<span style="color: green;">disponible dans votre boîte au 05/02/2015, un programmateur et 3 RFduino</span>] | + | * RFduino et programmateur [<span style="color: green;">disponible dans votre boîte au 05/02/2015, un programmateur et 3 RFduino</span>][<span style="color: green;">Récupéré le 18/05/2015</span>] |
* Batterie [à spécifier] | * Batterie [à spécifier] | ||
* Des matériaux pour la fabrication du boitier (non encore spécifié) [<span style="color: blue;"> PLA avec imprimante 3D ?</span>] | * Des matériaux pour la fabrication du boitier (non encore spécifié) [<span style="color: blue;"> PLA avec imprimante 3D ?</span>] | ||
Ligne 36 : | Ligne 37 : | ||
* le paquet "Android Studio" | * le paquet "Android Studio" | ||
* émulateur Android Virtual Device | * émulateur Android Virtual Device | ||
− | * Téléphone portable Android compatible avec BLE [<span style="color: green;">Fourni le 25/02/2015</span>] | + | * Téléphone portable Android compatible avec BLE [<span style="color: green;">Fourni le 25/02/2015</span>][<span style="color: green;">Récupéré le 18/05/2015</span>] |
===Etapes du projet=== | ===Etapes du projet=== | ||
Ligne 82 : | Ligne 83 : | ||
− | Nous avons | + | Nous avons installé une application " Android Studio " qui va nous permettre le codage de notre application. |
===Semaine 2=== | ===Semaine 2=== | ||
Ligne 92 : | Ligne 93 : | ||
- Nous avons continué la recherche et l'apprentissage de programmation android et java grâce aux cours sur internet. | - Nous avons continué la recherche et l'apprentissage de programmation android et java grâce aux cours sur internet. | ||
− | - Nous avons aussi commencé à | + | - Nous avons aussi commencé à se pencher sur le coté relation entre la BLE et l'application android. |
[[Partie système :]] | [[Partie système :]] | ||
Ligne 98 : | Ligne 99 : | ||
- Récupération de la BLE à la fin de la fin semaine | - Récupération de la BLE à la fin de la fin semaine | ||
− | - Recherche d' | + | - Recherche d'informations sur la balise RFduino et les applications déjà réalisées |
Ligne 121 : | Ligne 122 : | ||
Pour la semaine prochaine, nous allons commencer le code .java pour la communication avec le RFduino avec l'aide du tutoriel suivant [https://developer.android.com/guide/topics/connectivity/bluetooth-le.html]. | Pour la semaine prochaine, nous allons commencer le code .java pour la communication avec le RFduino avec l'aide du tutoriel suivant [https://developer.android.com/guide/topics/connectivity/bluetooth-le.html]. | ||
− | Pour la partie .xml, nous | + | Pour la partie .xml, nous améliorerons la partie "design" quand notre connection avec l'RFduino marchera. |
[Alexandre] Attention, la partie "design" n'est pas forcément essentielle au départ. Il faut absolument avoir une communication pour avoir très rapidement une démonstration fonctionnelle ; n'oubliez pas non plus la partie encapsulation avec l'imprimante 3D [Alexandre] | [Alexandre] Attention, la partie "design" n'est pas forcément essentielle au départ. Il faut absolument avoir une communication pour avoir très rapidement une démonstration fonctionnelle ; n'oubliez pas non plus la partie encapsulation avec l'imprimante 3D [Alexandre] | ||
Ligne 133 : | Ligne 134 : | ||
Etude des différents exemples donnés avec la librairie grâce aux explications des fonctions utilisées [http://www.rfduino.com/wp-content/uploads/2014/03/rfduino.ble_.programming.reference.pdf] | Etude des différents exemples donnés avec la librairie grâce aux explications des fonctions utilisées [http://www.rfduino.com/wp-content/uploads/2014/03/rfduino.ble_.programming.reference.pdf] | ||
− | Réflexion sur l'alimentation de la balise : la balise doit être | + | Réflexion sur l'alimentation de la balise : la balise doit être alimentée en 3V. On a donc choisi d'utiliser une pile bouton de 3V pour avoir un objet le plus petit au final. |
===Semaine 4=== | ===Semaine 4=== | ||
Ligne 154 : | Ligne 155 : | ||
Récupération d'un tablette samsung, passage de la tablette en "option de développement" pour permettre de tester directement l'application sur la tablette. | Récupération d'un tablette samsung, passage de la tablette en "option de développement" pour permettre de tester directement l'application sur la tablette. | ||
− | Correction du problème de "permission du bluetooth", l'application s'ouvre sur notre tablette samsung. Par contre notre code | + | Correction du problème de "permission du bluetooth", l'application s'ouvre sur notre tablette samsung. Par contre notre code ne détecte pas le RFduino. |
+ | On travaille sur ce problème. | ||
[[Partie BLE :]] | [[Partie BLE :]] | ||
Ligne 160 : | Ligne 162 : | ||
Continuation du travail de la semaine dernière. Correction de l'erreur et test de ce code. Cependant comme l'application Android ne fonctionne pas encore, on a testé la connexion avec une application déjà existante. | Continuation du travail de la semaine dernière. Correction de l'erreur et test de ce code. Cependant comme l'application Android ne fonctionne pas encore, on a testé la connexion avec une application déjà existante. | ||
− | Réflexion sur comment gérer la transmission des messages et comment les sauvegarder. Mais nous ne savons pas encore comment faire pour sauvegarder (soit dans l' | + | Réflexion sur comment gérer la transmission des messages et comment les sauvegarder. Mais nous ne savons pas encore comment faire pour sauvegarder (soit dans l'application, soit avec la balise). |
Réflexion sur le boîtier qui va accueillir la balise BLE. Une première idée est de faire une sphère dont il y a une partie plate ou une demi sphère pour avoir une certaine stabilité. On a aussi réfléchit à comment pouvoir changer la pile sans enlever toute la balise du support. Peut-être faire deux compartiments : un pour la balise et un autre pour la pile. | Réflexion sur le boîtier qui va accueillir la balise BLE. Une première idée est de faire une sphère dont il y a une partie plate ou une demi sphère pour avoir une certaine stabilité. On a aussi réfléchit à comment pouvoir changer la pile sans enlever toute la balise du support. Peut-être faire deux compartiments : un pour la balise et un autre pour la pile. | ||
Ligne 169 : | Ligne 171 : | ||
Continuation de l'application : | Continuation de l'application : | ||
− | Nous arrivons à détecter la BLE sur notre application en appuyant sur un bouton "Scan" qui | + | Nous arrivons à détecter la BLE sur notre application en appuyant sur un bouton "Scan" qui nous affiche : |
-Nom | -Nom | ||
-Mac | -Mac | ||
Ligne 188 : | Ligne 190 : | ||
Cette semaine, nous avons géré, dans un premier temps, l'envoie d'une donnée d'une application vers la balise. | Cette semaine, nous avons géré, dans un premier temps, l'envoie d'une donnée d'une application vers la balise. | ||
− | Test avec une autre appli avec affichage de ce qui | + | Test avec une autre appli avec affichage de ce qui a été envoyé sur le port série. Ça fonctionne bien. |
Envoie de donné vers la BLE en recopiant le message arrivant | Envoie de donné vers la BLE en recopiant le message arrivant | ||
===Semaine 7=== | ===Semaine 7=== | ||
− | [[Partie Android :]] | + | [[Partie Android / BLE:]] |
Nous avons réussit l'envoie et la réception de donnée (texte) entre la BLE et l'application Android. Il faut maintenant passer à la sauvegarde des messages. | Nous avons réussit l'envoie et la réception de donnée (texte) entre la BLE et l'application Android. Il faut maintenant passer à la sauvegarde des messages. | ||
− | + | [[Fichier:Reception_message.jpg|1000px|600px]] | |
− | |||
− | [[ | ||
− | |||
+ | On remarque la connexion à la BLE. | ||
+ | Ensuite nous n'envoyons aucuns messages. | ||
+ | Puis nous envoyons "test" à partir de l'application android. | ||
− | La semaine prochaine, nous allons faire la réalisation du réceptacle de la BLE avec l'imprimante 3D | + | La semaine prochaine, nous allons faire la réalisation du réceptacle de la BLE avec l'imprimante 3D. |
− | |||
===Semaine 8=== | ===Semaine 8=== | ||
Ligne 238 : | Ligne 239 : | ||
Le "dessus" du boitier: | Le "dessus" du boitier: | ||
− | [[Fichier:Dessus.JPG]] | + | [[Fichier:Dessus.JPG|350px|200px]] |
Le "couvercle" : | Le "couvercle" : | ||
− | [[Fichier:Socle.JPG]] | + | [[Fichier:Socle.JPG|350px|200px]]] |
Une fois que le boitier est fermé, nous obtenons : | Une fois que le boitier est fermé, nous obtenons : | ||
− | [[Fichier:BoitierAimantIntelligent.JPG]] | + | [[Fichier:BoitierAimantIntelligent.JPG|350px|200px]] |
− | |||
− | |||
+ | Objectifs pour la semaine 9 : impression de notre pièce et faire fonctionner la sauvegarde des messages. | ||
===Semaine 9=== | ===Semaine 9=== | ||
Ligne 263 : | Ligne 263 : | ||
Nous avons réussit à imprimer notre première piece via l'imprimante 3D. | Nous avons réussit à imprimer notre première piece via l'imprimante 3D. | ||
− | [[Fichier:socle1.png]] | + | [[Fichier:socle1.png|350px|200px]] [[Fichier:socle2.png|350px|200px]] |
+ | |||
− | |||
− | La semaine prochaine, nous allons imprimer la seconde partie du boitier et travailler sur le debug de l'application | + | La semaine prochaine, nous allons imprimer la seconde partie du boitier et travailler sur le debug de l'application. |
===Semaine 10=== | ===Semaine 10=== | ||
Ligne 277 : | Ligne 277 : | ||
Nous avons imprimé le socle (2nd pièce). | Nous avons imprimé le socle (2nd pièce). | ||
− | [[Fichier:socle4.png]] | + | [[Fichier:socle4.png|350px|200px]] |
Et voici une image de notre boite fermé. | Et voici une image de notre boite fermé. | ||
− | [[Fichier:boite.png]] | + | [[Fichier:boite.png|350px|200px]] |
− | Nous avons au début pensé à fermer le boîtier avec des vis en | + | Nous avons au début pensé à fermer le boîtier avec des vis en faisant des troues mais nous avons préférer mettre des élastiques sur le prototype. |
Nous avons aussi remarqué que notre boîtier est un peu trop grand. La BLE ce balade dans le boitier. | Nous avons aussi remarqué que notre boîtier est un peu trop grand. La BLE ce balade dans le boitier. | ||
Ligne 292 : | Ligne 292 : | ||
===Semaine 11=== | ===Semaine 11=== | ||
− | [[Partie | + | [[Partie BLE :]] |
+ | |||
+ | Finalisation du boîtier, nous avons collé des aimants sous le boîtier. | ||
− | [[ | + | [[Fichier:boitierfinal.png|350px|200px]] |
− | + | [[Fichier:boitierfinal1.png|350px|200px]] | |
Nous avons été malade cette semaine, nous avons donc pas réussit à faire notre PCB. | Nous avons été malade cette semaine, nous avons donc pas réussit à faire notre PCB. | ||
La semaine prochaine : -Préparation de la video | La semaine prochaine : -Préparation de la video | ||
+ | |||
+ | ===Semaine 12=== | ||
+ | |||
+ | [[Partie Android :]] | ||
+ | |||
+ | Nous avons trouvé le problème d'affichage du message. Avec la BLE, nous envoyions lettre par lettre donc du coup nous affichions que la première lettre reçue. | ||
+ | Nous envoyions maintenant le mot en entier et celui-ci s'affiche. | ||
+ | |||
+ | [[Fichier:message.jpg|350px|200px]] | ||
+ | |||
+ | [[Partie Video :]] | ||
+ | |||
+ | Réalisation de la video faite le jeudi 23 avril à 8H30 avec le service Video de l'école | ||
+ | |||
+ | |||
+ | ===Bilan=== | ||
+ | |||
+ | Nous avons malheureusement pas eu le temps de porter notre projet à bout. Il nous manque encore quelques points a traiter : | ||
+ | - La suppression individuel d’un message | ||
+ | - Faire marcher la sauvegarde des messages par la BLE | ||
+ | - Le PCB de la pile qui nous permettre de rendre la balise indépendante | ||
+ | |||
+ | Mais ce projet a été pour nous une excellente expérience personnelle et pédagogique. Nous avons pu mener un projet de A à Z, avec la mise en place d’un cahier des charges et d’un planning prévisionnel. Nous avons su nous montrer autonomes face aux difficultés rencontrées. Nous avons dû apprendre à gérer notre projet au niveau de l’organisation du travail et du temps. Nous avons acquis de nouvelles compétences comme le développement Android/Java ou encore l'utilisation de l'imprimante 3D. | ||
== Fichiers Rendus == | == Fichiers Rendus == | ||
+ | |||
+ | [[Fichier:Rapport_projet_YT.pdf]] | ||
+ | |||
+ | [[Fichier:code_projet.zip]] |
Version actuelle datée du 12 juin 2015 à 08:28
Sommaire
Cahier des charges
Présentation générale du projet
Contexte
Les objets connectés sont de plus en plus présent et deviendront très utiles au quotidien. Vous voulez avoir une liste de course ou un rappel sur un rendez-vous que vous avez dans la journée, tout ceci peut être possible grâce aux objets connectés.
Objectif du projet
Concevoir un objet connecté aimanté permettant de délivrer des rappels (agenda, liste de courses, ...).
Description du projet
Le but de ce projet est de développer un "aimant" qui utilisera une balise BLE (Bluetooth Low Energy) qui nous permettra de partager des données simplement et localement depuis un téléphone portable. Cela reprend l'idée du post-it sur le réfrigérateur.
On sépare ce projet en deux parties :
- un système embarqué permettant de recevoir et de transmettre des informations
- une application Android permettant de communiquer avec le système
On concevra à l'aide de l'imprimante 3D le boitier qu’accueillera le système.
Choix techniques : matériel et logiciel
- RFduino et programmateur [disponible dans votre boîte au 05/02/2015, un programmateur et 3 RFduino][Récupéré le 18/05/2015]
- Batterie [à spécifier]
- Des matériaux pour la fabrication du boitier (non encore spécifié) [ PLA avec imprimante 3D ?]
- logiciel JDK (Java Development Kit)
- le paquet "Android Studio"
- émulateur Android Virtual Device
- Téléphone portable Android compatible avec BLE [Fourni le 25/02/2015][Récupéré le 18/05/2015]
Etapes du projet
Etape 1 : Étude bibliographique sur le BLE et sur le développement d'application Android (java)
Etape 2 : Faire fonctionner la balise BLE avec la transmission et la réception d'un message.
Etape 3 : Faire un début d'application Android pour gérer l'écriture d'un message et sa réception
Etape 4 : Finition de l'application et réflexion sur la forme du boitier
Etape 5 : Réalisation du boîtier
Planning prévisionnel de l'avancement du projet
semaine 1 : Recherche bibliographique sur le fonctionnement de la BLE et sur les applications Android (développement en java)
semaine 2 à 6 : Faire fonctionner la balise BLE en transmission et réception
semaine 2 à 6 : Développement de l'application sous Android
semaine 6 à 9 : mise en marche des deux systèmes ensemble (BLE + application Android)
semaine 7 à 9 : Fabrication du boitier
semaine 10 à 11 : réalisation de la vidéo
Avancement du Projet
Semaine 1
Finalisation du cahier des charges.
Pendant cette premiere semaine, nous avons effectué nos recherches documentaires sur la technologie BLE et sur la réalisation d'une application Android :
- BLE : [1]
- RFduino [2] : Kit pour débuter avec le RFduino [3]
- Cours de Java [4]
- Cours pour créer un application Android [5]
Nous avons installé une application " Android Studio " qui va nous permettre le codage de notre application.
Semaine 2
Cette seconde semaine est le prolongement de la semaine 1 :
- Nous avons continué la recherche et l'apprentissage de programmation android et java grâce aux cours sur internet.
- Nous avons aussi commencé à se pencher sur le coté relation entre la BLE et l'application android.
- Récupération de la BLE à la fin de la fin semaine
- Recherche d'informations sur la balise RFduino et les applications déjà réalisées
Pour la prochaine semaine, commencement de la programmation de la BLE et commencement de l'application android.
Semaine 3
Nous avons fait la partie .xml de l'application donc qui prend en compte le coté "design" de l'application pour avoir une idée de qu'est ce que l'application va prendre en compte.
On va essayer de réaliser les points suivant :
- un bouton pour la mise en marche du bluetooth - une bulle avec les différents bluetooth scanné autour - un bouton pour se connecter à l'appareil voulu - une bulle avec le message déposer - une bulle pour poser un message
Pour la semaine prochaine, nous allons commencer le code .java pour la communication avec le RFduino avec l'aide du tutoriel suivant [6].
Pour la partie .xml, nous améliorerons la partie "design" quand notre connection avec l'RFduino marchera.
[Alexandre] Attention, la partie "design" n'est pas forcément essentielle au départ. Il faut absolument avoir une communication pour avoir très rapidement une démonstration fonctionnelle ; n'oubliez pas non plus la partie encapsulation avec l'imprimante 3D [Alexandre]
Récupération de la librairie RFduino pour pouvoir coder avec l'IDE Arduino [7]
Installation de cette librairie comme indiqué sur le lien suivant [8]
Etude des différents exemples donnés avec la librairie grâce aux explications des fonctions utilisées [9]
Réflexion sur l'alimentation de la balise : la balise doit être alimentée en 3V. On a donc choisi d'utiliser une pile bouton de 3V pour avoir un objet le plus petit au final.
Semaine 4
Réalisation du code java pour la connexion avec RFduino [10]. J'ai effectué des testes avec l'émulateur de android studio (certain bug avec l'émulateur) du code pour la détection de bluetooth mais il y a quelques erreurs avec "Bluetooth permission". L'application se lance et se ferme directement
Début de la réalisation du code pour la partie connexion. Essai de ce code mais il y a un problème au niveau de la compilation.
Semaine 5
Récupération d'un tablette samsung, passage de la tablette en "option de développement" pour permettre de tester directement l'application sur la tablette.
Correction du problème de "permission du bluetooth", l'application s'ouvre sur notre tablette samsung. Par contre notre code ne détecte pas le RFduino. On travaille sur ce problème.
Continuation du travail de la semaine dernière. Correction de l'erreur et test de ce code. Cependant comme l'application Android ne fonctionne pas encore, on a testé la connexion avec une application déjà existante.
Réflexion sur comment gérer la transmission des messages et comment les sauvegarder. Mais nous ne savons pas encore comment faire pour sauvegarder (soit dans l'application, soit avec la balise).
Réflexion sur le boîtier qui va accueillir la balise BLE. Une première idée est de faire une sphère dont il y a une partie plate ou une demi sphère pour avoir une certaine stabilité. On a aussi réfléchit à comment pouvoir changer la pile sans enlever toute la balise du support. Peut-être faire deux compartiments : un pour la balise et un autre pour la pile.
Semaine 6
Continuation de l'application : Nous arrivons à détecter la BLE sur notre application en appuyant sur un bouton "Scan" qui nous affiche : -Nom -Mac -RSSI -Scan Rtecord
Puis nous avons réussit aussi la connexion à la BLE en appuyant sur un bouton "Connexion":
On observe le statut qui change entre les deux images : "Déconnecter" à "Connecter"
La semaine prochaine, on va se focaliser sur l'envoie et le reception de donnée à la BLE.
Cette semaine, nous avons géré, dans un premier temps, l'envoie d'une donnée d'une application vers la balise. Test avec une autre appli avec affichage de ce qui a été envoyé sur le port série. Ça fonctionne bien. Envoie de donné vers la BLE en recopiant le message arrivant
Semaine 7
Nous avons réussit l'envoie et la réception de donnée (texte) entre la BLE et l'application Android. Il faut maintenant passer à la sauvegarde des messages.
On remarque la connexion à la BLE. Ensuite nous n'envoyons aucuns messages. Puis nous envoyons "test" à partir de l'application android.
La semaine prochaine, nous allons faire la réalisation du réceptacle de la BLE avec l'imprimante 3D.
Semaine 8
Problème avec l'affichage du message reçu par la BLE.
Travail sur le logiciel pour modéliser nos pièces avant l'impression 3D
Ici le socle avec 4 petites pièces pour pouvoir mettre une visse et boulon pour fermer.
Ici la seconde pièce qui est une demi-sphère vide :
Nous n'avons pas réussi à rajouter les 4 cubes sous Freecad.
On va donc essayer de faire la pièce sous solidworks.
Après les problèmes de modélisation rencontrés sous Freecad, on a utilisé SolidWorks. Nous obtenons les pièces suivantes:
Le "dessus" du boitier:
Le "couvercle" :
Une fois que le boitier est fermé, nous obtenons :
Objectifs pour la semaine 9 : impression de notre pièce et faire fonctionner la sauvegarde des messages.
Semaine 9
Toujours sur le problème d'affichage du message reçu par la BLE. N'affiche que la première lettre.
Nous avons réussit à imprimer notre première piece via l'imprimante 3D.
La semaine prochaine, nous allons imprimer la seconde partie du boitier et travailler sur le debug de l'application.
Semaine 10
Nous avons imprimé le socle (2nd pièce).
Et voici une image de notre boite fermé.
Nous avons au début pensé à fermer le boîtier avec des vis en faisant des troues mais nous avons préférer mettre des élastiques sur le prototype.
Nous avons aussi remarqué que notre boîtier est un peu trop grand. La BLE ce balade dans le boitier.
La semaine prochaine, réalisation du PCB pour le support de pile
Semaine 11
Finalisation du boîtier, nous avons collé des aimants sous le boîtier.
Nous avons été malade cette semaine, nous avons donc pas réussit à faire notre PCB.
La semaine prochaine : -Préparation de la video
Semaine 12
Nous avons trouvé le problème d'affichage du message. Avec la BLE, nous envoyions lettre par lettre donc du coup nous affichions que la première lettre reçue. Nous envoyions maintenant le mot en entier et celui-ci s'affiche.
Réalisation de la video faite le jeudi 23 avril à 8H30 avec le service Video de l'école
Bilan
Nous avons malheureusement pas eu le temps de porter notre projet à bout. Il nous manque encore quelques points a traiter :
- La suppression individuel d’un message - Faire marcher la sauvegarde des messages par la BLE - Le PCB de la pile qui nous permettre de rendre la balise indépendante
Mais ce projet a été pour nous une excellente expérience personnelle et pédagogique. Nous avons pu mener un projet de A à Z, avec la mise en place d’un cahier des charges et d’un planning prévisionnel. Nous avons su nous montrer autonomes face aux difficultés rencontrées. Nous avons dû apprendre à gérer notre projet au niveau de l’organisation du travail et du temps. Nous avons acquis de nouvelles compétences comme le développement Android/Java ou encore l'utilisation de l'imprimante 3D.