Etape 4: Application Android
Depuis le début de ce projet, un de mes objectifs était de développer une application Android de compagnon pour permettre le contrôle du robot. Comme mes compétences en développement de logiciels sont encore « en développement », j’ai été ravi de tomber sur l’environnement de développement d’application Android MIT AI2 - il s’est avéré pour être parfait pour ce que je voulais faire.
J’ai passé quelque temps avec un certain nombre de tutoriels pour avoir une idée de comment les choses étaient d’installation et de Whatakuai et Pura Vida Apps sur comment exploiter l’interface BT. Mais plutôt que de passer de temps à expliquer MIT AI2, je vais décrire comment l’application est destinée à être utilisé et comment les blocs de structure.
Le soft est une simple collection de boutons et de curseurs pour permettre à l’utilisateur de configurer et de contrôler le robot. Voici une description des différents contrôles app.
· Module BT : chaque fois que l’application est démarrée, ou la puissance du robot à vélo, l’utilisateur devra se connecter au module BT robot. Il s’agit de la touche qui facilite cette action.
· Autonomie en veille : Une fois que le robot est connecté à BT, et le jury de Galileo a démarré, le Robot commence dans l’état de veille. Ce bouton est utilisé pour charger le robot pour entrer dans l’actif, état d’équilibrage. Veuillez noter que le robot va tenter seulement équilibrer si elle relève 2deg de verticale, donc même si ce bouton indique « Actif », vous devrez placer le robot à la verticale près pour qu’il puisse commencer à équilibrer. Ce bouton permet de basculer entre le mode « veille » et « Active » comme vous le souhaitez.
· PID: Ce bouton est utilisé pour permettre à l’utilisateur de changer le « P », « I » et les valeurs de « D » pour le contrôleur de PID dans le robot lorsque le robot est en marche. Lorsque vous appuyez sur, il va récupérer les valeurs de PID du robot et affichez-les sous différents « + » et "-" boutons. La valeur d’incrémentation et de décrémentation pour chaque paramètre sont dur codée dans l’esquisse de robot.
· Version : C’est l’esquisse de robot version du Firmware. Je suis allé à travers de nombreuses versions de croquis et plusieurs cartes SD, donc je l’ai trouvé très utile de savoir quelle version est en cours d’exécution sur le robot. Cette valeur est codé dans l’esquisse à l’aide d’une instruction #define en dure et est envoyée à l’App Android quand le robot va sortir de veille.
· VBAT : La tension de la batterie du robot, envoyé par seconde
· HB: Voyant de fonctionnement. Le texte change de couleur une fois par seconde pour indiquer que l’esquisse s’exécute toujours sur le robot.
· Rouleau Calibrate : basé sur le module que vous avez, et comment il est monté sur le robot, vertical ne peut-être pas lire comme 0deg. Cela vous permet de « calibrer » ce que les lectures MPU lorsque le robot est vertical. Le « + » et "-" boutons sont partagés entre le rouleau calibrer et moteur mou, donc seul peut être modifié à tout moment. La valeur actuelle de faire étalonner est récupérée dans le robot lorsque la case d’option est sélectionnée.
· Moteur mou : Les motoréducteurs DC que j’ai utilisé avaient une zone dans les valeurs inférieures de PWM qui n’aboutissent pas à tout mouvement de l’arbre du moteur. Cela se traduit par une zone non linéaire du contrôle pour la sortie de PID. J’ai trouvé que, en « sautant » sur ces faible valeur PWM (moteur mou) dans la sortie de PID, vous pourriez mieux équilibrer le robot. Ce bouton permet de récupérer la valeur actuelle du robot et régler la taille du « saut »
· Vitesse : cela permet à l’utilisateur de contrôler la vitesse du robot. En raison d’une limitation dans l’environnement de compilation d’IA du MIT, le soft ne permet pas de multi-touch, ainsi vous ne pouvez pas changer les curseurs de vitesse et la direction en même temps. Une recherche sur internet sur le sujet montre il y a un travail autour pour permettre un fonctionnement multi-touch, mais je n’ai pas encore poursuivi il.
· Direction : cela permet à l’utilisateur de contrôler la direction du robot.
· Quit : quitte l’App Android
J’ai trouvé la méthode visuelle utilisée par MIT AI2 pour élaborer les détails d’application sur la section de « Blocs » d’être un peu lourd - mais je vous laisse tirer vos propres conclusions. Je n’ai pas réussi à prendre une capture d’écran de la présentation de blocs, mais ils sont disposés en trois colonnes. Vous devriez être capable d’importation le .iai fichier dans MIT AI2 et afficher les détails pour vous-même.
La première colonne implémente les boutons Quit, Module BT, veille, journal des données, vitesse, Direction, erreur Roll et moteur mou.
Le deuxième implémente de colonne PID activez le bouton et le P, I et D « + » et "-" boutons. Il implémente également l’erreur Roll et moteur mou « + » et "-" boutons.
La troisième colonne implémente la minuterie Bluetooth, utilisée pour vérifier l’interface pour les informations reçues et blocs pour extraire et mettre en œuvre les commandes du robot. Il a fallu quelques tâtonnements pour obtenir la réception de données Bluetooth et commande d’extraction fonctionne et le résultat est un peu brutale force-ish, mais en fin de compte, cela a fonctionné assez bien.