Pages: 1 ... 4 5 [6] 7   Go Down
Author Topic: Progetto Tesi  (Read 4446 times)
0 Members and 1 Guest are viewing this topic.
Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 810
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e come pensi di pilotare 50 motori cc e ricevere dati da 50 encoder?  ;D
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

In un modo piuttosto simile a quello usato per pilotare 50 motori passo passo?  smiley-wink

--- aggiunta:

un PWM per la velocità, una linea logica per la direzione, un ingresso su interrupt per l'encoder, un ingresso per il sensore di home.
Totale 4 linee...   :o

(se poi vuoi ti mando un piccolo spezzone di codice in ASM per leggere un encoder in entrambe le direzioni di marcia con acquisizione di fronte di salita e discesa dell'encoder, dovrei averlo da qualche parte per un progettino di riga metrica di precisione fatto con un PIC fatto tanti anni fa... :smiley )
« Last Edit: May 14, 2010, 12:29:25 pm by kokiua » Logged

Milan
Offline Offline
Edison Member
*
Karma: 1
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh l'accelerazione e decelerazione nei movimenti secondo me è fondamentale, visto che questa tesi mi sembra rivoluzionaria, proprio perchè applica il movimento in un concetto architettonico,  io lavorerei principalmente sulla qualità e finezza nel movimento della matrice.
Logged

Community robotica / programmazione Arduino
www.gioblu.com

Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 810
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

usiamo gli stepper per il semplice motivo che calibrandoli 1 a 1 poi commettermo un piccolissimo errore se diamo il numero di steps da percorrere senza avere bisogno di un encoder. avere un encorde porterebbe a dover implementare un numero di ingressi analogici assurdo, senza contare che dovrei leggermi un monte di misure contemporaneamente dai gpio port expander. la soluzione più elegante è creare dei moduli con motori cc o servomotori con relativo encoder e con un micro controllore embedded che comunica tramite un protocollo con l'arduino master. In questo modo potrei mandare a ogni singola unità una misura di lunghezza e una velocità comunque avendo la certezza che questa posizione venga occupata. Solo che 50 board con 50 micro 50 quarzi ecc ecc viene a costare veramente un fottio anche se semplificherebbe tantissimo le cose. la nostra soluzione è low cost. postalo ugualmente il codice asm magari mi potrebbe servire per altro .D
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa Calamaro, ma non capisco la tua affermazione: «avere un encoder porterebbe a dover implementare un numero di ingressi analogici assurdo»
E' chiaro che non servono certo degli encoder assoluti e magari pure resistivi (di fatto un potenziometro, metodo tra l'altro molto poco preciso) ma solo encoder relativi (vedi qui: http://www.manualihoepli.it/media/doc/pr325.pdf), e per questo è sufficiente una semplice lettura ad esempio di una serie di "segni" praticati sulla stessa puleggia che serve per avvolgere/svolgere il filo. Utilizzando poi un ingresso logico che generi un interrupt sul quale scrivere la routine che gestisce la lettura dell'encoder.

Tra l'altro un algoritmo molto semplice gestito interamente dall'Arduino che controlla il motore.

Con un Arduino si dovrebbe poter gestire contemporaneamente almeno sino a 4 motori (collegati e gestiti in questo modo: http://www.arduino.cc/playground/Main/DirectionalMotorControlWithAL293D), nel qual caso, per il problema dei soli due ingressi interrupt disponibili, occorre una semplice logica esterna che attiva la routine di lettura dello stato di tutti e 4 gli encoder (non credo siano necessarie velocità tali da mettere in crisi un sistema del genere).

In questo modo servirebbero solo 13 Arduino con relativa elettronica di gestione per 4 motori ( in realtà sarebbero 12 arduini e mezzo smiley-wink ) tutti quanti collegati in seriale "in ascolto" sulla stessa linea.

Per gestire l'intera matrice dovrebbe essere possibile inviare:
- un comando "generale" che dice a tutti gli Arduini di portare i motori in posizione iniziale (home) ovvero con l'intero filo riavvolto;
- poi, ad ogni "nodo" (4 indirizzi per ogni arduino) il valore desiderato e la velocità con la quale deve essere raggiunto.

Così a fare tutto il lavoro ci pensa l'Arduino in rete che risponde a tale indirizzo (senza alcuna necessità di leggere "un monte di misure contemporaneamente" da parte di alcun dispositivo esterno);

Per i motori poi, se serve vera "forza", è sempre possibile ricorrere ai motori utilizzati negli alza cristalli elettrici delle auto recuperandoli dagli sfascia carrozze...

Credo che questa sia una soluzione veramente low cost, o no?

Logged

Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 810
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

eh si 13 arduino mi sembrano una soluzione veramente economica  smiley-wink
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
stava andando tutto bene quando un problemino non da poco mi si è presentato, gli stepper una volta aggiunto una carrucola e un peso attacato ad un filo collegato alla carrucola peso (anche leggero) il più delle volte in fase di avvolgimento fa sfrizionare lo stepper smiley-sad penso dipenda dal tipo di stepper, perchè mi sembra impossibile che anche con pochi grammi sfrizioni come un dannato, cioè fa tipo un lamento di sforzo   :-/ con una bandierina non fa nessun problema.
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Esperienza insegna...  :smiley

Mi spiace dover fare questo discorso, ma il mio consiglio di utilizzare motori cc non era fatto per complicare ma proprio per evitare questo problema (non a caso i bracci dei robot industriali non li fanno con i motori pp, o stepper che dir si voglia, che invece sono utilizzati per lavori dove sia richiesta la massima precisione).

Stesso ragionamento vale per i servo, anch'essi fatti con motori cc.

Un motore di un alzacristalli, che è opportunamente rapportato per avere la necessaria forza, non ti si sarebbe mai bloccato (sempre che tu non voglia alzarci una persona  smiley-wink )

Ora, a meno che tu non metta dei rapporti rallentando però pesantemente tutto il movimento (o sostituisca i motori con costosissimi pp di maggiore forza e relativa gestione elettronica), credo tu abbia come unica soluzione quella di rivedere il tutto mettendo motori cc.

Per quel che concerne il posizionamento, se il progetto che stai facendo non dovrà avere una vita molto lunga, puoi sempre pensare a montare dei potenziometri (chiaramente in rapporto) che ti indicano la posizione leggendo il tutto semplicemente con un'entrata analogica (e questo ti evita anche il sensore di inizio corsa).

P.S. comunque: prima di buttare il tutto una prova la puoi ancora fare, ovvero aumentare la potenza per pilotare il motore. Ma fai attenzione a non esagerare perchè potresti bruciarlo facilmente (basta sentire il calore che eroga per rendersene conto).
« Last Edit: June 08, 2010, 02:18:33 am by kokiua » Logged

Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 810
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

per la potenza abbiamo un atx, ma mi sa che non lo ha collegato!
Logged

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

kokiua ha ragione, solitamente in campo industriale per avere un ottimo rapporto potenza/precisione si utilizzano dei motori brushless dotati di encoder.
Logged

Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 810
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si oh ma ormai si laurea a luglio, ci vorrebbe tempo per rifare tutto da capo!
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

@calamaro:
Quote
si oh ma ormai si laurea a luglio, ci vorrebbe tempo per rifare tutto da capo!
non è con queste esternazioni che si risolvono i problemi, io credo...  :-?
L'unica cosa che si può fare è quella di tentare di dargli una mano almeno per il software. Ma se procede senza condividere come ha fatto sino ad ora, il tempo passa e i problemi non si risolvono...
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

risolto, basta usare 12v. ho sollevato 400 gr smiley grazie a tutti per la continua collaborazione  smiley mi ci è voluto un po per capirlo :smiley
« Last Edit: June 09, 2010, 01:50:35 pm by tommy16013 » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mai mai mai cantare vittoria troppo presto  :'( adesso il solito stepper non mi alza più quel peso (circa 400 gr) con la solita alimentazione...forse si è fuso. Ho provato con un altro ma nulla...qualcuno ha un idea di quale tipo di stepper devo usare? sapevo che quelli per le stampanti erano abbastanza potenti, non so se sbaglio qualcosa all'alimentazione...
Logged

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

che tipo di motore era quello che sospetti che sia morto? :smiley
hai controllato il driver?
Logged

Pages: 1 ... 4 5 [6] 7   Go Up
Jump to: