[ITA] Multiwii MWC 10DOF cinese (aka GY-80) e Arduino: connessioni e test iniziali

Ho deciso di tradurre questo articolo in italiano poiché ho notato che molti dei lettori sono per l’ appunto, italiani.
Ho ricevuto la mia nuova i2c sensors breakout board

Questa è quello che nella configurazione del software MultiWii viene chiamato GY_80 o GY-80.
Non sembra essere indicato il marchio del produttore o il modello / seriale. Quello che si conosce sono i nomi dei singoli componenti utilizzati per questa scheda

 

  • 1 L3G4200D:Giroscopio a 3 Assi[DATASHEET],
  • 1 ADXL345: Accelerometro a 3 assi[DATASHEET],
  • 1BMP085: sensore di pressione barometrica (con compensazione della temperatura) [DATASHEET],
  • 1 HMC5883LMagnetometro a 3 assi[DATASHEET],
  • Onboard LLC (wfunziona sia 3 che a 5 volts).
Immagine del gy-80 10 DOF IMU
10DOF ADXL345 L3G4200D HMC5883 BMP085.
Conosciuto come GY-80 o GY_80 nel file di configurazione MWC: config.h

A dire il vero ho impiegato parecchio tempo per immaginare come fare ad usare il bus I2C con questa IMU che ha almeno 3 diversi indirizzi I2C da utilizzare.

Ci sono 2 diverse possibilità:

  1. Usare l’ output dei singoli componenti (vedi immagine, i pin sulla destra)
  2. Usare I2C (solo 4 cavi, molto più comodo ma, come vedremo in seguito, occorre utillizzare delle resistenze pull-up).

Alternativamente al secondo metodo elencato, c’è un ulteriore metodo sul quale non ho indagato a causa dell amia inesperienza, ed è quello di utilizzare i jumper sul retro della IMU:ce ne sono 2 a tre pin da saldare (components addressing jumpers) o tagliati, non essendo troppo sicuro (col saldatore sono poco elegante, ho paura di far danni), quindi lascio perdere e torno allaipotesi iniziale, più pulita ed elegante, con un minor numero di cavi ecc ecc.

EDIT: Il venditore è stato così gentile da inviarmi gli schemi (Vedi più avanti per il Download).

Quindi collegheremo questa imu ad un paio di diversi modelli di arduino che ho a disposizione:

  • 1 Arduino Uno Rev3,
  • 1 Meduino (enanched 3/5v, switch onboard),
  • 1 Arduino Nano V.3.

Proverei per primo Arduino Nano V3 dal momento che ha già la porta mini usb (a differenza di Meduino che deve essere programmato con una FTDI Breakout board o, al limite, usando un altro arduino come adattatore USB-seriale , vedremo come fare in seguito), le sue dimensioni sono flying-friendly a differenza dell’ Arduino Uno.

Se utilizzi una versione precedente alla v3 di Arduino Nano dovrai collegare la tua IMU come mostrato nella figura sotto:

Pin da connettere:

Arduino A12 -> gy-80 vcc
Arduino GND -> gy-80 GND
Arduino pin in giallo tra il chip ATM e i pin 2 e 3 rispettivamente ad SDA e SCL

Personalmente non so come gestire i pullups interni, ma aggiungo gli schemi per gli utenti più esperti (fateci sapere!)  GY-80-aka-10DOF SCHEMATICS.pdf

This is how you want to connect your GY-80 IMU to you Arduino pro mini before v3
This is how you want to connect your GY-80 IMU to you Arduino pro mini before v3

Se invece, come me, hai un  Arduino pro mini v.3, lo collegherai come nell’ immagine che segue.

This image shows how to connect the pro-mini to the gy-80
Here it is how to connect Arduino pro mini with GY-80 IMU. Presta attenzione alla 2 resistenze da 2.2K Ohm tra i canali I2c e vcc.

 

Questa immagine mostra come ho collegato  GY-80 ad Arduino Nano V3

I pins sono:

Arduino A4 -> GY-80 SDA (resistenza su vcc)
Arduino A5 -> GY-80 SCL (resistenza su vcc)
Arduino 5V -> GY-80 VCC
Arduino GND -> GY-80 GND

 

L’INTERFACCIA GRAFICA

In queste immagini vi mostro l comportamento dell’ interfaccia grafica prima e dopo avere aggiunto le resistenze pull-up

Prima:

This image shows messy  values from sensors.
Si possono vede ei valori sbagliati ed l’ elevato numero di errori del bus I2C. Ingrandisci per i dettagli

 

Dopo:

This image shows the Multiwii gui with acceptable values coming from sensor imu GY-80
Questa immagine invece mostra l’ assenza di errori dopo avere utilizzato le resistenze pull-up

Se invece vuoi utilizzare la versione “enanched” di Meduino, è sufficiente seguire gli stessi passi per la guida di Arduino pro mini, semplicemente rimappando i pin corretti per SCL ed SDA. Ricorda, Meduino non ha la porta usb ed utilizza un ATMEGA328P-AU. Inoltre Arduino pro Mini ha un sacco di led in più.

Se invece intendi utilizzare Arduino Uno, anche se è enorme rispetto al pro mini (anche se APM o APM2 è decisamente grossa) le indicazioni sonp raticamente le stesse del pro mini eccetto che per il fatto che Arduino Uno ha dei Pin dedicati ad SDA ed SCL  (Arduino nano v3 usa A4 and A5) che si trovano vicino al pulsante di reset, gli ultimi due delal fila, le etichette sono sul retro della board (ingrandisci l’ immagine sotto per il dettaglio).

