Pages: 1 2 [3]   Go Down
Author Topic: Arduino+Nunchuck+Nunchucky  (Read 2496 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10463
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

devi vedere se le freccie son giuste o sono al contrario, a parte quello qualsiasi va bene
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Germany
Offline Offline
Edison Member
*
Karma: 2
Posts: 1363
Here we go!!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si. LE frecce sono cosi' perche' ho provato.. Casomai rilevo qualche cambiamento ti faccio sapere smiley

A domani (in quanto oggi purtroppo non ho avuto proprio tempo)
Logged

L'impossibile...richiede solo piu' tempo!

Germany
Offline Offline
Edison Member
*
Karma: 2
Posts: 1363
Here we go!!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Partiamo dal fatto che prima di tutto devi trovare lo 0G la 1G, si fa così:
asse Z verso il basso: z=0G+1G, x=0G e y=0G
asse X verso il basso: z=0G, x=0G+1G e y=0G
asse Y verso il basso: z=0G, x=0G e y=0G+1G


Lesto per fare cio' devo, da software impostare tutti i valori uguali? Cioe':
Code:
 
   
  n=(buf[2]<<2)+((buf[5]>>2)&3)-500;  // accel X
  Serial.print("\t"); 
  Serial.print(n);

  n=(buf[3]<<2)+((buf[5]>>4)&3)-500;  // accel Y
  Serial.print("\t"); 
  Serial.print(n);

  n=(buf[4]<<2)+((buf[5]>>6)&3)-500;  // accel Z
  Serial.print("\t"); 
  Serial.print(n);

e non(come trovo in un esempio sul web in cui e' gia' calibrato per UN DETERMINATO NUNCHUCK):
Code:
 
  n=(buf[2]<<2)+((buf[5]>>2)&3)-524; // accel X
  Serial.print("\t"); 
  Serial.print(n);

  n=(buf[3]<<2)+((buf[5]>>4)&3)-597;  // accel Y
  Serial.print("\t"); 
  Serial.print(n);

  n=(buf[4]<<2)+((buf[5]>>6)&3)-668; // accel Z
  Serial.print("\t"); 
  Serial.print(n);

Giusto?

Grazie!
« Last Edit: February 18, 2012, 09:40:22 am by f.schiano » Logged

L'impossibile...richiede solo piu' tempo!

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10463
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


però questo da per scontatati che la X Y e Z leggano lo stesso valore per la stessa G, cosa non vera nell'imperfetto mondo reale.


è giusto che ogni asse abbia il suo valore di zero.

Quote
I valori non saranno tutti uguiali ma simili, mi pare che la Z discosti un po' essendo su un chip a parte.

infatti notare nel codice del tizio i valori dello zero per X Y Z: x0= 524, y0 = 597, z0=668

Quote
asse Z verso il basso: z=0G+1G, x=0G e y=0G
asse X verso il basso: z=0G, x=0G+1G e y=0G
asse Y verso il basso: z=0G, x=0G e y=0G+1G

Questo vale in un modo fisico perfetto, serve per capire il concetto, poi devi lottare con la realtà
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Germany
Offline Offline
Edison Member
*
Karma: 2
Posts: 1363
Here we go!!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho capito bene cosa intendi con questo ultimo messaggio.

Ti riporto i miei valori togliendo a tutte le letture -500 (uguale per tutti):

z rivolto verso il basso: x=15     y=102    z=206
x rivolto verso il basso: x=218    y=18     z=53
y rivolto verso il basso: x=9       y=205    z=-70

Non mi sembra che siano molto simili tra loro questi valori. Non riesco ad intravedere quelle che tu hai chiamato 0G e 1G.

Scusami smiley-sad
Logged

L'impossibile...richiede solo piu' tempo!

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10463
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quel 500 che togli è il G0...
ma come fai a sottrarre G0 se stai CERCANDO G0... i tui veri valori quindi sono:

515   602   706
710   510   553
509   705   430

notiamo subito che G0+G1 è circa 705 in tutti gli assi
mentre il G0 su x va da 509 a 515
il G0 su y va da 510 a 602 (uhmm quà sembra un bel errore di posizionamento della scheda)
il G0 su z va da 553 a 430

ripeti almeno altre 5 o 10 volte queste misurazioni cercando di esse il più preciso possibile: auutati con qualcosa che ti tenga la scheda in bolla, e usa una bolla se ce l'hai
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: 1 2 [3]   Go Up
Jump to: