• Stampa

 

 Costruire un QUADRICOPTER

(con processore Arduino)

 Peso RTF 750g


quadric-cover-fuori

 

Per costruire un quadricopter non basta utilizzare materiale modellistico comune come giroscopi e servi (tricopter) ma i quattro rotori devono essere gestiti da un microprocessore che garantisce l'equilibrature delle spinte dei motori e permette la rotazione del velivolo (YAW). Dopo numerose ricerche online la soluzione più economica e fai da te è utilizzare come microprocessore l'Arduino. Ci sono numerosi modelli di arduino che si differenziano in base al numero di uscite/ingressi, dalla memoria e dalla velocità del processore.La mia scelta è caduta sulla versione compatta "NANO" che integra la porta mini USB per la programmazione.


ArduinoNanoTop


Tuttavia il processore senza sensori non può comunque governare il quadricopter, necessita di giroscopi e opzionalmente di accelerometri. La scelta meno costosa è utilizzare accessori della console nintendo WII:- il MOTION PLUS = giroscopio a tre assi- il  NUNCHUCK = accelerometro a tre assi Per il collegamento al processore non ci sono problemi in quanto l'alimentazione è 5/3,3 v e il bus di comunicazione è uno standard I2C.Per quanto riguarda la programmazione dell'arduino esiste già un software divulgato pubblicamente e utlizzato da numerosi modellisti nel mondo e possiamo trovarlo su: http://www.multiwii.com/.

La cosa eccezionale di questo software per arduino è che è totalmente commentato alla perfezione e anche un non programmatore può attivare le singole funzionalità solo agendo sulle prime righe. Inoltre ci sono numerosi aggiornamenti per ovviare ai BUG e numerose aggiunte di codice per gestire nuove periferiche e/o funzionalità.


 


 

 

PARTI UTILIZZATE


Questo è l'elenco dei componenti che ho utilizzato per costruire il velivolo:

 

n°4 - TURNIGY Plush 10amp 9gram Speed Controller

 

HWP10A

Specifiche:

Cont Current: 10A
Burst Current: 12A
BEC Mode: Linear
BEC : 5v / 2A
Lipo Cells: 2-4
NiMH : 5-12
Weight: 9g
Size: 27x17x6mm

 



n°4 - FC 28-12 Brushless Outrunner 1534kv

CF2822

Specifiche:

Weight: 39g (with wire & sticker etc)
Shaft: 3mm
Motor Length: 46mm
Diameter: 28mm
Stator Size: 22x10mm
Suggested prop: 7x4 or 7x6inch
Voltage: 11.1v or 14.8v (3-4S)
Kv
: 1534RPM/V


 


n°4 - Eliche Master Airscrew 7x4 : 2 normali per rotazioni orarie e 2 "pusher" per rotazione antioraria.

 



 

n°4 - Adattatori salva eliche

 



 

n°1 - Bacchetta in legno quadrata (1,5cm x 1mt), foglio i compensato 3mm e viti/dadi di fissaggio 3mm


 

 

 

Elettronica utilizzata:

n°1 Processore Arduino Nano V3.0 AVR ATmega328 P-20AU

NanoFront NanoBack

Specifiche:

 

Microcontroller

ATmega328

Operating Voltage

5V

Input Voltage (recommended)

7-12V

Input Voltage (limits)

6-20V

Digital I/O Pins

14 (of which 6 provide PWM output)

Analog Input Pins

6

DC Current per I/O Pin

40 mA

DC Current for 3.3V Pin

50 mA

Flash Memory

16 KB (ATmega168) or 32 KB (ATmega328) of which 2 KB used by bootloader

SRAM

1 KB (ATmega168) or 2 KB (ATmega328)

EEPROM

512 bytes (ATmega168) or 1 KB (ATmega328)

Clock Speed

16 MHz


 

n°1 - BASETTA MILLEFORI IN BAKELITE 72x48x1,6mm SF Vers.KR2 , con connettori Strip maschio/femmina, cavi prolunga servi (da tagliare)

 


n°1 - Nintendo Wii MotionPlus (WMP)

wii-mot

 

 


n°1 - Nintendo Nunchuck Controller (NK)

wii-nk

 






 

COSTRUZIONE della STRUTTURA


4b-Motori-Esc-Struttura

 

 

Queste sono le immagini della costruzione della struttura dove le parti in legno sono debitamente pitturate e fissate tra di loro con viti da 3 mm e dadi con nilon:




 

 

L'ELETTRONICA

 

Per l'alloggiamento del processore ho utilizzato dei connettori strip femmina saldati sulla basetta preforata e da qui ho quindi ricostruito i collegamenti per il funzionamento.Lo schema dei collegamenti per il quadricopter e altri tipi di "COPTER" li trovate sul sito MULTIWII .

 

MultiWiiCopter-Tri-Quad-config-v1.3
 Per il collegando alla ricevente ho utilizzato della prolunghe standard per servi,  tagliate e saldate ai piedini corretti. Mentre per collegare gli Esc dei motori ho saldato alla basetta i connettori strip.

Arduino-IMG_5112