This image shows where are located the SCL and SDA pins on the Arduino Uno rev3 board
Puoi trovare le etichette dei pin SDA ed SCL sul retro della board.

Quindi se sei , come me, ti sei messo a cercare su google solo dopo ore di vani tentativi 🙂
Infatti se connetti tutto IMU-> arduino nano,ed avvii il multiwii configurator riscontrerai un sacco di  I2c Errors, ed uno dei componenti non funzionerà. Inoltre il quello che apparentemente funziona no ritorna dati utilizzabili, quindi manca qualcosa o qualcosa non è collegato bene.

In realtà entrambi:

Quello che manca sono le due resistenze pull-up da 2.2k

Ma allo stesso tempo ci sarebbe da fare una piccola modifica al firmware multiwii prima di caricarlo sul nostro arduino. Dopo diverse ore di ricerche sono venuto a capo di questo problema ed ho scoperto che uno dei parametri all’ interno della configurazioni di Multiwii (Quello che carico su arduino) potrebbe dare conflitto con L3G4200D . Quindi modifichiamo il sorgente di multiwii, il file da modificare è  “sensors.ino” se usi l’ ide di arduino lo trovi nei tab in alto subito dopo avere aperto Multiwwi.ino

Deve essere modificato l’ indirizzo da 0x69 a 0x68. Vedi immagine sotto.

 

 

 

 

 

Ora i sensori potranno funzionare contemporaneamente senza conflitti.

Una volta finito, salva e carica il firmware sulla board, apri il multiwii configurator, seleziona la porta seriale corretta e premi start per testare i sensori. Se tutto è antato per il verso giusto la tua unica preoccupazione a questo punto è di capire se l’ orientamento della IMU è corretto ed eventualmente correggerlo. Per capirci, se si trova a testa in giù 🙂

Download Schematics for GY-80-aka-10DOF.pdf

Sensors.ino – Arduino sketch for multiwii already modified for GY-80

wultiwii-gy_80-config.h.zip

Next step will be “Hooking an RC receiver to Arduino pro mini with GY-80 and Multiwii”.

 

 

 

Incoming search terms:

  • gy-80 (29)
  • gy 80 (18)
  • giroscopi i2c e arduino (12)
  • multiwii errori I2C con GY 86 (4)
(Visited 11,795 times, 1 visits today)

Author: Giuseppe Urso

Giuseppe lives in Haarlem now with his shiny dog, Filippa In 1982 received his first home computer, a Commodore 64, followed by Datasette and a 1541 Floppy Disk Drive. In 1999 he installed his first Linux distro (LRH6). In 2006 he switched to Debian as favourite OS. Giuseppe Urso actively sustains the Free Software Fundation and his founder Richard Mattew Stallman, he speaks to people trying to convince them to join the fight now, and about how important is to use Free Software only. He has a job as Infra Specialist at Hippo Enterprise Java Cms an Open Source Enterprise class Content Management System, one of the coolest company ever, in Amsterdam. He's always ready to install Debian on other people computers for free.

9 thoughts on “[ITA] Multiwii MWC 10DOF cinese (aka GY-80) e Arduino: connessioni e test iniziali”

  1. I can’t connect this link (config.h), could you help me to check this website, really appreciated.

  2. Ciao io ho un Arduino DUE e questa IMU:
    http://www.ebay.it/itm/GY-80-BMP085-9-9-axis-IMU-magnetic-field-acceleration-gyroscope-atmospheric-pres-/321143248351?pt=Componenti_elettronici_passivi&hash=item4ac5a115df&_uhb=1

    Vorrei costruire un quadricottero se non un esa, per riprese aeree, payload max 2 Kg.
    ho comprato anche questo kit:
    http://www.ebay.it/itm/281192371493?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

    mi serve solo il frame, motori, ESC con eliche e per la radio sono in trattaiva ebay con una Turnigy 9x.

    ammetto che sono a secco di programmazione e non so da dove cominciare, puoi aiutarmi in qualche modo?

  3. Ciao Giuseppe, ti chiedo di darmi una mano perchè sono disperato!
    Ho una imu GY-80 e un Arduino Uno e sto cercando in tutti i modi di ottenere dei risultati da questa imu, ma purtroppo con il programma multiwii ottengo valori di I2C error altissimi (oscillano tra -30000 e 30000), e non ottengo letture valide dai sensori.
    Ho già provato tutte le configurazioni possibili sul config.h, ho provato a cambiare gli indirizzi, ho provato con e senza resistenze di pulll-up…
    Mi daresti una mano? Mi passeresti un file config.h funzionante per capire se è un problema della mia scheda o se sono io che sbagli la configurazione?

    Aggiungo che ho una imu gy-80, ma differente da quella mostrata in questa pagina, la mia ha i pin tutti su un lato!

    Grazie!!

  4. Ciao ,
    non mi è molto chiaro qual è il software da caricare attraverso l’IDE di Arduino .
    Possiedo un imu GY80 ed un Arduino UNO, mi diresti precisamente cosa fare?
    Avevo scaricato precedentemente dal repo il pacchetto di file .ino e ho modificato sensors.ino. In seguito ho provato a compilare MultiWii.ino senza successo, mi restituisce tanti errori .
    Grazie in anticipo

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.