Controllo di un Quadricottero Balliana Pietro, Borsoi...

16
1 ITIS G. Galilei Conegliano a.s. 2014/2015 Controllo di un Quadricottero Balliana Pietro, Borsoi Diego, Grazian Lorenzo 5^AELN 2014/2015

Transcript of Controllo di un Quadricottero Balliana Pietro, Borsoi...

1

ITIS G. Galilei Conegliano a.s. 2014/2015

Controllo di un Quadricottero

Balliana Pietro, Borsoi Diego, Grazian Lorenzo

5^AELN 2014/2015

2

Introduzione

In questa tesina vogliamo descrivere la realizzazione e la stabilizzazione dell’assetto, di un particolare velivolo detto Quadricottero o in inglese QuadCopter. Questo è un velivolo con una struttura portante su cui sono installati quattro motori elettrici con relative eliche che ne permettono il volo. Il quadricottero è comandato da terra, e vista la propria instabilità dispone di un sistema di controllo in grado di mantenerlo con un assetto livellato. In questa tesina verranno illustrate le varie fasi che si sono susseguite nello sviluppo di questo progetto, partendo da alcuni cenni storici di questo velivolo, successivamente si descriverà la struttura del quadricottero fino ad arrivare alla parte di programmazione.

Indice

1 Quadricotteri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Aspetti generali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Caratteristiche di volo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Componenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1 Telaio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Motori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Eliche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 ESC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5 Sistema Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.6 Microcontrollore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.6.1 Modulo PWM. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.6.2 Sistemi di comunicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.7 Sensori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.7.1 Ultrasonico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.7.2 Imu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.8 Batteria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.9 Radiocomando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 3.1 Software Quadricottero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 3.1.1 Controllo PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Software Radiocomando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

3

Capitolo 1

Quadricotteri

“Potrai conoscere l'uomo colle sue congegnate e grandi ali e, facendo forza contro alla resistente aria, vincendo, poterla soggiogare e levarsi sopra di lei”

Leonardo Da Vinci

La prima idea di macchina che potesse volare è da attribuire al genio di Leonardo Da Vinci, il quale aveva intuito l’utilità di un congegno come la vite aerea per generare la portanza necessaria per mantenersi in volo. Durante la sua vita, Leonardo ideò numerosi concept, alcuni di essi, come la macchina volante, furono dei veri e propri prototipi. Dopo mezzo millennio di progresso, la tecnologia ha dato vita a velivoli dalle notevoli capacità, anche in grado di gestire autonomamente il volo (pensiamo al pilota automatico che è ormai presente in ogni genere di velivolo) e il cui campo applicativo è in continua espansione. In questo primo capitolo verranno trattati gli aspetti principali che caratterizzano un quadricottero; si evidenzieranno le principali differenze rispetto a un elicottero convenzionale, per evidenziarne tutti i vantaggi che fanno di questa piattaforma uno degli strumenti più versatili e promettenti, ideale per diversi scenari applicativi. Inoltre, si descrivono le principali caratteristiche meccaniche di volo, utili per la comprensione del controllo del quadricottero.

1.1 Introduzione

Un quadricottero (dal greco ptéron: ala, “quattro ali”) è un aeromobile sollevato e spinto da quattro rotori. Tale aeromobile multirotore così definito può essere anche classificato impropriamente come elicottero, pur essendo da quest’ultimo diverso per motivi tecnici, derivanti da evidenti differenze strutturali. Le possibili applicazioni di un quadrirotore sono molteplici: dall’utilizzo di un quadcopter senza pilota per l’esplorazione di un territorio ostico, alla necessità di prestare un pronto intervento in uno scenario urbano dopo una catastrofe, che renderebbe il luogo inaccessibile via terra e impraticabile per via aerea da qualunque altro mezzo di soccorso che non abbia le stesse caratteristiche di agilità e destrezza del quadrirotore (per esempio in caso di terremoto).

4