Come da immagini sul sito  MULTIWII questo è lo schema di collegamento del quadricopter a X:


quadX

 

Questo è il particolare del Wii MotionPlus (WMP) tolto dal contenitore originale:
IMG_5109
IMG_5111
IMG_5113

 


 

IL SOFTWARE

E' possibile scaricare il software da sito http://www.multiwii.com/ dove conviene sempre utilizzare l'ultima release.


multiwii-sito

 

Scaricando il pacchetto compresso si trova il codice programma dell'arduino e in un altra cartella il "Multiwii conf" che è semplicemente un pannello di configurazione per il Quadicopter. Naturalmente si deve utilizzare il "Multiwii conf" relativo alla versione caricata sull'arduino e si presenta così:
multiwii-conf-s

 

E' possibile notare i parametri di default (in alto a sinistra) del PID cioè l'insieme di valori che determinano la risposta del processore da cui dipende tutto il funzionamento del velivolo. Questi parametri devono essere modificati solo in caso di instabilità del velivolo e con piccole e singole variazioni in quanto possono portare a situazioni di instabilità e di crash.

Il grafico visualizza i valori del WMP e (se connesso) del NK in modo da poterne testare il funzionamento , mentre le barre di spostamento in altro a destra indicano lo stato degli stick della radio e le rispettive uscite collegate agli Esc. Con quest'ultime è possibile capire la variazione dei motori rispetto allo spostamento dei sensori senza neanche collegare i motori evitando così possibili danni al modello e individuando il corretto posizionamento del giroscopio e dell'accelerometro.


 


 

 

 CALIBRAZIONE
 

Prima di volare è d'obbligo la prova "a Mano" del quadricopter.

Tenendolo in mano si prova se con il PID di default il velivolo risponde correttamente agli stick della radio, se la resistenza allo spostamento è buona e soprattutto se ci sono dei comportamenti anomali come ondeggiamenti o tremolii.

Effettuando questo test ho scoperto che andavano invertiti il ROLL e lo YAW e l'ho fatto con la radio TX e poi c'era anche un leggero ondeggimento sull'asse ROLL. Per questo ho collegato l'arduino al pc e ho diminito il fattore P sia sul ROLL che sul PITCH da 4 a 3.6.

 Per l'inversione dello YAW c'è un parametro nella configurazione dell'arduino (ver7) ma utilizzandolo ho notato che si genera un drift non controllabile con i PID e che rende ingovernabile il mezzo e quindi ho utilizzato l'inversione da radio.

Questa è la configurazione finale:


03-04-11-Primo_volo-s

 

Un ottima guida per la modifica dei PID la troviamo su RCGROUPS qui tradotta in italiano:


Teoria PID tuning e guida alla configurazione per MultiRotorCraft

  Proporzionale-integrale-derivativo

Quando l'orientamento MultiRotor è cambiato in nessun pitch / roll / asse di imbardata, il gyros indicano un cambiamento angolare dalla sua posizione iniziale.
Il controller MultiRotor registra la posizione originale e utilizzando un ciclo "PID" programma, aziona i motori per i tentativi di riportare la MultiRotor alla sua posizione iniziale.
Questo viene fatto il mio di una combinazione di scostamento della misura angolare, il campionamento il cambiamento nel tempo e di prevedere la futura posizione. Questo fornisce informazioni sufficienti per il controller di guidare i motori di rendimento di equilibrio.

P è la parte dominante del PID e ti porta in campo da baseball di buone caratteristiche di volo.

Basic PID Tuning - sul terreno

Set PID di default progettisti impostazioni consigliate
Tenere il MulitiRotor in modo sicuro e sicuro in aria
Aumentare gas al punto di librarsi in cui si comincia a sentire la luce
Cercate di appoggiare il MultiRotor giù su ogni asse motore
Si deve sentire una reazione contro la pressione per ogni asse.
Cambia P fino a quando è difficile muoversi contro la reazione. Senza la stabilizzazione riterrete che consentono di spostarsi su un periodo di tempo. Questo è OK
Ora provate a dondolo il MultiRotor. Aumentare P fino a quando non inizia ad oscillare e poi ridurre un tocco.
Rrepeat per l'asse di imbardata.

Le impostazioni dovrebbero ora essere adatti per il tuning di volo.


Advanced Tuning - impatto comprensione della P, I e D

P - questa è la quantità di forza applicata correttivo per riportare la MultiRotor nella sua posizione iniziale.
La quantità di forza è proporzionale a una combinazione di deviazione dalla posizione iniziale al netto di eventuali comando per cambiare direzione rispetto alla input controller.
Un valore più alto P creerà una maggiore forza per resistere a qualsiasi tentativo di cambiare la sua posizione.
Se il valore di P è troppo alto, il ritorno alla posizione iniziale, sarà eccesso e quindi forza opposta è necessaria per compensare. Questo crea un effetto oscillante fino a quando la stabilità è finalmente raggiunto o nei casi più gravi diventa completamente destabilizzato.

L'aumento di valore per P:
E diventerà sempre più solido / stabile fino P è troppo alta dove inizia a oscillare e perdere il controllo
Si noterà una forza molto forte resistivo a qualsiasi tentativo di spostare il MultiRotor

Diminuzione di valore per P:
Si inizierà ad andare alla deriva in controllo fino a quando P è troppo basso, quando diventa molto instabile.
Sarà meno resistente a qualsiasi tentativo di modificare l'orientamento

volo acrobatico: Richiede uno leggermente superiore P
Gentle volo tranquillo: richiede un basso leggermente inferiore P


I - questo è il periodo di tempo per cui è campionata la variazione angolare e media.
La quantità di forza applicata per tornare alla posizione iniziale si è aumentato il più a lungo la deviazione esiste fino a un valore di forza massima si raggiunge
Un maggior numero di I aumenta la capacità di tenere voce

L'aumento di valore per I:
Aumentare la capacità di tenere complessiva posizione iniziale e ridurre la dispersione, ma anche aumentare il ritardo nel ritorno alla posizione iniziale
Diminuirà anche l'importanza di P.

Diminuzione di valore per I:
Migliorerà di reazione ai cambiamenti, ma l'aumento deriva e ridurre la capacità di mantenere la posizione
Aumenterà anche l'importanza di P.

volo acrobatico: richiede un po 'inferiore I
Gentle volo tranquillo: Richiede uno leggermente superiore I


D - questa è la velocità alla quale il MultiRotor viene restituito alla sua posizione originale.
Un più alto D (in quanto è un valore negativo questo significa un numero inferiore - cioè più vicina a zero) significa lo snap wil MultiRotor alla sua posizione iniziale molto rapidamente

Aumentare il valore per D: (ricordate, il che significa un numero inferiore in quanto è un valore negativo)
Migliora la velocità con cui le deviazioni sono recuperati
Con velocità di recupero veloce è una maggiore probabilità di superamento e di oscillazioni
Aumenterà anche l'effetto di P

valore decrescente per D: (ricordate, questo significa che un numero più alto in quanto è un valore negativo - cioè ulteriormente da zero)
Riduce le oscillazioni per la restituzione di eventuali deviazioni alla loro posizione iniziale
Recupero di posizione iniziale diventa più lenta
Diminuirà anche l'effetto di P

volo acrobatico: Aumenta D (ricordate, il che significa un numero inferiore, si tratta di un valore negativo - cioè più vicina a zero)
Gentle liscio volo: D Diminuzione (ricordate, questo significa che un numero più alto in quanto si tratta di un valore negativo - cioè ulteriormente da zero)


Advanced Tuning - l'attuazione pratica


Per Volo Acrobatico:
Aumentare il valore di P fino a oscillazioni di partenza, per poi tornare di poco
Modificare il valore di I fino alla deriva fino al passaggio del mouse non è accettabile, poi aumentare leggermente
Aumentare il valore di D (ricordate, il che significa un numero inferiore, si tratta di un valore negativo - cioè più vicina a zero) fino al recupero dai risultati drammatici cambiamenti di controllo in oscillazioni recupero inaccettabile
P può ora essere ridotto leggermente

Per stabilità di volo (RC):
Aumentare il valore di P fino a oscillazioni di partenza, per poi tornare di poco
Modificare il valore di I fino al recupero da deviazioni è inaccettabile, poi aumentare leggermente
Diminuire il valore di D (ricordate, questo significa che un numero più alto in quanto è un valore negativo - cioè ulteriormente da zero) fino al recupero da cambiamenti drammatici controllo diventa troppo lento. Quindi aumentare leggermente D (si ricordi - basso numero)
P può ora essere ridotto leggermente


 
Per stabilità di volo (AP / FPV):
Aumentare il valore di P fino a oscillazioni di partenza, per poi tornare di poco
Modificare il valore di I fino al recupero da deviazioni è inaccettabile, poi aumentare leggermente
Diminuire il valore di D (ricordate, questo significa che un numero più alto in quanto è un valore negativo - cioè ulteriormente da zero) fino al recupero da cambiamenti drammatici controllo diventa troppo lento. Quindi aumentare leggermente D (si ricordi - basso numero)
P può ora essere ridotto leggermente

    

 


 

 

PRIMI VOLI


Quadricopter-primo-volo-s

 

Questo è il primo volo all'esterno dopo la prova "a mano" :

 

 

Il quadricopter è davvero stabile e risponde davvero bene agli stick. L'unica eccezione è un leggero tremolio quando lo si lascia fermo in hovering. Per questo proverò ancora a diminuire il P per il ROLL e il PITCH.

Test di volo con P a 3,5 :

 

 



Questo è il nuovo restiling del X-COPTER, con capottina in depron e scotch con un peso circa di 10 grammi :

quadri-elettronica

quadric-cover-fuori
quadricopter-cover

 

Dopo aver ritoccato ancora una volta i PID abbasando tutti i valori del P il quadricopter è molto più

Manovrabile.

 

PID-19-04-11

 

Divertito dalle nuove potenzialità provo con un LOOP senza togliere il gas:

 

 

.... dopo un pò di voletti: