![]()
| Labyrinth solving with microbots: |
|
Corresponding
to the Third Year subject Laboratorio de Sistemas Digitales,
and carried out betweed March and May 2001.
|
| Design |
|
All the information about the complete process of designing and testing of the microbot can be found in the following essai (in Spanish): memoria.pdf.zip (1.01Mb) The algorithm we used to solve the maze required a previous walk of the robot all along the labyrinth, pushing into the microcontroller's stack all the decisions taken in each crossing, pulling them out if they turned out to be wrong. This way we were storing in the robot's memory the first path leading towards the exit. To help the robot's movements, we drew black lines all through the labyrinth (through all the possible paths), so that the sensors used would be easier to find in shops around our city. This black lines were made using back tape. As always, this kind of design is composed by a hardware and a software part, which are described next. |
| Hardware |
|
Microbótica's microbot Tritt already includes some very important elements, such as the engines or the whole microcontroller system and interface. So, all our additional hardware were four CNY-70 infrared sensors, which could distinguish a black line drawn on the floor. In the .pdf essay you can find all the details reffering to the connection of these sensors to the microcontroller's port A, for all the possibilities of black line detection. |
| Software |
|
This project's real core was the program, which was loaded into the 68HC11's EEPROM memory. The code can be seen here. As you can see from it, the program is divided in four different microbot's states, which will be switching when the IRQ button is pressed. These four states are:
In the essay there is a complete description of these four states, along with the program code. A few important aspects of it are that all crossings are stored in stack, along with the number of possible ways they have. Once the robot finds a dead-end path, it comes back to the previous crossing, decreasing this crossing's possible ways number, and if this number reaches zero, the microbot will come back to the previous one. When the hour to reproduce the maze comes, all we have to do is to get a pointer to the beginning of the stack memory zone, which will recover all the decisions corresponding to all the crossings on the way to the exit. |
| Testing |
![]() |
To test both the program and the sensors, we used different 'mini-mazes', made of pieces of white paper and black tape. And, besides that, prior to the exam, we tried to guess what this exam would be like, and designed what ended to be the Dinky Island's Testing Circuit (tm), which can be seen here. |
| Skip to Exam |
click
here
|
|
| Back to Index |
click
here
|
|