AS/400 :: Robots :: Microcontroller :: Electronic :: Downloads :: Links :: Site History

feedback :: home

 



Robots
 

Pisten Bully

Zwobot

 

 

 

Robots

   

On this page is my first robot.

  1. The Controllerboard

    This is my robotpage. I built a little autonomous mobile robot. First of all here is the schematic of the controllerboard. The board uses a Motorola 68HC908GP32, which has 32KB of Flash and 512 Bytes of Ram. The Controller is In System Programmable, the programming hardware is easy to build and the needed Software including Assembler, Debugger and Simulator is free from P&E Micro. I have a C compiler from Metrowerks it is the HC08 Special Edition which is limited to 4 K of code. Other features of the MCU are 8 8-Bit AtoD-Inputs, 2 Timer channels, Internal Pullups and up to 33 I/O Ports, 8 of them can generate interrupts. Most of the programmer is integrated on board. I put it all in the schematic but I put the MAX232 on a different little board. The MAX232 does the RS232 level conversion and its chargepump is used to get the voltage for monitor mode entry.

  2. Schematics of the board


  3. Chassis

    For the chassis I took an RC model car with the name Pisten Bully. It has differential steering an so it is easy to control with the two motors. It has a lot of space for the electronics. The is a place where you can put the batteries in. The rechargeable batteries were included with the car. This batterypack is used to drive the motors. Another one is used to drive the controller and the sensors. The second batterypack fits well in the upper side of the chassis.



  4. Other Hardware

    The robot has two front switches to detect collisions. The are three IR-Sensors to avoid colisions. The IR-Sensors are built with Sharrp IS471F detectors. Because the H-Bridges included into the car went off in smoke, I checked how much current goes through the motors and installed an L293D dual H-Bridge driver. The L293D has two enable inputs, so that only two PWM signals are needed to control the speed of the motors. For the IS471F and the L293D I used the schematics right out of the datasheet, which you can find on the download page. The ENABLE Inputs of the L293D are connected to the two timer channels to control the speed of the motors with PWM. How the L293D is connected to the controller is shown here : L293D.gif. The Voltage of the battery is controlled by an AtoD channel. If it gets too low, the robot just stops.

  5. Software

    I wrote the software in Assempbly. With this sensors the robot can drive autonomous and avoid obstacles. So the program is quite easy. If it detects an obstacle on one side it turns to the other side. I had to try a little, because sometimes the robot got stuck in corners. The motors are PWM controlled, because of the missing feedback from the drive it allways drives at 100% pulsewidth. The Voltage for the motors is controlled by an AtoD channel, if the voltage drops too low, the robot stops until the voltage gets up. The sourcecode for the robot is here : robsrc.asm

  6. the distance sensors

    This distance sensor is build with two IS471F, with a distance of ca. 1cm.



    I put two of them on one side of the robot to measure the distance to a wall. That didnīt worked as expected, because the range of the IS471F belongs too much on the position of the LED. It is possible to calibrate one sensor, so that it works, but to calibrate both sensors for the same distance is very hard. Because of vibrations, the leds are moving a little, so that things change while driving. So I gave this up.

  7. Future planning

    I paused the distance sensors. Although I like to build something to orientate the robot along a wall. I donīt know what idea comes next. Maybe I try to get the robot to follow moving people.
Here are some pictures of my robot



This ist what it looked like before I hacked it

The front

The controllerboard

From behind

Sideview

The front sensors

An IR Detector closeup

The front again

The whole robot in top view




 

 

 

 
     

 

   © 2005 by Eckhard Gosch •  eckhard@eckhard-gosch.de