Esistono due generazioni di modelli di quadrirotori. La prima generazione di quadrirotori fu progettata per trasportare passeggeri. Questi sono stati tra i primi velivoli “più pesanti dell’aria” e a decollo e atterraggio verticale ad avere successo. Tuttavia, i primi prototipi presentavano scarso rendimento, mentre i successivi modelli richiedevano un carico di lavoro eccessivo per il pilota, dovuto alla poca stabilità. La generazione più recente di quadrirotori venne progettata per volare senza pilota a bordo. Questi velivoli utilizzano un sistema di controllo e dei sensori elettronici per stabilizzarsi. Grazie alle loro ridotte dimensioni e all’agilità di manovra, questi velivoli possono esser fatti volare in luoghi chiusi così come all’esterno. I vantaggi dell’attuale generazione di quadricotteri, nei confronti degli elicotteri convenzionali di scala comparabile, sono i seguenti. In primo luogo, i quadricotteri non necessitano di collegamenti meccanici per variare l'angolo d’attacco del rotore quando ruotano; questo semplifica la conformazione del velivolo e riduce tempi e costi di manutenzione. In secondo luogo, l’uso di quattro rotori fa sì che il diametro dei singoli rotori sia minore di quello necessario per un elicottero convenzionale equivalente, consentendo loro di immagazzinare minore energia cinetica. Questo riduce il danno che verrebbe provocato nel momento in cui i rotori dovessero colpire un oggetto. Per quanto riguarda gli APR di scale minori, il minor accumulo di energia cinetica nei rotori li rende più sicuri per interazioni a distanza ravvicinata. Infine, i rotori possono essere racchiusi all’interno di una struttura che ne consenta la protezione in caso di collisione, permettendo voli al chiuso e in ambienti densi di ostacoli con un basso livello di rischio di danneggiare il velivolo, gli operatori e ciò che lo circonda.

1.2 Aspetti generali Per meglio comprendere il funzionamento di un quadrirotore, é opportuno approfondire le principali caratteristiche tecniche di un elicottero da cui il quadrirotore in questione si differenzia. Il problema più importante da risolvere per la stabilizzazione di un elicottero in fase di avanzamento é che le pale con componente tangenziale della velocità diretta nello stesso verso di avanzamento dell’elicottero si muovono più velocemente delle altre, generando così una portanza maggiore, tendendo quindi a ribaltare l’elicottero. Questo problema ha trovato soluzione con una grande innovazione nel rotore, inventata dall’ingegnere francese Ètienne Oehmichen, che permette di variare l’inclinazione (“angolo di attacco”) delle pale ad ogni giro, in modo da equilibrare la portanza delle pale che hanno velocità assoluta più elevata con quella delle pale più lente. Questa inclinazione è regolabile secondo le necessità d’impiego attraverso un controllo detto “collettivo”, con comando a cloche. A differenza di quanto appena detto, per un quadricottero utilizza pale a “passo fisso”, il cui angolo di attacco non varia durante la rotazione. Inoltre, ulteriore semplificazione tecnica e strutturale a vantaggio del quadrirotore è l’assenza del rotore di coda, invece presente nell’elicottero, le cui pale girano sul piano verticale per bilanciare la rotazione orizzontale di quelle del rotore principale. Il rotore di coda è un’“anticoppia” che si oppone alla coppia del rotore principale che determinerebbe una rotazione della fusoliera in senso opposto alla rotazione del rotore. Un ulteriore vantaggio di un quadrirotore rispetto ad un elicottero é il minore diametro dei singoli rotori rispetto a quello necessario per un elicottero convenzionale, che consente di immagazzinare minore energia cinetica: questo rende piú sicuro un quadrirotore sia in caso di incidente, che nell’utilizzo in ambienti indoor. Altri vantaggi, non di secondaria importanza, sono la simmetria del design che consente una centralizzazione dei sistemi di controllo e del payload: questa caratteristica agevola anche il sistema di controllo perché, anche con carichi diversi, è abbastanza semplice mantenere il baricentro nella stessa posizione; inoltre, ogni rotore contribuisce al raggiungimento della portanza richiesta, fornendo una quantità di spinta maggiore rispetto ad un elicottero convenzionale consentendo di portare payload e piattaforme computazionali più pesanti. Infine, c’è da precisare che il quadricottero è un velivolo che rientra in una più ampia famiglia dei multirotori, ovvero aeromobili caratterizzati da più sistemi rotore-pala, che comprende al suo interno il tricottero, l’esacottero e l’octocottero. Dietro tutti questi vantaggi, c’è l’unico handicap di avere una bassa velocità di crociera.

5

