Modifications

Sauter à la navigation Sauter à la recherche
Ligne 25 : Ligne 25 :  
===Comprendre et/ou modifier le code de l'application===
 
===Comprendre et/ou modifier le code de l'application===
 
====Affichage des données====
 
====Affichage des données====
 +
Pour réaliser notre application, nous avons utilisé MIT App Inventor qui permet de réaliser des applications pour mobile, tablette ou autre périphérique grâce au langage de programmation Scratch.
 +
Nous aurions pu réaliser une application plus développée avec un autre langage de programmation mais le but de ce projet n'était pas de réaliser la meilleure application mais plutôt de bien recevoir et afficher les données.
 +
 +
Nous avons donc commencé à réaliser les différentes pages (Screen) de l'application. Pour cela nous avons utilisé les différents outils mis à notre disposition par App Inventor (boutons, texte, switch, images ...).
 +
[[Fichier:App inventor.png|vignette|centré|Outils de création de l'interface]]
 +
 +
Voici les différents Screen crées :
 +
* Screen 1 : Page de lancement avec logo Polybot
 +
* Screen 2 : Choix des valeurs à afficher et choix de stocker ou non les données affichées
 +
* Screen 3 : Affichage des données souhaitées
 +
 +
 +
[[Fichier:Screen1.png|250px|vignette|centré|Screen 1 de l'application]]
 +
[[Fichier:Screen2.png|250px|vignette|centré|Screen 2 de l'application]]
 +
[[Fichier:Appli2.png|250px|vignette|centré|Screen 3 de l'application]]
 +
 +
 +
Pour télécharger l'application et la faire fonctionner, nous vous invitons à suivre notre tuto d'utilisation au lien suivant :
 +
[[Projet_5A_2020_2021/Tuto utilisation et modification|Tutoriel d’utilisation]]
 +
 +
<br>
 +
'''Programmation'''<br>
 +
Étant donné que nous avons utilisé App Inventor pour réaliser notre application, nous avons uniquement pu utiliser du Scratch pour coder le fonctionnement de l'appli. Malheureusement ce langage de programmation sous forme de blocs entraine souvent de grosses suites de blocs pas toujours très lisibles. Nous allons donc essayer de vous expliquer clairement et simplement ce que nous avons réalisé pour chaque Screen.
 +
 +
*Screen 1 : on affiche simplement le logo de Polybot pendant 4 secondes puis on ouvre le Screen suivant.
 +
[[Fichier:Code1.png|vignette|centré|Code pour le Screen 1 ]]
 +
*Screen 2 : on initialise les variables globales qui nous indiqueront si les valeurs ont été cochées (1) ou décochées (0), c'est à dire si on souhaite les afficher par la suite ou non. On aura donc une variables globale pour chaque donnée à afficher (distance parcourue, tension, vitesse, position...).
 +
[[Fichier:Code2 1.png|vignette|centré|Initialisation des variables globales]]
 +
Ensuite, toutes les secondes on vient inspecter l'état des Checkbox pour voir si elles sont cochées ou non puis on modifie la variable globale correspondante en fonction de cela : 0 si décochée, 1 si cochée.
 +
 +
[[Fichier:Code2 3.png|vignette|centré|Modification des variables globales ]]
 +
On va ensuite stocker les valeurs de nos variables globales dans la base de donnée de l'application. Nous avons besoin de faire cela afin de pouvoir récupérer ces valeurs dans le Screen suivant. Une fois toutes les variables stockées correctement, on ouvre le Screen suivant.
 +
 +
[[Fichier:Code2 2.png|vignette|centré|Stockage des variables]]
 +
*Screen 3 : à l'ouverture du Screen on va récupérer les valeurs des variables globales dans la base de donnée. En fonction de leur valeur (0 ou 1) on rendra visible ou non les données correspondantes. Par exemple, si la variable box_tension vaut 1 alors les valeurs de la tension seront rendues invisibles sur l'écran.
 +
 +
[[Fichier:Code3 1.png|vignette|centré|Récupération des variables globales]]
 +
On configure ensuite le bouton qui nous permet d'aller nous connecter au périphérique souhaité (ici notre module HC-06). Il affiche la liste des périphériques Bluetooth connecté, après en avoir sélectionné un on affiche "Périphérique Connecté".
 +
 +
[[Fichier:Code3 2.png|vignette|centré|500px|Connexion au périphérique Bluetooth]]
 +
Ensuite, on créé et on initialise une variable globale nommée flag (à ne pas confondre avec le flag envoyé par la STM) qui va nous permettre de bien synchroniser la réception des données. En effet, à chaque parcours de boucle on ne veut recevoir qu'une seule donnée (par exemple la tension) et au tour de boucle suivant, on affichera la donnée suivante uniquement (par exemple la vitesse).
 +
Et afin de synchroniser parfaitement l'envoi et la réception on commence détecter la réception d'une donnée précise (le flag de la STM) valant -9999. Nous avons choisi cette valeur car elle ne pourra jamais être atteinte par aucune des données affichées donc pas d'erreur possible. Une fois qu'on a reçu cette donnée valant -9999 on sait que les données reçues ensuite seront, dans l’ordre, la distance parcourue (encodeurs), la tension de la batterie, la vitesse, la position x et la position y. On chaque fin d'un tour de boucle, on incrémente le flag.
 +
 +
[[Fichier:Code3 3.png|vignette|700px|centré|Réception et affichage des données]]
 +
 +
Enfin, nous avons créé plusieurs fonctions permettant le stockage des données affichées si l'utilisateur le souhaite. Nous avons par exemple créé la fonction nettoyer_fichier qui vide le fichier à chaque nouveau lancement de l'application, et la fonction stockage_data qui va ajouter les données dans le fichier de stockage. En amont, il faudra ajouter un fichier .csv dans le téléphone. Pour avoir plus d'informations sur la façon dont nous avons géré le stockage, nous vous invitons à aller voir notre page de tuto :
 
====Stockage des données====
 
====Stockage des données====
  
243

modifications

Menu de navigation