Official topic: multicotteri con arduino!

appunto è quello il mio problema... non so in che case sia e secondo voi con la PnP si riesce ad ottenere una precisione sufficiente per usarlo ?

ma cosa esattamente si è rotto? hai provato a collegarlo ad arduino (non serve aprire/smontare) e vedere se funziona effettivamente la comunicazione, o sono proprio i valori in output sballati?

si è bruciata la logica interna... cè un gruppo chip di cui hanno cancellato le sigle che è scoppiato..

fate attenzione quando usate il WMP!! quì Wiimote/Extension Controllers/Wii Motion Plus - WiiBrew dice che ci sono 3 bit (uno per asse) detti di lentezza. Se sono a 0 l'asse è in lettura veloce, quindi sensibilità di 2.27mV/°/s, altrimenti la sensibilità è 0.5mV/°/s.
Quindi la lettura viene fortemente influenzata da questo particolare. In oltre la tolleranza è di 50mV. Il codice che mi son scritto per ricavare la velocità angolare in gradi:
(midValue[] è il valore medio di 1000 letture in fase di calibrazione per ogni asse, numberToVoltage[] = 1.35V/midValue[], ovvero il rapporto per trasformare il valore letto in Volt)

data[0] = ( (((outbuf[3]>>2)<<8) + outbuf[0]) - midValue[0] )*numberToVoltage[0];
    data[1] = ( (((outbuf[4]>>2)<<8) + outbuf[1]) - midValue[1] )*numberToVoltage[1];
    data[2] = ( (((outbuf[5]>>2)<<8) + outbuf[2]) - midValue[2] )*numberToVoltage[2];
if (abs(data[0]) > 0.05){
      if ( outbuf[3] & B00000010 ){
        //slow speed        
        data[0]*=500;
      }
      else{
        data[0]*=2270;
      }
    }
    else{
      data[0]=0;
    }

    if (abs(data[1]) > 0.05){
      if ( outbuf[4] & B00000010 ){
        //slow speed        
        data[1]*=500;
      }
      else{
        data[1]*=2270;
      }
    }
    else{
      data[1]=0;
    }

    if (abs(data[2]) > 0.05){
      if ( outbuf[3] & B00000001 ){
        //slow speed
        data[2]*=500;
      }
      else{
        data[2]*=2270;
      }
    }
    else{
      data[2]=0;
    }

