Installare MultiWii sulla centralina di volo del quadricottero

Come installare MultiWii sulla Arduino Mini

Nel precedente articolo ho descritto lo schema elettrico e l’installazione della scheda di controllo. Questa scheda deve essere gestita dal software MultiWii. La programmazione dell’Arduino Mini si traduce semplicemente nel compilare e caricare lo sketch MultiWii.ino.

Iniziamo il tutorial collegandoci all’indirizzo MultiWii.com, spostiamoci nella sezione software e alla fine della pagina clicchiamo sul link per eseguire il download del pacchetto, ospitato da Google Code.

Esistono varie versioni di Multiwii, io per questo tutorial ho utilizzato la versione 2.2

Dopo aver scaricato il file zip sul desktop del nostro computer, scompattiamo il file. Otteniamo due cartelle, una contiene il progetto Arduino MultiWii, l’altra contiene una serie di tools che useremmo per calibrare e configurare la scheda.

La programmazione dell’Arduino Mini può essere eseguita senza alimentare totalmente la scheda di controllo, l’alimentazione viene erogata dalla scheda usb2serial light.
Preferisco questa opzione perché in questo modo alimento solo i circuiti elettronici della scheda ma non gli ESC ed i motori. Questo permette di lavorare in sicurezza, evitando che i motori ruotino senza preavviso, di eseguire dei controlli preliminari e di fare alcuni test pre volo.


Dato che la sicurezza non è mai troppa andiamo anche a rimuovere da tutti i motori le eliche e le parti di fissaggio che potrebbero sganciarsi durante una accidentale rotazione dei motori.
La sicurezza deve essere sempre in primo piano visto che la responsabilità durante queste operazioni è soltanto la vostra. Inoltre eseguite le prove lontano da altre persone o animali domestici.

Non alimentate gli ESC ed i motori, lasciate scollegata la batteria LiPo. Usate solamente il convertitore usb seriale

Apriamo la cartella MultiWii e carichiamo il progetto multiwii.ino sull’Arduino IDE.
Terminato il caricamento del progetto osserviamo la presenza di diverse schede all’interno dell’IDE. Ognuna di queste riguarda una particolare funzione del progetto MultiWii.

Prima di compilare e caricare il progetto è necessario eseguire alcune procedure di configurazione.

