Difference between revisions of "Drawbot 3"
(→Alimentazione) |
|||
Line 8: | Line 8: | ||
*induttanza: ~50µH ( i dati esatti non li so, è stata misurata con uno strumento diy e non aveva etichetta ma sembra funzionare alla grande, il valore teorico è 63µH ) | *induttanza: ~50µH ( i dati esatti non li so, è stata misurata con uno strumento diy e non aveva etichetta ma sembra funzionare alla grande, il valore teorico è 63µH ) | ||
* diodo : SR560 ( sicuramente sovradimensionato con i suoi 5A continui ma avendoli in casa… un diodo più adatto sarebbe uno schotty da 3A a scelta ) | * diodo : SR560 ( sicuramente sovradimensionato con i suoi 5A continui ma avendoli in casa… un diodo più adatto sarebbe uno schotty da 3A a scelta ) | ||
− | Il circuito sembra funzionare a dovere, ma per averne conferma pensavo di fare delle prove sotto carico utilizzando una resistenza da 5Ω e 10W, in | + | Il circuito sembra funzionare a dovere, ma per averne conferma pensavo di fare delle prove sotto carico utilizzando una resistenza da 5Ω e 10W, in modo da essere certi che anche sotto sforzo non danneggi il RasPi. |
+ | Aggiornamento 13 Marzo 2014 | ||
+ | Eseguiti alcuni test sotto sforzo usando delle resistenze corazzate da 6.8Ω ( per questioni di disponibilità ), con i seguenti risultati: | ||
+ | * con 6.8Ω di carico 350mA di assorbimento su 12.2V in ingresso ( dati presi dallo strumento dell'alimentatore ). Tensione stabile a 5.08V per tutto il test, corrente teorica 0.75A ( perchè dovrebbe essere diversa?! ). Resa 89% - il ds riporta 80% per un carico di 3A quindi ragionevole. In queste condizioni l'integrato scalda ma si mantiene in range ragionevoli per i cinque minuti della prova e sembra stabilizzarsi. Considerando però che è in aria libera mentre verrà inserito in un sandwich di schede nel prototipo, fa riflettere. | ||
+ | * con 3.4Ω di carico 720mA di assorbimento a 12.2V in ingresso ( come sopra ). Tensione stabile a 5.02V per tutto il test, corrente teorica 1.5A . Resa che scende all'84%. Qua siamo decisamente fuori dal range di potenze ( 7.5W! ) che dovrebbe tirare fuori per dare birra a un raspi, che ok consuma ma non è un saldatore. Detto questo scalda parecchio anche all'aria aperta, e arriva ad essere quasi ustionante al tatto ( ora misuro la temperatura con un LM35 appena ho tempo ). Comunque per 10min di test non molla il colpo e continua a dare in uscita i suoi 5.02V. | ||
+ | Non lo attaccherei ancora al raspi così perchè è un po' instabile ma sono abbastanza convinto che | ||
+ | |||
==Progress Bar== | ==Progress Bar== | ||
Nell'ottica di realizzare un dispositivo "plug and play", che non necessiti di un computer esterno per funzionare sembrava carino mettere un dispositivo per controllare lo stato di avanzamento anche senza un vero e proprio display. La soluzione scelta è una progress bar costituita da 10 led; Per non sprecare 10 GPIO per farla funzionare, ho deciso di utilizzare un driver apposito che accetta in input una tensione e che in base a questa gestisce 10 led: l'[http://www.ti.com/lit/gpn/lm3914 LM3914 ] ( anche per questo si ringrazia la Texas Instruments ). Il calcolo dei pochi componenti esterni richiesti si fa rapidamente dal datasheet: nel nostro caso la tensione di riferimento è appena al di sotto dei 3.3V ( R2 = 1kΩ, R1 = 680Ω: Vref = 3.1V ). | Nell'ottica di realizzare un dispositivo "plug and play", che non necessiti di un computer esterno per funzionare sembrava carino mettere un dispositivo per controllare lo stato di avanzamento anche senza un vero e proprio display. La soluzione scelta è una progress bar costituita da 10 led; Per non sprecare 10 GPIO per farla funzionare, ho deciso di utilizzare un driver apposito che accetta in input una tensione e che in base a questa gestisce 10 led: l'[http://www.ti.com/lit/gpn/lm3914 LM3914 ] ( anche per questo si ringrazia la Texas Instruments ). Il calcolo dei pochi componenti esterni richiesti si fa rapidamente dal datasheet: nel nostro caso la tensione di riferimento è appena al di sotto dei 3.3V ( R2 = 1kΩ, R1 = 680Ω: Vref = 3.1V ). | ||
La tensione proporzionale all'avanzamento è generata semplicemente con un pwm su un pin che poi viene livellato tramite una resistenza e un condensatore ( R = 1kΩ, C = 22µF ). Il circuito così realizzato è soddisfacente e produce una progress bar gradevole. | La tensione proporzionale all'avanzamento è generata semplicemente con un pwm su un pin che poi viene livellato tramite una resistenza e un condensatore ( R = 1kΩ, C = 22µF ). Il circuito così realizzato è soddisfacente e produce una progress bar gradevole. | ||
Sul lato software l'implementazione è molto semplice grazie alle funzioni per la gestione del PWM implementate in RPi.GPIO. | Sul lato software l'implementazione è molto semplice grazie alle funzioni per la gestione del PWM implementate in RPi.GPIO. |
Revision as of 21:24, 13 March 2014
Vista la configurazione estremamente instabile ed inadeguata del drawbot 2.0, abbiamo deciso di realizare una terza e definitiva versione del nostro amato drawbot.Le modifiche saranno prevalentemente sul lato hardware che era quello che più necessitava di essere rivisto. Sostituiremi i vecchi motori con due piccoli nema 17 da 200 step/giro che saranno pilotati dai nostri ottimi Through-hole A3982 Stepper Driver. In questo modo aumenteremo di un fattore 8 il numero di step e quindi la precisione ( da 47 a 400 passi per giro con l'half step ). Inoltre la scheda di interfaccia sarà radicalmente diversa, costruita sul concetto di "shield", in modo da poter essere rapidamente costruita e montata direttamente sul rasPi. Lo stadio di alimentazione sarà esterno e dovrà fornire solamente una tensione a 12 V che verrà poi portata ai 5 V richiesti per alimentare l'usb del rasPi tramire un LM2596, mentre potrà servire direttamente come tensione di lavoro per i due A3982. Stiamo inoltre implementando una progress-bar fisica e un pulsante "pausa" che si rivelano molto utili nell'utilizzo del drawbot. La meccanica sarà totalmente rivista per "poterlo portare in tasca".
Alimentazione
La versione precedente del drawbot era alimentato con un ATX che forniva i +/- 12V per i driver e la 5V per il raspberry. Era decisamente esagerato. Ora con i nuovi driver servono solo +12V per i motori e 5V per il RasPi. La soluzione che abbiamo deciso di adottare è di utilizzare è un alimentatore esterno che fornisca 12V per i driver; questa stessa tensione viene poi utilizzata per generare una linea a 5V per il RasPi. La prima soluzione per cui avevamo optato era di utilizzare un LM7805. Questo purtroppo si ritrovava a dover dissipare quasi 7W che erano del tutto insostenibili nello spazio molto ristretto tra shield e RasPi dove si trovava, oltre ad essere uno spreco notevole di potenza. Abbiamo quindi optato per una soluzione switching utilizzando un integrato apposito ( ma facilmente reperibile ) l'LM2595, che ci è stato fornito dalla Texas Instruments come campione. Questo fornisce tutto quello che serve per realizzare un convertitore DC-DC di tipo Buck; per il dimensionamento dei componenti esterni abbiamo semplicemente fatto riferimento al datasheet ( molto dettagliato ) considerando una corrente massima di circa 2A. Al momento stiamo utilizzando questa configurazione:
- condensatore in ingresso : 330µF 25V
- condensatore in uscita : 220µF 35V
- induttanza: ~50µH ( i dati esatti non li so, è stata misurata con uno strumento diy e non aveva etichetta ma sembra funzionare alla grande, il valore teorico è 63µH )
- diodo : SR560 ( sicuramente sovradimensionato con i suoi 5A continui ma avendoli in casa… un diodo più adatto sarebbe uno schotty da 3A a scelta )
Il circuito sembra funzionare a dovere, ma per averne conferma pensavo di fare delle prove sotto carico utilizzando una resistenza da 5Ω e 10W, in modo da essere certi che anche sotto sforzo non danneggi il RasPi. Aggiornamento 13 Marzo 2014 Eseguiti alcuni test sotto sforzo usando delle resistenze corazzate da 6.8Ω ( per questioni di disponibilità ), con i seguenti risultati:
- con 6.8Ω di carico 350mA di assorbimento su 12.2V in ingresso ( dati presi dallo strumento dell'alimentatore ). Tensione stabile a 5.08V per tutto il test, corrente teorica 0.75A ( perchè dovrebbe essere diversa?! ). Resa 89% - il ds riporta 80% per un carico di 3A quindi ragionevole. In queste condizioni l'integrato scalda ma si mantiene in range ragionevoli per i cinque minuti della prova e sembra stabilizzarsi. Considerando però che è in aria libera mentre verrà inserito in un sandwich di schede nel prototipo, fa riflettere.
- con 3.4Ω di carico 720mA di assorbimento a 12.2V in ingresso ( come sopra ). Tensione stabile a 5.02V per tutto il test, corrente teorica 1.5A . Resa che scende all'84%. Qua siamo decisamente fuori dal range di potenze ( 7.5W! ) che dovrebbe tirare fuori per dare birra a un raspi, che ok consuma ma non è un saldatore. Detto questo scalda parecchio anche all'aria aperta, e arriva ad essere quasi ustionante al tatto ( ora misuro la temperatura con un LM35 appena ho tempo ). Comunque per 10min di test non molla il colpo e continua a dare in uscita i suoi 5.02V.
Non lo attaccherei ancora al raspi così perchè è un po' instabile ma sono abbastanza convinto che
Progress Bar
Nell'ottica di realizzare un dispositivo "plug and play", che non necessiti di un computer esterno per funzionare sembrava carino mettere un dispositivo per controllare lo stato di avanzamento anche senza un vero e proprio display. La soluzione scelta è una progress bar costituita da 10 led; Per non sprecare 10 GPIO per farla funzionare, ho deciso di utilizzare un driver apposito che accetta in input una tensione e che in base a questa gestisce 10 led: l'LM3914 ( anche per questo si ringrazia la Texas Instruments ). Il calcolo dei pochi componenti esterni richiesti si fa rapidamente dal datasheet: nel nostro caso la tensione di riferimento è appena al di sotto dei 3.3V ( R2 = 1kΩ, R1 = 680Ω: Vref = 3.1V ). La tensione proporzionale all'avanzamento è generata semplicemente con un pwm su un pin che poi viene livellato tramite una resistenza e un condensatore ( R = 1kΩ, C = 22µF ). Il circuito così realizzato è soddisfacente e produce una progress bar gradevole. Sul lato software l'implementazione è molto semplice grazie alle funzioni per la gestione del PWM implementate in RPi.GPIO.