32 bit microcontroller controls model cars

Inter vehicle communication

Introduction

After finishing my student research project with the topic Bootloader und embedded Linux Anpassungen für ein ARM9 basierendes Mikrocontrollerboard (engl. Bootloader and embedded Linux adaption to an ARM9 based microcontroller board) I'm now working on my diploma thesis. The diploma thesis will be based on the student reasearch project.

The target of my diploma thesis is making measurements of inter vehicle communication. Some work is already done in the department OMI at the university Ulm. Not only simulations by also measurements with real cars. By using model cars it should be possible to get reproduceable results in defined environments. These results can be compared with the simulations that are already done. The target is to avoid measurements in the normal road traffic because these are hardly reproduceable and require a lot of time.

Model

The following image shows the microcontroller board mounted on the model car:

[image of the model car]

This is a new version of the microcontroller board. It has a SD card reader and some bugfixes. Additionally the board now holds 8 MiByte Flash-ROM. This way not only the Linux kernel but also the root filesystem is directly stored in flash. 3 MiByte are available for applications.

To let the car model drive around both model servos (steering and drive control) are connected to the pwm capable outputs of the microcontroller. For AT91RM9200 insider: The GPIO pins PA17 and PA19 are programmed to be peripheral function `B'. PA17 controls the steering servo, PA19 the driving servo.

To have reproducable drive ways a sensor has to be installed to measure the travelled distance. As the measurements should be done inside a building GPS cannot be used for this. My idea is to use the sensor of an optical mouse for the measurement of the travelled distance. Using the USB port of the boards it is easy to read data from the mouse. In the meantime the even better idea to read the data directly from the mouse sensor is formed. To do this the sensor chip ADNS-2610 is directly connected to the SPI interface of the AT91RM9200.

Advantage: The sensors and the model car control is so easy that the steering can be done by a very small program. No complex sensor data handling is necessary.

A WLAN card is to be plugged into the CF slot. The WLAN board is doing the communication with other vehicals or stationary AP.

Work progress

This work is already done

  • Writing a device driver to program the AT91RM9200 to generate the servo pulses.
  • Test software to control steering and drive motor of the model car.
  • Writing software to read the mouse data from the device file.
  • Measurement of the original mouse optics.
  • Building a connection wire to connect the microcontroller board and the model car with the model car battery.
  • Measurement of the new mouse optics to check the focussing of the new optics. I used some software from http://sprite.student.utwente.nl/~jeroen/projects/mouseeye/ for a first start. In the meantime the software is completly rewritten to get the data via the SPI interface from the AT91RM9200 CPU.
  • Write software for the ARM9 board that reads the X-/Y- data from the mouse sensor.
  • Integrate software that reads sensor data into the model car control software.
  • Make measurements using the moving model car.
  • Finish writing the diplom thesis (the paper work).

The next images show you the sensor board from up and downside, together with the lens. The sensor board is just mounted on the front holding plate below the foamed plastic.

[The sensor board] [The lens]

The next image shows you how the sensor sees the "ground" if one drives over the USAF-1951 test chart.

[The world as the sensor sees it]

© Carsten Groß - Letzte Änderung 18.09.2006 22:13 - Impressum