Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 04 ottobre 12, 12:47   #1 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
Wii Nunchuck tre assi!!

come da titolo ovunque viene spacciato con un accelerometro a tre assi... invece ho avuto modo di verificare che gli assi sono solo due! l'accelerometro rileva il rollio e il beccheggio, ma non rileva la roteazione! il terzo numero rileva se il Nunchuck è ribaltato o meno. Se qualcuno ha delle osservazioni prego si accomodi pure..

a presto
fausto
faustog_2 non è collegato   Rispondi citando
Vecchio 04 ottobre 12, 13:09   #2 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
codifica

premetto che uso il Wii originale, il cuore della codifica è la seguente (nel linguaggio C++) , credo che sia corretta... e che non lasci dei bubbi:

int x_acceleration() const
{
return ((int) (buffer[2] << 2) | ((buffer[5] >> 2) & 0x03)
}

int y_acceleration() const
{
return ((int) (buffer[3] << 2) | ((buffer[5] >> 4) & 0x03)
}
int z_acceleration() const
{
return ((int) (buffer[4] << 2) | ((buffer[5] >> 6) & 0x03)
}
insomma se leggete qui o in altri posti ci son scritte porcherie!

Interfacciarsi con il Nunchuck della Nintendo - Appunti | Settorezero

a dopo





Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
come da titolo ovunque viene spacciato con un accelerometro a tre assi... invece ho avuto modo di verificare che gli assi sono solo due! l'accelerometro rileva il rollio e il beccheggio, ma non rileva la roteazione! il terzo numero rileva se il Nunchuck è ribaltato o meno. Se qualcuno ha delle osservazioni prego si accomodi pure..

a presto
fausto

Ultima modifica di faustog_2 : 04 ottobre 12 alle ore 13:16
faustog_2 non è collegato   Rispondi citando
Vecchio 04 ottobre 12, 20:36   #3 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
head tracker

in ogni caso anche su due assi si puo usare per creare un head tracker..


Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
premetto che uso il Wii originale, il cuore della codifica è la seguente (nel linguaggio C++) , credo che sia corretta... e che non lasci dei bubbi:

int x_acceleration() const
{
return ((int) (buffer[2] << 2) | ((buffer[5] >> 2) & 0x03)
}

int y_acceleration() const
{
return ((int) (buffer[3] << 2) | ((buffer[5] >> 4) & 0x03)
}
int z_acceleration() const
{
return ((int) (buffer[4] << 2) | ((buffer[5] >> 6) & 0x03)
}
insomma se leggete qui o in altri posti ci son scritte porcherie!

Interfacciarsi con il Nunchuck della Nintendo - Appunti | Settorezero

a dopo
faustog_2 non è collegato   Rispondi citando
Vecchio 04 ottobre 12, 21:58   #4 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
La butto li a caso: (ho un nunchuck originale aperto e con tanto di connettore-adattatore sparkfun da circa 8 mesi; ma non ho mai trovato il tempo di provarlo) non è che interpreti male i dati letti?

10 bit anziché 9bit + segno ? (non so come li codifichi il micro del nunchuck, l'accelerometro è sicuramente a 3 assi analogico).

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 05 ottobre 12, 08:22   #5 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da faustog_2 Visualizza messaggio
come da titolo ovunque viene spacciato con un accelerometro a tre assi... invece ho avuto modo di verificare che gli assi sono solo due! l'accelerometro rileva il rollio e il beccheggio, ma non rileva la roteazione! il terzo numero rileva se il Nunchuck è ribaltato o meno. Se qualcuno ha delle osservazioni prego si accomodi pure..

a presto
fausto
Attenzione che il terzo asse dà le accelerazioni sul l'asse Z (alto/basso, per intenderci) e non le rotazioni!!

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 05 ottobre 12, 11:43   #6 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
ok

confermo quello che dici ..ma lo fa anche il secondo buffer!

allora abbiamo in tutto 6 byte

byte0 = joy_x
byte1 = joy_y
byte2= acel_x gli 8 bit piu significativi
byte3= acel_y gli 8 bit piu significativi
byte4 = acel_z gli 8 bit piu significativi
byte5 = [bit 1,0 di acel_z - bit 1,0 di acel_y - bit 1,0 di acel_x - bottoneC - bottoneZ]

dunque sia l'asse y che l'asse z rilevano lo stesso asse solo che la z rileva quando il Nunchuk è ribaltato, lo stesso non rileva alcuna variazione se invece lo roteo guardandolo dall'alto.

a dopo
fausto



Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Attenzione che il terzo asse dà le accelerazioni sul l'asse Z (alto/basso, per intenderci) e non le rotazioni!!

Michele
faustog_2 non è collegato   Rispondi citando
Vecchio 05 ottobre 12, 14:45   #7 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
L'accelerometro montato nel Nunchuck è, se non erro, un LIS3L02AL della ST con uscita analogica ratiometrica riferita ai 3,3V di alimentazione, quindi a 0g la Vxyz = 1/2Vdd ovvero 1,65V.

Il convertitore A/D del micro collegato all'accelerometro credo operi nel range numerico 0..1023 con il valore di 512 equivalente a 0g; altra possibilità è che operi fra -512 +511, il tutto è facilmente verificabile leggendo in real-time ii valori grezzi di uscita ruotando il Nunchuck di +-90° su tutti e tre gli assi e poi a +-45° sui piani xyz.

Anche il valore dell'asse Z dovrebbe passare da 256 (+1g) con dispositivo parallelo al suolo, a 512 (og) con dispositivo verticale e poi a 768 (-1g) con dispositivo ribaltato questo se il range è 0...1023 se no lascio a te il calcoletto...

Per valutare l'inclinazione dell'accelerometro nello spazio in genere si utilizza un semplice calcolo trigonometrico sui valori delle coppie di assi xz ed yz; se pur con altri sensori e micro uso questo sistema da anni per leggere l'inclinazione verticale dei pannelli FV ad inseguimento solare della baita.

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 09 ottobre 12, 09:35   #8 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
ok

ho seguito le linee guida, di diversi siti web.. studiando con scrupolo, il treno di byte inviato, se leggi sopra ho dato una descrizione della collocazione dei dati... però facendo le prove ho notato che se roteo l'affare guardandolo dall'alto, i tre valori non cambiano rimangono uguali... ...questo vuol dire che non viene rilevato nessuno spostamento.. qualunque possa essere la combinazione xz, xy, yx ecc... ...nn c'è movimento!



Citazione:
Originalmente inviato da ElNonino Visualizza messaggio
L'accelerometro montato nel Nunchuck è, se non erro, un LIS3L02AL della ST con uscita analogica ratiometrica riferita ai 3,3V di alimentazione, quindi a 0g la Vxyz = 1/2Vdd ovvero 1,65V.

Il convertitore A/D del micro collegato all'accelerometro credo operi nel range numerico 0..1023 con il valore di 512 equivalente a 0g; altra possibilità è che operi fra -512 +511, il tutto è facilmente verificabile leggendo in real-time ii valori grezzi di uscita ruotando il Nunchuck di +-90° su tutti e tre gli assi e poi a +-45° sui piani xyz.

Anche il valore dell'asse Z dovrebbe passare da 256 (+1g) con dispositivo parallelo al suolo, a 512 (og) con dispositivo verticale e poi a 768 (-1g) con dispositivo ribaltato questo se il range è 0...1023 se no lascio a te il calcoletto...

Per valutare l'inclinazione dell'accelerometro nello spazio in genere si utilizza un semplice calcolo trigonometrico sui valori delle coppie di assi xz ed yz; se pur con altri sensori e micro uso questo sistema da anni per leggere l'inclinazione verticale dei pannelli FV ad inseguimento solare della baita.

faustog_2 non è collegato   Rispondi citando
Vecchio 09 ottobre 12, 09:54   #9 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
Vado a memoria ma mi pare che il Nunchuck deve essere prima inizializzato inviandogli un comando particolare, solo dopo inizia ad inviare lo stato del joystick, pulsanti ed accelerometro.

In questi casi verrebbe comodo un analizzatore di protocollo come questo: Zeroplus USB2.0 logic analyzer te lo consiglio funziona bene e, costa poco.

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 10 ottobre 12, 09:16   #10 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
idea

ok, non ho problemi per queste cose... dico che funziona tutto egregiamente... solo che appunto c'è un movimento su un asse al quale il nunchuk espone sempre gli stessi dati senza variazioni. segno che non rileva.. se leggi qualche posto piu indietro ho scritto la sequanza di byte e bit opportuni... Comunque è possibile creare un head track! basta acquistare un nunchuk da 9 euro, due assi sono sufficienti per rilevare il movimento della testa, poi lo stesso deve essere inviato alla presa allievo maestro di una radio TX per aeromodellismo... sui canali 6, e 7 per esempio... ..con essi si pilota la telecamera montata su due servo sull'aeromodello.. il problema è come convertire il TTL in ssegnale per la radio TX ..per il momento ho analizzato il segnale della presa allievo maestro ..

http://www.baronerosso.it/forum/circ...o-maestro.html

da esso si individua il ch6 e il ch7 per variare il segnale opportunamente modificato dal nunchuck!

ti piace l'idea?



Citazione:
Originalmente inviato da ElNonino Visualizza messaggio
Vado a memoria ma mi pare che il Nunchuck deve essere prima inizializzato inviandogli un comando particolare, solo dopo inizia ad inviare lo stato del joystick, pulsanti ed accelerometro.

In questi casi verrebbe comodo un analizzatore di protocollo come questo: Zeroplus USB2.0 logic analyzer te lo consiglio funziona bene e, costa poco.

faustog_2 non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
CNC tre assi gianluca17704 Compro 0 23 dicembre 11 21:42
Aiuto per CNC tre assi ONTRON... nemonemis CNC e Stampanti 3D 12 16 marzo 11 22:29
circuito per cnc tre assi nebraska_ CNC e Stampanti 3D 14 16 luglio 08 18:28
Galleggione a tre assi DoC Aeromodellismo Progettazione e Costruzione 37 16 giugno 04 18:59



Tutti gli orari sono GMT +2. Adesso sono le 16:36.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002