3d printed Mobile Robot for STEM education

Its a 3d printed Mobile robot for STEM education. Just 3d print model files, install Ardublock and start learning about programming robots!

Similar projects worth following
After discussing for months and brain storming different ideas on how to develop a locally made robot that can be used by teachers like me to teach, students to learn and researchers to experiment with, we've managed to make our first 3d printed mobile robot. For start we took a design from thingiverse and got it 3d printed. We added an Arduino, did some programming and it turned out pretty good.

The main idea behind this is to have affordable "Made in Pakistan" robot kits that are affordable by everyone. We have a few research labs that have the latest in robots such as the NAO humanoid, the People bot and other kits. Unfortunately these have been acquired after spending large sums of public money or donations. What we wanted was to start making robot kits that can be used by not only these research labs but but by high school kids, college students and hobbyists. This mobile robot is a first in that series. We will also be developing quad copters, humanoids and other forms.

The robot chassis is an open source design utilized from thingiverse. Please note that the 3d model was originally designed by user outcastrc on thingiverse, it is not my design. The electronic parts include an Arduino Uno or Mega (Can be any other arduino as well), an ultrasonic distance sensing module, a bluetooth module for controlling via a mobile, continuous servos for driving. The drive is differential drive and the kit can be easily programmed using Ardublock an open source drag and drop tool for programming.

The robot has three components

1. The 3d printed chassis

2. The electronic parts and sensors

3. The programming environment

All of these components are completely open source and can easily be used by anyone to create their own kit and start to learn about robotics, programming and electronics. 

Here is a video

Here is a video of kids using this kit in a workshop. 

  • 1 × Arduino Uno or Mega
  • 1 × 3d printed parts
  • 1 × Sonar Sensor HC SR04
  • 1 × Bluetooth Module HC 05
  • 2 × Continuous Servo Motors

  • Tutorial 1: Simple Unguided Motion of Robot

    shamylmansoor08/04/2014 at 07:40 0 comments

    In this tutorial we will learn how to program the robot to run in a single direction continuously.

    Step 1: Electrical Connections

    First make sure that the robot is assembled properly and all the electrical wires are connected properly. The Vin and GND should be connected to the battery and the servo motor’s two power wires should also be connected to the battery and the third wire which is the signal wire (yellow wire) can be connected to any digital pin of the Arduino. The wire connections can be seen on the diagram below:

    Step 2: Opening ArduBlock Graphical Programming Tool

    ArduBlock is software tool used for graphical programming. Graphical programming is a fast, fun and easy method of developing your programs without getting in too much hassle of writing long lines of code.

    Using this tool you can directly implement your algorithms by just dragging and dropping the required blocks onto the screen and connecting them appropriately. Go to your desktop and open the Arduino IDE, the following window will appear

    Now follow these steps:

    1. Click the tools tab and click on ArduBlock.

    This will open the ArduBlock software.

    After clicking, the following window will appear

    As you can see on the left there are many tabs like the Control, Pins, and Number Constants etc. which we will be using in order to program our robot.

    Step 3: Programming

    In this step we will learn how to use ArduBlock to program our robot.

    First we will make a program for the robot to move in a straight direction but first we should see how the servo motor which drives the wheels of the robot operates.

    The servo rotates at an angle specified by the programmer. So for turning a single direction we can give an angle of 360 degrees for it to turn. In the case of our robot in order to make both the servos (and so both the wheels) in the same direction we will need to give 360 degrees to one and the opposite ,-360 degrees to the other.

    Now let’s see how we can do this in ArduBlock. Follow the given steps:

    1. First click on the ‘Pins’ tab on the left of your screen the following options will appear

    2. Now drag the servo block from the ‘Pins’ tab and place it on the programming window as shown below:

    As you can see the servo block has two numeric inputs, one is the number of the pin on which the servo’s signal wire (yellow wire) is attached. Now repeat this step again so that both the servos have been added. Connect the second block below the first one as shown in the image in step 3.

    Make sure that the pin number given to the block for both servos is the same as the number of the digital pins of the Arduino to which the motors are connected. In this case let’s assume that they are connected to pins 1 and 2 respectively.

    3. After adding both the servos give an angle of 360 degrees to the servo which drives the right wheel and -360 degrees to the left one. After this step the screen should look like this

    Now if we run this program the wheels will rotate only once so in order to make them rotate continuously we need to run this program in a loop.

    4. Go to the controls tab the following options will appear

    5.Now drag and drop the ‘loop’ block onto the screen and connect it to the top of the first servo block. The loop block will automatically extend and cover both the blocks like shown below:

    Now our programming portion is complete. Save your program.

    Step 4: Uploading

    Connect the Arduino on the robot to the USB port of your computers via the USB cables but first remove the Vin wire connected to the battery before connecting to the computer. Once connected then click on the upload button. It will take a few seconds for your program to be uploaded onto the Arduino.

    After the uploading is complete remove the Arduino from the computer and reconnect the Vin to the battery. Now you robot will keep on moving in a straight line indefinitely until its battery gets drained!

    Note: If the right and left servo motor connections are interchanged the robot may start to spin on the spot to correct this problem if...

    Read more »

  • Programming the Robot

    shamylmansoor08/04/2014 at 07:27 0 comments

    We have developed this project to teach programming to high school kids. It can be used by university students by replacing the Arduino board with something more powerful like the Raspberrry PI giving it features like openCV and python programming. 

    In the first version we use an open source graphical tool called ArduBlock to program the robot. This makes it easy for students to learn programming just like the learn to programs with tools like Alice and Scratch

    Ardublock is a graphical programming language for Arduino. To get started with programming the robot the following steps are required.

    1. Download and Install the Arduino IDE.

    2. Read the getting started page. (Optional)

    3. Download and install Ardublock 

    4. Open Ardublock and start programming!

  • Assembling the Robot

    shamylmansoor08/04/2014 at 07:17 0 comments

    Assembling the robot requires a bit of finishing of the 3d print. The original instructions by user outcastrc on thingiverse are

    1. The chassis is designed to use standard size 360 degree rotation servos. All holes are designed around 3mm screws, with most holes printed at 2.5mm so you screw directly into the plastic. 2 holes (25mm apart) are included on the front of the chassis for mounting a sensor.
    2. The battery plate includes everything you need to mount a 5 AA battery inside and an arduino uno on top. The plate also includes 2 holes on each side set 25mm apart to add sensor modules as needed. Smaller packs could be used with a piece of foam to act as a spacer. There is 20mm between the plates.
    Wheels use any standard 1.9 RC tires and bolt to the round servo horns.
    The castor is designed around a front tire from a micro RS4. It uses 4x8mm bearings for the wheel as well as the pivot. Black electrical tape could be used as well to create a tire for the wheel. I use 4mm stepped bushings in the bearings so I can use 3mm screws. An adaptor is included to add a sensor module to the back of the chassis if needed.
    3. A stand is also included for storing / working on your programming. It keeps the tires slightly off the ground.

    The complete instructions on assembling the robot are in the instructions section of this project.

  • Printing the Kit

    shamylmansoor08/04/2014 at 07:04 0 comments

    For printing of the kit I used a design from thingiverse and got it printed from a friend as I don't have direct access to a 3d printer. There are several extra parts of the 3d model, like a stand for the robot, which can ignored to save on printing costs. Here is a video of the mobile robot being printed by my friend in Karachi.

View all 4 project logs

  • 1
    Step 1

    Install the front castor and sensor supports. They need to be screwed in. 

  • 2
    Step 2

    Assemble the castor wheel and support

  • 3
    Step 3

    Screw the servo horn with the wheel. The tires are standard 1.9 RC tires. We have used double tape inside the tires and the wheel to give some traction to the wheel.

View all 6 instructions

Enjoy this project?



georgefomitchef wrote 05/01/2016 at 07:08 point

Endurance is offering a FREE SelfieBot to all colleges and universities!

Now any school or college can make a fully 3D printed practical robot.

Endurance provides free open source code of the SelfieBot for any school or


The SelfieBot is a stationary telepresence system that can be developed by a student or a group

of students entirely on their own (Do It Yourself). The SelfieBot DIY platform is a tool that empowers students to turn mobile device into a smarter machine.

With the help of the SelfieBot you can record video and broadcast yourself to others and the

camera will follow you while you speak and move around.

The SelfieBot automatically tracks your face meaning that you will be always in focus
while recording.

The SelfieBot allows you to attend classes remotely.

The SelfieBot is the perfect tool to interact with team members that cannot be present at your

The key thing is that a SelfieBot is a movable mount for a smart device.

The good thing is that all of the SelfieBot’s parts can be purchased on Amazon or Ebay and the

assembling process is every easy. Simply follow Endurance’s step-by-step
instructions, and you can quickly create your own SelfieBot robot, improve it,
and even share it with others. We are looking forward to create a SelfieBot
community! Some discussions groups with discussions are here:

Developing a SelfieBot will not require a lot of time or special knowledge. We tried to make

the tutorial as simple as possible and we are keep improving it.

We provide everyone with the following items:

A CAD scheme

STL files for 3D-printing

The firmware for Arduino

An APK file for Android

A list of all the parts that you need to build your own robot.

Should be enough for a quick start.

Key features of the SelfieBot:

Turns your mobile device and tracks the faces using Google API and our application.

Can be controlled remotely and allows you to rotate on two separate axes.

The DIY SelfieBot can be used to help improve your skills in robotics by providing you the
opportunity to create your own robot based on the SelfieBot foundation.

Current beta features which we plan to have finalized in the near future:

IOS /Windows support

IR tracking system.

Wireless charging.

Additional external battery bank

Motion sensoring

Voice control systems

Our mission is to educate and encourage students and others by creating a friendly robotics

network and to empower them by providing the skills necessary to create and
develop their own robots that will help people in the field of Education.

Hobbyists and students are welcome to join us: Improve your skills, knowledge and gain more

experience by teaming with Endurance and our DIY SelfieBot.

Useful slide decks:

Video footages

Together we will move the robotic industry forward!

As soon as we do it for free any donations are welcome on our official

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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