Folkrace 187


In Swedish Robot Championship there’s a tournament that is called Folkrace where autonomous cars is racing around a track. A sub class of this is a miniature race in scale 1:87.


So I started out on a Fuller Car system truck in scale 1:87. It have some really nice suspension and drivetrain but is made for following a iron track.


A NodeMCU development kit (ESP8266) almost fitted the truck bed, if i filed of 0.5mm of it i fitted perfectly.


I solved the steering by cutting a hole, big enough for a small servo, in the trucks chassis.
Then i glued on a small magnet that aligned with the already existing magnet in the steering system.


I then mounted 3 VL53L0X ToF (Time of FLight) distance sensors inside the cab of the truck. The sensors is pointing out from the same holes the windows are located.
The sensors will be used to locate walls and other trucks, it’s gives a pretty low resolution, but should be enough.


The space inside the truck bed is cramped, and I mean it. After fitting a small H-bridge, a couple of batteries and some cables together with a start module nothing more can fit.

As if the cramped space inside the truck bed was not a challenge big enough I choose to run Micro Python on the MCU.
It’s pretty nice and all, I could remotly upload new Python code to the flash and run my test scripts inside a Python interactive terminal.
You can find the code here: https://github.com/TimGremalm/Folkrace187

I found the challenges of the small form factor thrilling, it was a really fun adventure puzzling everything together and make it look pretty stock.
But there is room for many improvements! The Fuller Car system have a very nice steering system, and it’s very useful for a future design.
But Fullers drive train is a worm gear, it makes it strong but gives the drive train some momentum that makes the car slow in response when braking och switching between going forward and backwards. For future builds I would have to build my own drive train.

The cramped space inside the truck bed is due to a lot of premade modules and a lot of cables. A more effective way of doing it would be to make a PCB with a ESP8266, H-bridge and sensor bus built in.

Also I think I would abandon Micro Python for C and Free RTOS. The VL53L0X driver is very slow in Micro Python and it takes too long to read 3 sensors. The whole driver thing is pretty hard to fault find and gives great me a great hazzle.

Piratbilen V2

Background

The autonomous pirate-car was a huge success at Dreamhack W09, so Benjamin has built a new one. The Pirate-Car V2.

 

Parts

The chassi is from a RC-car, the stearing system has been modified with a servo and it has a better steering-radius. The motor and gearbox is original but it has a reflex-sensor built in the gearbox, the reflex-sensor is aimed to a gear that is painted half black. The sensor can pick up 3 peaks per revolution, these seams to be enough to make the PID-regulator stable.

It has five Sharp-sensors 3 in the front and 2 in the back.

The autonomous part

The Pirate-Car navigates by it self, it goes around tables, chairs, walls with no problems.
The two front sensors ,left and right, separately calculates how the car should turn. The two turn-values are then subtracted and makes a delta-value that is put out to the steering-servo. This works pretty well, in a corridor the car senses both walls and navigates right between the walls.

The Pirate-Car could sense if it’s stuck in several ways

  • Front-center-sensor senses a object close enough
  • Front-left and front-right sensors senses a object close enough at the same time
  • PID-regulator is delivering a high output that indicates a spinning wheel

 

If it’s stuck it starts the reversing-procedure, it reverse until the front-sensors feel it’s free or the back-sensors indicates a object.

Remote-possibility

The main-PCB has a IR-eye hooked up, this eye could pick up commands from IR-remote-controls. Benjamin has written a nice protocol for picking up commands.
Currently two commands could be sent:

  • Shut the H-bridge on/off
  • Increase/decrease the PID-regulators goal-value

With a Introkit09 we built a remote-control, we used the existing IR-diode to send out IR-commands. But the signal was weak, we then tied to switch to another type (TSAL6400) which were much brighter.

Future plans

  • Make a chaseing-mode, if someone/something tries to catch up the Pirate-Car it goes faster
  • When it slows down, brake-lights will glow
  • When someone tries to fuck with it, a loud annoying sound and flashing lights will go off
  • Following-mode, it tries to follow a person around

The autonomous part