Primo Volo

Dopo duro lavoro finalmente la costruzione è conclusa e il nostro quadricottero è pronto per spiccare il volo.

In realtà ora ci aspetta un lavoro certosino di configurazione dei pid e dell’expo del throttle, ma intanto possiamo goderci dei voli 🙂

Chi ha diverse esperienze nel pilotare aeromodelli se la caverà certamente meglio di me, ma per la vostra curiosità ecco il video che racconta la prima giornata di voli.

Come costruire un quadricottero. Parte VII

Passiamo alla configurazione del quadricottero, per prima cosa dobbiamo scaricare il software multiwii che possiamo trovare qui.

Il file scaricato comprende sia lo sketch di arduino che l’applicazione per la sua configurazione da pc, apriamo multiwii.ino con l’ide arduino per modificare alcuni valori.

In particolare dobbiamo andare nella scheda config e mettere o togliere i define in base alla nostra configurazione.

Qui la parte più difficile sarà il max e min throttle su cui torneremo dopo.

Quindi carichiamo lo sketch nel modo in cui siamo abituati ( io uso un convertitore ftdi serial che trovate qui).

Colleghiamo il quad al pc e apriamo il MultiWiiConf, per prima cosa dobbiamo selezionare la porta com relativa al quad e poi premere il pulsante start.

Da questo momento dovremmo vedere il grafico del quad muoversi coerentemente con il quad stesso, se non è così ricontrollate i valori che avete inserito nello sketch e l’orientamento della imu.

Controllate che il radiocomando controlli i canali giuste e se necessario fate il reverse di quelli opposti.

Per la regolazione degli stick dovete prima di tutto entrare nel setup del vostro radiocomando e impostare la massima escursione possibile per ogni canale (vi rimando al vostro manuale), dettò ciò bisogna fare in modo che ogni canale sia al minimo 1000, a metà 1500 e al massimo 2000. Per fare questo dovete trovare la giusta combinazione di trim e max e min throttle nel codice.

Se avete dubbi sull’uso del vostro radiocomando consultate il manuale o siti specializzati come baronerosso.

La prossima configurazione riguarda i sensori, posizionate il quad su una superficie piana e cliccate su CALIB_ACC, in questo modo verranno calibrati gli accelerometri, poi premete CALIB_MAG e dovrete girare il quad a 360° su ogni asse entro 10 secondi per calibrare il magnetometro. Premete WRITE e il gioco è fatto.

Ora che avete configurato correttamente il quad è il momento di montare le eliche.

Mi raccomando prestate sempre la massima attenzione quando il quad ha le eliche montate, ricordate che basta poco per farsi seriamente del male.

Ricordate che le eliche che avete sono controrotanti quindi devono girare come illustrato dal grafico di MultiWiiConf.

Per invertire il senso di rotazione di un motore brushless basta prendere due fili qualsiasi del motore e invertirli.

Ora siete pronti a spiccare il volo, caricate la batteria, trovate un luogo con ampi spazi aperti e sperate che non si schianti tutto al primo colpo 😛

quad

Android ti presento Arduino

Google recentemente ha rivelato che i device Android potranno essere collegati a dispositivi hardware grazie all’utilizzo di ADK (Android Open Accessory Development Kit).

Ma chi non ha voglia di spendere i 400 dollari del kit può già sperimentare una sorta di comunicazione partendo da una spesa praticamente irrisoria.

Ebbene si, non useremo i soliti wi-fi o bluetooth, ma un semplice filo smaltato, una resistenza e un diodo. Eresia? State a vedere.

In realtà il principio di funzionamento è estremamente semplice: i dispositivi recenti sono dotati di magnetometro, uno strumento sensibile alle variazioni e alla direzione dei campi magnetici, e noi useremo il filo come una bobina e variando il campo magnetico prodotto comunicheremo con il device.

Chiaramente avrete già capito che si tratta di una comunicazione di sola andata e a bassa velocità, ma per quello che costa cosa vi aspettavate?

Il circuito da costruire è anch’esso estremamente semplice, la resistenza servirà a limitare la corrente, mentre il diodo offrirà una protezione flyback.

La bobina, formata da circa 30 giri del diametro di 1 cm, produrrà un campo magnetico in base alla quantità di corrente che vi faremo scorrere.

Per trovare la posizione esatta del magnetometro nel telefono useremo un’ottima applicazione gratuita che potete scaricare dal market, Tricorder.

(Chi è fan di Star Trek starà già sbavando..)

Questa applicazione ci mostra dei semplici grafici ottenuti dai vari sensori presenti sul device, tra cui appunto il magnetometro.

Una volta individuato, potete usare anche una calamita, possiamo passare alla stesura dello sketch, ma prima una chiarificazione: i limiti di questo esperimento ci sono e sono abbastanza pesanti, il magnetometro ha un sampling rate di soli 40 Hz, quindi nulla di estremamente veloce.

Ma a parte questo ecco lo sketch da caricare:

#define BIT_DELAY 140
int i;
char *text = “Hello World! “;
void setup() {
  pinMode(13,OUTPUT);
}
void loop() {
  char *s;
  s = text;
  while (*s != 0) {
    transmitByte(*s++);
  }
  delay (BIT_DELAY*10);
}
/**
 * Bit bang a byte
 */
void transmitByte (byte c) {
  // Start bit
  digitalWrite (13,1);
  delay(BIT_DELAY);
  // Data bits
  for (i = 0; i < 8; i++) {
      digitalWrite (13, ( (c&0x80)!=0 ? 1 : 0) );
      delay(BIT_DELAY);
      c <<= 1;
  }
  // Stop bit
  digitalWrite (13, 0);
  delay(BIT_DELAY);
}

Ed ecco fatto, come vi avevo promesso non si tratta di nulla di trascendentale, a questo punto vi basterà scaricare il software android da qui , e cominciare a sperimentare!

A chi non bastasse tutto ciò,  può spingere al massimo questa idea con alcuni piccoli accorgimenti:  utilizzando un vero DAC, (o al massimo il pwm su un filtro passa basso),  possiamo sfruttare gli 8 bit di risoluzione del magnetometro, oppure visto e considerato che il sensore è sensibile alle variazioni sui 3 assi, potremmo costruire 3 bobine da utilizzare contemporaneamente.

Chiaramente questo è solo un piccolo assaggio di ciò che vorremmo fare, il mondo dell’open source e quello dell’open hardware si tendono la mano in questo piccolo esperimento, ma il futuro sembra estremamente roseo.

A mio avviso è da notare un’altra soluzione low cost suggerita da un commento dell’articolo originale, ormai molti device hanno una fotocamera e un flash a led, e quindi suggeriva di utilizzare questi abbinati ad un led e una fotoresistenza su arduino.

In questo caso quindi si avrebbe una comunicazione a due vie, e probabilmente si potrebbe addirittura andare un pochino più veloci, anche se avere la fotocamera continuamente accesa porterebbe ad un consumo eccessivo della batteria. (il sensore di luminosità che controlla lo schermo è troppo lento).

Come ultima possibilità, in onore del low cost, possiamo pensare di passare attraverso il jack delle cuffie.

Esiste già un programma, AudioSerialOut, che permette di utilizzare le cuffie come un’uscita seriale, pronta ad essere raccolta da un microcontrollore.

In questo caso poi, si avrebbe una velocità notevole, ma ancora una sola via di comunicazione..

A meno che non si riesca a collegare il microfono delle cuffie ad un uscita di Arduino e far leggere ad Android i dati ricevuti.

Queste sono le alternative che ho trovato per far comunicare il nostro telefono con il nostro Arduino, ma sicuramente ce ne saranno delle altre, avete qualche altra proposta low cost? scrivetela nei commenti!

MultiWii: piccole novità

Grazie al forum di Arduino e in particolar modo all’utente Astrobeed si sono evidenziate alcune dimenticanze/imprecisioni sui tutorial presenti sul sito di multiwii.

Ho sperimentato la nuova configurazione e sembra che le cose siano leggermente migliorate, perciò fate caso anche a questi due particolari:

  • Alimentazione: questi dispositivi i2c vanno alimentati a 3.3 volt, e quindi non direttamente dal pin 12. Le soluzioni sono due, attaccarsi all’uscita 3.3v di arduino o mettere in serie al pin 12 due diodi in modo da abbassare la tensione.
    (NB: in questo caso saremmo anche protetti da eventuali freeze del wm+).
  • Resistenze di pullup: per aiutare il funzionamento del protocollo i2c bisogna prevedere due resistenze di pullup di adeguata dimensione, dai calcoli che ha effettuato Astrobeed risulta che servono due resistenze da 1.5k ohm da mettere tra i bus SDA e SCL e l’alimentazione. (In pratica i pin A4 e A5 devono essere collegati al 3.3 volt con le resistenze)

Se ci saranno altre novità non esiterò a citarle, intanto ecco il video con la nuova configurazione:

MultiWii: come collegare il nunchuck e il Wii motion plus ad Arduino

Dopo aver provato ad utilizzare i giroscopi e gli accelerometri presenti nei sensori della wii all’interno dei loro case, è giunto il momento di estrarli e collegarli direttamente.

Per far ciò ho preferito saldare direttamente i fili già presenti invece di saldare direttamente sui pcb a causa delle dimensioni degli stessi, quando avrò una stazione saldante più seria mi cimenterò anche in queste saldature più piccole.

Si tratta solo di collegare i fili giusti, quindi la difficoltà non è altissima..

Per il collegamento basta seguire queste due immagini (io ho usato un arduino Uno)

Per ulteriori dubbi o perplessità vi rimando al video in cui vi mostro come ho smontato e collegato i due sensori, e il loro funzionamento attraverso il software MultiWii.

 

EDIT: come richiesto metto una foto che mostra dove va il filo verde citato nel video

Primi passi con Arduino e un giroscopio

Ecco i miei primi passi verso il mio primo quadrotore..

Il Wii Motion Plus (giroscopio a 3 assi) ed Arduino Uno.

Nell’utilizzo di MultiWii citano l’utilizzo di Arduino pro mini, ma a quanto pare non è facilissimo da trovare.. Quindi prima di disperarmi ho deciso di provare se poteva andare anche con la Uno..

Sembra vada tutto bene :):)

Il filmato non è il massimo ma era solo per provare, più avanti metterò video migliori..

Il software di arduino è quello di Multiwii, come anche la GUI che vedete sullo schermo, ma se volete provare a collegare per la prima volta il Wii Motion Plus ad Arduino vi consiglio quest’ottima guida.

Simulatore Arduino

Al momento non è possibile trovare una soluzione rapida ed efficiente per emulare un circuito con arduino, ma siccome la richiesta è molta appena trovo qualcosa la voglio pubblicare..

L’ultima novità salta fuori da spice, e in particolare dal plugin Proteus, che permette di emulare il microcontrollore Atmega328p, il cervello di arduino.

Quello che bisogna fare è costruire il circuito base di arduino standalone, e dopodichè sarà possibile utilizzare gli strumenti classici di spice in abbinamento con la programmazione dell’ide di arduino.

Ciò che dovete fare lo potete trovare in questo tutorial in lingua inglese.   [link aggiornato, grazie Cris]

Buon divertimento con il vostro simulatore di arduino 🙂