The <20€ European open robot kit v1

The purpose is to make a bill of material to make an easy to build, easy to hack, cheap and full of features robot.

There are various builds, so it's better to list components that fit the bill (easy to use, cheap and readily available from arduino kits and chinese e-commerces)

Microprocessor

The biggest choice would be between an Arduino Uno like platform or tiny and breadboardable packages like the Arduino Nano.
I personally prefer any breadboardable microprocessor, because then you can use directly the breadboard to add sensors, while with a shield approach a breadboard may still be needed, because Arduino Uno has only one 5V regulator, with only 500mA.
Breadboardable processor boards are also usually cheaper :)

ATtiny family of processors are even smaller than Arduino Nano, have fewer pins, less memory and ram, but also require less power to stay active.

If you are not a beginner you should really get a ESP8266 Nodemcu board from Aliexpress as brain. They can be programmed using usb and is based on the ESP8266, the coolest mcu in the world(citation necessary). This microprocessor is an ARM clocked at 80MHz, with Wi-Fi integrated, 8 usable GPIO, 3 hardware serial ports, 1 useless analog pin, 1Mb flash(which is huge for a mcu) that can be used to store web pages, can live with 200-500mA and cost 5$(with cost reducing every month!).

Raspberry Pi Zero is another attractive solution, with 26 GPIO, small form factor and can support a small Operative System. Disadvantages are that OS have a boot time, you have to wait 30seconds to several minutes for it to be ready.

Sensors

photo104481015576242313.jpg

photo104481015576242312.jpg

photo104481015576242308_0.jpg

Limit switches, RFID readers, HC-SR04 and ADXL335 are some of the cheap sensor that can be added for obstacle avoiding and recognition.
Accellerometer can give precious info about the balance of the robot, like if it is on a slope, tilted upside down, or just crashed against something(ouch!).
The ultrasonic ranging is used to “see” obstacles ahead before hitting them, plus adds a cute factor because they seem eyes.
More ultrasonic rangefinders can be used together, but they could interfere with each other.
RFID readers have a range of 0-5cm and read tags or cards; they can be used by a wall following bot to find a charging station. You can even drop a rfid tagged object and ask a robot to find it! Or use info within the tags to give commands to the robot.
Limit switches are like touch probes, when open all it’s all right, when it’s close something is pressed against the switch. The lever can be joined with an antenna to get more range.

Laser diodes can be found at few cents in lots of 5 or 10, and can be used with phototransistors to add precise rangefinding, see exactly where the robot is going and find how accurate are robot’s movements.

Infrared phototransistors and infrared leds can be used for communication with other IR devices and location awareness.

Indicators

Once you have your nice robot it would be nice to add to the robot some way to communicate with humans. With an ESP8266 you can get info from your robot using a web page, but seeing a light or a beep on a robot can mean less time to spend debugging, a friendlier robot and add personality.

Beepers are small piezoelectric cylinders, which emit a buzzing sound, with frequency proportional to the pwm ratio used on the pin driving them.

buzzer.png

You can find buzzers included in many Arduino starter kits, or you can buy 10-20 pieces for 2-3€.

Leds are the easiest way to get an output from a microcontroller. Using one pin and few mA you can use all pins to drive leds.

leds.png


Even if leds are usually included in starter kit, is a better deal to buy them hundreds at once, for few €. The best for a beginner would be 5mm ones, which can withstand wiring errors better than 4mm ones.
There are also RGB leds, which have 4 legs, and are just a red, a green and a blue led in one package. You can make all color in a rainbow with a RGB led and 3 pins. Usually cost 1.2-2 times more than monocolor leds, always best to buy in packs of hundreds.
Be careful that leds have polarity, longer leg +, and need a resistance to work properly(before or after is indifferent).

7_segment_led.png

Seven segment leds are just 7 leds glued together. They take 7 pin to drive and can output all digits and some letters. Cost approx 0.16€/piece, best in packs of 5-10.

Motor drivers

photo104481015576242307.jpg


The first is the L9110 driver module(1.5-9v, 250mA), the second is the L298 driver module(5-15v, 2000mA). Both are pretty cheap, but the first can drive lower voltages, while the second has also a 5v regulator and can drive higher voltages.
There are also wonderful arduino shields to drive 4 motors based on L293d(3-12v, 500mA) for about 3€. I tested them, they are awesome!
Motor divers are in function to the motor you want to use, higher current drivers can indeed drive littler motors, but are less efficient or have a minimum energy requirement, so it may drain unnecessary current from battery or not have enough remaining voltage for the motor.
Motor drivers which withstand less current usually are cheaper end more efficient with small loads, but can overheat and smoke out if they have to drive a bigger motor than intended, or used with a battery with higher voltage than the max of driver.

Motors

small_stepper_motor.png

The small 5v 28BYJ-48 is a really common and useful stepper motor, can be found for 2-7€ in most e-commerce sites, has high torque for its size, and can be driven trough a small board often included, which has a ULN2003 and convenient GPIO headers.
You would need them when you want precision, and speed is not much important. With small wheels and a good structure these can carry a payload of 500-1000grams, and eating 200-400mA depending on load. Anyway quality varies so the performance may be different(higher prices doesn’t mean always more quality).

3-6v_dc_motor.png


These yellow DC motors take 3-6v and 100-300mA each, they are often sold with matching wheels for 2,50-5€ each motor+wheel set.
They can be used with L9110 driver modules or L293d based drivers, can attain a 10km/h speed on flat terrain and really small load, the structure can withstand as much as 2kg before bending.

12v_motor.png


You can expect a big torque/rpm couple from these 12v geared motors, one of these can be used where cheap motors don’t make it, and can be still purchased with 7-40€ depending on height of the motor, quality of the gears and optional encoder(+10€ in price usually).
They must be driven with a L298 driver or better, stall current of these easily reach 1A.
Motors with encoders can be used to get a feedback about where the motor axle is, if it is turning and in what direction, what is the real RPM and can be used to attain a precise control of movement like turn of n degrees.

The easiest setup for a robot is 2 motors and differential steering; when both motors go forward the robot go forward, if one of the motor is slower or idle, the robot turns.
Even with motors of the same batch and vendor there are usually differences between motors, so that their speed is never the same, but differ by 5-10%.
Without encoders, if you are going to use differential steering you shoud try and tune the fastest motor to go slower to match the speed of the other motor, by giving it less PWM.
With encoder is as easy to move both of n ticks, just as like they where steppers.

Batteries

No alcalines >.<
I’ve found 3 solutions so far:

  • 4x NiMh AA
  • 2s LiPo cells
  • 5v regulated LiPo batteries for cellphones
  • 1 cell LiPo or LiIon with buck boost

NiMh are the heaviest, but can be composed to find the right charge/voltage. LiPo 2s are best choice for walking robots, 5v regulated LiPo are best for lazy people like me.ts
The biggest downside of usb batteries is that limit charge, but charging them via usb is sooo comfortable.
Some chinese sellers even sell usb batteries with solar panels on them. These batteries can be a dead easy way to add solar power to robots, even if they take a full day to recharge 5-10Watts.

One cell LiPo can be used with a voltage booster to provide 5v or more from a 3.7v cell.

Most of processor board out of there run also at 3.3v, which means a single LiPo cell at 3.7v is more than enough to power them. Regulators also let robots to have a smoother operating time, having always the same voltage to work with, while battery voltage lowers gradually when discharging.

Memory

Even if 32Kbyte sound enough for most purposes, a permanent memory can be useful to store information, like a map, complex commands or sensor logs.

uSD_reader.png

The I2C EEPROM chip can be used to store up to 256Kb in the robot, they cost about 1€.
For bigger size of memory an uSD card may be better, as it’s easy to find a reader module and uSD card for under 4€.
There are also cheaper uSD cards with about 128Mb; they may seem really small, but are huge storage for a microbrain with only 32Kb.

Now uSD cards have dropped in price, you can get 128Mb sd card for less than 0.7€ or 8Gb for 2.7€. Sd cards can be swapped for a more capable one later, or a fresh one.
Another use is to program the robot to accept parametric instructions like “forward 100”, and then use the sd card to store the actual program to execute.
It can be really useful as a black box, by storing sensor values and actions taken, but take care that usually microbrains have slower data output than sd cards, so sending 1000bit/s to the sd card may make the ram buffer to overflow or make the main loop sloooow.

One very cheap sensor that I
One very cheap sensor that I like is the IR sensor. It lets you use a TV remote to either control your robot, or simply change its modes or settings. Takes up only one pin, so much better than dip switches or jumpers, and you can change the modes while the robot is running. You can also re-use it for communication between robots, just add an IR diode.

added

An IR receiver can also be used as proximity sensor; need to try that

Bump

This could be useful to beginners like i was i before i joined LMR.
As style i tried to imitate the oddbot guides, which aren’t available anymore.
Comment here for suggestions and critics.
I’m going to make an interactive webpage to get the BOM for a custom cheap robot using these parts:)