ultimo aggiornamento 23 novembre 2013



JLCPCB - 2$ per prototipi di PCB, di qualsiasi colore. Produzione in 24 ore!
L'Azienda di prototipi PCB più popolare, con oltre 700.000 clienti in tutto il mondo!
Recati presso la JLCPCB, riceverai regali e coupon gratuiti
presso Maker Faire Rome il 18-20 ottobre


Il sensore qui a lato e stato previsto a suo tempo per essere installato nel "fratello" italiano di Robozak ossia Robonox.
Il modello di sensore utilizzato per la scheda è ADXL 322 prodotto dalla  ANALOG Devices.
Il sensore è montato su un piccolo circuito stampato di 14 mm di lato e dispone di un connettore a 5 pin.
Per il collegamento alla scheda deve essere realizzato un apposito cavo d'interfaccia che prevede da un lato un connettore femmina a 4 pin e dall'altro due connettore (tipo servo) femmina a tre pin.
I due connettori andranno collegati a due porte del blocco A/D per esempio AD0 e AD1.

Caratteristiche
Risoluzione 2mg a 60 Hz
Bassa potenza assorbita
Buona stabilità allo zero
Buona sensibilità e accuratezza
Asse X e Y allineati con un errore massimo di 0.1°

 

Connettore accelerometro

PIN Funzione
1 GND
2 Alimentazione
3 X out
4 Y out
5 Self test

 

OurPCB, your most reliable PCB and PCBA supplier.

Focusing on PCB Prototype and PCB Assembly Turnkey Services.

One-Stop Wire Harness & Cable Assemblies Solution

 

ADXL322 Analog Devices

Alcune delle caratteristiche sono :
Sensore a 2 assi in singolo Chip
Chip delle dimensioni di 4 mm × 4 mm × 1.45 mm
Misurazione da 0 a ±2 g su ciascun asse
Risoluzione 2 mg a 60 Hz
Assorbimento 340 μA con VS = 2.4 V
Tensione di alimentazione compresa tra 2.4 V e 6 V
Direttamente interfacciabile con Microcontrollers
Resistente sino 10,000 g

 


Data Sheet


Nella figura sopra si può vedere la tensione di uscita per i due assi nelle varie posizioni del sensore, in nero sono riportate le tensioni se il sensore è alimentato con una tensione di 3V, in rosso quelle se alimentiamo il sensore con 5V, come nel caso di collegamento alle porte AD di ROBOZAK.
Infine in verde è riportato il valore dato dalla conversione del valore analogico in digitale.
In pratica quando il sensore è in piano la tensione di uscita vale la metà della tensione di alimentazione, mentre varia da un minimo di 1,8 ad un massimo di 3,2 (con alimentazione di 5V) al cambiare della posizione del sensore.
Praticamente, conviene fissare il sensore nella posizione voluta sul corpo del robot, poi tramite il display LCD leggere il valore nelle posizioni che vogliamo "Sorvegliare" e in base a questo scrivere il programma.

 

accelerometro_robozak_lettura-valori.jpg accelerometro_robozak_connettori.jpg
accelerometro_robozak_totale.jpg accelerometro_robozak_dettaglio.jpg


Schema elettrico

 

accelermetro_componenti.jpg

Materiale per realizzare il cavo:
  • 2 connettori tipo servo
  • 1 pin-strip 4 pin femmina
  • 30 cm piattina a 6 fili.
accelermetro_connettori.jpg accelermetro.jpg

Dettaglio connettore su sensore

 

Foto del sensore di accelerazione

Lato frontale

Lato posteriore

 

'======================================
' Lettura_accelerometro.bas
' di Adriano Gandolfo
' www.adrirobot.it
'======================================
'Definizione variabili
DIM asse_x AS INTEGER
DIM asse_y AS INTEGER
'Inizializzazione LCD e
'messaggio iniziale
LCDINIT
PRINT "&$"
DELAY 500

lettura:
asse_x=AD(0) 'Il valore letto dalla porta 0 è salvato nella variabile Asse_x
asse_y=AD(1) 'Il valore letto dalla porta 1 è salvato nella variabile Asse_Y
PRINT "1Asse X="
PRINT FORMAT(Asse_x,DEC,2) ' Viene mostrato il valore letto
PRINT "#$"
DELAY 100
PRINT "2Asse Y="
PRINT FORMAT(Asse_y,DEC,2) ' Viene mostrato il valore letto
PRINT "#$"
DELAY 100
GOTO lettura


Lettura_accelerometro.bas

'=======================================
' RoboPenguin - Penguin_accelerometro.bas
'=======================================

DIM Asse_X AS INTEGER
DIM Asse_Y AS INTEGER

PTP SETON
PTP ALLON

DIR G6A,1,1,1,0,0,0
DIR G6B,1,1,0,0,0,0
DIR G6C,0,0,0,0,0,0
DIR G6D,0,0,0,0,0,0
' Settaggio degli ZERO point
ZERO G6A,116,105,101,100,100,100
ZERO G6B,100,100,100,100,100,100
ZERO G6C,100,100,100,100,100,100
ZERO G6D,98,98,96,100,100,100

GETMOTORSET G6A,1,1,1,0,0,0
GETMOTORSET G6B,1,1,0,0,0,0
GETMOTORSET G6C,1,1,0,0,0,0
GETMOTORSET G6D,1,1,1,0,0,0
MOTOR G24
SPEED 5
TEMPO 230
MUSIC "CDE"
GOSUB standard_position

main:
Asse_X = AD(0)
Asse_Y = AD(1)
' x=502 y=350 Robozak pancia in sù
' x=512 y=657 Robozak pancia in giù
IF Asse_Y > 348 AND Asse_Y < 355 THEN GOSUB rialzo_frontale
IF Asse_Y > 650 AND Asse_Y < 660 THEN GOSUB rialzo_posteriore
IF Asse_Y > 500 AND Asse_Y < 520 THEN GOSUB standard_position
GOTO main

standard_position:
MOVE G6A,100,100,100,,,
MOVE G6B,100,10,,,,
MOVE G6C,100,10,,,,
MOVE G6D,100,100,100,,,
DELAY 1000
MUSIC "CDE"
RETURN

rialzo_posteriore:
MOVE G6A,100, 100, 100,,,
MOVE G6B,100,15,,,,
MOVE G6C,100,15,,,,
MOVE G6D,100,100, 100,,,
MOVE G6A,100,100, 130,,,
MOVE G6B,100,50,,,,
MOVE G6C,100,50,,,,
MOVE G6D,100,100, 130,,,
MOVE G6A,100,100,100,,,
MOVE G6B,100,15,,,,
MOVE G6C,100,15,,,,
MOVE G6D,100,100, 100,,,
RETURN

rialzo_frontale:
MOVE G6B,185,15,,,,
MOVE G6C,185,15,,,,
MOVE G6B,185,60,,,,
MOVE G6C,185,60,,,,
MOVE G6B,185,15,,,,
MOVE G6C,185,15,,,,
RETURN


Penguin_accelerometro.bas

Elenco revisioni
17/03/2009 Aggiornato pagina
12/01/2009 Emissione preliminare