ISS Tracker : Différence entre versions
(→Code) |
(→Arduino) |
||
Ligne 156 : | Ligne 156 : | ||
</pre> | </pre> | ||
− | Ce | + | Ce code Arduino est celui permettant une simulation du déplacement de l'ISS en accéléré. |
+ | |||
Afin de pouvoir régler la position du module vertical, deux codes arduino sont déposés dans les ressources permettant de monter ou descendre le module. | Afin de pouvoir régler la position du module vertical, deux codes arduino sont déposés dans les ressources permettant de monter ou descendre le module. | ||
Version du 22 janvier 2019 à 22:32
Sommaire
ISS Tracker
L'ISS Tracker (ou traqueur d'ISS) est un montage permettant d'indiquer, en temps réel, la position de la Station spatiale internationale (ou ISS) par rapport à un planisphère représenté sous la forme d'un cylindre.
Matériel
- Une planche de bois (300mm x 600mm)
- Une carte arduino uno
- Une connexion internet
- Deux servomoteurs à rotation continue
- Papier
- Corde
- Marteau
- Pistolet à colle
- Carton
- Un bouchon de liège
- Scotch (invisible/transparant)
Matériel
- Une planche de bois (300mm x 600mm)
- Une carte arduino uno
- Deux servomoteurs à rotation continue
- Papier
- Corde
- Marteau
- Pistolet à colle
- Carton
- Un bouchon de liège
- Scotch transparent/invisible
Guide d'assemblage
- Tout d’abord, afin de gagner du temps il est conseiller de lancer la découpe de la plaque de bois afin d’obtenir les différentes parties constituant la boîte ainsi que le mat. Cependant, la face supérieur (là où il est inscrit « ISS Tracker ») possède sur sa partie droite, un trou sous la forme d’un rectangle. Avant de lancer la découpe laser de ce plan, il faut s'assurer que l'un de vos servomoteur loge dans ce trou avec, sur la longueur, un millimètre de marge pour l'installation.
- Lancer la découpe des pièces
- Pour réaliser le cylindre nous avons avant tout découper deux (ou plus) disque de carton de 88mm de diamètre. Pour consolider le tout nous avons intégré quelques tiges de bois afin de réaliser la structure du cylindre. A chaque étage nous avons collé chaque tige à chaque bout de carton puis nous avons coller le planisphère en papier sur cette structure (pour cette application, un simple tube de colle blanche suffit). Pour finaliser ce cylindre il faut simplement mettre du scotch pour fixer ensemble les deux extrémités du planisphère.
- Téléverser le programme sur la carte arduino Uno.
- Montez la face supérieur du boîtier avec les faces latérales et la face avant, en effet laisser la face arrière et la face inférieur peuvent compliquer les choses si on les assembles en premier.
- Pour réaliser la bobine servant à faire monter et descendre l'ISS, nous avons simplement utilisé un demi bouchon de liège et deux disque de carton avec un diamètre légèrement plus large que le diamètre du bouchon (je dis légèrement car ces deux disques doivent pouvoir être contenus dans le socle)
- Mise en place des différents servomoteurs
- Mise en place de la bobine et du mat
- Mise en plage du fil puis du support
Code
Script python
import serial import time import urllib2 import json ArduinoSerial = serial.Serial(port='/dev/ttyS6',baudrate=9600) while 1 : time.sleep(1) req = urllib2.Request("http://api.open-notify.org/iss-now.json") response = urllib2.urlopen(req) obj = json.loads(response.read()) data = "" data = obj['iss_position']['latitude'] + " " + obj['iss_position']['longitude'] databytes = data.encode('utf-8') print 'donnee envoyee' print data ArduinoSerial.write(databytes) time.sleep(4)
Ce script python, à lancer depuis un terminal met en relation l'API utilisée pour récupérer la position de l'ISS (http://api.open-notify.org/iss-now.json) avec l'Arduino Uno utilisée pour notre projet. Ici, l'arduino est branchée sur le port série COM6 (information disponible dans le gestionnaire de périphérique ou le logiciel Arduino). Le terminal utilisé étant le bash Ubuntu pour Windows 10 nous oblige a passer par le port '/dev/ttyS6'.
Arduino
#include <Servo.h> char data, latitude, longitude; int count = 0; bool montee = false; Servo servolong, servolat; void setup() { Serial.begin(9600); servolong.attach(9); servolat.attach(10); } void loop() { if (montee) { servolat.write(0); delay(120); servolat.write(92); count = count + 1; } else { servolat.write(180); delay(100); servolat.write(92); count = count + 1; } if (count > 25){ if (montee){ montee = false; } else { montee = true; } count = 0; } servolong.write(120); delay(50); servolong.write(90); delay(2000); }
Ce code Arduino est celui permettant une simulation du déplacement de l'ISS en accéléré.
Afin de pouvoir régler la position du module vertical, deux codes arduino sont déposés dans les ressources permettant de monter ou descendre le module.
Communication entre l'arduino et le script python
while (Serial.available()){ datastring = Serial.readString(); //On récupère les données envoyées par le script python index = datastring.indexOf(' '); //On sépare la chaine de charactères en deux données indépendantes latitude = datastring.substring(0,index); longitude = datastring.substring(index + 1); nextlat = latitude.toInt(); nextlong = longitude.toInt();
Ce code permet de récupérer dans deux données de type int les valeurs respectives de la latitude et de la longitude de l'ISS.
Ressources informatiques
Le plan de découpe du boitier ainsi que du mat
//insérer le fichier boite.svg ainsi qu'un visuel du plan
Code arduino
//insérer le code
Script python pour la récupération des données de l'ISS
//insérer le script python
Pour ce qui est du montage, ici le fichier fritzing qui reprend tout le câblage que nous avons réalisé:
//insérer le fichier fritzing