msgbartop
I will happily conduct a FREE basic web security scan for any genuine organization interested in my services to point out whether or not I can find vulnerabilities in your application. Just contact me.
Need a PHP Programmer, PHP staff or project manager? Contact me now.
msgbarbottom

12 Oct 08 The Robot: Hardware List, Wheel Plan, More Ideas, Steps to launch

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:

Base Layout

Base Layout

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.

From front on, the robot should look something like this:

Front On

Front On

Again, please excuse the awful graphics

The bottom box should contain batteries, IO ports, motor controllers and sensor/sensor controllers connected to the base.

The middle box should contain the main board, CF card, and sensor/sensor boards required at the middle level.

The top level should contain two minature cameras [eyes], two minature mono microphones [ears], a large variable-color LED [nose], and an inset small speaker surrounded with 32 minature LEDs as a mouth. I’ll mount 2x wifi antennae next to the ear mics and they’ll be adjustable. I’m interested in removing the nose LED and replacing it with some kind of laser diode on a servo.

The spine of the device is a reasonably large, hollow, metal rod with a hole at the center for central-level cabling. All cabling should run through the spine.

I should probably stick some plastic arm like things on as well for the sake of completness. I’m not planning on having them moving as more advanced robotics isn’t the aim here. This is aimed to be more of an intelligent PC with some intelligent programming and logic as opposed to a robotics project (can’t you see from the pictures?)

From Linitx.com:
- Alix Main Board ( http://linitx.com/viewproduct.php?prodid=11820 ):

Board

Board

500MHz AMD Geode LX CPU
256MB DDR RAM
CF card slot
DC or PoE (7v..20v) power jack
1 Ethernet
Expansion LPC Bus (For GPIO)
I2C Bus
2 miniPCI
1 Serial Console

Some of the following hardware, I already have but will list it for the sake of completeness:

- Li-Ion battery, 11.1v, 2000-5000mAh

http://www.airlandseahobbies.com/rc_batteries

I’m going to have to order this later on. I could start doing all the calculations in the world and I won’t get an accurate enough figure for projected power usage. I would hope for no more than 8W for average stationary operation and 20W for full operation, but I can’t be sure, so until I can, I’ll hold off on the expensive Li-Ion batteries.

- Battery charger that can be incorporated into a base unit:
- 10x 1m sq. perspex
- Small electric saw to cut perspex
- Glue & glue gun
- Small soldering iron
- Good quality solder
- Solder sucker

-motor
Something like: http://www.robotobjects.com/scripts/prodList.asp?idCategory=30
-motor controller
- 4x omnidirectional wheels: http://www.superdroidrobots.com/shop/item.asp?itemid=27&catid=16
(1/8in shaft omni directional)

- Reasonably large smoothing capacitor for power
- Atheros AR5212 miniPCI wifi
- I/O board
24 digital I/O over USB board http://microcontrollershop.com/product_info.php?cPath=346_193_423&products_id=2193
AND/OR

http://www.maplin.co.uk/Module.aspx?ModuleNo=42857

TODO: Why on earth do I want to interface the IO boards over USB? See below – research I2C bus.

I’m not fully decided on that yet. There’s going to be a number of analog components which will be a hassle to convert to digital. Not sure of analog I/O over USB or PCI hardware availability.

- 10 ultrasonic sensors [analog]
- Lots of LEDs and an assortment of random switches and buttons which will all have their uses.
- Temperature Sensor [analog]
- Light Sensor [analog]
- Speaker [voice to text and vice versa?]
- 2x USB small cam
- Metal Rod (spine)
- Base metal sheet
- 4x IR receive/2x IR transmit
- Some CF cards
- PicoLCD 4×20 http://www.mini-box.com/PicoLCD-4X20-Sideshow
- Some 555s (interrupts and poll rates)
- CD20323v cell battery and clock.
- Relays

NOTE: There are a lot of great electronic component stockists available online. I’m planning on purchasing as many small and simple prebuilt modules and controllers for the various custom hardware and sensors. for example, a prebuilt small board of 2x ultrasonic sensors, resistors, capacitors, pot, and a connector block for power input and sensor output rather than individual components.

To research further:
- I2C bus standard
- Motors, power consumption and motor controllers
- I/O cards. I can currently only find digital I/O or very few analog channel I/O cards. I need many more analog than digital input channels.
TODO

I will comment on this post rather than modify the original as this list changes, or just create a new post if [when] the changes become drastic.

Steps to Launch

These rough steps sound pretty accurate. Milestones in bold.

1. Research relevant further reading areas
2. Order hardware
3. Install Linux on main board
4. Install Linux kmods for relevant hardware and make sure all works
5. Fine tune Linux install
6. Add I/O cards and controllers. Ensure reading and writing works and write relevant SDK parts.
7. Build/add sensor inputs and controller outputs
8. After all other hardware is set up, build base and wheels. Make sure interfaces work. At this point hardware is complete.
9. Ensure that we’ve met our design briefs of having non-restrictive hardware.
10. Test all hardware rigorously.
11. Install extra software, such as v4l server and other relevant services.
12. Complete SDK. This will be a set of code/libraries/drivers that will allow full and non-restrictive access to all hardware and input/output. This SDK will be fully open and will allow for some software brains to be created without restriction.

After this point, I will create a basic service to operate on top of the SDK. It will allow for network communication over the wifi of the device, and allow you to type commands over telnet or some plaintext protocol service, basic clean syntax: i.e.:

CREATE THREAD 4: #create 4 concurrent threads.

THREAD 1:
WHEEL(1, 3, 50); move ‘left’ wheel at speed 3 for 50 actions
END THREAD

THREAD 2:
WHEEL(3, -3, 50); move ‘right’ wheel at speed -3 (reverse) For 50 actions
END THREAD

END CREATE

PRINT (SENSOR_BOTTOM_1); #print analog status of SENSOR_BOTTOM_1
PRINT (SENSOR_BOTTOM_6);

OUTPUT (LED_TOP_1, 10); #flash LED_TOP_1 on for 10 actions.
OUTPUT (SPEAKER, TONE(5000), 20); #sound 5000Hz oscillator from the speaker for 20 actions.

OUTPUT (LEFT_CAM, STREAM(“192.168.100.2″, “1234″), 100); #stream the left eye to 192.168.100.2 port 1234 for 100 actions.

You get the idea. This programmable interface will allow for simple scripted instructions to be passed to the device. This is NOT the brain, just SDK testing. I plan to go to effort on this, as this exact code will be reusable for a wifi ‘remote’ to control the device, or other control. The actual device software/brain will call the functions that this ‘programming language’ will call directly [obviously].

13. Write and create Brain 0.1a
14. Look at expansion ideas, more hardware, more sensors, better eyes, laser scanning, and adding a war tool [300mW laser diode? 8-)]

