Main Page

Global scheme :


The motherboard of the robot is a "FoxBoard" developped by "Acmesystems". It's processor is an Etrax LX 100, 32Mo RAM, 8Mo Flash. It has 2 USB ports, one Ethernet 10/100 port, and several I/O ports. This board is small, and consumes low power.

This board is a good compromise between complexity, performance, size, power consumption. It is quite easy to use. I wanted a board with a real operating system, and with enough memory to develop complex algorithms.

Interface board:

The interface board is only made to interface the sensors and actuators to the motherboard (the FoxBoard). This board does not integrate any intelligence.

PicBasic :
I choose a PicBasic (Comfile) instead of a standard microcontroler. The performances would have been greater with a real microcontroler. But I didn't want to learn programming a microcontroler. The PicBasic is very easy to use, and simple application can be developped very quickly. Furthermore, I don't need computing power. The only role of the PicBasic is to interface some sensors and actuators listed below. The PicBasic is the slave of the FoxBoard.
  • Propulsion motors control
  • 5 Ultra-Sonic range Finder
  • one Buzzer + one LED
  • One 2x16 characters LCD Display
  • Battery voltage mesurement
The PicBasic and the Motherboard are linked together with a bidirectional asynchronous serial interface. The baudrate is low (19200bds), but I don't need more, and this makes the link more robust.

HCTL2032 :
The HCTL2032 integrates dual a quadrature decoder and counter. It is capable of interpreting the signals that comes from the two optical encoders, computes the rotation of the wheel and then increment or decrement the associated counter. I use this component with poor encoders (200Hz max), and the HCTL2032 is therefore over-dimensionned. Furthermore, I only use 16 bits (out of 32 bits) of each counter... But it works!

The HCTL2032 is directly connected to the port I/O G of the FoxBoard. The component needs 5 lines for commands (FOX -> HCTL), and 8 lines for datas (HCTL -> FOX). For the command 5 lines, the voltage delivered by the FOX is not adequate. A 78HCT04 is needed to convert the 3.3V signals of the FoxBoard into TTL signals.

The clock signal for the HCTL2032 is directly taken from the PicBasic clock signal (Pin CLKOUT of the PicBasic).

Move the mouse to see the other side

Power electronics:

The power electronics board is made with the following items:

Battery charger:
The board integrates a battery charge regulator made with a Max712 and several peripheral components. The charge current is ajusted at 600mA. The current is regulated via a transistor. This transistor has a radiator that is necessary for heat dissipation. The regulator can simultaneously charge the battery and power the robot. The power is taken from an external power supply (15V 1.2A).

5V regulator :
A 5V switching regulator converts 9.6V from the battery into well regulated 5V for all the electronics. It is made with a LM2575 and several external components (self, capacitor). I needed 5V 700mA, and the regulator can assume 1A during less than 1 min. The 5V powers all the electronics:
  • FoxBoard
  • WiFi USB key
  • PicBasic
  • HCTL2032
  • Sonars
  • Optical encoders
Motor driver:
The motor driver is made with a double H bridge L298N. Each motor is controled via 2 signals: one PWM signal, and one direction signal. The direction signal drives the 2 pins "Input" of each H-bridge. One of those input is driven via an inverter (made with a transistor and 2 resistors). The two half-H-bridge are therfore always inversely driven. With this configuration, it is not possible to drive the H-bridge in "brake mode". But i don't need brake mode.

The logical and the power part of the electronics are not isolated (galvanic isolation). I think that this is not necessary if both parts are well decoupled.

move the mouse to see the other side

Realisation :

All the electronics of the robot is on 2 boards. I used 2 veroboards. Why veroboards? Because I didn't want to invest in all the tools necessary to build PCB. I didn't want also to waste time learning designing PCB with a new software, just for 2 small boards. I already made pretty things with veroboards before.

I use veroboard with groundplane? This is much more expensive. But a ground plane can prevent EMC problems, and furthermore it is not necessary to place ground wire all arround the board. The ground signal is the most used in a board. This kind of board is widely used in HF electronics, but less with logical electronics (like my robots). When using a board with ground plane, you must pay attention when using tools above the board to avoid short circuits.

I wire the boards using several methods: wrapping for data signals (under 100mA) with 30AWG wire. The wrapping is simple, efficient, and robust. When board is totally tested, I solder the wrapping to avoid unwanted disconnections. For power connections, I use 25AWG wire mounted on the component side, and soldered on the solder side (just like components).
Leon | 04/05/2008