1.3 Caratteristiche di volo Da tutto ciò che è stato detto finora, si comprende che l’utilizzo di un aeromobile a quattro rotori rappresenta un’ottima soluzione per garantire facilità nel controllo e una forte stabilità, grazie alla disposizione a croce dei due assi sui quali sono disposti i quattro rotori. Il quadrirotore ha sei gradi di libertà: beccheggio (oscillazione del velivolo attorno ad un asse trasversale), imbardata (oscillazione del veicolo attorno all’asse verticale passante per il baricentro), rollio (oscillazione del veicolo attorno al proprio asse longitudinale), x (movimento nella direzione frontale del veicolo), y (movimento verso il lato sinistro del veicolo) e z (altitudine), ma è controllato utilizzando solo quattro attuatori. Rotori opposti ruotano nello stesso verso. In particolare, quando tutti i rotori ruotano con la stessa velocità angolare, con i rotori 1 e 3 rotanti in senso orario ed i rotori 2 e 4 in senso antiorario (vedi Figura 1.2), l’accelerazione angolare attorno all’asse di imbardata è nulla, il che implica che il rotore di coda presente negli elicotteri convenzionali non è necessario. L’imbardata viene provocata da una discrepanza nel bilanciamento del momento torcente aerodinamico, ovvero controbilanciando opportunamente i comandi di spinta tra le coppie di eliche che ruotano in senso opposto.

Figura 1.2: schema di un quadricottero i rotori uno e tre ruotano in senso orario, mentre i rotori due e quattro nella direzione opposta, provocando coppie con verso opposto per il controllo.

6

Accelerazioni angolari attorno agli assi di rollio e di beccheggio possono essere effettuate separatamente senza incidere sull’asse di imbardata. Ogni coppia di eliche disposta, che ruota quindi nello stesso verso, controlla la rotazione del velivolo lungo un asse, di rollio o di beccheggio. Aumentare la spinta di un rotore riducendo quella dell’altro permette di mantenere il bilancio di coppia necessario per la stabilità dell’imbardata e al tempo stesso produce una coppia netta attorno all’asse di rollio o di beccheggio. Per questo motivo si utilizzano rotori con pale a passo fisso per dirigere il velivolo lungo tutte le direzioni, a differenza di quanto avviene per un elicottero convenzionale, in cui è necessario disporre pale il cui angolo di attacco varia durante a rotazione, come già discusso nel precedente paragrafo. Un’accelerazione di traslazione può essere raggiunta mantenendo un angolo di beccheggio o rollio diverso da zero.

Capitolo 2

Componenti

In questo capitolo verrà mostrata la componentistica utilizzata per costruire il nostro quadricottero.

2.1 Telaio

Il telaio è una struttura meccanica rigida sui cui sono installati tutti i componenti che verranno descritti in seguito. E’ la vera e propria ossatura del quadrirotore. La scelta del telaio è stata fatta in funzione principalmente del peso; infatti in questa applicazione è stato necessario cercare di ridurre al minimo tutti i pesi cosi da poter avere una durata maggiore della batteria, data da una riduzione dei consumi. Tanto minore è la massa, tanto minore è la forza peso e pertanto, al fine di poter garantire il volo a parità di spinta impressa dalle eliche tanto minore è la forza da vincere in una condizione di volo livellato. Il telaio scelto da una vista in pianta si presenta a forma di croce; all’estremità di ogni braccio sono installati i motori con le relative eliche, lungo i bracci le ESC e verso il centro si concentra il sistema di alimentazione e l’elettronica di controllo. Il

Un quadricottero regola la sua

altitudine applicando la stessa

potenza a tutti e quattro i rotori

Un quadricottero effettua un’imbardata

applicando più potenza ai rotori che

ruotano nella stessa direzione

Un quadricottero regola il suo beccheggio

o il rollio applicando più potenza ad un

rotore e meno al suo opposto.

7

telaio scelto pesa circa 280g, il corpo centrale è realizzato in fibra di vetro mentre le braccia in nylon di poliammide. Ha un lunghezza motore-motore di 450mm ed una altezza da terra di 55mm.

2.2 Motori

Il prototipo costruito è dotato di 4 motori. I motori scelti per questa applicazione sono stati scelti assieme alle eliche al fine di poter raggiungere un spinta sufficiente per permettere il volo al quadricottero. La scelta è ricaduta su un motore della NTM trovato sul sito hobbyking.com che abbinato con le appropriate eliche ed ESC permette delle buone prestazioni.

I motori presi in considerazione sono motori DC brushless: DC indica il tipo di corrente necessaria

per il funzionamento cioè corrente continua (Direct Current) , invece il termine brushless(senza

spazzole) serve per distinguerli da un altro tipo di motore sempre a corrente continua il quale

differisce per l’utilizzo di spazzole per il funzionamento.

