Pages: 1 ... 74 75 [76] 77 78 ... 101   Go Down
Author Topic: [Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo  (Read 117885 times)
0 Members and 1 Guest are viewing this topic.
Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9181
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

cioè, mettendo il multiwii su quella scheda STM32 ci si accorgerebbe dell'hardware più potente?

Non ci metti Multi"nonsisacosa"Wii, ci metti un software per SMT32, p.e. quello della MultiPilot32 previo adattamento a questa scheda.
Logged

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 601
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Non ci metti Multi"nonsisacosa"Wii, ci metti un software per SMT32, p.e. quello della MultiPilot32 previo adattamento a questa scheda.


c'è tanta differenza tra la scheda multipilot32 e quella che hai postato tu?
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10449
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

che esita una libreria già fatta e open fa tantssimo piacere, ma ciò non prova che l'accoppiata sensori + libreria sia ottimale a quello che vogliamo fare.

Guarda i video di ST relativi alla sensor fusion dei loro sensori che poi ne riparliamo  smiley
Comunque 1000 Hz sulla IMU sono un'utopia con i sensori di Invensense, è grasso che cola se arrivi a 150-200 Hz reali, stessi valori che ottieni con i sensori di ST.

io guardo i valori da datasheet (e via i2c ho toccato oltre 1kHz), poi come trovare i valori reali tra quello che leggo non ho idea


Non ci metti Multi"nonsisacosa"Wii, ci metti un software per SMT32, p.e. quello della MultiPilot32 previo adattamento a questa scheda.


c'è tanta differenza tra la scheda multipilot32 e quella che hai postato tu?
il procio è un STM32F1 contro un STM32F3, diciamo che c'è abbastanza differenza ma non troppa. un pò come tra un atmega8 e uno atmega328 moltiplicata per la complessità aggiuntiva di un procio a 32bit.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9181
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

io guardo i valori da datasheet (e via i2c ho toccato oltre 1kHz), poi come trovare i valori reali tra quello che leggo non ho idea

Un conto è la velocità di comunicazione sul bus, ed è un bene che sia la maggiore possibile, e un conto è la reale frequenza con cui ottieni nuovi dati validi, il parametro DLPF_CFG, parliamo di ITG3200, ti permette di settare un rate massimo di 256 Hz con 8ksps interni, in realtà è meglio lavorare a 188 Hz se vuoi letture veramente stabili.

Edit: da notare che il sample rate in uscita del L3GD20 arriva fino a 790 Hz, cioè è nettamente maggiore di quello del ITG3200, però anche in questo caso è sicuramente meglio utilizzare il primo valore inferiore che è un ragguardevole 380 Hz.
Ovviamente tocca fare dei test reali per stabilire quale dei due sensori è migliore, cosa che per il momento non posso fare perché non ho a disposizione il sensore di ST, però non appena sono disponibili le STM32F3 Discovery la prendo e potrò fare tutte le prove e misure del caso.
« Last Edit: September 13, 2012, 12:01:39 pm by astrobeed » Logged

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 601
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il procio è un STM32F1 contro un STM32F3, diciamo che c'è abbastanza differenza ma non troppa. un pò come tra un atmega8 e uno atmega328 moltiplicata per la complessità aggiuntiva di un procio a 32bit.

quindi quando verrà commercializzata questa F3, bisogna fare un software adatto all'architettura del processore, o un porting da un software già esistente....quello che mi interessa è appunto se c'è qualcuno che svilupperà qualcosa con questa scheda, perchè al momento io non sarei capace smiley-razz
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9181
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

quindi quando verrà commercializzata questa F3, bisogna fare un software adatto all'architettura del processore, o un porting da un software già esistente....

Si possono fare tutte e due le cose, ovviamente si fa molto prima a fare il porting del software della Multipilot32, per uno esperto e che conosce già il software dovrebbero bastare pochi giorni per farlo, toccherebbe sentire Roberto (Redfox74), che fa parte del team di sviluppo, quali potrebbero essere i problemi a cui si va incontro.
Logged

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 601
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

tutto chiaro per adesso!!! grazie
non resta che aspettare la vendita smiley-razz
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9181
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho dato una sbiriciatina al sito di Drotek, la loro IMU con  gli stessi sensori della STM32F3 Discovery costa 37 Euro smiley
Da notare che i sensori di ST costano meno di quelli di Invensense e di Analog.
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Chiedo scusa ma vorrei una delucidazione.
Ho scaricato lo sketch multiwii da caricare sull'arduino giusto per dargli un'occhiata. devo essere sincero ma pensavo che l'occhiata sarebbe diventata un'esitazione alla scritturo di un codice (perchè no) magari mio, e invece sembra a me leggibile smiley

Ma arrivo al dunque, ho visto che ad ogni motore si assegna un valore che arriva a 2000,
Code:
motor[FRONT] = 1500 + rcCommand[THROTTLE] - axisPID[PITCH] ;
per poi essere riportato massimo a 255 cioè il massimo valore ammissibile per il pwm(per pilotare l'ESC, no?).
Code:
analogWrite(FRONT_PIN, motor[FRONT]>>3);
Perchè questo e sopratutto perchè usare il bitshift e non una proporizione?


Un'altra cosa,
Ci tenevo particolarmente a scrivere del codice perchè altrimenti il progetto non mi darebbe molte soddisfazioni.. cioè una qualcosina fatta ad hoc!
Ho visto che il codice multiwii è molto corposo anche perchè è in grado di gestire diverse configurazioni. Secondo voi sarebbe quindi troppo difficile scrivere un codicino? Niente di particolare, nessuno UAV, solo un qualcosa che mi permetta di farlo alzare e girare senza nessuna particolare stabilità!
Ovviamente prima caricherei sull'hardware il multiwii, ma poi..? Qualcuno ci è già riuscito? No perchè se non ci siete riusciti voi..  smiley-yell
Se usassi degli xbee al posto della trasmittente classica? Collegherei un joystick della playstation al pc che elabora tramite python e invia a bordo i dati già pronti degli stick, senza dover smanettare sui PPM della ricevente. I canali sarebbero molti di cui 4 per gli stick, che sono l'indispensabile no?

Grazie, ma sto solo valutando l'idea smiley-grin

Logged

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10449
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

1500 circa è il valore di metà stick (in millisecondi), a cui somma le varie componenti (sempre in millisecondi)

poi usa il bitshift perchè è molto più veloce della proporzione.

Quello che vuoi fare è fattibile, se studi il codice del multiwii non so, ma di quello aeroquad trovi sul loro repositori la versione in lavorazione che vedrai è divisa in tante piccole compoenti, che poi vengono unificate solo alla fine. In questo modo puoi partire a modificare solo la parte che ti interessa.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie, allora vedrò anche quello smiley

Avevo già chiesto qualcosina riguardo la logica di stabilizzazione e mi avevi parlato di PID però ora che ho capito più o meno cos'è mi viene spontanea una domanda: Se alla fine il PID diventa un valore che vado ad aggiungere o sottrarre alla "velocità" dei motori, e quindi indica quanto agire sui motori, non potrei semplicemente agire sui motori fino a quando la posizione attuale è uguale a quella voluta?
Mi spiego meglio: Giro a destra di X con lo stick, ricevuto il segnale so che il mezzo deve avere inclinazione X e quindi con il PID so quanto agire sul motore per ottenere l'inclinazione.
Non potrei invece: Giro a destra di X stick, ricevuto il segnale so che il mezzo deve avere inclinazione X e quindi inclino il mezzo fino a quando il giroscopio mi dice che l'inclinazione è stata ottenuta?

Poi un'altra cosa, dove trovo un qualche link utile riguardo i movimenti che devono fare i motori per andare avanti, indietro, ruotare su se stesso ecc?
Logged

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10449
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

studiati bene come funziona il pid e ne riparliamo. per il movimento dei motori basta un minimo di logica.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un'idea di come si muova ce l'ho, volevo solo vedere se fosse giusta :\
Studierò il PID, però lasciandolo un attimo da parte, perchè non si può usare quel metodo?
Logged

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10449
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si tratta di un gioco di inclinazione di vettori per il movimento, e di inierzia angolare per le rotazioni sul posto.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 11
Posts: 3091
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

EuHM... ho montato come sono riuscito questo coi i primi video di un anno fa... :-)

« Last Edit: September 14, 2012, 02:49:56 am by Federico » Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Pages: 1 ... 74 75 [76] 77 78 ... 101   Go Up
Jump to: