A cheap to produce and easy to assemble robot for use in STEM education.

Similar projects worth following
ERNIE is a low cost (£40 all inclusive in single quantities) robot chassis designed to help teach STEM at schools/clubs/events. ERNIE features an Arduino mount and slots for both a line following IR sensor and a servo-mounted ultrasonic distance sensor.

Alongside the chassis designs, ERNIE comes with a fully developed lesson plan teaching students how to program it as a line following robot. Currently in development is a class project where each student is tasked with programming a traffic light. These lights are connected to a base station via a shared bus, and must produce their sequence synchronised with the state of the rest of the network. The lights are then placed around a complex line track to prevent multiple ERNIEs from colliding with one another.

E.R.N.I.E Timeline

A few years ago EARS were asked by the University of Surrey to create a project for an event called Headstart. During this week long event a group of sixth form students who are considering studying engineering at university have around 5 hours of lab sessions to complete a project.

E.R.N.I.E (EARS Robotic Navigator and Intrepid Explorer) was the project I came up with for the electronic engineering project. ERNIE is a very low cost line following robot that can be assembled and programmed by students with very little previous knowledge in electronics or programming.

Over the past few years the project has evolved to become (almost) fully re-usable by only requiring zip ties, screws and electrical tape to assemble. The only part that cannot be done again is the soldering of the PCB, but the assembled PCB can of course be re-used.

The Problem:

The problem with a lot of robot kits currently available on the market is that they are either very expensive and over complicated or they are lacking in tutorials that can be used in a educational environment. Most of these robots also either come pre-assembled or are too difficult to assemble during a single class. This leads to the robots being put together once and then just handed to students pre-made, taking away from the learning experience as well as requiring more storage space.

To solve these issues the E.R.N.I.E project has the following aims:

  • Simple - The  E.R.N.I.E kit should be easy to put together and not have any unnecessary/complicated features.
  • Cheap - The  E.R.N.I.E kit should be made as affordable as possible, this is achieved by keeping the design simple and using commonly available parts.
  • Reusable - The E.R.N.I.E kit should be easily disassembled so that the next student is able experience mechanical assembly as well as programming
  • Educational - The E.R.N.I.E kit should come with full lesson plans/tutorials on how to construct and program it that a high school student could follow

I know that so far at least one student who did the headstart E.R.N.I.E project has gone on to study electronic engineering at the University of Surrey. My hope is that by publishing this project (and eventually selling kits via tindie) more people can become inspired to pursue STEM subjects.

The solution

To fulfill the above requirements three things need to be produced:

  • The chassis - The E.R.N.I.E chassis is designed to be laser cut from 3mm stock (such as acrylic or plywood) and can easily be assembled using nothing other than a crosshead screwdriver and zip ties. The chassis is designed to be fully disassembled so that future classes also get the experience in mechanical assembly. If the school/club has access to a laser cutter or 3d printer a chassis can be manufactured by the students to introduce CAD/CAM software.
  • The sensor board - In order to keep the cost low a simple IR LED and phototransistor matched pair is used to detect a line. Five of these sensors are then placed in an array. By using five sensors more complex behaviours can be programmed in the future such as stops or forks. The PCB for this sensor is designed to be clearly labeled and uses only through-hole components to make them novice friendly. Unfortunately the soldering process is difficult to undo and reuse the components like the chassis. The sensor bar costs only ~£3.50 so new sensors could be produced by each class or they can be re-used by future classes.
  • The lesson plans - The most important part of the kit, that differentiates it from others, is the lesson plans that will come with it. Currently there is a lesson about how to program E.R.N.I.E as a simple line following robot which can be seen here.  In the future lessons will be added for: A more advanced PID line following robot; Obstacle avoidance using a ultrasonic distance sensor mounted on a servo. Alongside this E.R.N.I.E is part of a class project where a complex track is...
Read more »


Adobe Portable Document Format - 502.40 kB - 07/23/2017 at 14:08


assembly instructions.pdf

Adobe Portable Document Format - 3.10 MB - 07/23/2017 at 14:06



Adobe Portable Document Format - 31.28 kB - 07/23/2017 at 14:08


sensor board - PCB.pdf

Adobe Portable Document Format - 166.42 kB - 07/23/2017 at 14:08


sensor board.brd

brd - 57.90 kB - 07/23/2017 at 14:08


View all 7 files

View all 22 components

  • Traffic Light Network

    Sebastian Goscik07/23/2017 at 22:53 0 comments

    File 24-07-2017, 10 29 52.jpegThe idea

    Surrey EARS run an Arduino course every year. When designing this course we needed some sort of extravagant project at the end to put everyone's newly learnt skills to the test. The idea we settled on is a traffic light network. Each student is tasked with constructing one of many traffic lights which are all connected along a common bus. As the students enter the room they are greeted with a complex line following robot track with multiple crossings. Each student is given a sheet that defines and when and where their traffic light is. It is up to the class to implement all the lights (20 in our case) to prevent the line following robots on the track from crashing into each other.


    Each traffic light is a relatively simple circuit consisting of an Arduino and 3 LEDs (and resistors) on a breadboard along with a connection to the common bus. Earlier on in the course the students learnt how to use I²C, they will now get to apply what then learned and create a slave device on a shared I²C bus. There is then a base station unit that serves two purposes. Firstly it sends a regular heartbeat along the bus on the general call address which is used to synchronize all the traffic light nodes. Secondly it allows the robots on the track to query the current state of a traffic light. The robots connect to the base station wirelessly via a NRF24L01. The base station was implemented on a ARM mbed board due to the fact it supports "multithreading" allowing the heartbeat to run separately from the query interface.

    The base station produces an incrementing heartbeat at regular intervals. This heartbeat is a single 8 bit number that increments from 0 to 24 and then resets. This heartbeat is sent out on the general call address which is unfortunately disabled by default in the wire library that comes with Arduino. This can be remedied by using the following code after setting up wire:

    bitSet(TWAR, TWGCE);

    The students need to create a interrupt service routine that will update their state and attach it using the onReceive function of the wire library. Each student is given a handout at the start of the session that provides them with a unique address as well as a list of what state they should be in at what heartbeat value e.g:

    When a robot is going around the track, it will stop whenever it reaches a junction marker, a solid line across the track. This triggers all the sensors of the robot's sensor bar which is easy to detect. When the robot stops at a junction it will begin to periodically poll the base station for the status of the light it is currently at. Once the robot gets a green light it will travel forward for a set time to clear the solid line caused by the junction. Since the track is a loop the robot only needs a simple counter to know which light it is at. When the robot polls the basestation, the basestation then in turn does a read request to the corresponding traffic light. The students need to create a interrupt service routine which will return its current state and attach it using the onRequest function of the wire library. The traffic light should return a number between 1 and 4 depending on its state.

    This simple use of read and write requests means the code the students need to create remains simple while covering everything they need to learn. The students do not need to worry about commands/register values etc.


    Despite what is written in multiple places on the internet about I²C only being able to go ~2m before capacitance renders the bus useless, we managed to get this system to work over 20m of CAT5e cable with crudely soldered connections, daisy chained through breadboards, every meter.

    The signal quality over this bus is actually surprisingly good, the gotcha that caused bus instability was not bus capacitance. The issue comes from the Arduino, when it is unpowered the SDA and SCL lines get pulled to ground. Since this is a multi-drop bus, the second...

    Read more »

  • Line following

    Sebastian Goscik07/23/2017 at 21:33 0 comments

    What is a line following robot and how does it work?

    As you might have already guessed, a line follower is a robot that follows a marked line. In this project the goal will be to design a robot that can navigate a track with multiple turns made from black electrical tape. The way the robot will be able to detect its position relative to the 
    via an array of 3-5 Infrared (IR) reflectance sensors. These sensors consist of two parts, an IR 
    an IR photodiode. The LED emits light, which is then reflected by the surface into the photodiode:

    Depending on the colour of the surface the amount of light reflected will vary. In our case we will be using a white surface with a black line. As can be seen in the previous diagram, the black surface absorbs all the IR light while the white reflects it all. The photodiode will produce a current proportional to the amount of IR light it receives. Using this we can build the following circuit  (D1 = IR LED, D2 = IR Phototransistor) to detect whether the sensor is above a white or black surface:

    While ideally the black line will absorb all IR emitted by the LED, in reality this isn’t the case. The
    reflected IR and ambient light will mean that the sensor will output a small amount of current even on the black line. 

    The minimum number of sensors needed to successfully follow a line is two. One on either side of the track (you can get away with one sensor but its unreliable). Using two sensors tends to lead to a lot of wobbling so it is recommended to use three, one on the line and one either side.

    Once you have an array of sensors you can then steer the robot based on how much light each one receives.

    Programming tutorial

    The above text is an excerpt from the provided worksheet which is attached to this project, or can be found here. This worksheet will take you through how to program a line following robot even if you have no programming experience. It teaches: how to use the arduino software; how to use the analog and digital pins on an arduino; how conditional statements work; and how to install and use the adafruit motor shield library.

  • The past, present and future of E.R.N.I.E

    Sebastian Goscik07/23/2017 at 19:41 0 comments

    E.R.N.I.E Timeline

    The history of E.R.N.I.E, from left to right: The first version that was produced for the headstart event, The fully reusable version of ERNIE that is available on github, The future improved ERNIE that features a caster for the rear wheel as well a platform to mount extra electronics.

    E.R.N.I.E v1 - The past

    The first version of E.R.N.I.E was produced in a week for the first headstart event at the University of Surrey. Five units were produced, one completed unit for demonstration and 4 kits for students to assemble. It was made out of wood due to that being the only material on hand and meant we would make any last minute modifications if necessary. The pieces were hot glued together making the chassis very robust but could not be disassembled for future classes. The sensor bars for this version of E.R.N.I.E were created on stripboard, which caused many problems for students who were soldering for the first time. In this version of the chassis the motors are held on with zip ties! The wheels need to be drilled to allow them to fit directly onto the motors and the large dowel. The rear wheel had too much traction and had to be wrapped in electrical tape to allow it to slide.

    E.R.N.I.E v2 - The present

    For the following year, more E.R.N.I.Es were required, this time eight kits were needed. For this second run of E.R.N.I.Es some improvements were made. The chassis is now made of acrylic as it has a more professional look and no longer requires glue for assembly. Using the same method as the MeArm, T slots are used to hold captive nuts in the acrylic such that it can be screwed together and taken apart again. This includes proper screw mounts for the motors. The rear axel is now metal, and appropriately sized, unfortunately tape is still required to allow the robot to turn. There is now also a slot for a front mounted servo with the intention of using it together with a ultrasonic distance sensor for obstacle avoidance in a future class. Due to the problems caused by the strip board sensor bar, a proper PCB was created for this version. 5 sensor bars were panelised onto a 10cm x 10cm PCB this resulted in a final price of only £0.45 each.

    This version of the chassis is what is currently available for download and has been very well tested over several year. The sensor bars work very reliably and the chassis is extremely rigid with the sensor bar holders being the only exception. Around 20 of units of this design have been build.

    E.R.N.I.E v3 - The future

    Driven by the desire to sell E.R.N.I.E kits, v3 is currently in the work. Taking the lesson learnt from the previous two iterations the following improvements are being implemented:

    • Rear caster - In order to remove the reliance on tape to make the rear wheel slide, v3 will feature a caster style wheel. The caster as shown above does not function particularly well. It does not turn properly and has a significant wobble, this requires further development.
    • Optional platform - v2 of the chassis had very limited scope for use outside of line following due to a lack of space to mount any other electronics. To solve this in v3, there is now an optional platform that can be installed above where the battery lives.
    • Sensor bar holders  - The major problem with v2 is that the sensor bar holders snap easily. To solve this in v3 the sensor bar will be redesigned with two screw holes and the new holders will attach to it in the same manner the motor mounts do.
    • Axel  - A new method needs to be devised for retaining the rear axel that does not involve electrical tape. O-rings are a potential candidate for this, but this has yet to be explored.
    • Servo - A notch has been added to the servo mount to prevent damage to the wires when installing it.