Federico:
L'oscilloscopio e' uno strumento che mi manca e che non ho mai acquistato perche' non avrei la piu' pallida idea di come usarlo, anche se credo che mi tornerebbe molto utile... =( =( =(

Nel laboratorio elettronico l'oscilloscopio è lo strumento principale, senza è come "vedere" un film stando nella stanza accanto, non vedi nulla e senti l'audio male :slight_smile:

Da Robot Italy sono disponibili le breakout board di Sparkfun con il magnetometro HMC5883L a solo 15 Euro.

non so se puo' servire, comunque molto interessante questo mini-quadrocopter:

per principianti, potrebbe essere utile per acquisire le basi per progetti piu' avanzati

davvero interessante, ma che significa che è a tre assi??? ti dice anche l' inclinazione verso il terreno?

astrobeed:

Federico:
L'oscilloscopio e' uno strumento che mi manca e che non ho mai acquistato perche' non avrei la piu' pallida idea di come usarlo, anche se credo che mi tornerebbe molto utile... =( =( =(

Nel laboratorio elettronico l'oscilloscopio è lo strumento principale, senza è come "vedere" un film stando nella stanza accanto, non vedi nulla e senti l'audio male :slight_smile:

Hai ragione, il mio strumento principale e' il tester attualmente :-/ Piu' che altro e' che l'oscilloscopio mi pare uno strumento particolarmente difficile da usare e capire... Ma magari apriamo un post apposito :disappointed_relieved:

milvusmilvus:
davvero interessante, ma che significa che è a tre assi??? ti dice anche l' inclinazione verso il terreno?

Ma che differenza passa tra magnetometro e giroscopio? :drooling_face:

massit78:
non so se puo' servire, comunque molto interessante questo mini-quadrocopter:
Mini Quadrocopter Is Crazy Awesome | Hackaday

Devo dire che i tre tizi sono veramente inquietanti...

per quello che posso capire computa l'orientamento dell'elicottero tramite due giroscopi:

  • uno per le due direzioni X-Y
  • uno per la direzione Z

Federico:

milvusmilvus:
davvero interessante, ma che significa che è a tre assi??? ti dice anche l' inclinazione verso il terreno?

Ma che differenza passa tra magnetometro e giroscopio? :drooling_face:

un magnetometro ti ritorna la posizione assoluta rispetto ad un punto, quindi hai un punto fisso e tu hai un'inclinazione rispetto a questo punto, mentre nel gioroscopio il punto sarebbe quello di partenza, hai un delta e non valore assoluto ovvero una variazione di inclinazione.

almeno a me è stato spiegato così

lesto:
fate attenzione quando usate il WMP!! quì Wiimote/Extension Controllers/Wii Motion Plus - WiiBrew dice che ci sono 3 bit (uno per asse) detti di lentezza. Se sono a 0 l'asse è in lettura veloce, quindi sensibilità di 2.27mV/°/s, altrimenti la sensibilità è 0.5mV/°/s.
Quindi la lettura viene fortemente influenzata da questo particolare. In oltre la tolleranza è di 50mV. Il codice che mi son scritto per ricavare la velocità angolare in gradi:

Nel senso che non tutti i nintendo wmp sono uguali?

Quindi se monti giroscopio, accelerometro, magnetometro, e' la morte sua...

Federico:
Quindi se monti giroscopio, accelerometro, magnetometro, e' la morte sua...

manca solo un GPS con software adattato e sei a posto per creare un terminator schwarzenegger XD

scusate ma il magnetometro, no indica l' orientamentno merso il nord?? cioè è una bussola

milvusmilvus:
scusate ma il magnetometro, no indica l' orientamentno merso il nord?? cioè è una bussola

ma su 3 assi non hai una retta che ti indica il nord ma un punto preciso a nord, in base a questo trovi la sua inclinazione

appunto mi chiedevo come facesse a orientarsi anche in verticale, evidentemente ha un giroscopio... con un oggetto del genere ed un gps si puo pensare di fare il uav come lo avevo pensato io qualche pagia fa, cioè calcola l' angolo rispetto al punto di arrivo e si muove in quella direzione finche non lo raggiunge

superlol:
un magnetometro ti ritorna la posizione assoluta rispetto ad un punto quindi hai un punto fisso e tu hai un'inclinazione rispetto a questo punto

Ti hanno spiegato molto male :slight_smile:
Il magnetometro, come dice il nome stesso, misura un campo magnetico, nel caso specifico quello terrestre, combinando la misura di due assi, X e Y, si ottiene una bussola elettronica che ti dice dove si trova il nord magnetico, però è fortemente influenzata dai campi magnetici e dalle masse ferromagnetiche presenti nei dintorni.
Una bussola elettronica è precisa solo se è perfettamente in bolla, l'eventuale inclinazione su uno degli assi influenza molto la direzione misurata del nord magnetico, per ovviare si utilizza un inclinometro per misurare il fuori bolla e correggere di conseguenza la lettura per ottenere il vero nord magnetico.
Nelle IMU il magnetometro si usa sia come inclinometro assoluto, molto efficace e non è influenzato dalle accelerazioni del mezzo, sia come bussola elettronica quando l'assetto non è troppo inclinato utilizzando i dati dell'accelerometro e del giroscopio per compensare l'errore dovuto all'inclinazione.
Lo so che sembra complicato, infatti lo è :slight_smile:

, mentre nel gioroscopio il punto sarebbe quello di partenza, hai un delta e non valore assoluto ovvero una variazione di inclinazione.

Il giroscopio misura la velocità angolare, è possibile ottenere l'angolo di rotazione integrando le letture, ma in brevissimo tempo, poche decine di secondi, si perde l'esatta misura dell'angolo di rotazione per tutta una serie di problemi legati al drift del sensore, il rumore, la quantizzazione, la velocità di campionamento etc.
Per ovviare si ricorre alla sensor fusion, cioè si utilizzano i dati di più sensori tra loro complementari per estrapolare il dato corretto e compensato, nel caso della IMU si utilizza un giroscopio e un accelerometro per ogni asse come minimo, se poi se si aggiunge anche il magnetometro, viene usato come inclinometro assoluto, si ottiene un'ottima precisione, e stabilità, nel rilevamento dell'assetto.
Una IMU fatta bene, sia come hardware che come software che gestisce i dati, permette di conoscere l'assetto del mezzo, la velocità di spostamento, la direzione di marcia e di stimare la posizione del mezzo nello spazio, cioè dove si trova rispetto al punto di partenza.