Etape 1: Le script
Vous pouvez trouver le script complet à: Bitbucket
Tout d’abord de toutes les bibliothèques nécessaires :
- Bibliothèque de SenseHat . (J’ai remplacé la norme RTIMUlib installé par RTIMUlib2)
- OS et sys commande l’analyse comme mettre fin à l’exécution du script
- json pour récupérer les données de l’API appelle dans un dictionnaire Python
- urllib2 pour accéder à l’URL sur le web
- DateTime et temps pour des raisons évidentes
- pygame pour l’interprétation des événements joystick
- IssFlags un second script Python contenant toutes les définitions de sprite des drapeaux
La section principale contient les instructions pour extraire les événements (mouvements de la manette de jeu) de la file d’attente de pygame. Cette partie doit toujours être dans la boucle principale du script. Le joystick est une touche à 5 voies (haut, bas, gauche, droite, presse) qui produit 10 épreuves différentes (5 fois KEYUP, 5 fois KEYDOWN). Lorsque vous appuyez sur le joystick, on produit des 2 épreuves (KEYUP et KEYDOWN) avec le même code (haut, bas, gauche, droite). Tout d’abord, j’ai nettoyé la file d’attente après avoir lu un seul événement, mais quand j’ai ajouté la fonction trackISS() pour la boucle principale, d’une manière particulière, pygame géré ces deux événements avant d’effacer la file d’attente. Pour cette raison la fonction handle.event() commence avec un filtre sur le type d’événement. Le reste parle de lui-même.
trackISS() a été ajouté à la boucle principale pour rendre le script un peu plus vive : lorsque aucune clé n’est utilisés, l’emplacement de l’ISS est affiché. La fonction est rester simple : obtenir un record de json de l’API, enrichir les données reçues via un appel à une API deuxième et afficher les résultats.
Une description de l’API et quelques exemples sur la façon de les utiliser, se trouvent à: ISS API
La structure de données des documents json peut également être facilement récupérée en copiant l’url dans un navigateur. (Après tout une API est juste une « non-donc-bon-à la recherche-url »). A 'essayer – sauf' instruction gère l’accès à l’API-url. Ceci est fait pour empêcher que le script s’écraser lorsque l’url n’est pas accessible (causée par p. ex. perte de wifi, d’un pépin de votre fournisseur ou entretien effectué à l’API-server, etc..).
La première API retourne une grande quantité de données comme coordonnées solaires, vitesse, visibilité et terre. Pour enrichir ces données avec un code de pays et le fuseau horaire actuel, la latitude et la longitude retournée par l’API premier doivent être ajoutés à la deuxième URL par simple concaténation de chaînes.
La deuxième API retourne uniquement les données lorsque l’ISS est au-dessus de la terre. Altitude, l’API renvoie le fameux « 404 Page introuvable erreur ». Ainsi, après avoir vérifié la disponibilité de l’url, le script vérifie une erreur http ainsi. Lorsqu’il rencontre une erreur http, l’emplacement en mer est affiché. Si les données sont renvoyées, le code de pays est utilisé pour rechercher les données de l’indicateur.
La fonction showLevels() traite les données de tangage et de roulis. Il contient une boucle de contrôle de l’orientation de l’IPD et aux délais de la position de ralenti de la framboise. Chaque fois que le RPi est déplacé dans la durée d’inactivité maximale, le nombre de lignes et de colonnes est calculé et affiché. La taille de la matrice lcd (8 x 8) détermine la résolution du niveau (180 degr / 8). Puisqu’il n’y a aucun centre/milieu de la matrice, la ligne/colonne d’abord doit être déterminée chaque fois, selon le mouvement (nez ou queue, gauche ou droite). Il n’est aucun codage sophistiqué, juste manipulation chaque exigence/restreindre à la fois.
La fonction environmentals() appelle juste pour chaque capteur à la fois. Le codage de chaque capteur est pris tout droit sorti des SenseHat des exemples (le dossier fait partie de l’installation). Sachez que l’appel pour le magnétomètre désactive le gyroscope et l’accéléromètre. Vous aurez à les allumer chaque fois en utilisant le 'set_imu_config (bool, bool, bool)' déclaration.
Jusqu'à présent, pour ce que je pouvais sortir le SenseHat. J’espère que ça aide les gens avec les premières étapes à l’aide de la Commission. Je suis curieux de connaître les autres/nouvelles idées pour les apllications. Et bien sûr, n’hésitez pas à pousser plus de drapeaux dans le script IssFlag.py.