You are currently browsing the tag archive for the ‘FischerTechnik’ tag.

Here’s another iteration of an Arduino controlled autonomous floor robot. This one uses a Tamiya gearbox and servo steering, with infra-red and touch sensors for obstacle detection.

The robot chassis is built from Fischer Technik and a rectangular section plastic downpipe fitting. The parts are held together with screws, plastic cable ties, gaffer tape, glue and rubber bands.

A Tamiya double gearbox powers the back wheels. The white spacer between the gearbox and the red plate of the robot is a PVC downpipe adapter. In this project, both motors are always driven in the same direction and speed.

A basic Futaba servo steers the Fischer Technik front wheels. The front axle is screwed to the servo horn and cable ties attach the servo to the chassis.

One of the challenges with this kind of robot is that whatever sensors you use they only work with 80% of household obstacles. For this robot we used two Sharp infra-red distance sensors pointing slightly left and right. The Sharp sensors have quite a narrow beam. Setting them pointing outwards works well for detecting approaching walls, but leaves a dead-spot in the centre that misses narrow objects like chair legs. The infra-read sensors also miss low (15-35mm) obstructions that the robot can’t drive over.

To deal with things that slip past the IR sensors, we added a touch sensor bar to the front, about 35mm above the floor. This is made of two strips of wood. Two microswitches were glued with epoxy to one strip and the second strip is positioned in front of the switches so that the switches are closed if the front bar hits anything along its length. The front bar was hinged with gaffer tape. This touch sensor gets quite a beating so it needs to be strong and well attached.

Wiring

The motorshield controls the two DC motors in the gearbox. Separate 9v NiMH battery packs provide power for the Arduino and the motors.

The touch sensors and IR sensor are wired to analog ports on the Arduino and polled to detect obstructions.

Software

The software that controls the robot has a simple set of rules:

  • if an object is detected within a few hundred millimeters on either side the robot steers away from that side until the obstruction is no longer detected.
  • if an object is detected close up on either side, or moderately close on both sensors, the robots backs up and turns. The turn takes it away from whichever side is closer to the obstruction.
  • After the robot backs up, it remembers the turn direction for 3 seconds. Without this rule the robot could back up in alternate directions, leaving it still pointing at the obstruction.

The Arduino source code for this project is at https://bitbucket.org/johnmccombs/bot4/downloads and you can download a zip file here.

Parts

  • Arduino Duemilanove
  • Adafruit motorshield
  • Tamiya double gearbox with wheels
  • Sharp GP2Y0A02YK0F IR distance sensor. The IR distance sensors sensors come in several versions, optimised to work over different distances. We used one designed for 200 – 1500mm range.  The GP2Y0A21YK0F which works over 100 – 800mm, and has a wider beamwidth, might be a better choice
  • 5mm square section wood strips for the touch detector
  • 2 x microswitches, recovered from an old mouse
  • plastic cables ties, epoxy glue, rubber bands, M3 machine screws and nuts.
  • 2 x 6-cell AA battery pack and NiMH batteries
  • Fischer Technik baseplate, axle and wheels

Results

This robot negotiates the floor fairly successfully. Going forwards the sensors detect pretty much everything. The main problem is that the robot is fairly tall. Some overhangs or sloping chair legs can strike the top of the robot without being detected by the IR sensors or hitting the touch sensor. Similarly objects  that fit under the touch sensor stop the robot.

There are no sensors on the back of the robot, so it’s unaware of hitting something while backing up. The robot can get stuck in a close space where the robot can’t back up, but the IR sensors show an obstruction. When the happens the robot will backup continuously without success. This situation could perhaps be improved with some software changes.

After blinking an LED with an Arduino, it seems like building a wheeled robot is a popular project. It turns out making a self-navigating robot, that can deal with arbitrary household obstructions, is an interesting problem. Here’s the movie of our first attempt.

We used continuous-rotation servo motors to provide motion and steering. These are easy to control and you can drive them directly using the Arduino 5 volt power. We used and an Adafruit motorshield to control the motors. This isn’t strictly necessary for a servo, but it is convenient.

Arduino and Motorshield

Parts

  • Arduino Duemilanove
  • Adafruit motorshield
  • 2 x continuous rotation servos
  • Sharp GP2Y0A02YK0F IR distance sensor. The IR distance sensors sensors come in several versions, optimised to work over different distances. We used one designed for 200 – 1500mm range.  The GP2Y0A21YK0F which works over 100 – 800mm might be a better choice
  • Mini breadboard
  • Breadboard wires
  • 6-cell AA battery pack and NiMH batteries
  • Fischer Technik baseplate, 2 x pulleys and axle

Rubberbands hold the motors together and attach them to the baseplate. If the rubberbands are tight, there is enough friction to prevent slipping. Rubberbands also attach the  battery pack, Arduino and breadboard to the top of the robot. Bluetack holds the IR distance sensor on the front.

The two Fischer Technik pulleys and axle form a trailing castor.

The IR distance sensor triggers a random turn when the robot comes within about 350mm of an object.  The Arduino powers the sensor from the 5v line. The sensor outputs a voltage that decreases with distance: 2.7v at 100mm down 0.5v. The Arduino analog pins measure the voltage to sense obstructions.

Arduino program source code is on github – download here or visit the repository.

How did it turn out? The robot navigates well in areas with solid walls.  However the IR sensor has quite a narrow beam, so the robot will hit small obstructions on the floor or overhangs. Also the sensor does not reliably detect glass, reflective object or black objects. The robot requires human help from time to time.

FischerTechnik is a German-made construction toy, that can be used to make working models of machines. Unlike some other construction toys, the pieces are not aimed at making a particular model – instead they provides the means for devising your own contraption/gadget/device/thing.

FischerTechnik consists of a wide variety of  parts that work together, including blocks, wheels, axels, panels, platforms, connectors, hinges, clips, base plates, gears, motors, worm drives, lights and wires. At a more advanced level you can get components such as sensors, actuators, and software for programming.

The sets typically come with a booklet of models and instructions to get you started. Some sets also have a booklet covering some of the principles that could be explored using the suggested models.

Unlike many other toys that only really fit a certain age group, FischerTechnik has the potential for more long term use:

A little more co-ordination and care is required than Lego, but even a 4 yr old can make satisfying static models – e.g. space ships, cars etc. Another way we use FischerTechnik is for an adults to make something that can be played with – this means we can generate an endlessly changing series of different gadgets/models to play with (cars, cranes, scales, buildings etc.).

It can be especially useful as a tool to understand some of the mechanical movements that can be difficult to visualise – such as how a rotating movement can be turned into the backwards and forwards movement (e.g. windscreen wipers on a car), how worm gears work, etc.

We have also successfully combined FischerTechnik with electronics, in the form of Arduino components (an open-source electronics prototyping platform).

There is a FischerTechnik website,which includes pdf’s of the instruction booklets for some sets (labeled ‘Einzelteilliste’ on the product pages). These give a good idea of the types of components available.  Searching YouTube and Flickr also provides examples of what people have done with it.

(For those, like ourselves, living in New Zealand, FischerTechnik is not something you can find in a shop. However with the internet you can always get some delivered to your door. Eminent Electronics in Hamilton are a distributor if you wish to deal more locally.)

Flickr Photos

RSS Links

  • An error has occurred; the feed is probably down. Try again later.

RSS More Links

  • An error has occurred; the feed is probably down. Try again later.

Enter your email address to subscribe to this blog and receive notifications of new posts by email.