View all 3 project logs

  • 1
    Laser cutting

    The chassis can be laser cut from 3 materials each with their own pro's and con's:

    • Acrylic - Looks good and is affordable but extremely brittle and easy to break.
    • Plywood - Cheap, strong and can easily be modified but some people think it looks less attractive.
    • Polycarbonate - More expensive than acrylic but not brittle.

    I personally would recommend using plywood as it is more robust and can easily be hacked by students wanting to modify their robots.

    If you do not have access to a laser cutter there are several companies who offer laser cutting services for very reasonable prices online. I have included a ready made file for Razorlab. The design fits onto their P1 size sheets and will set you back ~£11.50 for a plywood E.R.N.I.E, although I am sure in bulk the price would decrease. Be sure to use 3mm thick material

  • 2
    PCB Manufacture

    I highly recommend getting professionally manufactured PCBs from one of the many Chinese PCB fab houses. I used Elecrow and got 50 boards produced for £22.57 (45p a board!). If you would like to recreate the exact boards I got made you can simply visit this page and enter the following settings:

    • Layer - 2
    • PCB Thickness - 1.6mm
    • Copper Weight - 1oz 35um
    • PCB Size - 10cm Max * 10cm Max
    • PCB Color - Black
    • Suface Finish - Hasl (lead free)
    • PCB Stencil - NO Stencil
    • Panelizing - 2-5 copies
    • Lead time - Shipped in 4 to 7 days 

    The zip file you need to attach can be found here

  • 3
    Wheel Prep

    Each kit needs 3 wheels, two of which need to have their hub enlarged to 5mm. This can be done very easily on a drill press running on a slow speed or by hand with a drill bit.

View all 17 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates