Modifications

Sauter à la navigation Sauter à la recherche
3 210 octets ajoutés ,  28 novembre 2018 à 12:15
Ligne 1 : Ligne 1 : −
{{traduction}}
+
== Introduction ==
 +
MOD-MAG utilise un MAG3110 de FreeScale/NXP. Le MAG3110 est un magnétomètre 3 axes. Il utilise une source d'alimentation de 1.95V à 3.6V et communique par l'intermédiaire du bus I2C. Les donnés sont envoyées sur le bus I2C en utilisant le complément en deux (donc signés). La gamme de valeur évolue entre -30000 à +30000 pour la gamme de ±1000µT (micro Tesla).
 +
 
 +
Ce senseur permet de détecter rapidement des champs magnétiques dans le voisinage. Les données peuvent être utilisées pour créer une boussole digitale ou détecter le champ magnétique de transformateurs électriques!
 +
 
 +
L'avantage du module MOG-MAG est qu'il expose un port UEXT facilitant les raccordements.
 +
 
 +
[[Fichier:MOD-MAG3110.png]]
 +
 
 +
Le MAG3110 équipe également différents breakout comme celui de SparkFun ci-dessous.
 +
 
 +
[[Fichier:MICROPYTHON-MOD-MAG3110-02.png]]
   −
== Introduction ==
+
Cette carte:
 +
* Utilise le '''bus I2C'''
 +
* Propose une lecture de champs magnétiques
 +
* Un connecteur UEXT pour faciliter le raccordement
    
== Matériel utilisé ==
 
== Matériel utilisé ==
Ligne 111 : Ligne 125 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
=== Exemple Float ===
+
=== Exemple: Calibration & Orientation ===
 +
Contenu de l'exemple est disponible dans {{fname|testcal.py}}.
 +
 
 +
Ce dernier démontre l'utilisation de la phase de calibration et correction avec l'offset utilisateur.
 +
 
 +
Une fois la calibration terminée, le script indique l'angle d'orientation par rapport le Nord magnétique.
 +
 
 +
La calibration prend place au démarrage du script. Une fois la calibration terminée, le script indique le Nord.
 +
 
 +
{{ambox|text= '''POUR CALIBRER:''' faire tourner le senseur sur 360 degrés. Le mode de calibration s'interrompt entre 5 à 10 secondes.}}
 +
 
 +
<syntaxhighlight lang="python">from time import sleep
 +
from mag3110 import MAG3110, DR_OS_1_25_32
 +
 
 +
i2c = I2C( sda=Pin(2), scl=Pin(4) )
 +
mag = MAG3110( i2c )
 +
 
 +
print( "CHIP ID: %s" % mag.who_am_i() )
 +
 
 +
# Fixer le débit de donnée à 1.25 Hz et l'oversampling à 32 fois
 +
#  mag.setDR_OS( DR_OS_1_25_32 )
 +
 
 +
# Activer le senseur
 +
mag.start()
 +
 +
while True:
 +
# Pas encore calibré ?
 +
if not mag.is_calibrated:
 +
# Pas en cours de calibration ?
 +
if not mag.is_calibrating:
 +
print( "Démarrer le mode de calibration!")
 +
mag.enter_calibration()
 +
else:
 +
    # collecter des données de calibration
 +
mag.step_calibration()
 +
else:
 +
print( "Calibré" )
 +
break
 +
 
 +
# Afficher les infos durant la calibration
 +
#  (x,y,z) tuple
 +
# xyz = mag.read()
 +
# print( xyz )
 +
 +
print( 'Offset utilisateur = %s,%s,%s' % mag.user_offset() )
 +
#mag.setDR_OS( DR_OS_1_25_32 )
 +
while True:
 +
    if mag.data_ready:
 +
        print( 'x,y,z = %s,%s,%s ' % mag.read() )
 +
        heading = mag.heading()
 +
        print( 'Direction Nord = ', heading )
 +
        print( '-'*40 )
 +
        sleep( 3 )
 +
 
 +
print( "That's the end folks")</syntaxhighlight>
 +
 
 +
Contenu de l'exemple est disponible dans {{fname|testcal.py}}.
 +
 
 +
=== Exemple: autres ===
 +
La [https://github.com/sparkfun/SparkFun_MAG3110_Breakout_Board_Arduino_Library bibliothèque MAG3110 Arduino proposé par Sparkfun] propose d'autres exemples comme:
 +
* La magnitude
 +
* Bousolle digitale
 +
* Lecture MicroTesla (extra)
 +
* Le déclenchement de mesure (mode triggered)
 +
 
 +
Le temps manquant, je n'ai pu faire le portage de ces exemples (et code bibliothèque correspondant) sous MicroPython. N'hésitez pas à nous contacter sur MC Hobby en cas de besoin ou partage de participation.
    
== Où acheter ==
 
== Où acheter ==
29 917

modifications

Menu de navigation