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. |
| | | |
− | == Introduction ==
| + | [[Fichier:MOD-MAG3110.png]] |
| + | |
| + | Le MAG3110 équipe également différents breakout comme celui de SparkFun ci-dessous. |
| + | |
| + | [[Fichier:MICROPYTHON-MOD-MAG3110-02.png]] |
| + | |
| + | 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 121 : |
Ligne 135 : |
| | | |
| {{ambox|text= '''POUR CALIBRER:''' faire tourner le senseur sur 360 degrés. Le mode de calibration s'interrompt entre 5 à 10 secondes.}} | | {{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 == |