Il primo settaggio riguarda la scelta del tipo del multirotore che abbiamo assemblato. Nel nostro caso un quadricottero in configurazione X. Spostiamoci nella scheda config.h e nella sezione ‘The type of multicopter‘ rimuoviamo i caratteri di commento (//) dalla voce #define QUADX come visibile nello screen shot seguente.

Config.h Multiwii

La seconda operazione necessaria per il corretto funzionamento della scheda di volo riguarda la scelta del  modello di scheda inerziale montata sul quadricottero. Nel nostro circuito è presente una GY80, quindi cancelliamo i caratteri di commento dalla riga #define GY_80, situata nella sezione boards and sensor definitions del file config.h

Config IMU multiwii

Ora procediamo con la compilazione ed il caricamento dello sketch, utilizzando l’apposito pulsante sull’IDE.

L’arduino Mini è ora programmato con il software di volo. Nel prossimo articolo utilizzeremo il software MultiwiiConf per settare e verificare il funzionamento della scheda.

25 risposte a Installare MultiWii sulla centralina di volo del quadricottero

  • aiutoooo ogni volta che carico il software sul mio ardu uno mi da una serie di errori sto usando i programmi del tutorial unica differenza arduino uno invece del mini. i codici errore sono MultiWii.ino:67:21:error:variable or field ‘serialGpsPrint’ declared void —–Multiwii.ino:67:21:error: ‘prog_char’ was not declared in this scope— MultiWee.ino:67:32:error: ‘str’ wasnot declared in this scope errore durante la compilazione cosa posso fare?premetto che sono un neofita

    • Ciao Davide
      quale versione di multiwii stai caricando? Assicurati quando carichi il progetto di avere tutte le schede nell’ide.

      • ciao marco.
        cosa succederebbe se usassi un progetto sucessivo al 2.2?
        sono compatibili? sono lo stesso progetto che funziona meglio o fanno cose diverse?
        ciao grazie

  • ciao sto usando multiwii2.2 con arduino1.5.8 configurazione quadx imu gy80

  • Sono riuscito a caricare lo sketch ho aperto la cartella conf come nel tutorial ho definito tipo quad e imo poichè non caricava ho fatto un copia incolla aprendo un nuovo ide ha funzionato. Pero’mi è venuto un dubbio devo caricare altre cartelle? O solo quella di conf..? Quando vado ad aprire multiwiiconf non succede nulla o meglio legge arduino ma l imu non va non vorrei fosse guasta…spero di no. ..:-( ora praticamente sono bloccato… ps viva la sardegna

    • Ancora una cosa se volessi formattare arduino cosa devo fare ?ti ringrazio per la pazienza ma è la prima volta che ho a che fare con queste piattaforme. ..

    • Ciao Davide
      devi caricare tutto il progetto , se osseri gli screenshot nel mio articolo puoi vedere diverse schede caricane nell’IDE

      Ogni volta che carichi uno sketch la memoria viene sovrascritta, non hai bisogno di ‘formattare’

  • Ciao marco si avevo intuito che avrei dovuto caricare tutte le schede ma ogni volta mi dava l errore che ti avevo descritto. Ma poi eureka ho scoperto l intoppo nella scheda gps c’è una voce attiva che fa andare il caricamento in errore io l ho disativatta ed ora funziona tutto alla grande. Per chi avesse lo stesso problema la voce da disativare è //void serialgpsprint(prog_char str )

    • Ciao davide, ciao marco
      Va bene disabilitare la variabile che crea il problema ma la domanda è: Serve?
      Magari c’è solo un problema di sintassi…. e si puo risolvere correggendolo e si lascerebbe attiva la funzione che, magari in questo specifico progetto non serve visto che il gps non è presente, però hai visto mai, in un futuro….
      Qualcuno che mastica il c++ potrebbe darci un’occhiata e farci sapere?
      Grazie a tutti e complimenti marco per l’ottimo lavoro
      Michele

  • ciao ho un serio problema con la parte elettrica.Uso due batterie una da energia ad arduino ed alla ricevente 5 volt nimh e va tutto ok,l’altra da energia agli esc ed ai motori qua il problema e come se la batteria andasse in corto surriscalda i cavi sino a fonderli la batteria è una lipo 2s 7.4v.2200mah.Quando provo con una batteria nimh 8.4v 1100mah tutto funzia bene.Ho testato la lipo ed non ha problemi ho testato gli esc con la nimh e tutto va bene non ci sono cavi in corto ora temo a collegare la lipo ad un esc perchè ho paura che li fonda.Potrebbe essere un problema di sezione dei cavi? Quando ho provato a collegare un esc da 20A alla lipo a fatto scintille e fumo ma l esc fortunatamente non si è bruciato.Qualcuno ha qualche consiglio o soluzione a questo problema? ciao

    • Ora!!!!!! io non sono un esperto di elettronica ma da quel poco che so mi risulta che i cavi positivi di norma sono rossi e quelli negativi neri!!!! ho acquistato da jonathan.it una batteria lipo fullpower la collego ma mi manda in corto tutti gli esc non capisco ho sbagliato qualcosa? controllo il quad filo per filo niente tutto a posto.ricollego corto! controllo corto ricontrollo corto….POI mi viene un dubbio possibile una cosa come questa? controllo la lipo con il tester allucinante ha i cavi invertiti rosso negativo nero positivo.Agli esperti di elettronica chiedo é possibile che in altri paesi usino colori diversi? maaaah mistero….

      • Ciao Davide
        probabilmente è un errore di fabbricazione, il rosso è sempre +V mentre il nero è GND, salvo esplicite indicazioni sul package.

        • ciao purtroppo il mio progetto ha dei problemi in linea di massima il mio schema è simile al tuo tranne alcune piccole differenze 2 batterie una per ricevente ed arduino uno,l’ altra per esc e motori però e come se arduino non mandasse gli imput che attivo con la trasmittente agli esc su multiwiiconf tutto sembra attivo quando muovo le leve della trasmittente multiwiiconf le rileva non riesco a venirne a capo.

  • Ciao Marco, voglio a tutti i costo costruirmi un quadricottero, che sia in grado di volare per circa 20 minuti, con una camera a bordo dotata di gimball, che faccia l’hovering e il back home in caso di perdita di segnale e/o low battery, mi piacerebbe anche la funzione fvp credo si scriva così, se ho sbagliato chiedo scusa ma giusto per chiarezza mi fornisca la possibilità di seguire la camera o una Camerina supplementare con un monitor aggiuntivo ( super se potessi usare il tablet IOS). Ho una buona manualità per la costruzione e anche per la componentistica elettrica/elettronica ma purtroppo sono a digiuno di programmazione…. Devo rinunciare al mio desiderio è comprare un prodotto finito o ci sono prodotti adatti?
    Ti ringrazio e mi scuso per l’inserimento forse inopportuno nella discussione…

    • Potresti dare uno sguardo al Flight Controller DJI Naza (Lite oppure V2). La parte meccanica ed elettrica rimane pressoché uguale a quella del tutorial.

  • Buon giorno Marco,
    sto costruendo un quadricottero “basic” per la tesina di diploma, per un Arduino Pro Micro che IMU consiglieresti?
    Il prof. dice FreeIMU 0.4.3, potresti darmi un consiglio?
    Grazie, il tuo sito è IL mio riferimento per questo progetto!
    ciao

    • Ciao
      io ho usato la GY80, è molto comune e costa poco. La FreeIMU 0.4.3 è comunque supportata da multiwii, sevi scommentare la riga //#define FREEIMUv043 su config.h

      Buon lavoro

      • Grazie Marco, ma la GY80 ha le stesse caratteristiche e piedinature della FreeIMU?
        Come vedi una Arduino Pro Micro con una GY80?
        Non vorrei che il prof. mi faccia mettere dei componenti di un’astronave su un quadricottero.
        Sai, i soldini non sono molti per uno studente e papà ha pietà fino ad un certo punto…
        grazie comunque per la tua disponibilità e capacità.
        ciao

  • Buongiorno Marco,
    vorrei chiederti aiuto perchè non so più cosa fare.. Posseggo una Multiwii_328p con FTDI/DSM2 port, ho configurata con la usb e nello stesso tempo configurata da multiwii.conf , nella quale vedo la scheda gli accelerometri e i movimenti della stessa, ma quello che non capisco è che quando provo a caricare il tutto da Multiwii-arduino dopo avere settato i valori della scheda mi genera l’ allarme :
    def.h:1358:11: error: macro names must be identifiers
    #define 12C_SPEED 400000L…
    Quello che non capisco è che la velocità è corretta .
    Onestamente sto brancolando nel buio .
    Grazie

  • Ti ringrazio per la guida esaustiva e completa, davvero un bel lavoro!
    Vorrei costruire anche io un quadricottero e avendo già una scheda Arduino Uno mi chiedevo se posso utilizzarla al posto della scheda Arduino Mini consigliata.
    Vorrei sapere inoltre se allo stato attuale della guida posso già provare il quadricottero oppure ci saranno altre parti fondamentali da attendere.

    • Ciao, assolutamente si puoi usare anche la UNO. La guida attualmente riguarda la costruzione e l’installazione di multiwii. Mancherebbe una parte di configurazione. Comunque puoi trovare info sulla configurazione sul sito, multiwii.it.
      Saluti.

      • Ok grazie mille, un’altra cosa, stavo ordinando i pezzi ma a quanto pare l’Esc non è più in stock, potresti consigliarmi un Esc equivalente?

  • Ciao Marco, complimenti per la descrizione e i consigli. Mi sono cimentato anch’io nella costruzione del quadricottero però ora mi sono bloccato! non voglio pilotare il drone tramite bluetooth ma trammite radiocomando 2.4 Ghz come faccio? Puoi aiutarmi? Grazie.

    • Ciao Giuseppe
      il tutorial che ho scritto non parla di collegamento via bluetooth ma appunto utilizzando un radiocomando a 2.4Ghz. Tutti gli schemi si riferiscono ad un ricevitore a 6ch.

      Saluti!

Preferiti
Rimani aggiornato

Sondaggi

Arduino.cc vs Arduino.org

Visualizza risultati

Loading ... Loading ...
Seguimi su Twitter