Module boussole "CMPS03"
- Rupture de stock
Dont 0,01 € d'eco-participation déjà incluse dans le prix
Ce produit est épuisé. Nous maintenons sa présence sur notre site pour que les personnes ayant fait son acquisition puissent toujours avoir accès à sa documentation (mais ce dernier ne peut plus être commandé). Nous vous suggérons le modèle de remplacement CMSP12 (cliquez ici)
Ce module est capable de détecter le "nord" grâce à l'emploi de 2 capteurs spécialisés montés en angle à 90° et par déduction de vous indiquer son orientation par le biais d'un échange d'information via un bus I2C ou d'un signal PWM.
Le signal PWM fournit une impulsion comprise entre 1 ms (0°) et 36,99 ms (359,9°) avec une résolution d'environ 100 us / °).
Idéalement conçue pour les applications liées à la robotique ludique cette boussole pourra par exemple être très facilement interfacée avec la plupart des microcontrôleurs ou avec les modules microcontrôlés type "PICBASIC™", CUBLOC™ ou ROVIN™".
Pour une plus grande facilité, le bus "I2C™" pourra également être utilisé pour récupérer les informations sous forme d'un mot binaire compris entre 0 et 255 ou 0 et 3599 (correspondant ici à 0 et 359,9 °).
Pour ce faire, il suffira d'adresser le module à la manière d'une mémoire série qui vous "répondra" en vous renvoyant la valeur mesurée. Afin d'augmenter la précision de la mesure, le module dispose également d'une procédure de calibrage et d'une intégration de l'influence des perturbations liées aux réseaux 50/60Hz.
Pouvant être piloté par la plupart des microcontrôleurs, ce capteur est également directement compatible avec la platine optionnelle "Serializer WL™" (voir en bas de page).
Caractéristiques techniques:
- Alimentation: + 5 Vcc.
- Consommation: 20 mA.
- Résolution: 0.1 °.
- Précision: 3 à 4 ° env.
- Dimensions: 32 x 35 mm.
Exemple d'application avec un PICBASIC
Exemple d'application avec un module CUBLOC (Note d'application #6)
Exemple d'application avec un module Cubloc "CB210"
Pilotage d'une boussole électronique"CMPS03" à commande I2C™
Présentation:
Cette application montre comment piloter une bossole électronique "CMPS03" à commande I2C™ à partir d'un module Cubloc "CB210" afin d'afficher la direction de la boussole via une aiguille fictive sur un écran LCD graphique couleur.
Matériel nécessaire:
- 1 module CUBLOC "CB210" (réf.: CB210) + 1 câble USB standard (réf.: NPAC601B018)
- 2 x résistances de 4,7 Kohms
- 1 afficheur LCD couleur miniature (réf.: G2-ULCD144)
- 1 module boussole (réf.: CMPS03)
Câblage de l'application:
Description du programme:
Le programme est très simple. Ce dernier se contente de récupérer la valeur de l'angle de la position de la boussole via le bus I2C™. Cet angle est mémorisé dans une variable de type Interroger sous la forme d'un nombre compris entre 0 et 359 (soit un angle de 0 à 359 °). Le programme va ensuite afficher une aiguille "virtuelle" sur un écran LCD couleur à commande série. Le tracé de cette aiguille utilise les mêmes formules que celles utilisée pour la notre d'application N° 8 Ci-dessous.
Le programme affiche également un petit rond "plein" au bout de l'aiguille afin que l'on puisse bien distinguer sa position.
On prend soin de mémoriser l'ancienne position de l'aiguille afin d'effacer son tracé avant de redessiner celle-ci sur sa nouvelle position.
N'hésitez pas à visualiser la vidéo de cette application.
Code source:
'###############################################################
' Pilotage d'une matrice miniature à Leds à commande I2C
' @Lextronic 2012 - 07/07/2012 - version Cubloc Studio 3.3.4
'
' Programme donne a titre d'exemple. A utiliser dans le cadre d'une initiation aux modules CUBLOC
' (l utilisation commerciale de ce programme est interdite). Lextronic decline toute responsabilite en
' cas de prejudice resultant de l'utilisation de cette note d'application.
'###############################################################
Const Device = CB210
Dim x As Integer ' Registre coordonne aiguilles
Dim y As Integer ' Registre coordonne aiguilles
Dim xm As Integer ' Registre memoire coordonne aiguilles
Dim ym As Integer ' Registre memoire coordonne aiguilles
Dim angle As Integer ' Variable angle
Dim mangle As Integer ' Variable memore angle
Dim errorcom As Byte ' Registre communication I2C
Delay 500
Opencom 1,230400,3,10,70
Delay 500
Putstr 1,"U" ' Envoi caractere de synchronisation
Delay 500
Putstr 1,"E" ' Efface l'ecran
Delay 100
Putstr 1,"p",&h01 ' Selection objet non plein
Delay 1
Putstr 1,"C",64,64,63,&h07,&hE0 ' Trace contour cercle boussole
Delay 100
Set I2c 8,9 ' Configure ports pour liaison I2C
Putstr 1,"p",&h00 ' Selection objet plein
Delay 500
Do
' ####### Recuperation donnee de la boussole ##############
I2cstart ' Condition Start I2C
errorcom = I2cwrite (&HC0) ' Adresse du module CMPS03
errorcom = I2cwrite (0) ' Selectionne adresse registre a lire
I2cstart ' Condition Start I2C
errorcom = I2cwrite (&HC1) ' Selectionne condition de lecture I2C
angle = I2cread(0) ' Lecture N° revision module CMPS03
angle = I2cread(0) ' lecture valeur angle (0 - 255)
angle.Byte1=I2cread(0) ' Recupere octet poids fort angle
angle.Byte0=I2cread(0) ' Recupere octet poids faible angle
errorcom = I2cwrite (&HC1) ' Selectionne condition de lecture I2C
I2cstop ' Condition Stop I2C
' ####### Dessine aiguille boussole ##############
x = 64 - Cos(((angle/10) * 3.141593) / 180.0) * 43
y = 64 - Sin(((angle/10) * 3.141593) / 180.0) * 43
If xm <> x Or ym <> y Then
Putstr 1,"C",127-xm,127-ym,4,&h00,&h00 ' efface rond
Delay 5
Putstr 1,"L",xm,ym,127-xm,127-ym,&h00,&h00 ' efface aiguille
Delay 3
Putstr 1,"L",x,y,127-x,127-y,&h0FF,&hE0 ' Affiche aiguille
Delay 3
Putstr 1,"C",127-x,127-y,4,&h0FF,&hE0
Delay 50
xm = x ' Memorise ancienne coordonee x
ym = y ' Memorise ancienne coordonee y
Endif
Loop
Produits associés