0
Offline
Tesla Member
Karma: 87
Posts: 8499
:(){:|:&};:
|
 |
« Reply #1335 on: January 18, 2013, 10:02:06 am » |
le eliche non saranno mai uguali, sopratutto se non bilanciate, ma se il problema è dell'esc è un'altra storia. Allora che io sappia così metti il gas al massimo e poi al minimo, entri in modalità programmazione, che non è sufficiente per settare le escursioni dell'esc... Ogni esc ha la sua sequenza di "beep" che ti aiuta a fare i settaggi, ovviamente non esistono 2 procedure uguali, dipende dalla marca/modello  se gli ESC scaldano cl'elica più piccola o con meno passo più aiutare, ma se la temperatura è alta meglio un esc che regga qualche ampere in più così non risci di fare scintille in volo edit: stm32 con comunicazione seriale + lettura sensori è ok. Ora devo sistemare il programma lato PC, che penso che posterò su github con spiegazione del protocollo da usare, così iniziamo a creare un pò di tool comodi. Il primo credo di farlo così: si aspetta la stringa: g: %f %f %f\n per i valori giro, a per accelerometro e m per magnetometro. Non sarà obbligatorio stamapare g, m, a in ordine, e anche m si potrà totalmente saltare. Il risultato sarà che i valori sono "mangiati" da una DCM che stamperà il risualtato a video, in oltre ci sarà uno slider per ogni valore e la possibilità di "spastare" gli assi (exempio gx da invertire con gy, oppure gx diventa -gx) perchè così si settano più comodamente gli assi dei sensori per essere allineati tra loro.
|
|
|
|
« Last Edit: January 18, 2013, 10:31:09 am by lesto »
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 23
|
 |
« Reply #1336 on: January 18, 2013, 11:02:32 am » |
le eliche non saranno mai uguali, sopratutto se non bilanciate, ma se il problema è dell'esc è un'altra storia. Allora che io sappia così metti il gas al massimo e poi al minimo, entri in modalità programmazione, che non è sufficiente per settare le escursioni dell'esc... Ogni esc ha la sua sequenza di "beep" che ti aiuta a fare i settaggi, ovviamente non esistono 2 procedure uguali, dipende dalla marca/modello  se gli ESC scaldano cl'elica più piccola o con meno passo più aiutare, ma se la temperatura è alta meglio un esc che regga qualche ampere in più così non risci di fare scintille in volo edit: stm32 con comunicazione seriale + lettura sensori è ok. Ora devo sistemare il programma lato PC, che penso che posterò su github con spiegazione del protocollo da usare, così iniziamo a creare un pò di tool comodi. Il primo credo di farlo così: si aspetta la stringa: g: %f %f %f\n per i valori giro, a per accelerometro e m per magnetometro. Non sarà obbligatorio stamapare g, m, a in ordine, e anche m si potrà totalmente saltare. Il risultato sarà che i valori sono "mangiati" da una DCM che stamperà il risualtato a video, in oltre ci sarà uno slider per ogni valore e la possibilità di "spastare" gli assi (exempio gx da invertire con gy, oppure gx diventa -gx) perchè così si settano più comodamente gli assi dei sensori per essere allineati tra loro. http://forum.autoquad.org/viewtopic.php?p=5891&sid=55012e6e48a0a3ee0c91b123c11b5fbc#p5878Diciamo che ci dovrei essere, col mio codice simulo proprio quella procedura, reimposto ai valori di default e poi testo col programmino che comunica tramite monitor seriale la velocità dei motorini in questo modo controllo in modo preciso almeno il minimo valore. Secondo me la diversità fra una elica e l'altra può essere sopperita dal PID, se un motorino gira in modo abbastanza diverso da un altro tutti i calcoli fatti col PID vanno a quel paese. Ho creato una piccola applicazione con processing che grafica l'andamento di GX (giroscopio su asse x) e ho notato che in presenza di urti (sbilanciamento con la mano per simulare un'interazione esterna nn prevedibile) il valore ha oscillazioni, questo con la DCM dovrebbe venire attenuato giusto?!
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 87
Posts: 8499
:(){:|:&};:
|
 |
« Reply #1337 on: January 18, 2013, 11:25:03 am » |
se le fluttuazioni sono sinosoidali devi pulirle a mano, alcuni sensori non danno uno 0 "fisso" ma è una funzione sinouidale (astro mi corregga se dico baggianate)
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 23
|
 |
« Reply #1338 on: January 18, 2013, 11:28:07 am » |
se le fluttuazioni sono sinosoidali devi pulirle a mano, alcuni sensori non danno uno 0 "fisso" ma è una funzione sinouidale (astro mi corregga se dico baggianate)
Traducendo?! come faccio a pulire a mano?! (strofinaccio e olio di gomito?!  )
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 87
Posts: 8499
:(){:|:&};:
|
 |
« Reply #1339 on: January 18, 2013, 12:19:29 pm » |
la sinusoide ha una frequenza, ovvero il numero di ripetizioni al secondo (vedi nel datasheet) e se te fai la media dei dati in quel range di tempo annulli l'effetto sinusoidale.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 23
|
 |
« Reply #1340 on: January 18, 2013, 09:18:14 pm » |
la sinusoide ha una frequenza, ovvero il numero di ripetizioni al secondo (vedi nel datasheet) e se te fai la media dei dati in quel range di tempo annulli l'effetto sinusoidale.
Nel datasheet http://www.cdiweb.com/datasheets/invensense/PS-MPU-6000A.pdf ho trovato questo: "11.4.3 Trace Routing Routing traces or vias under the gyro package such that they run under the exposed die pad is prohibited. Routed active signals may harmonically couple with the gyro MEMS devices, compromising gyro response. These devices are designed with the drive frequencies as follows: X = 33±3Khz, Y = 30±3Khz, and Z=27±3Khz. To avoid harmonic coupling don’t route active signals in non-shielded signal planes directly below, or above the gyro package. Note: For best performance, design a ground plane under the e-pad to reduce PCB signal noise from the board on which the gyro device is mounted. If the gyro device is stacked under an adjacent PCB board, design a ground plane directly above the gyro device to shield active signals from the adjacent PCB board." Che dovrebbe corrispondere appunto al discorso del segnale sinusoidale giusto? Quindi facendo il valore medio di ogni spezzone a 33Khz dovrei eliminare il disturbo del quale lamento, quindi ogni 30 microsecondi faccio la media dei valori e il valore che andrò ad inserire nel PID è proprio la media, e poi azzero la media e riparte dal primo valore successivo ai 30 microsecondi?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #1341 on: March 16, 2013, 06:08:02 pm » |
Ragazzi dopo mesi di tentativi e letture sono ancora arenato non riesco a capire come diavolo funziona questa STM32F3 i problemi sono molteplici: 1) Nell'IDE uKeil non riesco a complilare progetti complessi ma solo progetti stupidi come accendere luci o simili perchè il compiler mi da sempre problemi nell'includere la libreria della ST 2) Non capisco come leggere i dati dei sensori, mi riferisco a velocità angolari, valori acc. e valori del campo magnetico. 3) utilizzo dei timer per realizzare dei segnali PPM
Premetto che c'ho perso tempo tanto tempo anche se in parallelo approfondivo i miei studi di Kalman, tecniche di controllo etc etc. ho praticamente progettato tutto ma la mia poca esperienza in ambito PIC mi sta bloccando. C'è qualche buona anima che può aiutarmi anche inviandomi del codice ben documentato che mi spieghi come diavolo si programma sta scheda. Grazie mille Fabio P.s. sono uno studente di automazione quindi i controlli sono il mio pane quotidiano ma questo non significa che sono un esperto di programmazione e protocolli per questo vi pregherei di non usare terminologia troppo tecnica
|
|
|
|
« Last Edit: March 16, 2013, 06:10:19 pm by Fabio_automatico »
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 87
Posts: 8499
:(){:|:&};:
|
 |
« Reply #1342 on: March 18, 2013, 04:49:08 am » |
per il 2 c'è un ottimo esemio fornito sul sito.. però se non conosci i2c e SPI ti conviene prima farti un'idea osservando come si usano i sensori i2c e SPI su arduino, capisci la logica di comunicazione, e poi passi al STM32.
Per la prima domanda mai usato quell'ambiente, e per l'ultima non so, devo ancora passare ad analizzare i timer, ma anche lì tutti gli esempi SMT usano una funzione che setta il timer principale ad una certa frequenza, io modificando quel valore ottengo un iterrupt ogni microsecondo, però non mi piace come cosa, preferirei andare sul PWM con giusta frequenza e dutyCicle.
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 76
Posts: 7539
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #1343 on: March 18, 2013, 10:49:15 am » |
1) Nell'IDE uKeil non riesco a complilare progetti complessi ma solo progetti stupidi come accendere luci o simili perchè il compiler mi da sempre problemi nell'includere la libreria della ST 2) Non capisco come leggere i dati dei sensori, mi riferisco a velocità angolari, valori acc. e valori del campo magnetico. 3) utilizzo dei timer per realizzare dei segnali PPM
1) Devi copiare nella cartella principale del compilatore (C:\keil se hai fatto l'installazione standard) le cartelle "Libraries", "Peripheral_Examples" e "Utilities" che trovi nel sorgente del demo precaricato sulla scheda, in alternativa le puoi copiare all'interno del progetto, assieme alla cartella CMSIS se la usi, e cambi i percorsi delle relative path. 2) Ci sono le funzioni già pronte nella libreria di ST, comunque sono normali device I2C e vi accedi tramite questo bus. 3) Il PPM non lo generi tramite timer, va implementato tramite specifica routine software che si appoggia ad un timer, e relativo interrupt, come base dei tempi sia per generare i singoli impulsi che per il frame.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #1344 on: March 20, 2013, 02:04:23 pm » |
1) Nell'IDE uKeil non riesco a complilare progetti complessi ma solo progetti stupidi come accendere luci o simili perchè il compiler mi da sempre problemi nell'includere la libreria della ST 2) Non capisco come leggere i dati dei sensori, mi riferisco a velocità angolari, valori acc. e valori del campo magnetico. 3) utilizzo dei timer per realizzare dei segnali PPM
1) Devi copiare nella cartella principale del compilatore (C:\keil se hai fatto l'installazione standard) le cartelle "Libraries", "Peripheral_Examples" e "Utilities" che trovi nel sorgente del demo precaricato sulla scheda, in alternativa le puoi copiare all'interno del progetto, assieme alla cartella CMSIS se la usi, e cambi i percorsi delle relative path. 2) Ci sono le funzioni già pronte nella libreria di ST, comunque sono normali device I2C e vi accedi tramite questo bus. 3) Il PPM non lo generi tramite timer, va implementato tramite specifica routine software che si appoggia ad un timer, e relativo interrupt, come base dei tempi sia per generare i singoli impulsi che per il frame. 1) Devo copiare semplicemente le cartelle nel percorso che mi hai indicato senza impostare nessun path all'interno del keil? 2)le funzioni le ho trovate per entrambi i sensori purtroppo non sono riuscito a capire in che unità di misura le rilascia anche leggendo l'esempio DEMO, in cui vengono usate queste funzioni. Inoltre, sempre spulciando nella funzioni definite in DEMO noto che i dati rilasciati dalla funzione READ vanno trattati ad esempio in DEMO leggo: L3GD20_Read(&tmpreg,L3GD20_CTRL_REG4_ADDR,1); L3GD20_Read(tmpbuffer,L3GD20_OUT_X_L_ADDR,6); /* check in the control register 4 the data alignment (Big Endian or Little Endian)*/ if(!(tmpreg & 0x40)) { for(i=0; i<3; i++) { RawData[i]=(int16_t)(((uint16_t)tmpbuffer[2*i+1] << 8) + tmpbuffer[2*i]);
di cui non capisco pienamente il significato. 3) La routine ho idea di come si fa ma da come ho capito ho bisogno di una variabile temporale generata da un timer interno alla scheda, ed è li che mi blocco. So che forse faccio troppe domande e che forse me la devo piangere un po' da solo però vi sarei grato se potreste darmi una mano anche fornendo codici di esempio di funzioni che generano segnali PPM e che leggono i segnali dei sensori nel SI per asse.
|
|
|
|
« Last Edit: March 20, 2013, 04:40:53 pm by leo72 »
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 17
|
 |
« Reply #1345 on: April 05, 2013, 10:03:24 am » |
Buongiorno a tutti! Sono a chiedere il vostro aiuto perché nella grande quantità di informazioni riguardanti il mondo dei quadricotteri, ancora mi sono poco chiari taluni passaggi; ho letto con molta attenzione svariati post sia nel forum che fuori; e, le domande che sono qui a porvi sono purtroppo ancora in me e spero vogliate e possiate aiutarmi a risolverle; presento brevemente la mia situazione: Con il fine di costruire un quadricottero, ho raccolto tutte le informazioni che ho potuto a riguardo; e, fra le immense possibilità che mi si sono presentate una mi ha in particolar modo affascinato: l'impiego di arduino, infatti mi semplificherebbe e renderebbe molto più accessibile questo mondo oltre che interessante. Ho letto molto sul sistema che impiega arduino nano ed il giroscopio ed accelerometro dell controller wii (multiWii), ed ancora cercando per i meandri del web mi sono imbattuto in qualcosa che impiega sempre Atmel, ma che sembrerebbe racchiuda in sè sia arduino mini che sensori accelerometro e giroscopio http://www.ebay.it/itm/130726621570?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649#ht_1851wt_952 potreste voi confermarmi che effettivamente è così? dovrei dunque connettere i 3 cavetti che escono dal regolatore di ciascun motore brushless, sensori vari a questo circuito e basta? Altro dubbio... Non possiede porta USB apparentemente, come posso quindi comunicarle lo sketch?? Altra domanda: dal momento che non ho ancora provato a buttare giù uno sketch, e che non ho mai avuto a che fare con PPM mi crea dei problemi capire anche di quanti comandi necessita il radiocomando che dovrei acquistare... Il problema dei prezzi è un grande problema, ed avrei adocchiato il "Turnigy 9X 9Ch Transmitter w/ Module & 8ch Receiver (Mode 2) (v2 Firmware)" decisamente accessibile rispetto alla maggior parte degli esempi proposti sul web... Ma ho anche letto che spesso presenta dei problemi costitutivi... Avreste voi alternative similmente accessibili da propormi? o potete confortarmi dicendo che tutto sommato, anche se costa poco, adempie al proprio compito? Inoltre non mi è chiaro il fatto che si consiglia di possedere almeno 5 canali, rispettivamente per: motore, pitch, roll, yaw, stable mode; proprio non mi è chiaro... Comprendo che beccheggio, rollio e imbardata siano i movimenti possibili sui 3 assi del velivolo, ma proprio non capisco come mai si debba dedicare a ciascuno un canale del radiocomando  o cosa significhi un canale per i motori piuttosto che per una modalità di volo... Insomma non so proprio come funziona la parte radiocomando attuatori, vi prego aiutatemi  ho letto e appreso molto da http://aeroquad.com/content.php?126-PID-Tuning-Your-AeroQuad ma penso che su questo le vere domande mi verranno una volta che avrò toccato con mano  Vi ringrazio immensamente per la cordiale eventuale disponibilità ciao ciao
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 87
Posts: 8499
:(){:|:&};:
|
 |
« Reply #1346 on: April 05, 2013, 10:41:59 am » |
la scheda è ok, vale quello che costa. Per programmarla hai bisogno di un adattatore da USB a RS232 ttl 5v, si trovano anche sullo store di questo sito a 10/15€
per la TX/RX io ho preso qulla di hobbyking 6 canali, 40€ compresa spedizione (occhio a prenderla dai magazzini in europa se no ti arriva dopo un mese e con il 30% di dazio)
ogni canale immagina che può dare dei valori da 0% a 100%: motore: dai potenza da 0% a 100% pitch: 0% = vai a sinistra, 50% = stai fermo, 100% = vai a destra etc...
quindi ti serve un canale per ogni possibile moviemto +1 per ogni comando (ok, i comandi potresti farli che al 10% fai uno, al 20% fai l'altro, ma poi a mano beccare la posizione giusta.... nella 6ch che ho proposto sono 4 canali proporzionali (da 0% a 100%) e 2 switch (0% o 100%, senza vie di mezzo) )
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 17
|
 |
« Reply #1347 on: April 05, 2013, 12:24:13 pm » |
Grazie per la disponibilità Lesto, quindi necessito solo di quella scheda ed ho già tutto per quanto riguarda l'hardware di base per un quadricottero? E secondo te (perché questo fatto non l'ho compreso molto) con quante altre funzioni potrei implementare questa disposizione? e se ti va... non è che mi potresti consigliare altre eventuali e migliori soluzioni? (mi rendo conto sia parecchio vaga come richiesta... fanne ciò che vuoi  ) Ora mi è molto più chiara la parte riguardante il radiocomando, ti ringrazio davvero molto! e grazie molte anche per aver condiviso la tua esperienza personale! 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 87
Posts: 8499
:(){:|:&};:
|
 |
« Reply #1348 on: April 05, 2013, 07:13:29 pm » |
quindi necessito solo di quella scheda ed ho già tutto per quanto riguarda l'hardware di base per un quadricottero? no, ti serve la struttura, gli esc, i motori, un bec 5V (meglio ubec), rx/tx, eliche (tante!), il convertotore USB/seriale per programmare la scheda E secondo te (perché questo fatto non l'ho compreso molto) con quante altre funzioni potrei implementare questa disposizione? che vuol dire? dal tuo link: GIMBAL -------- PTZ stabilizer independent (non-flight control purposes) BICOPTER ------ 2-axis aircraft Avatar Tricopter ----- Y3 (Y-type 3-axis) QUADP --------- 4-axis + classic mode QUADX --------- 4-axis × mode Y4 ------------ Y-type four-axis Y6 ------------ Y-type 6-axis HEX6 ---------- 6 axis + mode HEX6X --------- 6-axis × mode FLYING WING --- flying wing with a (non-multi-axis machine, the program is in testing phase). eventuali e migliori soluzioni? per iniziare va più che bene
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 17
|
 |
« Reply #1349 on: April 06, 2013, 03:46:51 am » |
Ah, certo, si, ho sbagliato a parlare di "hardware sufficiente" comunque certo, sapevo della necessità degli altri componenti (a parte l'UBEC)  mi sono espresso male Urca, sul fatto delle tante eliche non pensavo xD comunque con dei motori da 920 KV ed un telaio leggero, senza attualmente accessori tipo videocamera e simili... tu che eliche consiglieresti per iniziare? con la domanda poco chiara: E secondo te (perché questo fatto non l'ho compreso molto) con quante altre funzioni potrei implementare questa disposizione? Intendevo chiedere se conoscevi quante altre funzioni avrei potuto aggiungere, ad esempio dal punto di vista sensoristico, alla scheda precedentemente mostrata... Magari in futuro... Dopo la fase "impara a conoscere le basi"  perché purtroppo non l'ho capito dai dati forniti sulla scheda. Ancora grazie per la tua grande pazienza e disponibilità lesto! Mi stai aiutando davvero molto! Grazie 
|
|
|
|
|
Logged
|
|
|
|
|
|