Discuss this in the forums here: http://www.adamsinfo.com/forum/linux-robot/the-robot-hardware-list-wheel-plan-more-ideas-steps-to-launch/

Tags: , , , , , , , , , , , , , , ,



Reader's Comments

  1. |

    [...] Follow on from: http://www.adamsinfo.com/the-robot-hardware-list-wheel-plan-more-ideas/ [...]

  2. |

    Where’s the self righting mechanism, and weapon;-)

  3. |

    Self righting should be entirely software controlled I think. As for the weapons, they come in stage 2. I had in mind a green 300mW laser diode on one arm, possibly a tesla coil on the other – they’re pretty simple to make and not as power intensive as you might think. I was considering a relay controlled mini flame thrower, but I figured it was a little ‘passe’ these days.

  4. |

    [...] The Robot: Hardware List, Wheel Plan, More Ideas, Steps to launch [...]

  5. |

    Awecome idea, i wish you all the best and support, what a great idea, imagine what could be achieved if the same amount of effort was put into this project than is put into making one of the many linux desktops look more like windows.

    You should look at teh AVR range of micros they contain ADC DAC’s and are a complate SOC.

    im a fully qualified electronics engineer and embedded Systems programmer / engineer, if you need anyhelp i would love to do what i can.

    all the best and good luck

  6. |

    Thanks a lot darryl, I hope you don’t mind if I call you on that at some point.

    The AVR range looks more appropriate for what I’m trying to do, than stock USB interface boards.

    Just a reminder of the intention here, this isn’t a robotics project, it’s more of a software intelligence project, when the software controls hardware that can actually be used to constructively ‘do something’. The main issue is that the hardware does not hold back on software development. The only realistic limit of what the device can do within it’s scope should be the intelligence of the software.



Leave a Comment

You must be logged in to post a comment.