I haven’t had a chance to post anything here in quite a while now, partly due to lack of time, and partly due to lack of interesting or original material.
SEE VIDEO BELOW! I found myself with some spare time over the past few days and decided to try and get the robot to dance autonomously. I initially started looking at software algorithms to detect BPM (beats per minute) in music, either by using phase shifting which is challenging to write and not hugely accurate, or by analyzing amplitude peaks at a given [usually bassy] frequency, which is easier to write, and even less accurate.
Tags: amplitude, amplitude peak, CPU, ground, input, interrupt, left channel, Linux, Linux robot, phidget, right channel, Robot, sample, usb sound
I ordered a USB to TTL Cable to control two Sabertooth 2×25 motor controllers as part of the Robot project.
I plugged it into a Windows PC, and used ‘RoboRealm’ to control the motors via the COM port that appeared. Worked perfectly. Motors, controller, USB to TTL and virtual COM port – excellent.
I then plug the cable into my Linux board and guess what, no driver claims it and I have every standard USB Serial module compiled. AVIT Research’s website also gives no help on Linux support.
The device shows up under lsusb as:
Bus 002 Device 002: ID 10c4:818b Cygnal Integrated Products, Inc.
The solution was luckily simple. After prising open the cable and doing some research, the ‘cp2101′ driver is the one that we want. I’m using 2.6.27.6 but this should work for any cp2101 version.
Tags: 10c4:818b, 2.6.27.6, AVIT Research, com port, cp2101, cygnal integrated products, diff, Linux, Linux robot, lsusb, motor controllers, roborealm, Robot, sabertooth, usb to serial, usb to ttl, virtual com port
The Phidget interface kit arrived and so did a few of the analog sensors that I ordered. I can’t believe just how simple they are to use and just how friendly and comprehensive their SDK is!
Here are some pictures:
This is the interface kit itself. It’s a regular USB device and draws minimal power. Along the top of the board are the analog sensor inputs. Each is connected via a simple 3-pin wire, ground, data and +V. Along the right hand side are 8 simple digital on/off inputs. Along the left hand side are 8 just as simple digital on/off outputs. In this case, I have connected the Phidgets analog light sensor which you can just about see on the left of the picture. Download the Phidgets Linux SDK from their site, compile, and run the examples. The range on the light sensor is fantastic. It advertises 0 to 500 range and does indeed live up to the promise. Pitch black and the sensor reads < 5, and pushed up close against a 400W light, the sensor reads > 480. Normal light conditions and the sensor reads between 30 and 180 – very very useful.
The SDK comes with plenty of examples and is incredibly user friendly! I would recommend these all day long.. it really is plug and play.
And here’s a distance sensor. It’s a simple IR mechanism that ranges from about 1m to 10cm. There are also 10cm to 5mm sensors available. Again, works great, really reliable.
So now these work, I’ve ordered some more and they’re on their way. One temperature sensor, two voltage sensors, some sonar sensors and more IR sensors – fantastic products.
In the mean time, I’ve ordered a load of clear acrylic and plan to start putting a body together shortly.
I’m still having a little trouble talking to the motor controller so if anyone has any I2C knowledge, please please let me know. I don’t want to buy a prebuilt base.. I think it’s cheating.
Tags: Linux robot, phidget, phidgets, Robot, usb interface board
Dear Blog,
Just to let you know that I most certainly haven’t forgotten about the robot project, I’ve just had a really busy week. I’ve ordered some hardware and expect to have the ALIX main board here in the next day or two. I think my next post will be over the weekend and will hopefully detail [successful] linux installation steps!
Tags: alix, Linux, Linux robot, Robot
Follow on from: http://www.adamsinfo.com/the-robot-hardware-list-wheel-plan-more-ideas/
I’ve given up on trying to source separate motors, motor controllers, encoders and brackets. I’m concerned that my knowledge of mechanics and motors is limited, and that I’m going to spend too much time and money trying to build a movement package myself.
I’ve decided to go for a good motor/controller/encoder package here:
http://www.active-robots.com/products/motorsandwheels/rd01-drive.shtml
I’ll need two of these, and will have to replace the wheels with the omni directional wheel things I found and linked to in my last post.
I’ll drill the brackets into a thin metal plate, and start building perspex on top. I don’t seem to have paid enough attention to battery/device weight/motor/power and am concerned that the motor and battery combination will not move the device. I don’t yet have an idea of how much it will weigh, but I’ve realized that the perspex is going to have to be as thin and light as possible, and I’m going to have to bear weight in mind with any unnecessary or redundant extra parts.
(more…)
Tags: alix, APNIC, atheros, CF, embedded, i2c, Linux robot, motor, picolcd, Robot
Thanks to some further thought and some great comments and suggestions, I’ve got a clearer idea of what I’d like to build, and I’ve devised a preliminary hardware list. I’ve divided this into various categories to help planning and ordering.
Discuss this in the forums here: http://www.adamsinfo.com/forum/linux-robot/the-robot-hardware-list-wheel-plan-more-ideas-steps-to-launch/
Hardware
My bad wheel plan mockup for 4 wheels and omnidirectional movement:
Please excuse the awful graphics
The base layout should be as follows. The diamond shape is a very thin metal plate which will have the motors and motor casing attached. The metal plate will be at the very bottom of the device. The square (overlayed) will be the acetate base of the unit, and build up to form the base “box”.
I’d like the motor’s to be simple 6-9v, 10W max. motors
Each motor will be held on it’s own bracket and will not be connected via an axle. Each motor will require independant control via a motor controller. The motor controller will be required to convert digital input to variable voltage (5v/7v/9v?) output. 4 speed (4.5v/6v/7.5v/9v>) would also be fine.
(more…)
Tags: alix, analog, camera, cf card, digital, electronics, i2c, io ports, LED, Linux, Linux robot, microphone, motors, Robot, sensor, speaker
Follow on from: http://www.adamsinfo.com/linux-robot-watch-this-space/
I’ve been giving the layout and hardware of the device some thought. Hardware should be split up as follows:
Main board
At minimum, CPU, IO pin out, RAM, CF/SD, and USB controller. Wifi and/or ethernet would be nice. It will need to be linux friendly of course.
Custom IO board
Connect to Main board via 16 bit bus. The custom IO board will have some logic gate chips and maybe some memory. It will then connect child boards for LEDs, the ultrasonic sensors, switches and relays. The relays will then be connected to the wheels. I’ll consider adding other sensors for temperature, light, etc.
(more…)
Tags: beagleboard, custom io, Hardware, Linux robot, relay, Robot, sensor, switch, temperature, ultrasonic sensor
I’ve been struggling to think of a good project to start on. I’m currently writing the APNIC Box series here, and I’m on part 4 of maybe 7 or 8 right now. I like to keep at least one personal project of interest on the go at a time so back to struggling for inspiration.. Feel free to tell me that this is an awful idea and suggest something else, but until I hear otherwise I’m going to roll with it.
Linux Robot – Requirements
Here’s what I’m thinking. Small embedded device, way smaller than the Mikrotik 532a used for the APNIC Box. The board will need USB [as we're going to use the 5v for charging later]. I’d like to start with a powerful enough board that it can be expanded later with relative ease.
The device will initially have few inputs and outputs. It will support miniPCI, USB, Serial Console, CF card, GPIO or some other good method for controlling a relay board and some motors. The device will have 4 small wheels, maybe rubber [old mouse] balls instead and some ultrasonic sensors, 4, 6 or 8.
(more…)
Tags: embedded, fm, Hardware, Linux, Linux robot, minipci, motor, oscillator, relay, Robot, sensors, servo, usb