Aimant intelligent : Différence entre versions

De Wiki d'activités IMA
(Semaine 7)
 
(12 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 ceux ci peut être possible grâce aux objets connectés.
+
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 cela reprend l'idée du post-it sur le réfrigérateur.
+
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 installer une application " Android Studio " qui va nous permettre le codage de notre application.
+
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é à ce pencher sur le coté relation entre la BLE et l'application android.
+
- 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'information sur la balise RFduino et les applications réalisées
+
- 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 amélioreront la partie "design" quand notre connection avec l'RFduino marchera.
+
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 alimenté en 3V. On a donc choisi d'utiliser une pile bouton de 3V pour avoir un objet le plus petit au final.
+
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 155 : Ligne 156 :
  
 
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.
 
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 la
+
On travaille sur ce problème.
  
 
[[Partie BLE :]]
 
[[Partie BLE :]]
Ligne 161 : 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'appli soit avec la balise).  
+
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 170 : 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 après nous affiche :  
+
Nous arrivons à détecter la BLE sur notre application en appuyant sur un bouton "Scan" qui nous affiche :  
 
-Nom
 
-Nom
 
-Mac
 
-Mac
Ligne 189 : 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 à été envoyé sur le port série. Ça fonctionne bien.
+
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.
Ligne 200 : Ligne 201 :
 
[[Fichier:Reception_message.jpg|1000px|600px]]
 
[[Fichier:Reception_message.jpg|1000px|600px]]
  
On remarque qu'on se connect puis on nous n'envoyons aucun message. Puis nous envoyons "test" à partir de l'application android.
+
On remarque la connexion à la BLE.
 
+
Ensuite nous n'envoyons aucuns messages.  
[[Partie BLE :]]
+
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 251 : Ligne 250 :
  
  
Objectifs pour la semaine 9 : impression de notre pièce et faire fonctionner la sauvegarde des messages
+
Objectifs pour la semaine 9 : impression de notre pièce et faire fonctionner la sauvegarde des messages.
  
 
===Semaine 9===
 
===Semaine 9===
Ligne 268 : Ligne 267 :
  
  
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 286 : Ligne 285 :
  
  
Nous avons au début pensé à fermer le boîtier avec des vis en fessant des troues mais nous avons préférer mettre des élastiques sur le prototype.
+
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 295 : Ligne 294 :
 
[[Partie BLE :]]
 
[[Partie BLE :]]
  
Finalisation du boîtier, nous avons coller des aimants sous le boîtier.
+
Finalisation du boîtier, nous avons collé des aimants sous le boîtier.
  
 
[[Fichier:boitierfinal.png|350px|200px]]
 
[[Fichier:boitierfinal.png|350px|200px]]
Ligne 309 : Ligne 308 :
 
[[Partie Android :]]
 
[[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 premiere lettre reçu.
+
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.
 
Nous envoyions maintenant le mot en entier et celui-ci s'affiche.
  
Ligne 326 : Ligne 325 :
 
   - Le PCB de la pile qui nous permettre de rendre la balise indépendante
 
   - 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évisionnelle. 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.
+
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


Vidéo HD


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

Partie système :

  • 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 ?]

Partie application Android :

  • 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 :

Application android :

- 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.

Partie système :

- 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

Partie android :

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.

Capture d’écran.png

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]

Partie BLE :

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

Android :

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


Partie BLE :

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

Partie Android :

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.

Partie BLE :

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

Partie Android :

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

Capture deconnecter.png

Puis nous avons réussit aussi la connexion à la BLE en appuyant sur un bouton "Connexion":

Capture connecter.png

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.

Partie 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

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.

Reception message.jpg

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

Partie Android :

Problème avec l'affichage du message reçu par la BLE.


Partie 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.

Socle.png


Ici la seconde pièce qui est une demi-sphère vide :


Sphere.png


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:

Dessus.JPG

Le "couvercle" :

Socle.JPG]

Une fois que le boitier est fermé, nous obtenons :

BoitierAimantIntelligent.JPG


Objectifs pour la semaine 9 : impression de notre pièce et faire fonctionner la sauvegarde des messages.

Semaine 9

Partie Android :

Toujours sur le problème d'affichage du message reçu par la BLE. N'affiche que la première lettre.


Partie BLE :

Nous avons réussit à imprimer notre première piece via l'imprimante 3D.

Socle1.png Socle2.png


La semaine prochaine, nous allons imprimer la seconde partie du boitier et travailler sur le debug de l'application.

Semaine 10

Partie Android :

Partie BLE :

Nous avons imprimé le socle (2nd pièce).

Socle4.png


Et voici une image de notre boite fermé.

Boite.png


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

Partie BLE :

Finalisation du boîtier, nous avons collé des aimants sous le boîtier.

Boitierfinal.png

Boitierfinal1.png

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

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.

Message.jpg

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

Fichier:Rapport projet YT.pdf

Fichier:Code projet.zip