In a previous post I tested running SPI over a distance of roughly 100 feet using RS-485 over Cat5 with only a single SPI slave device, in this post I will cover the how to have multiple SPI slaves (AutoDriver with RS-485 shield) daisy chained together. The goal here is to communicate with multiple AutoDrivers over a long distance with only a single chip select signal. Continue reading
In my last post, SPI over long distances, I described a method of using RS-485 to run a SPI bus over long distances. To test this setup I created two prototype shields, an Arduino SPI over RS-485 shield and an AutoDriver shield. Because the standard Arduino only has a single SPI bus and I needed two, one acting as a master and another as a slave, I would need to find a way to simulate one. Continue reading
As part of the Large Scale Delta project I needed to control multiple stepper motors, each being over a distance of roughly 50 to 150 feet. To control each motor I chose to use the Sparkfun AutoDriver board which will drive up to 3 amps continuously and communicates over SPI. The AutoDriver, which uses STmicro’s L6470 chip, has built in current limiting, over current protection, stall protection, micro stepping and more but what is most important is that it has motion commands which handle the low level motion control aspects allowing you to command a position and it will handle the rest. This along with Sparkfun’s AutoDriver Library allow for easy and precise control of a stepper motor from an Arduino. While a SPI bus is easy to use over short distances it was not designed to run more than probably a few feet and definitely not tens or hundreds of feet, when you get to that kind of distance it introduces a few issues that need to be overcome.
Last weekend I built one rig for testing my calculations for the large scale delta project and to verify the concept. The goal was to be able to lift 22 lbs vertically using an 125 oz-in stepper motor and an AutoDriver stepper motor driver, both from SparkFun. All the mechanical bits, timing pulley, timing belt, pulley and axle, were from SPD/SI. While I was able to determine that the general concept will work it failed to lift the 22 lbs. This was due to the timing belt and pulleys not being a heavy duty enough and skipping when the load got around 8 lbs, so on the next version I will go for better a heavier duty timing pulley. See below for a video of it in action.
The first test of my robot platform using wheel encoders and a rough PID loop to perform a box routine. The overshoot and quick turn around are because I did not round off the corners of the box pattern so as the robot finishes one segment it realizes that is has gone to far and quickly turns to get back on course.
After many of wasted hours of trying to get the I2C line following sensor from Robotics Connection working with an Arduino based controller board I was finally able to get it to communicate and since there was no other information out there on this issue I decided to write this post. Continue reading