Ciao a tutti,
da quel poco che ne so di motori elettrici ne esistono di diverse tipologie: steppers, servi e motori veri e propri (azzardo un "a spazzole" )
Avrei la necessità di usare un motorino (in combinazione con degli ingranaggi o con una cinghia) per far ruotare un'asse di legno (immaginatevi un asse di parchè) lungo il suo asse di 180 gradi (90 gradi in avanti e 90 gradi in dietro).
Immaginate di tenere un rettangolo di legno parallelo al pavimento e di farlo ruotare di 90 gradi in avanti o 90 gradi indetro, renderlo perpendicolare al terreno.
Ora arriva la parte difficile:
Il peso dell'asse è approsimativamente di 300g
Il motorino di cui avrei bisogno, non deve essere precissimo (non devo muovermi esattamente di un singolo grado, diciamo che sarebbe un buon risultato che riuscissi a dividere i 180 gradi descritti in 6 zone dove aleatoriamente il motorino si puo' fermare :D )
Il motorino sarebbe ottimo se fosse gestibile con un voltaggio compreso tra 5 e 12 volt cosicchè non debba prevedere un ulteriore sistema di alimentazione (oltre a quello già in uso per pilotare arduino).
Ora vi chiedo, che tipo di motorino mi consigliate? che tipo di driver per pilotarlo mi consigliate ? link e consigli come sempre sono super ben accetti!!
per sollevare 300g dovrebbe andare bene qualsiasi servo standard (da modellismo) o qualsiasi motore stepper, ma siccome hai detto che potresti usare anche ingranaggi e cinghie direi che và bene quasi qualsiasi motore per quel peso, l'unica "costrizione" sarebbe il rilevamento della posizione.
Quindi:
Stepper
Servi
motori brushed o brushless con encoder ecc..
per il driver invece:
servi ---> PWM (no circuiti esterni)
stepper--->circuito esterno con l297 (si compra anche già fatto)
Motori con encoder---> semplice circuito con finestra infrarossi (anche questi si comprano già fatti) per la decodifica dell'encoder, e driver tipo questo:
http://itp.nyu.edu/physcomp/Labs/DCMotorControl
la cosa piú semplice é un Servo analogico tipo da modelismo.
La posizione del Servo é proporzionale alla tensione di riferimento che gli dai.
Tutte le altre soluzioni che Ti cita brainbooster hanno bisogno di un controllo di posizione per fermare il motore nelle posizioni desiderate oppure per inizializzarlo.
Se ho capito bene devi fare girare un listino attorno la sua asse longitudonale, percui non ti serve una forza per alzarlo .
mi dispiace correggere l'ottimo uwefed, ma forse per riassumere il concetto ha scritto una cosa non proprio esatta...
i servi vengono comandati non dalla tensione che gli dai (altrimenti basterebbe un potenziometro) ma dalla frequenza, ed è per questo che si pilotano via PWM.
ci sono 2 tipi di servo.
Quelli analogici e quelli digitali.
Quelli digitali vengono pilotati in modo digitale e non sono quelli che ho consigliato.
Gli analogici hanno 3 contatti; 2 per l'alimentazione ( Masse e 5V o 6V a secondo del tipo) e un terzo che dando una tensione da 0 a 5V (6V).
L' angolo di rotazione é proporzionale a questa tensione.
Basta anche un potenziometro!!
Il PWM (modulazione di larghezza di impulso) é un segnale a frequenza fissa (l'arduino ha la frequenza di 490 Hz) con il tempo di accensione variabile.
http://it.wikipedia.org/wiki/Modulazione_di_larghezza_di_impulso
Se fai la media sul tempo la tensione é variabile da 0 a 5V.
Se fosse pilotato im feequenza visto che la frequenza é costante non potresti variare niente.
:o scopro cose nuove...
per chiarire:
il pilotaggio, sarebbe anche improprio chiamarlo pwm, quello dei servi sarebbe ppm http://it.wikipedia.org/wiki/Pulse_Position_Modulation
la tensione è fissa ma cambiano le lunghezze degli impulsi e la cadenza nel tempo.
non sapevo che ci fossero i servi comandabili direttamente con una tensione continua, o perlomeno qui non ci sono http://en.wikipedia.org/wiki/Motor_controller , ma siccome la mia ignoranza non ha limiti e sono curioso chiedo un link per iniziare a conoscere questi servi, mi sarebbero utilissimi :)
Con i PPM funzionano i telecomandi per modelismo analogici.
Li la grandezza che trasmetti e che rilievi é la durata del imulso.
Con PWM simuli soltanto una tensione analogica.
è vero, i radiocomandi usano ppm ed anche pcm.
quindi tu dici che se attacco un servo ad un potenziometro e gli dò 3v si posiziona al centro? (non credo)
con il pwm crei un il ppm con impulsi della durata da 0,5ms a 2,1ms(dipende dal servo).
tutti i servi hanno minimo 3 fili
i servi digitali e quelli analogici si pilotano alla stessa maniera (salvo alcune rare eccezioni).
nei link che mi hai dato non vedo conferme di ciò che dici (o smentite di ciò che dico)
per una schiarita di idee:
http://www.horrorseek.com/home/halloween/wolfstone/Motors/svoint_RCServos.html
anche la discussione sulle modalità di controllo è stata di notevole interesse.
Mi stupisce davvero molto che un servo riesca a tenere 300g !! ( si devo muovere la lista nell'asse longitudinale). buono a sapersi.
Sul discorso Analogico/ o comandato in variazione di distanza tra impulsi, credo per quanto mi riguardi che il "costo" è indicativamente lo stesso (1 pin PWM ce lo rimetto comunque).
Quindi penso andro' sul modello analogico, voi che dite? se avete qualche modello di fiducia consigliate pure :D
sul sito citato da uwefed ho trovato questo servo analogico:
http://www.hitecrc.de/store/product.php?productid=21137&cat=0&page=1
che dovrebbe tirare 10 volte più di quanto serve, non costa una cifra, ed il produttore è di tutto rispetto, peccato che abbia 3 fili e che per tenerlo al centro della corsa serva un "PULSE WIDTH CONTROL 1500usec NEUTRA". :)
yes, c'è un piccolo problema ... io con esattezza come faccio ad essere sicuro che il clock di arduino sia perfetto ? e se facessi un pwm via software tipo utilizzando la libreria PWMLib per avere tutti i pin in modalità "PWM" , come farei ad avere garanzia che il clock è perfetto ?
(piccola conferma ... se ha una tensione di alimentazione a 5v circa e 800 mA questo servo consuma 4w ? ma non è piccolino per dissipare 4W ? )
Probabilmente è una cavolata mia, perchè una volta presa la nuova posizione si ferma in quella ?
per il pilotaggio della posizione, qualcuno ci ha già pensato per tè: http://www.arduino.cc/playground/ComponentLib/Servo
per il resto, quel servo dovrebbe avere una torsione di circa 3kg e la corrente che stai citando è quella di stallo, cioè la corrente che assorbe se riesci a contrastare le torsione fino a fermarlo, ma tu devi alzare un peso 10 volte inferiore ;)
altro esempio:
http://fritzing.org/projects/analog-input-to-servo/
@ brainbooster
devo contradirti:
é meglio usare la libreria http://arduino.cc/en/Reference/Servo
Attenzione alle limitazioni che comporta l’uso di questa libreria.
Il servo assorbe corrente quando si muove e la corrente dipende dal carico. se non si muove assprbe quanlche mA per l’ elettronica. La corrente scritta sui dati tecnici si riferisce al carico massimo sengnato come coppia massima.