Asuro Robot
last updated: 23. March 2007Microcontroller programming
most of application development is be quite boring today, since you work far below the limits of current PCs and don't have to care about memory management or super optimized algorithms - the PC will wait for user input most of the time anyway...
Now imagine the CPU has has only 8Mhz and you have got only 1Kb of RAM - welcome to the world of microcontroller programming.
The Hardware
since a microcontroller alone is quite boring, I bought a whole robot which has enough peripherals to offer enough input.
The choice was the Asuro Robot kit developed by the DLR since it quite cheap with the pricing of only 50€ - so it wont hurt that much if you accidently step on it.
Nevertheless its characteristics are quite good
- Datatransfer through Infra Red
- 2 light sensors underneath
- 6 touch sensors in the front
- 2 independent motors
- 2 odometriy sensors
- 2 red LEDs on the back
- tricoloured status LED
- ATmega8L controller
building
leave the parts inside their packages as long as possible - if you lose one, you are doomed
- you can also use the resistance brown-brown-black-black-brown, where the manaul tells to use brown-black-red-gold
- the resistance R11 is actually brown-black-brown-gold
Tuning
Asuros optical sensors are quite sensible to ambient light, so you will get very unsteady measurements.
If you are navigating using the odometry sensors for example, asuro will drive circles if it will be partially covered by shadow.
but you can minimise this effect by simply building caps around the sensors - preferably out of black-toned paper in order to also eliminate reflections.
on the following image you see the sensor-caps on the left.
Also note the binder replaced by a gum - it makes life easier when changing the batteries.
Programming
The Asuro or generally the ATmega8 is being programmed in C, which is a very simple language lacking any concept of ObjectOrientation.
But its simplicity is its strength since it allows you to write small and fast programms - and exactly that is needed.
In order to write your own Asuro programs, you will need a toolchain consisting of several tools.
you should look in your distributions package manager for avr-gcc and avr-libc, so you dont have to compile them yourself.
The starter pack contains a recent version of asuroflash, a preconfigured Makefile and a recent version of libasuro.
Everything is already set up, so you dont have to configure anything.
As the editor I would recommend you gedit with the plugins Snippets and External Tools.
External tools is already preconfigured so if you press F8 it will automatically build the hex file. But you probably should active the Bottom Pane to see the console output if there are compile errors.
The Snippets plugin allows you to have a kind of auto-completition; if you enter for instance if and press Tab it will add the necessary brackets to complete the
statement.
For the Terminal I recommend Gtkterm.
Local Downloads
- libasuro-3.0 libasuro 3.0 for use with avr-libc 1.4
- asuroflash-1.5.1 more Linux friendly version of the original program
- starter-pack binary of asuroflash, asurolib and an according makefile