I motori utilizzati sono composti da due parti: lo statore, che costituisce la parte interna dello

stesso, è composto da 9 avvolgimenti di rame ricoperto da un sottile strato di vernice isolante per

evitare contati non voluti; e dal rotore, la parte esterna, composto da 12 magneti permanenti.

Peso 62g

Kv(rpm\v) 900

Corrente max 18 A

Tensione max 15V

Lunghezza albero 18mm

Diametro C 28mm

Lunghezza totale 45mm

Potenza max 300W

8

Quando viene fatta passare corrente attraverso una o più bobine dello statore, viene a crearsi un

campo magnetico che costringe il rotore a ruotare, a causa dell’attrazione fra i poli del campo

magnetico momentaneo creato e quelli dei magneti permanenti.

Fornendo e togliendo quindi corrente agli appropriati avvolgimenti è possibile far ruotare il rotore

ad una velocità ben precisa, che attraverso un asse collegato ad esso è trasferita alle eliche.

2.3 Eliche

L'elica (o elica propulsiva o propulsore ad elica) è un organo intermediario in grado di trasformare

la potenza meccanica di un albero rotante in variazione della quantità di moto di un fluido, allo

scopo di generare una propulsione secondo il principio di azione e reazione. Il moto impresso al

fluido è detto elicoidale e risulta essere la combinazione di un moto assiale e di un moto

rotazionale. Le eliche che abbiamo montato sui motori sono 4 e hanno forme e dimensioni

diverse. Abbiamo utilizzato eliche bipala in plastica, perché con bassi costi offrono buone

prestazioni, sono lunghe 10 pollici con pitch di 4.5 (10×4.5). Dato che due motori del

quadricottero girano in senso antiorario e due in senso orario, anche le eliche dovranno avere

l’inclinazione dell’ala orientata nel verso di rotazione. Quindi serviranno due eliche CW(Orarie) e

due CCW (Antiorarie).

2.4 Electronic speed controllers (ESC)

Un controllo elettronico della velocità, chiamato ESC, è un circuito elettrico che ha lo scopo di

variare la velocità di un motore DC, la direzione e se possibile agire anche come freno dinamico.

Nella nostra applicazione sono di fondamentale importanza dato che per effettuare qualsiasi tipo di

manovra bisogna agire sulla velocità dei motori (vedi paragrafo 1.3).

9

Questi componenti necessitano di un’alimentazione per azionare i motori, fornita dalla batteria, e di

un segnale che imposta la velocità alla quale il motore dovrà ruotare. Esso viene quindi collegato al

motore attraverso 3 cavi, ma fornisce anche una tensione stabilizzata di +5V , utilizzata per

l’alimentazione del circuito di controllo.

Il segnale di controllo deve essere un’onda quadra da 0 a +5V con una frequenza di circa 150Hz.

La durata della parte alta di questo segnale imposta la velocità del motore andando quindi da

1msec con il motore fermo, a 2msec con il motore alla massima velocità.

2.5 Sistema radio

Il sistema radio scelto è della microchip (MRF24J40MD), questo utilizza una comunicazione radio a

2.4GHz a spread spectrum o espansione spettrale, con una quasi totale assenza di interferenza,

differentemente da quanto accade nei sistemi a trasmissione FM. In questo tipo di trasmissione

infatti la banda del segnale da trasmettere è considerevolmente più bassa rispetto a quella della

banda in cui è possibile trasmettere e quindi si fa variare il canale di trasmissione all’interno della

banda di trasmissione in maniera randomica al fine di essere meno sensibile alle interferenze.

L’immagine seguente mostra uno schema a blocchi semplificato del modulo radio.

2.6 Microcontrollore

Il microcontrollore scelto per la nostra tesina è il PIC33FJ128MC706 della Microchip®. Questo

microcontrollore supporta una vasta varietà di applicazioni di controllo motore, come motori DC

brushless (usati nel nostro progetto), presenta al suo interno diverse periferiche che permettono di

10

interfacciarlo con vari hardware. Presenta un’architettura a 16 bit e riesce a lavorare con un range

di tensione che va da 3 a 3.6V. Ha una program memory di 64Kbyte e una RAM di 16 Kbyte.

2.6.1 Modulo PWM

All’interno del PIC vi è un modulo che permette la creazione dei segnali necessari a comandare gli

ESC e quindi controllare i motori: il PWM (Pulse-Width Modulation). Questo modulo contiene

quattro generatori di duty cycle, otto pin di uscita PWM numerati da PWM1H/PWM1L a

