(Controllore PID) Arduino va bene?

Sezione dedicata ai Microcontrollori e ai Sistemi Embedded

(Controllore PID) Arduino va bene?

Postby Regedit » 05 Jan 2012, 21:10

Scusate,
ho visto pubblicato questo forum e mi sono iscritto.
Sono un appassionato di robotica, di quella semplice, ma mi diverto molto a sperimentare con arduino.
Volevo sapere se era possibile programmare la scheda Arduino 2009 con il Bascom-AVR che mi piace tanto.
Inoltre, posso programmare direttamente la schedina usando il suo boot? o devo necessariamente acquistare un programmatore a parte?

Grazie per la risposta.
A presto
Regedit
 
Posts: 16
Joined: 05 Jan 2012, 21:04

Re: Arduino va bene?

Postby flz47655 » 21 Jan 2012, 18:34

flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Arduino va bene?

Postby deluca » 21 Jan 2012, 20:51

Arduino va benissimo con il sistema di sviluppo della MCSelec BascomAVR.
per iniziare è il massimo direi.
il linguaggio è vicino al basic ed assomoglia molto al plm51 in voga negli anni 80-90 per la programmazione delle
schede bitbus-8010 con uC 8744 (8051 core) su cui ho sviluppato decine di progetti.

ciao
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Arduino va bene?

Postby Regedit » 27 Jan 2012, 21:16

qualcuno di voi ha utilizzato la scheda arduino256 ?
volevo sapere se è possibile utilizzarla con il bascom-avr.

ciao
Regedit
 
Posts: 16
Joined: 05 Jan 2012, 21:04

Re: Arduino va bene?

Postby flz47655 » 27 Jan 2012, 21:41

Ciao
Cosa intendi per arduino 256?
Arduino Uno come il 2009 (la versione precedente) monta un microcontrollore AtMega 328 quindi se è compatibile con questo microcontrollore va bene.

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Arduino va bene?

Postby Regedit » 27 Jan 2012, 21:50

volevo dire arduinomega2560 !
scusatemi
Regedit
 
Posts: 16
Joined: 05 Jan 2012, 21:04

Re: Arduino va bene?

Postby Regedit » 14 Feb 2012, 21:05

devo realizzare un controllo pid per controllare due motorini a 12volt per mezzo dell'arduino 2009.
devo leggere 2 encoder fatti con le rotelline dei mouse vecchi.
pensate che il tutto sia fattibile?

ho comandato sempre i motorini con il segnale pwm ma adesso so che se voglio regolare la velocità dei motorini
devo gestire il tutto con il famigerato controllo pid di cui ho sentito molto parlare.

ciao.... mi potete dare qualche consiglio?
Regedit
 
Posts: 16
Joined: 05 Jan 2012, 21:04

Re: Arduino va bene?

Postby flz47655 » 16 Feb 2012, 21:16

Ciao, magari domani ti rispondo meglio, in breve posso dirti che PID è una "tattica" dove entrano in gioco tre parametri, uno proporzionale, uno integrale ed uno derivativo, tutti rispetto all'errore che servono ad annullare l'errore più rapidamente e nel modo migliore possibile.
Nel tuo caso l'errore è rappresentato dalla differenza di giri rispetto a quelli desiderati.
Trovi un esempio di codice su http://it.wikipedia.org/wiki/Controllori_PID#Codice_esempio_per_Arduino.5B3.5D

Esempio se dalla lettura ti accorgi che la velocità è troppo elevata l'algoritmo l'abbassa ma in base anche alla "storia" dell'errore (altrimenti senza un valore precedente non puoi calcolare la derivata e l'integrale), questo serve per evitare di abbassarla troppo e andare in errore per velocità troppo bassa visto che i motori hanno una sorta di inerzia o ritardo.

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Arduino va bene?

Postby deluca » 17 Feb 2012, 10:42

A proposito di PID già precedentemente postato in altro topics.


Cerco di spiegartelo cosi:

In un processo industriale, la regolazione PID è l’azione combinata di tre regolatori, ciascuno dei quali osserva un suo preciso parametro allo scopo di mantenere il più possibile costante una grandezza del processo (livello, pressione, temperatura, ecc.) ad un valore prestabilito (set point).
Il primo regolatore, P, gestisce l’attuatore di correzione della grandezza per mantenerla entro i limiti minimo e massimo stabiliti attorno al set point.
Il secondo regolatore, I, gestisce l’attuatore di correzione della grandezza per eliminare lo scostamento rispetto il set point (determinato dal regolatore P) e riportare il valore della grandezza al valore di set point.
Il terzo regolatore, D, gestisce l’attuatore di correzione in funzione della velocità con cui il valore della grandezza si scosta dal valore di set point per riportarla velocemente a tale valore.

Una semplice storiella chiarisce meglio quanto scritto.
Tre operai sono comandati a mantenere sempre pieno un serbatoio d’acqua che eroga in modo discontinuo e scostante. Per questo incarico affida a ciascuno di loro la manovra di un rubinetto di riempimento con il quale mantenere un livello ben definito nel serbatoio.
Il serbatoio comincia ad erogare quando il livello è a set point e non deve scendere oltre il metro.
Il primo operaio, chiamato P, segue il livello nel serbatoio e, con calma, comincia ad aprire il suo rubinetto quando si accorge che il livello comincia a scendere (più il livello scende più apre il suo rubinetto) viceversa comincia a chiuderlo quando il livello riprende a salire (più il livello sale più chiude il rubinetto). Pertanto il rubinetto sarà tutto chiuso a serbatoio pieno mentre risulterà tutto aperto con il livello sceso di un metro; se il serbatoio fosse sceso solo di mezzo metro, il rubinetto risulterà aperto solo per metà.
Il secondo operaio, chiamato I, segue solamente lo scostamento del livello rispetto il set point e agisce sul suo rubinetto per annullare questo scostamento. Pertanto finché il livello non è a set point il rubinetto risulterà più o meno aperto in funzione dello scostamento per chiudersi del tutto a serbatoio pieno.
Il terzo operaio, chiamato D, segue solamente la velocità con la quale il livello si discosta dal set point ed agisce di conseguenza sul rubinetto. Ad una variazione rapida ed improvvisa del livello risponderà con una variazione altrettanto rapida sul rubinetto.

Spero di essere stato di aiuto,
Cmq, alla voce DOCS del sito troverai una presentazione relativa al controllo PID per i motori DC con encoder per la robotica gestito
con un uC Atmel.

Manco a farlo apposta, oggi al corso parlerò proprio di questo.....

Ciao e buon lavoro
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)


Return to Microcontrollori e microprocessori

Who is online

Users browsing this forum: No registered users and 6 guests

cron