Official topic: multicotteri con arduino!

superlol:
scusa astro ma per motivi di sicurezza e rendimento ti chiedo di rivalutare le eliche, con 1.3kg lo tiri su ma non hai sicurezza, se ti si scarica la batteria cade quasi a piombo.

Il mio quadri verrà a pesare circa 800 grammi in ordine di volo, la spinta di 1.3kg la ottengo calcolando una tensione di 11.1 Volt, cioè quella nominale del pacco che raggiunge non prima di essere a metà capacità, pertanto avrei un lift pari 1.6 volte il peso, non posso fare acrobazie, ma volare sicuramente si.
In tutti i casi le eliche più piccole le ho citato solo a titolo d'esempio, non penso che le monterò mai.

la sicurezza ti prego contala, sarai abituato agli elicotteri che basta poco di più tanto se va male qualcosa nei modelli viene giù tutto (non credo che riesca ad andare in autorotazione)

Per me la sicurezza è la cosa più importante.
Per tua informazione, non solo gli elicotteri modello eseguono senza problemi l'autorotazione, ma la fanno pure in volo rovescio, ovviamente tocca essere capaci di farla e se c'è una cosa che so fare molto bene con gli elicotteri è proprio l'autorotazione :slight_smile:

ma qui è qualcosa che non va storto, intendo che DEVI mettere una spinta quasi 2 volte il peso.

Te lo dico per la seconda volta, ho oltre 30 anni di modellismo dinamico alle spalle, ho fatto volare di tutto, mi mancano solo i modelli con turbina (troppo costosi), sono un ottimo costruttore e un bravo pilota, non mi servono i tuoi consigli su come costruire, e far volare, un qualunque modello :slight_smile:
Ti allego una foto di quello che sono capace di fare con un hely (ed è una cosa che faccio senza problemi), giudica tu :grin:

lesto:
oddio adesso non è che se si scarica la batteria viene giù a sasso, man mano che la batteria si scarica perdi potenza in modo abbastanza graduale,

Esatto, anche se le LiPo sotto i 3.3 - 3.2 V cominciano a perdere tensione molto rapidamente c'è comunque un calo di tensione costante mano a mano che si scaricano che si riflette sotto forma di maggiore stick per stare in aria, te ne accorgi con largo anticipo che le batterie stanno per finire.
Poi se c'è la telemetria a terra è un attimo impostare un allarme acustico quando la tensione scende troppo ed è ora di atterrare.

non voglio mettere in discussione le tue abilità di modellista ma sinceramente ho visto molta gente che ha costruto modelli per 30 anni pilotati per 35 e 2 settimane al fa con un blizzard motorizzato tuning l'ha fatto partire in verticale, sbagliato il comando di coda (miscelazione sbagliata) ed è venuto giù.

ed un'altro conosco che ha fatto un F18 tutto in balsa, messo elica propulsiva tutto tarato alla perfezione ma non aveva messo il salvaelica in modo corretto (dopo averne montati una trentina) ed è un miracolo si sia rovinata solo la pancia dell'aereo.

insomma ok sono errori di distrazione ma mentre un aereo è un corpo che bene o male plana e un quadricottero no direi di partire con certezze sopratutto sul peso. io parto con eliche che mi daranno 10 minuti scarsi di autonomia è vero ma mi danno una spinta sicura sempre. poi magari vedo che invece di montare le 10x4.5 monterò le 9x5 o qualcosa del genere per ridurre consumi ma anche spinta e però essere sicuro che voli tranquillo anche quei pochi minuti che guadagnerò.

scusa non voglio criticare, il materiale e i soldi sono tuoi ma io ho sempre sentito chi si loda si imbroda, magari nel tuo caso non è così e lo spero vivamente.
non voglio entrare in conflitto perchè come ti ho detto sei una persona che stimo tantissimo almeno per quanto posso conoscerti sul forum e da cui ho molto da imparare

@astrobeed Pensavo di procurarmi dei motori da 1050kv circa 140w, all'incirca come quelli che hai mostrato nell'ultimo link.
Ho visto dei filmati di quadcopteri da 50cm con questo setup che mi hanno attirato. Con eliche da 10x4.5 ho visto che portavano anche 1kg di peso aggiuntivo... A settembre a questo punto cerchero' di andare anche da questi negozi che mi hai indicato!

ps: figo l'elicottero sottosopra :slight_smile: Confessa: e' un photoshop ! :stuck_out_tongue: :stuck_out_tongue:

superlol:
non voglio mettere in discussione le tue abilità di modellista ma sinceramente ho visto molta gente che ha costruto modelli per 30 anni pilotati per 35 e 2 settimane al fa con un blizzard motorizzato tuning l'ha fatto partire in verticale, sbagliato il comando di coda (miscelazione sbagliata) ed è venuto giù.

Un conto è fare un botto per un errore, e tutti quanti ne facciamo, e un conto fare un botto perché il progetto è sbagliato, sono due cose diverse.

scusa non voglio criticare, il materiale e i soldi sono tuoi ma io ho sempre sentito chi si loda si imbroda, magari nel tuo caso non è così e lo spero vivamente.

Se volevo lodarmi ti avrei citato ben alte cose, ti ho solo fatto presente che non sono un principiante e che ho una grossa esperienza maturata sul campo di volo oltre ad un notevole bagaglio teorico.

Federico:
@astrobeed Pensavo di procurarmi dei motori da 1050kv circa 140w, all'incirca come quelli che hai mostrato nell'ultimo link.
Ho visto dei filmati di quadcopteri da 50cm con questo setup che mi hanno attirato. Con eliche da 10x4.5 ho visto che portavano anche 1kg di peso aggiuntivo... A settembre a questo punto cerchero' di andare anche da questi negozi che mi hai indicato!

ps: figo l'elicottero sottosopra :slight_smile: Confessa: e' un photoshop ! :stuck_out_tongue: :stuck_out_tongue:

i modelli di elicotteri possono volare sotto sopra perchè possono variare maggiormente il passo almeno a quanto ricordo, cosa che i veri elicotteri non possono fare.

non sapevo invece che anche i modelli andassero in autorotazione, del volo rovesciato lo sapevo anche perchè l'ho visto fare al campo :wink:

Federico:
Confessa: e' un photoshop ! :stuck_out_tongue: :stuck_out_tongue:

Assolutamente no :slight_smile:
Ti Linko un video di uno dei migliori piloti al mondo per il volo 3D con gli hely, così ti rendi conto di quello che è possibile fare con queste macchine.

superlol:
i modelli di elicotteri possono volare sotto sopra perchè possono variare maggiormente il passo almeno a quanto ricordo, cosa che i veri elicotteri non possono fare.

Nei modelli per il volo 3D, serve una meccanica molto robusta e un motore molto potente, il passo del rotore può variare tra circa +12° e -12°, l'hovering lo si ottiene a circa 5°, il lift arriva a quasi tre volte il peso dell'elicottero, cioè è in grado di accelerare in verticale a quasi 2G.
Gli elicotteri veri non possono fare il volo rovescio per un problema di massa, l'albero rotore si incurverebbe, però quasi tutti gli elicotteri militari sono in grado di eseguire il looping e il tonneau anche se siamo veramente al limite delle loro capacità, anche alcuni elicotteri civili possono eseguire il looping.

Curiosità:
Nel film tuono blu il protagonista esegue un looping, manovra impossibile per il vero elicottero utilizzato, un Gazelle ricarrozzato, per girare la scena è stato usato un modello, è facile accorgersene perché è visibile il servo rotore hiller (chiamato anche flybar) che caratterizza tutti i modelli.

che giroscopi usa?!?!

lesto:
che giroscopi usa?!?!

Chi e cosa ?

ah, mi son rotto di far andare il wmp e il nun, quindi, visto che ho 2 atmega, pensavo di usare il 2° per leggere il nun e inviare i dati al primo arduino che fa tutto il lavoro di codicica etc.. Problema... come faccio comunicare i due arduino? la seriale è lenta, nell'i2c sono entrambi master e se setto l'indirizzo non vanno i sensori, che altro potrei usare?

astrobeed:

lesto:
che giroscopi usa?!?!

Chi e cosa ?

il tizio del video... la coda è sempre ferma anche quando fa cambi velocissimi..

lesto:
nell'i2c sono entrambi master e se setto l'indirizzo non vanno i sensori, che altro potrei usare?

Setta il secondo ATmega come I2C slave, gli dai un suo indirizzo e lo fai funzionare in emulazione di un ADXLxxx.

il tizio del video... la coda è sempre ferma anche quando fa cambi velocissimi..

Quasi sicuramente un Futaba GY601, un giocattolo che costa oltre 400 Euro con il suo servo superveloce a 330 Hz.

eh, ma mi servono entrambi master, uno per wmp e uno per il nunchuck... pensavo magari di farli andare in SPI

lesto:
eh, ma mi servono entrambi master, uno per wmp e uno per il nunchuck... pensavo magari di farli andare in SPI

Sul secondo ATmega usi una I2C emulata a software per leggere il Nunchuk e quella hardware per dialogare con il primo ATmega.

è un'idea, ma sai che non riesco a trovare una cavolo di libreria? se cerco software escono esempi di codice, se cerco emulata trovo come simulare sensori con arduino... eppure avevo trovato qualcosa qualche giorno fa, ma non me la son salvata nei preferiti... conoscete qualche libreria? visto che devo comunicare solo 3 int pensavo di usare la simulata come ponte tra i 2 arduino, così i 400kB/s li uso per leggere i sensori che han "pacchetti" più gozzi.
Oppure potrei usare direttamente il sensore su i2c simulata, se è abbastanza veloce.

edit: do per scontato che l'I2c simulato sia assi più lento

stavo programmandomi una libreria apposta per comunicare, senza entrare troppo nel dettaglio ho controllato a priori la durata di una digital read... 4ms.
Troppo, viene un baudrate di 250.. Potrei usare gli input/output a livello di registro, ma tanto vale usare la NewSoftSerial, che arriva fino a 57600baud in ricezione e 115200baud in trasmissione. Quindi userò la seriale simulata per comunicare con il PC, tanto l'output è pensato per funzionare a 19200baud (ed ecco perché la seriale mi sembrava così lenta, pensavo di usare una delle velocità più alte... :grin:) )

lesto:
stavo programmandomi una libreria apposta per comunicare, senza entrare troppo nel dettaglio ho controllato a priori la durata di una digital read... 4ms.

Non so come hai fatto questa misura, però è totalmente sbagliata, sia la digitalRread che la digitalWrite richiedono un tempo di esecuzione leggermente inferiore a 2 us, sempre molto rispetto alla scrittura/lettura diretta del registro del port che richiede solo 62 ns, o 124 a seconda del tipo di indirizzamento, come avevo già fatto notare in un altro thread.

uhhh hai completamente ragione, ho confuso 4microsec con 4ms!!! mea culpa

void setup(){
  Serial.begin(19200);
}

void loop(){
    int a;
  unsigned long time2;
  
  pinMode(12, INPUT);
  unsigned long time1 = micros();
  for (int i=0; i < 1000; i++){
    a=digitalRead(12);
  }
  time2 = micros()-time1;
  
  Serial.print("1000 read duration:");
  Serial.println(time2);
  
  pinMode(12, OUTPUT);
  boolean stat=false;
  time1 = micros();
  for (int i=0; i < 1000; i++){
    digitalWrite(12, stat?HIGH:LOW);
    stat=!stat;
  }
  time2 = micros()-time1;
  
  Serial.print("1000 write duration:");
  Serial.println(time2);
}

OUTPUT:

1000 write duration:5664
1000 read duration:4156

quindi dovrebbe venire un baud di circa 250.000 (in realtà raggiungere 200.000 credo sia già un bel traguardo)

boh mi sa che oramai vado di seriale, poi magari in un'altra discussione posto il codice che ho scritto finora, anche se è molto "hard coded". Usa due pin fissi, il lettore richiede i messaggi semplicemente alzando e abbassando un pin(una specie di clock che lavora su entrambi i fronti), lo scrittore riceve l'interrupt change dal pin di clock e scrive un bit nel pin "dati"

In questo modo il lettore NON conosce a priori se ci sono dati pronti, semplicemente legge sempre 0.

lesto:
uhhh hai completamente ragione, ho confuso 4microsec con 4ms!!! mea culpa

Comunque il test che fai è sbagliato lo stesso perché nel conteggio del tempo ci va pure il ciclo for, che si prende i suoi 2-3us, il tempo reale sono i poco meno 2us che ti ho detto, misurati strumentalmente a suo tempo sul tempo che ci mette un pin a cambiare stato tra due digitalWrite consecutive, stessa cosa per la digitalRead misurata come offset in mezzo a due digitalWrite.
In tutti i casi non puoi ottenere un baud rate pari ad 1/2 del tempo di commutazione perché in mezzo c'è pure il tempo per eseguire lo shift del registro da inviare/leggere bit a bit su un pin.
Non a caso ti ho detto di usare la I2C hardware come slave, a 400 kHz, per comunicare con il resto del sistema e usare la I2C emulata in software per leggere il Nunchuk.
Prima di tutto è più semplice emulare un master che uno slave, e poi c'è il fatto che il Nunchuk ha una banda limitata, mi pare al massimo 100Hz, quindi puoi prenderti tutto il tempo che vuoi per leggerlo, non ti serve spingere l'I2C master ad alte velocità, anche se lo leggi 1000 volte al secondo non cambia nulla, alla fine sempre 100 valori diversi, distanziati di circa 10 ms, ottieni.
Non scordarti che i valori 100kHz e 400kHz sono i limiti di velocità e non la velocità obbligatoria, ovvero l'I2C puoi farla funzionare con un clock che parte da poche centinaia di Hz, con alcuni device pure meno di 1 Hz, fino al limite massimo ammesso e non deve nemmeno essere costante perché è una seriale sincrona, ovvero tutto va in funzione del clock generato dal master.

ok, ma il problema è trovare una libreria software i2c. ne ho trovata una ma è molto basica e non specifica i propri limiti. vediamo se riesco a farci stare la newSoftSerial, altrimenti rimedio sull'i2c software

purtroppo l'i2c non l'ho mai usato se non per il wmp e il nunchuck, e quindi non sono pratico del protocollo, sopratutto per quanti riguarda controllare se una libreria è valida oppure no.

quella che ho trovato io è questa: http://www.bese.it/~segv/twi.tar.gz