Page 1 of 1
Uso di bussala elettronica CMPS03
Posted:
16 Sep 2011, 20:00
by Fagos
scusate, vediamo se mi potete aiutare,
ho acquistato una bussola elettronica del tipo CMPS03 perchè voglio utilizzarla per orientare un robot che sto costruendo.
Sto avendo qualche problema con l'interfaccia verso un micro AVR.
Non riesco a comunicare con la scheda, anche se ho letto e riletto il manualetto. premetto che sono alle prime esperienze.
cè qlc che mi potrebbe aiutare?
ho capito che bisogna interfacciarla in i2c ma non capisco dove e come la devo collegare.
vi ringrazio
Re: Uso di bussala elettronica CMPS03
Posted:
18 Sep 2011, 08:42
by deluca
Scusa Fagos,
potresti dire di che tipo di micro AVR stai parlando?
Te lo chiedo perchè alcuni hanno l'interfaccia I2C hardware altri no.
Quindi nel caso l'abbia devi configurare l'interfaccia TWI per l'uso come I2C, devi inserire le resistenza di pull-up su SDA e SCL che
sarebbero i segnali seriali e usare un certo tipo di istruzioni.
Nell'altro caso devi utilizzare una configurazione software per connettere la CMPS03 al micro.
Resto in attesa della tua riposta poi vediamo di leggere i dati dalla bussola. Ok ?
Re: Uso di bussala elettronica CMPS03
Posted:
20 Sep 2011, 15:39
by Fagos
Sto utilizzando un ATmega16 e a quanto pare cè la i2c integrata che è possibile gestire in modalità hardware.
Mi potresti dire come la devo interfacciare e un pò di codice per leggere i dati da essa.
Se utilizzi il bascom sarebbe cosa molto gradita, visto che ho iniziato a lavorare con questo sistema di sviluppo.
Ti ringrazio
ciao
Re: Uso di bussala elettronica CMPS03
Posted:
21 Sep 2011, 19:12
by deluca
Fagos wrote:Sto utilizzando un ATmega16 e a quanto pare cè la i2c integrata che è possibile gestire in modalità hardware.
Mi potresti dire come la devo interfacciare e un pò di codice per leggere i dati da essa.
Se utilizzi il bascom sarebbe cosa molto gradita, visto che ho iniziato a lavorare con questo sistema di sviluppo.
Ti ringrazio
ciao
Caro Fagos, ti allego un listato che ho usato per leggere i dati da una bussola magnetica CMPS03.
Qui il micro era un ATmega256, ma chiaramente puoi facilmente adattarlo per l'ATmega16 (vedi il PDF)
- Code: Select all
$regfile = "m2561def.dat"
$crystal = 14745600
$baud = 115200 'seriale robot -> PC
$baud1 = 115200 'seriale robot -> Sonar Board
$hwstack = 128
$swstack = 128
$framesize = 128
$projecttime = 10
$timeout = 1000000
'-------------------------------------------------------------------------------
Declare Function Bussola() As Word
Open "com2:" For Binary As #1
Dim Gradi_1 As Byte
Dim Gradi_2 As Byte
Dim Gradi As Single
Dim Gradi_old As Single
Dim Gradi_w As Word
Config Sda = Portd.1
Config Scl = Portd.0
'-------------------------------------------------------------------------------
Do
Gradi_w = Bussola()
Print #1 , Gradi_w
Loop
End
'-------------------------------------------------------------------------------
Function Bussola() As Word
I2csend &HC0 , 2
I2cstart
I2cwbyte &HC1
I2crbyte Gradi_1 , Ack
I2crbyte Gradi_2 , Nack
I2cstop
Gradi = Gradi_1 * 256
Gradi = Gradi + Gradi_2
Gradi = Gradi / 10
Gradi = Round(gradi)
Bussola = Gradi
End Function
'-------------------------------------------------------------------------------
ciao
Re: Uso di bussala elettronica CMPS03
Posted:
22 Sep 2011, 20:12
by Fagos
funzionaaaaaaa, grazie
ti ringrazio molto, il tuo listato l'ho compilato con la versione demo del Bascom ultima release.
Tutto funziona alla grande, sono riuscito a leggere i dati provenienti dalla bussolaaaaaaaaa.
ciao