Turntable stepper sketch è l’ultimo articolo dedicato alla costruzione della base rotante: lo sketch
nelle scorse settimane hai letto gli sketch relativi alla costruzione della base rotante ed alle modifiche sul rapporto di trasmissione che puoi eseguire con una stampante 3D.
Oggi esegui il primo test della turntable stepper sketch collegando il motore stepper da 200passi/giro ad un driver di controllo che ti semplifica la gestione del motore e della programmazione.
Il driver turntable stepper sketch
Il giorno che ho terminato l’assemblaggio della base rotante con l’ingranaggio stampato in 3d ero al WeMake, il fablab che frequento, e non avevo con me un driver per testare la base rotante. In pieno spirito maker e di collaborazione mi é venuto in soccorso Gianni, maker, appassionato arduino ed esperto di elettronica e robotica; Gianni ha estratto dal cilindro magico, la sua borsa degli attrezzi, una fantastica “Dual Step Motor Driver Shield” invitandomi a provarla ed utilizzarla per il test.
La documentazione ( wiki ) è completa e semplice da consultare e trovi subito le informazioni che ti servono:
- configurazione dei microstep
- pin usati dalla shield per comunicare con arduino
Configurazione Microstep
I microstep li ho decritti in molti articoli dedicati ai motori passo-passo o stepper che ti invito a rileggere se vuoi approfondirne le conoscenze.
La loro configurazione dipende dal driver, per cui hai bisogno della descrizione della shield:
e della tabella riassuntiva delle configurazioni:
da cui puoi notare che nel mio caso ho usato una configurazione HIGH per MS1 e HIGH per MS2 corrispondente ad una riduzione di 1/8 di step.
hai notato che la configurazione l’ho impostata solo per il driver di controllo definito come Y, il motivo è che userò un solo motore per la turntable stepper sketch e quindi un solo driver della shield dual stepper.
Pin usati per il controllo da arduino / genuino
I pin usati per il controllo del driver “Y” sono riportati in tabella:
sempre dalla wiki del produttore.
In cui hai già individuato D6 e D7 rispettivamente come pin di STEP e pin di DIR.
Turntable stepper sketch
E’ giunto il momento di leggere lo sketch e successivamente di provarlo:
#include <AccelStepper.h> #define STEPPER_DIR_PIN 7 #define STEPPER_STEP_PIN 6 AccelStepper stepper(AccelStepper::DRIVER, STEPPER_STEP_PIN, STEPPER_DIR_PIN); void setup() { stepper.setMaxSpeed(200.0); stepper.setAcceleration(200.0); stepper.moveTo(0); } void loop() { stepper.moveTo(6400); stepper.run(); }
noti che si tratta di uno sketch molto corto e semplice da leggere, il motivo principale risiede nella linea 01: in cui includi la libreria AccelStepper.h con il compito di semplificarti la gestione del motore stepper e di poter impostare anche delle rampe di accelerazione sia in partenza sia in arrivo/fine corsa;
linee 03-04: definisci i pin arduino/genuino con cui controllare direzione ( DIR ) e stepper ( STEP ) del motore connesso al driver Y;
linea 06: inizializza l’istanza stepper della calsse AccelStepper con la definizione di uso di un driver ed i due pin di controllo del driver;
linea 10: imposta per l’istanza stepper la velocità massima di rotazione da imprimere al motore;
linea 11: imposta il numero di passi entro cui eseguire l’accellerazione;
linea 12: poni a 0 il punto di partenza del motore;
linea 16: sei nella loop() e imposti a 6400 gli step da far compiere al motore. Siccome hai scelto una riduzione di tesp ( microstep ) di 1/8 avrai che 200 step giro del motore moltiplicato 8 sono esattamente 6400 per cui il motore compirà un giro completo;
linea 17: esegui il metodo “run” della classe AccelStepper ottenendo la rotazione impostata.
Video della Turntable stepper sketch
Se tutti i collegamenti sono corretti e le impostazioni dello sketch rispettano quanto indicato dal produttore del driver ciò che otterrai dovrà essere simile al movimento mostrato nel video: