Official topic: multicotteri con arduino!

lesto:
Il problema delle diverse frequenze di lavoro o rumore (Non credo di aver visto in nessun software l'eliminazione di rumore, anche se magari lo fanno pre-filtro kallmann, che tipo di formule intendi usare? un filtro passa basso?)

Il rumore si elimina tramite il Kalman, la banda ha molta importanza per il pid.

ce le abbiamo comunque perché la freeimu usa il BMA180, tu (da quel che ho capito) hai disponibile il ADXL345, io e federico l'ADXL335. Non ho controllato, ma spero che tra il 345 e il 335 cambi solo la possibilità di interfaccia I2C.

Il 345 dalla sua ha la possibilità di lavorare con fondo scala +/- 2G,4G,8G, 16G, selezionabili da software, come anche il BMA180, ha molto meno rumore del 335 perché al suo interno c'è un filtro digitale che esegue una prima pulizia, ha una banda reale di oltre 200 Hz contro i 100 scarsi del 335.

Per i discorso software si implementa in C ANSI, niente C++ sprecone di risorse e tempo macchina, non si usano le funzioni pappa pronta di wiring, anche loro sprecone, e tantomeno cose come la millis e la digital.qualcosa etc, sarà un software che va a sfruttare al 100% le possibilità degli ATmega.
La questione hardware diversi viene gestite tramite una libreria di funzioni con compilazione condizionale, ovvero tutte le varie parti hardware sono gestite da funzioni con lo stesso nome, p.e. Acc_Read(), però cambia la funzione che viene realmente compilata a seconda delle define, ovviamente tutte raccolte in un file .h dedicato e organizzato in modo logico, nel programma principale non ci deve essere confusione.

pps. mi piace l'idea di avere una board,ma la farei già completa di sensori. E' ancora presto per pensarci, se hai i mezzi è molto comodo farsela.

Inutile dire che l'ideale è lavorare con una sola board dove sopra c'è una MCU ben definita e tutti i sensori, però è una cosa costosa da realizzare in piccole quantità.

ratto93:
Per caso hai intezione di farla produrre da qualcuno poi ??? perchè come accennavo se sono 1 o 2 strati si fa in casa poi nada de nada :wink:

Sono anni che non mi metto più a combattere con i master, gli acidi e il trapano per fori, i pcb me li faccio fare da un service così ho piste perfette e fori metallizzati, se poi voglio spendere di più posso avere anche il solder e le serigrafie.

WMP e ADXL335.
Sembra corretto? (A muoverlo quello che vedevo a schermo era realistico) Intorno al secondo 45 si vede lo "scatto" strano che fa di cui parlavo qualche post fa. Stasera proseguo i test...

astrobeed:

lesto:
Il problema delle diverse frequenze di lavoro o rumore (Non credo di aver visto in nessun software l'eliminazione di rumore, anche se magari lo fanno pre-filtro kallmann, che tipo di formule intendi usare? un filtro passa basso?)

Il rumore si elimina tramite il Kalman, la banda ha molta importanza per il pid.

Ah ok, in effetti il kallman è un filtro.. con la DCM io prendo i dati, e li "sbatto" nell'algoritmo senza troppi complimenti.

per come la vedo io la banda influenza il tempo di aggiornamento della IMU, che influenza il tempo di aggiornamento del pid. Nel senso che è inutile dare in pasto al kallmann (o alla DCM) dati non aggiornati, e quindi senza output è inutile (se non controproducente, causa I e forse anche D)aggiornare il pid

astrobeed:

ce le abbiamo comunque perché la freeimu usa il BMA180, tu (da quel che ho capito) hai disponibile il ADXL345, io e federico l'ADXL335. Non ho controllato, ma spero che tra il 345 e il 335 cambi solo la possibilità di interfaccia I2C.

Il 345 dalla sua ha la possibilità di lavorare con fondo scala +/- 2G,4G,8G, 16G, selezionabili da software, come anche il BMA180, ha molto meno rumore del 335 perché al suo interno c'è un filtro digitale che esegue una prima pulizia, ha una banda reale di oltre 200 Hz contro i 100 scarsi del 335.

Per i discorso software si implementa in C ANSI, niente C++ sprecone di risorse e tempo macchina, non si usano le funzioni pappa pronta di wiring, anche loro sprecone, e tantomeno cose come la millis e la digital.qualcosa etc, sarà un software che va a sfruttare al 100% le possibilità degli ATmega.
La questione hardware diversi viene gestite tramite una libreria di funzioni con compilazione condizionale, ovvero tutte le varie parti hardware sono gestite da funzioni con lo stesso nome, p.e. Acc_Read(), però cambia la funzione che viene realmente compilata a seconda delle define, ovviamente tutte raccolte in un file .h dedicato e organizzato in modo logico, nel programma principale non ci deve essere confusione.

pps. mi piace l'idea di avere una board,ma la farei già completa di sensori. E' ancora presto per pensarci, se hai i mezzi è molto comodo farsela.

Inutile dire che l'ideale è lavorare con una sola board dove sopra c'è una MCU ben definita e tutti i sensori, però è una cosa costosa da realizzare in piccole quantità.

per la board lo so, ma lo stesso vale per una board senza sensori no? voglio dire, non è certo il costo dei sensori a rendere alto il costo, quanto il PBC stesso.

per il resto ti seguo, volevo approfondire qualche punto ma devo uscire di fretta. va bene il C, però con le define cambierei il file.h importato, e ogni .h è un sensore diverso, un pò come vorrei fare con le classi nel codice che ho scritto finora. molto più pulito, no?

Per il PCB cosa vuoi che costi... Se ne fai 10 gia' il costo scende, se te lo fai in casa costa praticamente solo lo sbattimento di farlo.

io vorrei dire che a mio parere 100 schede si venderebbero senza troppi problemi.

avendo 200€ di fisso più 1.50€ a scheda (serigrafata e tutto) sono 350€ solo le schede, poi bisognerebbe vedere i componenti, però se la imu viene sui 100€ e un arduino viene sui 25€ si avrebbero schede in vendita da 150€ che in questo campo sinceramente sono pochi.

poi la parte col GPS sarebbe la più costosa però (modulo GPS da circa 60€?) anche perchè necessita di una MCU più potente e costosa

ma voi state contando solo i PBC o anche i costi di assemblaggio degli SMD? Perché a questo punto arduino, i sensori e tutto il resto li fai in SMD (che dovrebbero costare anche meno). Però se pensi di assemblarli in casa, inizia a pensare anche al numero di resi... magari si possono fare due versioni, una totalmente SMD per il commercio, e una con il minimo assoluto di pezzi SMD (solo i sensori?) che non viene venduta, ma uno si scarica il file e se la fa da solo..

Però non so un bromografo da casa che precisione ha, credo che dipenda solo fino ad un certo punto dalla qualità della stampa.

Oppure si può pensare di fare fare il PCB ed anche montare i componenti da Seeedstudio.... sono cinesi ma fanno a dovere il loro lavoro... ho un paio di loro oggettini e vanno alla perfazione e la fattura è davvero buona....

ratto93:
Oppure si può pensare di fare fare il PCB ed anche montare i componenti da Seeedstudio.... sono cinesi ma fanno a dovere il loro lavoro... ho un paio di loro oggettini e vanno alla perfazione e la fattura è davvero buona....

la commercializzazione è l'ultimo dei problemi, prima direi che ci serve un hardware e un software prima di produrre una scheda :wink:

quindi attendiamo astrobeed che metta giù i primi sistemi di equazioni che poi provvederemo a risolvere :stuck_out_tongue:

L'eventuale realizzazione di una scheda dedicata all inclusive è da prendere in considerazione solo dopo aver realizzato almeno una beta funzionante del software provata su hardware normale, adesso è prematuro parlarne.
Non scordatevi che tutti i sensori sono in case qfn, praticamente impossibili da saldare in da soli senza disporre almeno di un forno preriscaldante e una stazione ad aria, e tocca pure saperlo fare altrimenti fate una bella frittura mista da qualche decina di Euro.

superlol:

ratto93:
Oppure si può pensare di fare fare il PCB ed anche montare i componenti da Seeedstudio.... sono cinesi ma fanno a dovere il loro lavoro... ho un paio di loro oggettini e vanno alla perfazione e la fattura è davvero buona....

la commercializzazione è l'ultimo dei problemi, prima direi che ci serve un hardware e un software prima di produrre una scheda :wink:

quindi attendiamo astrobeed che metta giù i primi sistemi di equazioni che poi provvederemo a risolvere :stuck_out_tongue:

Non volevo insinuare che si potrebbero commercializzare... ma solo che se ci servono a noi che li andremo a testare dei prototipi a basso costo andrebbe preso in considerazione seeedstudio tutto la... proprio per il fatto che questi micro sono in formati inutilizzabili a livello hobbistico...

flameman:
ho appena finito di far cuocere la scheda del dsp
per la parte di componentistica che riportava Lead Temperature (Soldering, 10 seconds): 300°C
2 tqfp 44
2 tqfp100
12 ssop16
6 ssop8
4 TDFN (che sarebbe simile al soic, ma con i piedini tutti sotto)
un paio di bga (particolarmente fastidiosi)
e poco altro (escluso il masterista, e i suoi pbc)
solo di saldature
speso 110 euro

il kernel minimale che si e' confezionato per la scheda in questione
permette una programmazione concorrenziale pthread posix
facilitando la stesura, la modellazione, ed il controllo delle parti algoritmiche

tutto il design, sia hw che sw, e' a memoria condivisa

e il bello e' che il tutto compila su un host unix e si porta "quasi indolore" sul target

il prossimo passo sara' portare il target sull'host, cioe' aggiungere un cortex a9 linux/glibc
porte usb da sfruttare fullspeed endpoint bulk urb dma
(concentratore di dati sensori, sfruttando l'usb bus tree perennemente in full bulk)
e addirittura un bus pcie cui appoggiare un modulo radio wifi
(tanto ce l'ho gratis, e' gia' integrato, quindi si usa, anche se non hotplug)

l'ultimo passo sara', per motivi lavorativi, gia' che ci sono
sperimentare un p2020 (dual dual core) al posto dell cortex a9
configurazione smp, o amp, poi vedro'

costo del tutto ? + o - un 2000 euro
ripescando una scheda di sviluppo freescale

cioè stai usando un linux embedded? ti rende comodo per la questioni PCI (che non capsico che fai del wifi visto che ti servirebbero antenne direzionali per arrivare alle distanze che noi vogliamo anche se sarebbero infinite le nostre, dettate dalla durata della batteria) ma da quello che so un kernel rallenta il tutto (moooolto male), poi utilizzi processori potenti? consumi?

noi vogliamo creare macchine che volino più a lungo possibile il che implica massima leggerezza (il modello di astro è previsto sugli 800g fai tu..) dimensione contenute (io ho un 50cm interasse motori) che sia realizzabile da tutti con non troppi soldi almeno la parte base per cui un atmega un quarzo da 20MHz e un connettore per la programmazione via FTDI è fattibile da quasi tutti su millefori, poi sarà invece da far stampare e distribuire la parte gps ed avrà alti costi ma per ora è l'ultimo dei pensieri.

secondo me arrivi troppo alto coi consumi nella tua scheda (noi in tutto avremo circa 30mah nemmeno di assorbimento tra sensori e tutto, tu se già metti un dual core serve una batteria solo per quello ;))

almeno è quello che penso, anche io volevo optare per un linux embedded ma alcune persone sull'altro forum mi hanno fatto cambiare idea...

superlol:
almeno è quello che penso, anche io volevo optare per un linux embedded ma alcune persone sull'altro forum mi hanno fatto cambiare idea...

Infatti nella parte low lovel dei sistemi di controllo nessuno usa un sistema operativo come Linux, al massimo un RTOS, ultraleggero, specifico per la MCU in uso.
Linux, Windows CE, QNX, giusto per citare i più utilizzati in ambiente embedded, hanno un senso su una SBC (Single Board Computer) dove c'è come minimo un ARM9 da 200 MHz con almeno 8 mega di flash e altrettanta ram, cioè un oggetto che va benissimo per gestire una comunicazione TCP/IP, porte USB etc, non va per niente bene per gestire un controllo low level come la gestione dei motori tramite pid e l'interpretazione dei dati di una IMU, per queste cose si utilizzano MCU dedicate.
Sotto il profilo consumi una SBC non è molto esosa, ne ho una nel cassetto che monta un processore GEODE LX800 (x86), dimensioni 80x100mm, perfettamente in grado di far girare Linux o XP, compresa la ram da 512 Mega, una C.F. da 8 giga consuma mediamente meno di 1A a 12V, cioè poco meno di 12W, non è poco rapportato al consumo medio generale del quadricottero, però è accettabile se serve molta potenza di calcolo in volo.

Mi spiace ma con + o - 2000 euro mi faccio la patente e mi compro la macchina e forse me ne avanzano :stuck_out_tongue:

ratto93:
Mi spiace ma con + o - 2000 euro mi faccio la patente e mi compro la macchina e forse me ne avanzano :stuck_out_tongue:

Non ci faremo carico dei tuoi problemi di adolescenza! ]:smiley:

Scherzoni a parte...
Va definito se quello che nasce dall'interesse per questo topic e' hobbystico o professionistico.
Secondo me la quasi totalita' dei partecipanti segue e partecipa al discorso per hobby, e forse qualcuno puo' averne un ritorno economico.
Quindi, pensando di progredire su un piano comune io scarterei alcune problematiche troppo evolute da un discorso di gruppo...

Federico:

ratto93:
Mi spiace ma con + o - 2000 euro mi faccio la patente e mi compro la macchina e forse me ne avanzano :stuck_out_tongue:

Non ci faremo carico dei tuoi problemi di adolescenza! ]:smiley:

Scherzoni a parte...
Va definito se quello che nasce dall'interesse per questo topic e' hobbystico o professionistico.
Secondo me la quasi totalita' dei partecipanti segue e partecipa al discorso per hobby, e forse qualcuno puo' averne un ritorno economico.
Quindi, pensando di progredire su un piano comune io scarterei alcune problematiche troppo evolute da un discorso di gruppo...

confermo o ho un massimo di soldi da spendere in questa applicazione che sarà destinata all'uso con gopro (telecamera quindi) e ora circa ce la fa a tenerla, però se vi è la possibilità di maggior controllo volentieri direi, anzi subitoooo.

ora visto che vola avrò un piccolo finanzioamento che userò per comprare la freeIMU che ordinerò non appena arriveranno i soldi :stuck_out_tongue:

@flameman: superlol ha parlato di una discussione dove si è arrivati a delle stesse conclusioni. Ovvero: usare unix per la stabilizzazione impiega troppa latenza, e modificare il kernel porta vari possibili problemi di piantamento del sofware, che già è complesso di suo. Seguendo il ragionamento di "cio che non c'è non si può rompere/impallare", supporto l'idea di usare un micro che si occupi semplicemente della stabilizzazione, comandato da un sistema più complesso (unix o quant'altro), che se anche si mette a fare stream video, o si impalla da qualche parte, non pregiudica la "vita" del mezzo.

ora non la trovo, sinceramente non ricordo nemmeno se era su questo forum

Il che significa che svilupparai l'interfaccia multiwii - freeIMU ?

c'è assolutamente da modificare la wire, oggi sto facendo un po' di prove col WMP...
leggere 6 byte da seriale: 16microsec
elaborali in rad/sec: 108microsec
codice che segue (richesta prossimo dato): 1005microsec!!!

Wire.beginTransmission(0x52);
  Wire.send(0x00);
  Wire.endTransmission();
  Wire.requestFrom (0x52,6);

lesto:
c'è assolutamente da modificare la wire, oggi sto facendo un po' di prove col WMP...

Per questa applicazione la wire la puoi pure buttare in quel posto dove ci sediamo tutti quanti almeno una volta al giorno :slight_smile:
Tocca riscriverla completamente.