Archivi tag: quadcopter

myQrc Rilasciata

I just upload the last and final version of the myQ release candidate on github

DSC_6918

All the software has been debugged and tested.

All the functionalities are now stable.

I tested in different options (debug mode, netscan activated, sensor log) and the result is that I can run the main loop every 10 ms and get sensor data every 6 ms.

It can happen to have a delay on the sensor data loop when a log is added ( 2/3 ms).

 

I removed the webserver from the list of test to do, so it is not supported in this version of the software. The main reason is an instability when runnin gon raspberry. I have to investigate a more robust way to manage the comunication via browser.

 

Next time I will write a post the drone will be just landed…(after its first flight!!!)

Beta1 Test. Introduzione SW

Questo il codice  Beta1 Software.

Ho completato il test preliminare , validando le seguenti funzionalità di base:

  • Gestione di 4 motori.
  • Gestione IMU, inential measurament unit (MPU6050).
  • Controllo Remoto (fatto usando ssh ed il laptop).Posso variare  roll e pitch target. Yaw non è per il momento gestito. Posso avviare il controllore PID per il solo roll o per roll+pitch.
  • Controllore PID per  roll e pitch.
  • Display con le informazioni attuali.
  • log file.
  • Gestione arg params ( -s = save log, -c = calibrate IMU)

Ho aggiunto un nuovo modulo chiamato quadricopter.py dove ho posto tutti i componenti necessari già discussi in passato.In questo modo vi posso accedere semplicemente: per esempio con myQ.motor[i] o myQ.sensor.roll.

Rocordo che l’oggetto sensor e l’oggetto rc stanno ora girando come thread in parallelo.

Il main loop e’ settato con un tempo ciclo di 10ms, ma devo investigare se questo valore resta stabile nel tempo e soprattutto se e’ sufficiente per il controllo del drone.

Un nuovo display mostra lo stato attuale del includendo  roll, pitch and yaw , motors rate , throttle e la lista dei comandi ammessi per il  remote control.

beta1 display

Il principale obiettivo ora è effettuare il tuning dei parametri PID per poter bilancire la struttura ( Ricorda che in questa fase ho posizionato una semi sfera sotto il drone per testare il bilanciamento senza dover volare).

 

 

Alfa3test. Ecco il software

Dopo aver completato una serie di test , ecco il software alfa3 disponibile : alfa3

Sono ora presenti tutti i componenti necessari per  l’implementazione finale del quadricottero.

Questo l’elenco dei moduli sviluppati:

  • motor.py
  • sensor.py
  • MPU6050.py
  • pid.py
  • rc.py

Ogni modulo include un oggetto specifico.Dedichero’ un po di tempo per rivedere e aggiornare la pagina di python con un help dettagliato ai vari moduli.

Qui mi preme dare solo un riassunto delle loro principali caratteristiche.

rc e’ la novita’ di questo alfa3test.E’ un oggetto che lavora in un thread in parallelo.Resta in attesa di input da parte dell’utente. In questo caso specifico l’input atteso arriva dalla tastiera,ma con lo stesso  approccio si puo’ pensare (ci sto ancora lavorando,sara’ a breve oggetto di un post dedicato) di ricevere l’input da un webserver.

Motor e’ un oggetto che gestisce la comunicazione fra le uscite del raspberry pi verso l’ESC ed infine verso il motore. Utilizza la libreria RPIO per la gestione del PWM.

Sensor e’ un oggetto che lavora in un thread in parallelo. Ogni 6ms circa e’ in grado di acquisire le informazioni di posizione e velocita’ angolare del quadricottero ricevendo i dati dal giroscopio e dall’accelerometro.

MPU6050 e’ una classe di pura interfaccia fra il raspberry e l’hardware del sensore. Se si desidera utilizzare un sensore differente dal mio , e’ sufficiente sostiuire questa classe con una appropriata all’hw utilizzato.

Pid e’ un oggetto che racchiude l’algoritmo di calcolo del controllo proporzionale, integrale e derivativo. Al suo interno gestisce il calcolo del tempo ciclo per ogni chiamata.

Aggiornamento sviluppo

In questi giorni mi sono dedicato ad alcuni approfondimenti di carattere teorico, aggiornando le pagine  sui motori ed eliche.

Ho deciso che data l’instalbilita’ del quadricottero, sara’ quasi subito necessario introdurre un giroscopio o mglio un giroscopio +accelerometro.Penso di acquistare MPU6050 (giro+acc).

Ho poi acquistato la batteria : FULL POWER 3S 11.1V 4000MAH 30-45C

ed il caricabatteria : Equilibrium mini v2

infine ho scrito la classe dell’oggetto  motor.py ( a breve on line) in cui gestisco interfaccia fra comando della velocita motore (in %)  e l’uscita PWM di rpi

Istallazione SW

In attesa che mi  arrivi l’hw  ho settato il software.

Sul mio laptop con ubuntu ho intenzione di effettuare la parte principale dello sviluppo del programma. Per tanto ho istallato ninja IDE, direttamente usando ubuntu software center.

Per comodita’ ho creato  una cartella /home/pyton

il sw cosi creato ( file.py)  lo copiero’ su rpi

Per quanto riguarda rpi ho preso l’immagine rasbian (2013-02-09-wheezy-raspbian.img) che avevo “in casa” e l’ho istallata su una SD da 2GB.

Si puo trovare l’ultima versione disponibile a questo link

Avviato rpi ,collegato al televisore di casa via hdmi e ad una tastiera, ho lasciato tutti i settaggi di default della configurazione , ne sono uscito ed e’ partito rpi.

L’ho collegato al router via cavo, spento tv e tolta tastiera.

Sul router l’ho riconosciuto e definito il suo indirizzo ip statico:192.168.0.50

legandolo al proprio MAC address. (Io uso un router della netgear, e’ mi estato molto intuitivo capire come).

dal laptop , sul terminal ho digitato

ssh pi@192.168.0.50
password : raspberry

ora il terminale del laptop e’ diventato il terminale del rpi

ho lanciato

$ sudo apt-get undate
$ sudo apt-get upgrade

L’aggiornamento prende circa un ora

Ho lanciato l’istallazione della libreria  RPIO che mi permettera’ di gestire diverse uscite di rpi con un segnale PWM:

$ sudo apt-get install python-setuptools
$ sudo easy_install -U RPIO

infine ho creato la cartella che accogliera i file.py:

mkdir python

Link:

ninja IDE

RPIO

Componenti acquistati

Seguendo le indicazionie di oddcopter oggi ho acquistato i primi componenti del mio quadcopter.

Considerando che  il raspberry pi , lo avevo gia, Per ora ho speso 100 EUR inclusa la spedisione aerea da USA.

Ho preso motori, eliche, esc e dei connettori ed un convertitore UBEC  per alimentare rpi con la stessa batteria

 

Acquistato  tutto su hobbyking.com che mi e’ sembrato il fornitore che aveva praticamente tutto il necessario.

Sono attualmente sprovvisti di batterie , per cui  devo trovarla altrove (+ il suo caricabatterie).

Non ho trovato per ora un fornitore italiano che avesse tutto ed ad un prezzo modico.

Ecco  link alla mia lista materiali

 

Non mi resta che attendere…

nel frattempo comincio a scrivere un po di codice per interfaccare i motori al rpi

 

Link:

oddcopter.com

HobbyKing.com