This is my writeup following my selection to review the Lynxmotion SSC-32U USB Servo controller.
Let me first apologise for the length of time it has taken me to get this writeup started - I have been inundated with many things; work, personal and gigging with bands. I am now hoping to get caught up as best as I can!
The Lynxmotion SSC-32U is a fantastic board, making the controlling of multiple servos very simple, with easy-to-administer commands giving the user full control via a serial connection.
In addition to the 32 servo pins there's also a bank of 8 input pins, for connecting various sensors to the board.
This servo controller can be used for a variety of projects where multiple servos need controlling with ease, or from a microcontroller that does not have the necessary pins or grunt to do so on it;s own.
When I submitted my request to review this board I was going to incorporate it into a project plan I had for a desktop assistant to control some pan/tils servos and also read some ping sensors and the likes.
In the time I have been pondering this review I have slightly changed my attempted project; I aim to put together some small robot arms, and use this board to control their positions. these arms will assist in the holding, turning and positioning of perfboards and circuit boards, or the positiong/holding into place of wires, to assist with things suchlike soldering. a Python program running on my PC (eventually a built-in Raspberry Pi Zero) will pass commands to the board, allowing quick and easy rotation and movement at the click of a button.
Still a desktop assistant innit :)
Unboxing
Unboxing was a very straightforward process - the board came sealed in a plastic bag, along with a Mini USB cable and a small instruction manual. It is a very minimal packaging, but it doesn't need anything more; you only need to a power source and the servos themselves and you're ready to go.
The manual is very basic, but scharrette kindly sent me a lnk to the full online guide so it's all gravy baybee!
Using it - TO FOLLOW
This board is easy as peas to get running thanks to the in depth online manual. (http://www.lynxmotion.com/images/data/lynxmotion_ssc-32u_usb_user_guide.pdf#page=24-26)
The guide is well worth a flick through, as there are so many options regarding setup that could be used. The design is very flexible - especially with power options. You can power the whole board from one supply, split supplies when using servos of different voltage requirements, or even 3 supplies when wanting to keep the logic board powered seperately.
As shown in the manual there are several options for communicating with this board (there's an XBee socket onboard), but the main one I wil be using for now is via USB.
Controlling the servos is as simple as using the folllowing commandcomprised of the following data:
● : pin / channel to which the servo is connected (0 to 31) in decimal
● : desired pulse width (normally 500 to 2500) in microseconds
● : servo movement speed in microseconds per second*
● : time in microseconds to travel from the current position to the desired position. This affects all servos (65535 max) *
● : carriage return (ASCII 13)**
This structued string of information allows simple, yet detailed control of each servo.
I am hoping to write some functions which will handle banks of servos by sending this command for each servo channel used.
This should enable making a robotic arm-based project simple.
Controlling a Servo - TO FOLLOW
Using this board to control a servo is unbelievably easy! I shall shoot a quick video to show how easy it is.
I have been using this board with my raspberry pi via the USB connection; I have found it very beneficial to create a set of python functions to make is simple to send the required command information to the controller. I will finish it up and make it pretty then I will stick it up on here for people to use.
Controlling a group of Servos - TO FOLLOW
As with the individual servo control, controlling groups of servos is just as simple; the controller board is extremely responsive, allowing for several commands to be processed in quick succession.
I have written a simple python class to demonstrate both singular and group control - a video will follow soon.
Desktop Assistant - TO FOLLOW
In order to fully show what this board can do I have been thinking of project ideas that can use a multitude or servos.
The obvious choice would be a Hexapod or similar walker. I would love to create one of these, but with poor fabrication skills and little/no access to laser cutters and 3D printers I don't feel I could do it justice.
This got me thinking... Maybe I could come up with a tool to assist me in fabrication, like a smart helping hand. Something to hold components in place while I solder them, and can rotate/manipulate the parts at the touch of a button. With the right application it could even be voice activated!
For now I'm thinking of a small wieghted base, with 3 robotic arms; two on the outside, one at the top, and finally a motor in the middle. This middle motor can be used to control a turntable, for rotating PCBs or parts that I am shaping.
The top arm could be used to hold PCBs, and rotate them on command - ideal for double sided soldering jobs!
The side arms could be used to hold wires or components that need soldering, and hold things in place, leaving my hands free to wield the soldering iron and solder.
This will allow me to get everything in position and concentrate on a good solder joint rather than wishing for ten arms!
And adition could be some potentiometers attached to the servos - this could allow for feedback of position, and open up the possibility of teaching the arms movements.
:-)
Update - having been let down on an order of robotic arm kits I am looking for advice to move this review-come-project on.
I have plenty of micro servos, but I am looking for some laser cuttable or 3D printable arm kits. I should have my 3d printer up and running once I source a control board.
As soon as I can get those I can finish this!
Thanks for your patience!!
PS - I've started collecting chopsticks to make some really basic arms to demonstrate my code for this fantastic controller!
It works really well wI think other controllers and SBCs. Recently I have been using mine with my Raspberry Pi. The Pi runs a simple Python webserver, and upon button presses on the Web page sends serial commands to the SSC-32U.
This combination would work great for a Hexapod; the SSC-32U handling movement while the Pi handles processing (maybe even from a Pi Cam, integrating OpenCV for image processing ! )