Show Posts
Pages: [1] 2 3 ... 17
1  International / Software / Imu Yaw drift on: July 24, 2014, 03:16:17 am
Buongiorno a tutti,
sto lavorando con un imu (Drotek, 9 Dof) che è un clone del FreeImu di Varesano, per il quale infatti cambiando poche righe  è stato possibile utilizzare la sua libreria.
Dopo la calibrazione che ho fatto conla GUI di Free imu il sensore funziona molto bene, solamente che dopo alcuni movimenti l'angolo YAW iniza a driftare.
ho pensato di aggiungere un complementary filter, ma ho notato che è già presente un DCM filter nella libreria...
Come potrei risolvere?

finche non inizio a muovere il sensore non ho un drift esagerato (qualche decimo di grado) poi  dopo i primi movimenti inizia e in pochi minuti si raggiungono decine di gradi di errore..
sono veramente disperato....
2  International / Hardware / Re: problema con sensori on: July 17, 2014, 12:30:51 pm
Allora, PARZIALMENTE RISOLTO...
grazie al suggerimento di cyberhs...
ho messo un condensatore da 22 pf sul pin CS di ogni accelerometro...ed uno da 22 pF sul pini MISO di ogni accelerometro che dava problemi (non tutti)
non ho messo quindi un solo condensatore su ogni linea, ma sono andato a posizionarli proprio sul sensore..
domani guardo se sono necessari anche su MOSI o SCKL e vi faccio sapere...la strada è quella giusta...

grazie ancora cyberhs
3  International / Hardware / Re: problema con sensori on: July 16, 2014, 08:24:31 am
fino a 3 l'ho provato ed andava senza problemi.....
anche la corrente non dovrebbe essere un problema, il datasheet dice che consumano nell'ordine dei microAmper...

ci sto diventando matto
4  International / Hardware / Re: problema con sensori on: July 16, 2014, 07:50:39 am
si, queste
https://www.sparkfun.com/products/11446
5  International / Hardware / Re: problema con sensori on: July 16, 2014, 07:47:35 am
con le resistenze non ho avuto successo, ora provo con i condensatori.....

sisi le masse sono tutte attaccate insieme, e all'arduino ovviamente
6  International / Hardware / Re: problema con sensori on: July 16, 2014, 04:03:43 am
guarda il problema di masse l'ho pensato anche io...
però non saprei come risolverlo....pensavo infatti che mancasse un riferimento sul sensore....ma in realtà la massa è collegata correttamente.....
lo schema di principio è questo

http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/SPI_three_slaves.svg/363px-SPI_three_slaves.svg.png


solo che i sensori sono 8...
ho anche messo le resistenza da 10 k per sicurezza sui pin non utilizzati e lo leggo uno solo...
7  International / Hardware / problema con sensori on: July 16, 2014, 03:34:09 am
Buongiorno
ho collegato 8 sensori ADXL362  (http://www.analog.com/static/imported-files/data_sheets/ADXL362.pdf)
ad un arduino pro mini 3.3v.
i collegamenti sono tutti corretti, liho testati centinaia di volte, e anche le saldature le ho rifatte almeno 4 5 volte l'uno...
i pin MOSI, MISO e SCK sono in parallelo, mentre i pin CS sono ognuno collegato ad un pin dell'arduno...
il problema è che non sempre riesco a fare le letture correttamente
ho notato però che se tocco la saldatura CS con il puntale dell'oscilloscopio il sensore inizia a funzionare regolarmente....dopo due giorni di lotta ho dedotto che sia un problema di capacità parassite, infatti toccando con il puntale il pin dell'arduino non cambia niente, toccando invece il pin sul sensore cambia.....
come potrei risolvere questo problema? diminuendo la frequeza di lavoro?
non so davvero come fare....
grazie

tommaso
8  International / Hardware / Re: Che cos'è la porta Vin? on: July 12, 2014, 09:32:58 am
il pin Vin serve ad alimentare arduino con una sorgente esterna (non usb).

Qui trovi tutte le info
http://arduino.cc/en/Main/ArduinoBoardUno

se la tua board è la uno...
9  International / Hardware / Re: Come usare un altoparlante? on: July 12, 2014, 09:30:57 am
dipende cosa ci vuoi fare....
certo è che a non lo puoi attaccare direttamente!
10  International / Hardware / Re: SPI a 3.3v in arduino uno on: July 12, 2014, 08:30:33 am
Ok, allora farò così!
un partitore con 1,2k e 2,2k!
speravo ci fosse un modo per settare l'arduino a lavorare a 3.3 !!!
11  International / Hardware / SPI a 3.3v in arduino uno on: July 12, 2014, 04:59:19 am
Buongiorno,
scrivo nella sezione hardware per un problema relativo alla comunicazione tramite SPI tra arduino UNO e un acceleromentro ADXL3632
https://www.sparkfun.com/products/11446

questo accelerometro lavora con SPI a 3.3 v, fino a lunedì non potrò lavorare con il pro-mini a 3.3v ma mi sono portato a casa solo un arduino UNO.
C'è modo di far lavorare l' UNO a 3.3v?
oltre al SPI anche il pin CS ho letto che deve essere a 3.3 volt

grazie mille

Tommaso
12  International / Software / Re: Crash e riavvio on: July 12, 2014, 04:56:16 am
Avete ragione!
io sto usando sia il pro-mini a 3.3, che un arduino nano, che se non sbaglio è uguale all'uno...e funziona in entrambi....
meglio smettere di utilizzare il nano allora perchè a quanto dice il datasheet, https://docs.google.com/file/d/0B3ASxBYiXsrDX3oyMzhfLWtiTkE/edit,
SDA e SCL sono chiaramente a 3.3 v

non ho messo resistenze di pull-up
perchè le dovrei mettere? il mux mi funziona solo da switch tra un IMU e l'altro, ho problemi se lascio le linee SDA e SCL flottanti?

grazie mille

13  International / Software / Re: Crash e riavvio on: July 10, 2014, 10:06:09 am
era quello! Grazie mille...
sospettavo fosse un problema del genere, infatti mi sono procurato un MEGA, solo che mi sono accorto dopo che per il mega ho bisogno di un level shifter per l'I2C

grazie mille davvero
14  International / Software / Crash e riavvio on: July 10, 2014, 09:27:07 am
Buonasera a tutti...torno a scrivere dopo mesi sul forum...non perchè abbia smesso di seguirvi ma perchè tutte le mie domande hanno trovato risposta in post precedenti...tranne questa...

ho collegato ad arduino (sia pro mini, che nano, stesso risultato) 6 IMUs ( il 10 DOF della Drotek). Ho riadattato la libreria di FreeImu per farla lavorare con questo dispositivo, e poichè non è possibile cambiare gli indirizzo ho utilizzato due  MUX analogici a 8 vie per selezionare ogni volta l'imu di interesse (switchando SDA e SCL contemporaneamete....tutto funziona bene...fino a 5 IMU, quando definisco il 6 non funziona più niente....
vi posto qua il codice:


Code:

// Set the default object
FreeIMU myIMU1 = FreeIMU();
FreeIMU myIMU2 = FreeIMU();
FreeIMU myIMU3 = FreeIMU();
FreeIMU myIMU4 = FreeIMU();
FreeIMU myIMU5 = FreeIMU();
//FreeIMU myIMU6 = FreeIMU();


void mux_output (int output){
  switch (output) {
    case 1:
      digitalWrite(A0, LOW);
      digitalWrite(A1, LOW);
      digitalWrite(A2, LOW);
      //Serial.println("Selected output 1");
      break;
    case 2:
      digitalWrite(A0, HIGH);
      digitalWrite(A1, LOW);
      digitalWrite(A2, LOW);
      //Serial.println("Selected output 2");
      break;
    case 3:
      digitalWrite(A0, LOW);
      digitalWrite(A1, HIGH);
      digitalWrite(A2, LOW);
      //Serial.println("Selected output 3");
      break;
    case 4:
      digitalWrite(A0, HIGH);
      digitalWrite(A1, HIGH);
      digitalWrite(A2, LOW);       
      //Serial.println("Selected output 4");
      break;
    case 5:
      digitalWrite(A0, LOW);
      digitalWrite(A1, LOW);
      digitalWrite(A2, HIGH);     
      //Serial.println("Selected output 5");
      break;
     
      case 6:
      digitalWrite(A0, HIGH);
      digitalWrite(A1, LOW);
      digitalWrite(A2, HIGH);     
      //Serial.println("Selected output 6");
      break;
     
  }
   
 }


void imus_inizialization() {
    Serial.println("inizialization IMU number: 1");
    mux_output(1);
    delay(500);
    myIMU1.init(true); // the parameter enable or disable fast mode
    Serial.println("inizializated ");
 
    Serial.println("inizialization IMU number: 2");
    mux_output(2);
    delay(500);
    myIMU2.init(true); // the parameter enable or disable fast mode
    Serial.println("inizializated ");

    Serial.println("inizialization IMU number: 3");
    mux_output(3);
    delay(500);
    myIMU3.init(true); // the parameter enable or disable fast mode
    Serial.println("inizializated ");
   
    Serial.println("inizialization IMU number: 4");
    mux_output(4);
    delay(500);
    myIMU4.init(true); // the parameter enable or disable fast mode
    Serial.println("inizializated ");
   
    Serial.println("inizialization IMU number: 5");
    mux_output(5);
    delay(500);
    myIMU5.init(true); // the parameter enable or disable fast mode
    Serial.println("inizializated ");
   
//    Serial.println("inizialization IMU number: 6");
//    mux_output(6);
//    delay(500);
//    myIMU6.init(true); // the parameter enable or disable fast mode
//    Serial.println("inizializated ");
   

}
   



void setup() {
 
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
   
  Serial.begin(115200);
  Wire.begin();

   
  imus_inizialization();

 
 
}

void loop() {

   
    mux_output(1);
    delay(100);
    Serial.print(" IMU 1");
    Serial.print(" ");
    myIMU1.getYawPitchRoll(ypr);
    Serial.print("Yaw: ");
    Serial.print(ypr[0]);
    Serial.print(" Pitch: ");
    Serial.print(ypr[1]);
    Serial.print(" Roll: ");
    Serial.print(ypr[2]);
    Serial.println("");
     
Serial.println("");
 

}


quando decommento  la riga che definisce il 6 imu il risultato sul serial monitor è questo

inizialization IMU number: 5
inizializated
 IMU 1 a

e si riavvia!

ci sto impazzendo da ieri....ho ricontrollato tutto fino ad arrivare a capire che è l'aggiunta del sesto IMU che crea questo problema!
15  International / Hardware / Re: Sensore rotazione e rpm on: January 06, 2014, 04:38:02 am
che precisione ti serve?
potresti utilizzare un encoder , hai buone risoluzioni a prezzi accettabili
altrimenti un potenziometro o multigiro oppure senza il finecorsa, in entrambi i casi è possibile stabilire il verso di rotazione, ed il numero di giri nel primo caso ce l'hai gratis, nel secondo no, devi fare i conti!

Pages: [1] 2 3 ... 17