Pages: [1] 2 3   Go Down
Author Topic: Camme elettroniche  (Read 3167 times)
0 Members and 1 Guest are viewing this topic.
Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qualcuno ha qualche idea o ha mai utilizzato Arduino per realizzare camme elettroniche pilotando i motori in posizione o in velocità?
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21879
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Devo confessare la mia ignoranza in materia: cosa sono camme elettroniche?
Ciao Uwe
Logged

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cavolo, è difficile da spiegare per iscritto...  smiley-sweat Ci provo...
L'esempio classico di una camma (partiamo da quelle meccaniche) è il movimento biella-manovella. Volendo si può descrivere una legge matematica che lega la posizione dell'asse master (in questo caso l'asse rotante) con la posizione dell'asse slave (il postone). Una volta descritta la legge, per ogni posizione dell'asse master è identificata la posizione dell'asse slave, quindi facendo girare il master lo slave si muove di conseguenza.
Bene, adesso pensa che l'asse rotante e il pistone siano movimentati da due motori brushless separati: te descrivi la legge matematica che deve legare i due assi e poi facendo muovere il master lo slave deve muoversi di conseguenza.
Un altro esempio potrebbe essere il far disegnare un cerchio a due motori che muovono una ipotetica penna uno sull'asse x e l'altro sull'asse y. In questo caso il master sarà un terzo asse (magari virtuale, ovvero che esiste a livello di programma ma che non esiste fisicamente) ed una volta descritta la legge con sui si devono muovere gli assi basta far girare l'asse master. Più gira velocemente il master, più girano velocemente gli slave. Se il master gira al contrario, gli slave percorrono la traiettoria programmata alla rovescia.
La traiettoria degli slave viene sempre descritta per posizioni crescenti del master, il che non vuol dire che il master non possa girare alla rovescia...  smiley-wink

Un video di un esempio di camma elettronica potrebbe essere questo: . L'asse master potrebbe essere la stella che preleva i bicchieri dal nastro, lo slave il braccio che li impila.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21879
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora dici che hai un movimento di una parte meccanica e a secondo della sua posizione un secondo parte meccanica pilotato da uno o piú motori deve essere un una ben determinata posizione. Una sorta di telecomado allora.

Penso che farlo con un arduino é possibile solo per movimenti lenti e con risoluzione non troppo alta.
dicciamo che sono 2 motori A e B. B deve andare in una posizione in funzione della posizione angolare di A.

Su A devi mettere un encoder rotativo (se il movimento é rotatorio) o un altro sensore di posizione (nel caso che il moto é diverso da una rotazione) Poi con arduino devi calcolare/prendere da una tabella la posizione dove deve andare B e pilotarlo.
Ciao Uwe
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate, ma alla fine il tutto non si traduce in uno "scostamento" fisso fra la posizione del motore master e quello slave?
cioè (avendo i 2 motori con encoder) basterebbe dire che la posizione del motore B è uguale alla posizione del motore A + lo scostamento previsto.
Logged

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

Qualcuno ha qualche idea o ha mai utilizzato Arduino per realizzare camme elettroniche pilotando i motori in posizione o in velocità?

Dipende tutto dalla precisione richiesta e dalla velocità dei movimenti, Arduino non è molto adatto per questo tipo di problematiche, a meno che non sia solo come dimostratore a livello scolastico senza alcuna pretesa di precisione e velocità.
Ti consiglio di utilizzare un processore di classe superiore, molto indicati i dsPIC33 serie MC che sono specifici per il controllo dei motori, possono pilotare direttamente un Brushless, ovviamente tocca aggiungere la parte di potenza, ed eseguire nel contempo calcoli anche molto complessi, pure con float a 32 bit, senza particolari problemi grazie al core DSP.
Oppure vai direttamente su mcu con core ARM Cortex M3/M4, p.e. gli STM32 di ST che sono ottimi e costano poco.
Logged

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No, non è così semplice. Con un semplice scostamento puoi solo descrivere rette, ovvero una lette del tipo y=m*x+q dome x è il master e y è lo slave. Con una legge del genere non puoi dire allo slave che deve fare una traiettorie strane...

@astro
Te pensa che mi sto documentando perché l'azienda per la quale lavoro utilizzano ancora gli z80 con affiancate 1-2 fpga per questo tipo di applicazioni... =)
Logged

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

Te pensa che mi sto documentando perché l'azienda per la quale lavoro utilizzano ancora gli z80 con affiancate 1-2 fpga per questo tipo di applicazioni... =)

Non mi stupisce per nulla, fino a pochi anni fa gli Z80, e le varie evoluzioni, erano ancora largamente utilizzati.
Tieni presente che a livello industriale quando hai un prodotto che funziona bene, e continua a vendere, nessuno pensa a sostituirlo con un prodotto nuovo con tecnologia più recente fino a che non diventa obbligatorio perché le parti che costituiscono il prodotto sono diventate irreperibili e/o troppo costose.
Logged

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma programmare una macchina complessa con 6 motori retroazionati e un bel po di uscite veloci in assembly è da manicomio...
Logged

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

Ma programmare una macchina complessa con 6 motori retroazionati e un bel po di uscite veloci in assembly è da manicomio...

Con lo Z80 si lavorava tranquillamente in C, magari con parti in assembly per i punti time critical, comunque all'epoca io gli Z80 li programmavo direttamente in codice macchina senza nemmeno passare per l'assembly  smiley-grin
Logged

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Loro lavorano tutto su assembly... Dici che mi conviene non provare nemmeno a proporre una soluzione con l'ARM che monterà l'Arduino Due?
Logged

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

Loro lavorano tutto su assembly... Dici che mi conviene non provare nemmeno a proporre una soluzione con l'ARM che monterà l'Arduino Due?

Fino a che la DUE non sarà realmente disponibile, in teoria prima di fine mese, o almeno il suo IDE, è impossibile dire quello che ci si può fare realmente oppure no, almeno rimanendo all'interno del suo ambiente di lavoro, se invece decidi di programmarla in C, lascia perdere il C++, allora basta prendere in mano il datasheet del micro e valutare se contiene tutto quello che ti serve, andrà comunque verificata la mappatura dei pin sul connettore della DUE.
Se non ti interessa l'ambiente di Arduino il mio consiglio è andare direttamente su un STM32F4, ti prendi la scheda STM32F4 Discovery che costa meno di 15 Euro e inizi a lavorarci sopra, hai un processore con core Cortex M4 dotato di FPU senza compromessi di velocità e memoria, il micro costa meno di 10 Euro sulla quantità pertanto l'eventuale produzione di una scheda basata su quel processore ti costa molto meno di Arduino DUE e nulla vieta di usare direttamente la STM32F4 discovery come modulo da montare su una carrier.
In alternativa ci sarebbe anche la ottima Aria G25 di Acme System, azienda Italiana, dove puoi scegliere se usare il micro, un ARM9 @400 MHz, senza S.O. oppure metterci sopra una distro Linux, in particolare la Debian 6, ovviamente senza interfaccia grafica.
Logged

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

....In alternativa ci sarebbe anche la ottima Aria G25 di Acme System, azienda Italiana, dove puoi scegliere se usare il micro, un ARM9 @400 MHz, senza S.O. oppure metterci sopra una distro Linux, in particolare la Debian 6, ovviamente senza interfaccia grafica.

No no, o ci metto KDE o niente...  smiley-yell smiley-yell smiley-yell smiley-yell

Comunque grazie dei consigli. Il STM32F4 come si programma? C'è un framework per semplificare la vita, o quantomeno un RTOS, o tutto a livello HW?
Logged

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

Comunque grazie dei consigli. Il STM32F4 come si programma? C'è un framework per semplificare la vita, o quantomeno un RTOS, o tutto a livello HW?

L'STM32 si programma in C, ci sono delle ottime librerie free che semplificano moltissimo la vita, il multitasking/multithread è supportato a livello hardware, per l'RTOS ne puoi usare uno qualunque, p.e. alcuni compilatori, a pagamento, lo integrano, io uso MDK ARM di Keil, se devi produrre applicazioni industriali te lo consiglio caldamente, costicchia però è il migliore in circolazione.
Per iniziare a lavorare/valutare gli STM32 senza spendere soldi ti consiglio di utilizzare il MikroC ARM di MilroElektronika, la versione free compila fino a 32k di eseguibile, anche se sembrano pochi in realtà ci fai molte cose, ti mette a disposizione una ricchissima libreria di funzioni pronte in stile Arduino, in pratica puoi anche non studiare il datasheet, cosa comunque da fare, del micro e riesci fin da subito a realizzare dei semplici applicativi esattamente come fai con Arduino.

Logged

piacenza
Offline Offline
God Member
*****
Karma: 0
Posts: 684
prima della pazzia c'è la passione
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao
la discussione mi interessa perche' devo realizzare anche io una camma (posizione del motore in funzione della posizione di un altro)
@astrobed
ho letto le tue risposte, sarei curioso di provare le schede che indichi, in particolare la ARIA ma non ho capito come si programma
Quote
...Per iniziare a lavorare/valutare gli STM32 senza spendere soldi ti consiglio di utilizzare il MikroC ARM di MilroElektronika, la versione free compila fino a 32k di eseguibile,...
parli di questo?
http://www.mikroe.com/mikroc/arm/

grazie
stefano
« Last Edit: October 10, 2012, 04:27:57 am by stefa24 » Logged


Pages: [1] 2 3   Go Up
Jump to: