After purchasing the various V-Slot parts and building a suitable gantry plate, I’ve now managed to build my T-Bot. The T-Bot will eventually be used as a drawing machine, similar to AxiDraw, but using SlushEngine Model X LT and Raspberry Pi 3. Here’s my first working version on YouTube. My next task is to read G-Code and make the T-Bot move according to the coordinates.
This is a nice concept ! I guess since you dont need much holding current, the SE isnt runing too hot, think it could handle a long time of use? You will also need a extra axis to move the pencil up and down.
The T-Bot itself is very rigid and doesn’t require any holding current. However, I have set the KVAL’s for ACC, DEC, HOLD and RUN to 10. When each action is performed, I always call HardHiZ which disables the power bridges, so the chips don’t get hot. I’m confident that the T-Bot can run for a long time without the need of cooling fans.
I’ll need to create the appropriate methods to work out the basic movements i.e. up, down, left and right. Once I’ve got that, I’ll then add hopefully a servo motor which can then control the movement of the drawing device – I haven’t figured out how to do this on the SlushEngine yet.
Just saw this! Very cool build. That configuration is a nice way of keeping extra load off the x-axis. Nice work.
As I was unable to use the methods provided by the L6470 chip, to do what I wanted. I have now used Step Clock mode instead. I have written methods which allows me to rotate the stepper motors a step (i.e. 1.8 degrees); using Bresenham’s line algorithm to draw diagonal lines without having to decrease or increase speeds.
Here’s a little video, which follows some basic coordinates.
Wow! That motion is very smooth. Are you using the Pis DMA abilities to drive the step clocks? We have started looking at this for V2 of the SlushEngine software.
It’s nothing complicated – the RPi3 does the hardwork in performing the calculations (Bresenham’s line algorithm) and then instructs the stepper motor to perform a step in the direction that I want. For example, moving both stepper motors anti-clockwise by one step – which moves the gantry arm to the left.
def left(): MOTOR.StepClock(0) GPIO.output(SE.MTR0_STCK, GPIO.LOW) GPIO.output(SE.MTR0_STCK, GPIO.HIGH) MOTOR.StepClock(0) GPIO.output(SE.MTR3_STCK, GPIO.LOW) GPIO.output(SE.MTR3_STCK, GPIO.HIGH) time.sleep(SPEED)
Using step-mode, is not as smooth as using the L6470 functions, but that’s most likely using default BEMF compensation values.