Assembling the Elegoo Tumbller Robot!

Arna Roy
Tumbller Robot in an Obstacle Course
6 min readApr 6, 2021

--

Hello everybody and welcome back to my blog !

As it is known, the Tumbller Robot is the centrepiece of the series of projects I have been devoting myself to for the module of Engineering Design, therefore on this glorious and full-of-sunshine Easter weekend, I assembled and put life into my little Robot ! ツ

THE UNBOXING!

The components of the Tumbller Robot are remarkably packed and labelled within the box, with a Handbook of comprehensive instructions to guide us along the entirety of the assembly and operational procedure with pictorial illustrations !

Components of the Elegoo Tumbller Robot V1.0

Before we begin…

A valuable thing I recalled from school is ‘Righty-Tighty-Lefty-Loosey’ 〜 the only 4 words you must know to perfectly assemble the Robot ! I learnt this for a Junior Cert subject called ‘Technology’ which I required very very much help for, so Mr. Coughlan from Castletroy College, thank you for teaching me 〜 you would be so proud of me today.

STAGE 1

The first step of assembly entails the attachment of the Aluminium Board, Motor Brackets and DC Motors.

The Elegoo Tumbller is a ‘Differential-Wheeled Robot’ 〜 the two drive wheels are mounted on a common axis, and are independently powered and controlled through individual DC motors. Differential Wheeled Robots are used extensively in robotics, as their motion is easy to program and can be carefully controlled.

The DC motors are ‘bidirectional’ 〜 allowing for the clockwise and counter-clockwise rotation of the wheels. The velocity of the two wheels can be varied to make the Robot follow a desired or pre-determined trajectory !

For example, when V (left wheel) = V (right wheel), the Robot exhibits forward linear motion in a straight line, and when V (left wheel) = -V (right wheel), the Robot rotates about it’s instantaneous centre of curvature !

The Process of Assembly

STAGE 2

After careful assembly of the prior parts, the Wheels, Circuit Board and Foothold are installed.

The Circuit Board holds the Ultrasonic Sensor, Infrared Sensors, Arduino Nano Microcontroller and other important elements imperative to the programming and autonomous functioning of the Robot.

The Arduino Nano can be connected to a computer via a USB Cable to allow for the access and modification of the pre-installed Arduino code as per the requirements of any path of motion !

However, I anticipate the Ultrasonic Sensor to have a limited line of sight as it is positioned so highly, preventing it from adequately detecting and dodging obstructions that lay low on the ground, but we must only worry about that in due course ! 〜 though it is a relief that the upcoming Obstacle Course Project does not actually have any little obstacles, it is more resemblant of a maze !

The Process of Assembly

STAGE 3

The Fastener along with the Battery Box and Top Plate are installed subsequently, and all necessary wirings are completed. Wires from the Battery Box are connected to the Expansion Board, and further wires from the Circuit Board are connected to the DC motors.

Since my Tumbller Robot is of Version 1.0, the batteries are required to be removed from the Battery Box upon the requirement of a recharge 〜 and I can not devise a way to execute that without having to disassemble the Top Plate each time ! Nevertheless, I think the Robot is very robust and tough, so hopefully she can endure the repeated partial-dismantling !

Assembled ElegooTumbller Robot

And in classic Arna Style, we encountered some rather avoidable mishaps, but also performed some extraordinary crisis-management to correct the situation…

AND THE BIG REVEAL !

Assembled Elegoo Tumbller Robot V1.0

Using Arduino to Program the Robot !

The Elegoo Company provide us with ‘Tumbller.ino’ loaded onto the Arduino Nano - adequate Arduino Code to get the Robot going - Push button pressed once for Auto-Follow Forward Mode; twice for Obstacle-Avoidance Mode; thrice for Auto-Follow Backward Mode, 4 times for some amusing glowing lights and finally 5 times for Standby Mode!

Moreover, there is a Folder fulllll of useful resources available for download on the Elegoo website with further explanations and instructions on customising the Arduino Code as per the desires of the individual user. To begin the coding process, I first downloaded the Arduino IDE 1.8.13 Software from their official website. (Arduino is Open-Source and there is so so much available on the internet to increase your knowledge and proficiency!)

Fortunately Arduino IDE can be installed on a MacBook! But I would advise all aspiring-engineers to buy Windows Computers.. I’ve been told it makes you look tougher..

Within the Elegoo Tumbller V1.1 Function Introduction Folder, the most important Files are contained in ‘Lesson 1: Moving Control’. I believe a good understanding of the Code and Functions within the script ‘Balanced_Car’ would greatly help to program the Robot’s manoeuvres as per the requirements of the Obstacle Course !

○ Motor.h defines the related pins, and the pins are initialised in Motor.cpp. Pins can only be operated after initialisation!

Motor.h and Motor.cpp

○ Details of Speed Measurement are in Measuring_speed.cpp

Measuring_speed.cpp

○ The script ‘Balanced_Car’ calls ‘Motor.Pin_init()’ from Motor.cpp and ‘Motor.Encoder_init()’ from Measuring_speed.cpp in it’s Void Setup section, and proceeds to use more of the prepared functions in it’s Void Loop section to determine a course of movement for the Robot.

The Elegoo-provided code is under // because I was trying to write my own code !

○ In Motor.cpp, we are told that within Motor: : Motor (), MOVE [0 ➡ 3] correspond to movements Forwards, Backwards, Left and Right respectively.

Therefore, what I can understand is that : (Motor.*(Motor.MOVE[i]))(SPEED), with {i = 0, 1, 2, 3}, followed by a delay of (2000 milliseconds) in the Void Loop section of Balanced_Car will enable the Robot to move Forward, Backward, Left and Right consecutively in a loop for time.

○ Now, I must study the information and think a little further about the Speed, Delays and Distances required for the obstacle course, and the corresponding Forward-s, Left-s and Right-s needed for the Robot to make her way through to the end, catch some ping-pong balls and come back.

Little End of Work Reflection…

I am SOO certain that it is not as easy-peasy as I am currently thinking it is .. but this is a starting point and we will hopefully figure it out as we go along! I must also learn how to utilise the presence of the Ultrasonic Sensor as it will greatly help with the detection of walls and bumps, to prevent any potential Robot-injuries. I am aware that “Tumbller.ino” has a variety of fascinating functions - Obstacle Avoidance, Self-Balancing and alike but I am a little intimidated to study that right now! Baby Steps for me please…

Moving Forward !

The imminent Plan of Action is to re-write bits of the Arduino Code to assist the Robot through the long-anticipated Obstacle Course and help her with her show-stopping trick : keeping still and catching Ping-Pong Balls !

I am so excited to see how it unfolds ! Please read up on my other blogs for more information and follow my Instagram @engineering.arna for little behind-the-scenes updates !

Thank You and see you soon - hopefully with some Arduino progress ! シ シ

--

--

Arna Roy
Tumbller Robot in an Obstacle Course

Engineering with Management student at Trinity College Dublin. Blogs about my module of Engineering Design ! instagram.com/engineering.arna