Ligne 33 : |
Ligne 33 : |
| | | |
| ===Comprendre et/ou modifier le code de l'application=== | | ===Comprendre et/ou modifier le code de l'application=== |
− | Voici les différents Screen crées :
| + | Si vous souhaitez modifier l'application, vous devez : |
| + | *Télécharger le fichier .aia au lien suivant : [https://drive.google.com/file/d/1XvCx8m_984NGFHAy1XcAURyGfx47GXMH/view?usp=sharing Application .aia] |
| + | *Ouvrir la page web MIT App inventor et y charger le fichier .aia |
| + | *Vous aurez ainsi accès à toutes les composantes de l'application Polybot |
| + | |
| + | '''ATTENTION''' vous ne pouvez pas modifier le code de la STM32 sans modifier le code Scratch de l'application (dans certains cas) ! |
| + | |
| + | |
| + | <br> |
| + | Rappels des différents Screen crées : |
| * Screen 1 : Page de lancement avec logo Polybot | | * 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 2 : Choix des valeurs à afficher et choix de stocker ou non les données affichées |
Ligne 42 : |
Ligne 51 : |
| [[Fichier:Appli2.png|150px|vignette|centré|Screen 3 de l'application]] | | [[Fichier:Appli2.png|150px|vignette|centré|Screen 3 de l'application]] |
| | | |
− | Si vous souhaitez modifier l'application, vous devez :
| |
− | *Télécharger le fichier .aia au lien suivant : [https://drive.google.com/file/d/1XvCx8m_984NGFHAy1XcAURyGfx47GXMH/view?usp=sharing Application .aia]
| |
− | *Ouvrir la page web MIT App inventor et y charger le fichier .aia
| |
− | *Vous aurez ainsi accès à toutes les composantes de l'application Polybot
| |
− |
| |
− | ATTENTION vous ne pouvez pas modifier le code de la STM32 sans modifier le code Scratch de l'application (dans certains cas) !
| |
− | <br>
| |
| <br> | | <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. | | É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. |
Ligne 62 : |
Ligne 64 : |
| | | |
| [[Fichier:Code2 2.png|vignette|centré|Stockage des variables]] | | [[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. | + | *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. On met donc toutes ces fonctions dans le bloc "when Screen3.initialize", c'est à dire qu'on passera une fois dans ce bloc lors du lancement du screen. |
| | | |
| [[Fichier:Code3 1.png|vignette|centré|Récupération des variables globales]] | | [[Fichier:Code3 1.png|vignette|centré|Récupération des variables globales]] |
− | [[Fichier:Visible.png|vignette|centré]] | + | [[Fichier:Visible.png|vignette|centré|Visibilité de chaque valeur]] |
| 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é". | | 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é". |
| | | |
Ligne 74 : |
Ligne 76 : |
| [[Fichier:Code3 3.png|vignette|700px|centré|Réception et affichage des données]] | | [[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==== |
| + | Le reste des fonctions créés sont utiles pour le stockage. |
| + | *On commence par initialiser la variable texte "fichier" qui correspond au chemin d'accès au fichier de stockage : "stockage_data_robot.csv". Si la variable globale "stockage" vaut 1 (c'est à dire si l'utilisateur à coché la case stockage) alors on va aller lire ce fichier grâce à la fonction ci-dessous. |
| + | [[Fichier:Stockage2.png|vignette|centré|Indication du chemin d'accès au fichier]] |
| + | [[Fichier:Stockage1.png|vignette|centré|Lecture du fichier "stockage_data_robot.csv"]] |
| + | |
| + | *Une fois que le fichier a été lu (Fichier.GotText = 1) alors on lance la fonction "nettoyer_fichier". |
| + | [[Fichier:Stockage3.png|vignette|centré|Appel à la fonction "nettoyer_fichier"]] |
| | | |
− | ====Stockage des données====
| + | Cette fonction détaillée ci-dessous permet de nettoyer le fichier .csv à chaque nouveau lancement de l'application. En effet, à chaque nouveau lancement on va aller supprimer les données stockées précédentes. Si on veut stocker les données précédents il faudra alors faire des screen ou alors copier les données avant que celles-ci soient supprimées. |
| + | [[Fichier:Stockage4.png|vignette|centré|Fonction "nettoyer_fichier"]] |
| + | |
| + | Dans cette fonction "nettoyer_fichier", on commence par remplacer le fichier .csv par une liste vide puis on ajoute ensuite une ligne contenant les noms des valeurs (tensions, vitesse..etc). Enfin, on sauvegarde la nouvelle ligne. |
| + | |
| + | *On a ensuite créé la fonction "stockage_data" que l'on appelle à chaque début d'une nouvelle boucle d'envoi de données (c'est à dire juste après le flag qui signifie qu'on se trouve au début de la boucle). On va ainsi pouvoir ajouter les données dans le fichier stockage à chaque nouveau cycle d'envoi de données. |
| + | [[Fichier:Stockage6.png|vignette|centré|Appel à la fonction "stockage_data"]] |
| + | |
| + | Voici comment est composé la fonction "stockage_data" : |
| + | [[Fichier:Stockage5.png|vignette|centré|Fonction "stockage_data"]] |
| + | Dans cette fonction, on créé une ligne qui va contenir toutes les nouvelles données mises à jour puis on sauvegarde la ligne dans le fichier de stockage. |
| | | |
| ==Explication du code et lien vers le Git== | | ==Explication du code et lien vers le Git== |