PWM4H/PWM4L. Questi otto pin sono raggruppati in high e low distinti dalla lettera finale H e L.

Questo modulo permette di creare un segnale impulsivo ad una determinata frequenza

impostabile, e modificare la durata dell’impulso stesso. Nel nostro circuito sono stati utilizzati i 4

PWM High ciascuno collegato ad un ESC attraverso un buffer che porta la tensione da +3,3V, in

uscita dal PIC, a +5V necessaria per comandare gli ESC

2.6.2 Sistemi di comunicazione

I²C

I²C, abbreviazione di Inter Integrated Circuit (pronuncia i-quadro-ci o i-due-ci), è un sistema di comunicazione seriale bifilare utilizzato tra integrati. Il classico bus I²C è composto da almeno un master ed uno slave.

Il protocollo hardware dell'I2C richiede due linee seriali di comunicazione:

SDA (Serial Data) per i dati

SCL (Serial Clock) per il clock (per la presenza di questo segnale l'I2C è un bus sincrono)

Va aggiunta una connessione di riferimento detta, talvolta impropriamente, GND e una linea di alimentazione Vdd a cui sono connessi i resistori di pull-up che può anche non essere condivisa da tutti i dispositivi (le tensioni tipiche usate sono +5 V o +3,3 V anche se sono ammesse tensioni più basse o più alte).

Serial Pheripheral Interface (SPI)

Il Serial Pheripheral Interface o SPI è un sistema di comunicazione tra un microcontrollore e altri circuiti integrati o tra più microcontrollori. La trasmissione avviene tra un dispositivo detto master e uno o più slave (letteralmente dall'inglese padrone e schiavo). Il master controlla il bus, emette il segnale di clock, decide quando iniziare e terminare la comunicazione.

Il bus SPI si definisce:

di tipo seriale

sincrono per la presenza di un clock che coordina la trasmissione e ricezione dei singoli bit e

determina la velocità di trasmissione

full-duplex in quanto il "colloquio" può avvenire contemporaneamente in trasmissione e

ricezione.

Per quanto riguarda la velocità di scambio dei dati (in pratica la frequenza del clock) non vi è un limite minimo (in quanto i dispositivi sono statici: possono mantenere se alimentati uno stato logico per un tempo indefinito) ma vi è un limite massimo che va determinato dai datasheet dei singoli dispositivi connessi e dal loro numero in quanto ogni dispositivo collegato al bus introduce sulle linee di comunicazione una capacità parassita. Il sistema di

11

comunicazione di solito serve per lo scambio di dati tra dispositivi montati "sulla stessa scheda elettronica" (o comunque tra schede elettroniche vicine tra di loro) in quanto non prevede particolari accorgimenti hardware per trasferire informazioni tra dispositivi lontani connessi con cavi soggetti a disturbi. Il sistema è comunemente definito a quattro fili. Con questo si intende che le linee di connessione che portano i segnali sono in genere quattro. Va però tenuto conto che vi deve comunque essere una connessione di riferimento (Vdc comunemente indicata con GND, nome che a rigore è improprio) e che fisicamente quindi i fili sarebbero cinque. Discorso analogo si può fare su altri bus seriali definiti a due fili (I²C) o ad un filo in quanto si considerano solo le linee di segnale e si sottintende la connessione di riferimento.

2.7 Sensori

I sensori scelti per il quadrirotore sono tre: Imu, Ultrasonico e Barometro.

2.7.1 Ultrasonico

I sensori di prossimità ad ultrasuoni funzionano sul principio del Sonar: emettono impulsi sonori ultrasonici, e rilevano un'eventuale eco di ritorno generata dalla presenza di un oggetto all'interno della portata nominale. Questi sensori sono in grado di rilevare la maggior parte dei materiali.

2.7.2 Imu

L’IMU acronimo di inertial measurement unit è un

componente elettronico che misura e riporta diversi dati di

un velivolo necessari per il volo: velocità, orientamento, e

forza gravitazionale usando una combinazione di

accelerometri e giroscopi.

12

2.8 Batteria

La batteria scelta è un batteria agli Ioni di litio ( a 3 celle ognuna delle quali a 3.7v connesse in serie) a 11.1v con una capacità di circa 5200 mah che alimenta sia i motori che l’elettronica di bordo. Grazie ad un opportuno collegamento delle E.S.C è possibile alimentare tutti i componenti adattando opportunamente le tensioni. Il motivo per cui si è scelto questa batteria è l’elevata capacità ed il ridotto peso.

2.8 Radiocomando

Per la parte di trasmissione e controllo del quadricottero è stato creato un radiocomando riutilizzando un controller Dualshock 2. Vengono prelevati i dati da esso, contenenti le posizioni dei vari Joystick analogici e lo stato dei vari pulsanti, ed acquisiti dal PIC presente nel circuito. Questi dati vengono poi elaborati e le corrispettive istruzioni vengono inviate al quadricottero tramite l’utilizzo dello stesso tipo di radio presente in esso.

13

Capitolo 3

Descrizione software

In questo capitolo verrà illustrato il codice scritto per il funzionamento del quadricottero.

3.1 Software quadricottero

Durante l’inizializzazione vengono impostate tutte le porte di I/O del PIC, i registri del PLL che

permettono di impostare la frequenza alla quale il PIC deve lavorare, i timer: timer6 da 1ms

utilizzato per la gestione degli ESC, ed i timer8 e 9 per il controllo dei sensori, ed i registri dei

moduli utilizzati: PWM, SPI, I2C.

Successivamente viene effettuata l’inizializzazione dei sensori, dei motori e della radio. A questo

punto il programma si ferma all’interno di un ciclo finché la radio non trova un canale con cui

comunicare e stabilire un collegamento. Fatto ciò il programma prosegue con l’acquisizione dei

primi valori dai sensori, che verranno scartati, per poi entrare nel ciclo infinito principale.

INIZIALIZZAZIONE PIC

INIZIO

INIZIALIZZAZIONE

SENSORI E

COLLEGAMENTO RADIO

INIZIO CICLO INFINITO

LETTURA SENSORI

IMPOSTAZIONE MOTORI

LETTURA DATI RADIO

14

In questo ciclo avviene l’acquisizione dei valori dai sensori, dei dati inviati dal radiocomando,

l’elaborazione dei dati e l’impostazione dei motori attraverso gli ESC, ripetendo queste operazioni

continuamente, finché il PIC rimarrà attivo.

Il calcolo dei valori da impostare per ogni motore viene effettuato utilizzando la tecnica del

controllo PID.

3.1.1 Controllo PID

Il controllo PID (Proporzionale Integrale Derivativo) è un sistema a retroazione negativa

ampiamente utilizzato nei sistemi di controllo: grazie ad un input che determina il valore attuale, è

in grado di reagire a un eventuale errore positivo o negativo tendendo verso il valore 0, questa

reazione può essere regolata attraverso i 3 parametri P – I – D.

Nel nostro caso i sensori acquisiscono i valori dell’altezza e della posizione del quadricottero nello

spazio (imbardata, rollio e beccheggio), questi dati vengono poi confrontati con i valori di

riferimento voluti, cioè quelli ricevuti dal radiocomando, e la differenza corrisponde all’errore.

Questo dato viene quindi utilizzato per regolare la potenza dei motori in modo tale da portare

l’errore a 0. Per fare ciò vengono regolate le tre costanti moltiplicative di ogni blocco (P, I e D) per

raggiungere il controllo ottimale.

15

3.2 Software radiocomando

Durante l’inizializzazione vengono impostate tutte le porte di I/O del PIC, i registri del PLL che

permettono di impostare la frequenza alla quale il PIC deve lavorare, il timer6 da 1ms utilizzato per

le varie tempistiche di trasmissione, ed i registri del modulo SPI utilizzato per la comunicazione con

la radio ed il Joystick.

Successivamente viene effettuata l’inizializzazione del Joystick e della radio. A questo punto il

programma entra nel ciclo infinito principale.

In questo ciclo avviene l’acquisizione dei valori dal Joystick e l’invio di tali comandi al quadricottero

attraverso la radio; queste operazioni si ripetono continuamente, finché il PIC rimarrà attivo.

INIZIALIZZAZIONE PIC

INIZIO

INIZIALIZZAZIONE

JOYSTICK E

COLLEGAMENTO RADIO

INIZIO CICLO INFINITO

LETTURA JOYSTICK

INVIO DATI

16

Ringraziamenti

Un ringraziamento particolare al professor Michele Visentin per l’assistenza in generale, soprattutto

nella programmazione software del drone, oltre all’aiuto nella fase di test durante i primi voli e al

professor Fabio Tonon per la stagnatura del PIC sull’apposito supporto.

Il nostro quadricottero durante una delle prime prove di funzionamento. Volo effettuato nel cortile della scuola.