# Principe de la mission : en calculant la norme du champ magnétique, on teste si l'ISS est au dessus # de l'amérique du sud où des interférences éléctromagnétiques sont possibles, on prévient alors les membres de l'équipage # Import des librairies utilisées from sense_hat import SenseHat #from datetime import datetime from time import strftime from time import sleep from math import * #création du fichier csv pour enregistrement des informations file = open('datas_mission2_maurois_icn.csv','w') file.write('Heure (Jour : '+strftime('%x')+'), Champ magnetique, Message\n') # fonction récupérant la norme du champ magnétique def recuperation(): #initialisation de la liste retour et récupération des composantes du vecteur champ magnétique champ=[] mag = sense.get_compass_raw() mag_x = mag["x"] mag_y = mag["y"] mag_z = mag["z"] # On calcule la norme du champ magnétique en microTesla champ_mag=1000*sqrt(mag_x*mag_x+mag_y*mag_y+mag_z*mag_z) # le premier élément de la liste retournée sera cette valeur champ.append(champ_mag) # on enregistre également l'heure champ.append(strftime('%X')) return champ sense=SenseHat() sense.clear() sense.set_rotation(90) # On a constaté que les premià¨res valeurs des calculs étaient erronées (pb d'initialisation des capteurs ?) # d'où l'ajout d'un compteur (on s'en sert aussi pour fermer le fichier csv, sous linux le fichier était vierge sinon - pas sous d'autres OS) compteur=0 while compteur < 535: #on limite à  1h30 en gardant une petite marge pour àªtre sà»r de fermer le fichier compteur += 1 champ = recuperation() if compteur > 15: if champ[0]<20000: # a priori on est au dessus de l'amerique du sud (valeur 20000 estimée à  partir des données collectées de l'ISS en février 2016 - voir document complété), # un single event upset est possible, on avertit l'équipage sense.show_message("! SEU possible !") file.write(champ[1]+','+str(champ[0])+', SEU possible\n') else: sense.show_message("No risk") file.write(champ[1]+','+str(champ[0])+', Pas de risque\n') sleep(10) # fermeture du fichier csv file.close()