Cours de Spécialité
Objectifs
L'objectif de ce cours de spécialité pour Systèmes Embarqués est de découvrir la conception d'applications mobiles (Android) et de réaliser une application de messagerie qui fonctionne par bluetooth.
L’environnement de travail mis à votre disposition est le suivant:
google
et vous l’utilisez pour vous connecter à App Inventor
. Sinon utilisez une de vos adresses e-mail pour créer un compte.AppInventor2
. La première chose est de créer un nouveau projet. Une fois créé, vous êtes automatiquement redirigés vers la page de votre projet. Cette page contient les différents éléments que vous pouvez ajouter dans l’application: boutons, images, horloges, capteurs…block
(bouton en haut à droite) pour spécifier comment vont fonctionner / réagir vos composants.Vous allez créer une application plutôt basique pour comprendre le fonctionnement de la programmation par blocs. Il s’agira d’entrer votre prénom dans une zone de texte et une fois validé, l’application affichera “Bonjour” suivi de votre prénom.
Vous avez besoin des éléments suivants:
Label
(un que vous initialisez à “Quel est votre prénom”, l’autre étant vide)TextBox
Button
(dont le champ texte sera Valider)Disposez les de manière à avoir le premier label
, la textbox
, le button
, le deuxième label
. Vous pouvez éventuellement ajouter d’autres éléments.
Une fois que vous avez défini et placé vos différents composants, il faut définir le fonctionnement de chacun des composants et leurs interactions éventuelles avec d’autres composants.
Blocks
.Built-In
qui contient la logique générique et dans My Blocks
vous pouvez contrôler les composants que vous avez ajouter.label
, un fois que le button
sera cliqué. Dans l’onglet Screen1
, repérez le Button1
et prenez le premier élément (when Button1.click do
) et déposer le sur le plan de travail (au centre). Vous pouvez constater que les blocs ont la forme de pièces de puzzle et donc il n’est pas possible de connecter des éléments qui ne “‘“s’emboîtent” pas.USB
, cela suppose l’installation de quelques logiciels (voir https://appinventor.mit.edu/explore/ai2/linux pour plus d’informations).AI Companion
qui nécessite une connexion Wi-Fi, vous pouvez utiliser le WiFi PolytechGuests
avec le mot de passe ` tupop_xu`. L’application se trouve à l’adresse https://appinventor.mit.edu/explore/ai2/setup-device-wifi.html.Tester le bon fonctionnement de votre application
Bluetooth
Il s’agit maintenant de créer une application qui envoie / reçoit des messages par bluetooth
. Il faudra créer 2 applications (ou alors se partager le travail entre étudiants: un étudiant crée un serveur et un autre crée le client). Vous pouvez vous appuyer sur le tutoriel disponible ici https://coldstreams.com/appinventor/2015/01/23/part-1-basic-bluetooth-communications-using-app-inventor/ pour réaliser cette application.
L’intérêt d’un système embarqué est qu’il dispose à la fois de capacité de calcul et de capteurs (GPS, accélération,…). Pour cette application, nous allons utiliser l’accéléromètre disponible dans le smartphone. L’objectif de cette application est de simuler le déplacement d’une bille sur un plateau (ici le smartphone) que l’on peut incliner.
Vous avez besoin des éléments suivants:
canvas
qui va servir de support à la billeBall
qui sera un élément mobileAccelerometerSensor
qui va pouvoir détecter les mouvements du téléphoneClock
nécessaire(s) pour l’utilisation des capteursPlacez vous dans le block editor
. L’élément clé pour une application qui utilise des capteurs est le timer (clock
), pour lequel on peut définir la fréquence de mise à jour (Clock1.TimerInterval
) et les actions à réaliser à chaque mise à jour (le bloc Clock1.Timer
). Comme vous avez pu le constater, il est possible de modifier la position de la balle via ses coordonnées (SetBall1.X
ou SetBall1.Y
). De même, l’accéléromètre vous fournit l’accélération en X et en Y.
Pour améliorer votre application, plusieurs choses sont possibles. Un point important est aussi de factoriser les actions en utilisant des procédures (dans le menu définition) ceci permet de garder votre plan de travail lisible.
V.x = V.x + A.x * dt, V.y = V.y + A.y * dt
P.x = P.x + V.x * dt, P.y = P.y + V.y * dt
où P, V, A représentent respectivement la position, vitesse accélération et dt
la durée du timer de simulation. On utilisera des variables intermédiaires Vx et Vy pour calculer la vitesse de la balle.