Go Down

Topic: Arduino+Nunchuck+Nunchucky (Read 3055 times) previous topic - next topic

lesto

devi vedere se le freccie son giuste o sono al contrario, a parte quello qualsiasi va bene
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

f.schiano

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

A domani (in quanto oggi purtroppo non ho avuto proprio tempo)
L'impossibile...richiede solo piu' tempo!

f.schiano

#32
Feb 18, 2012, 03:09 pm Last Edit: Feb 18, 2012, 03:40 pm by f.schiano Reason: 1


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: [Select]
 
   
  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: [Select]
 
  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!
L'impossibile...richiede solo piu' tempo!

lesto



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à
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

f.schiano

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 :(
L'impossibile...richiede solo piu' tempo!

lesto

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
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy