Table of Contents
Are you ready to dive into the exciting world of robotics? Building your own SoccerBot a Bluetooth-controlled robot using Arduino—is a fantastic way to start. With 3D printable parts and accessible components, this SoccerBot project is perfect for hobbyists, students, and educators alike. In this in-depth guide, we’ll walk you through every step of building your own SoccerBot, from understanding the key components to assembling, coding, and testing your robot.
What is SoccerBot?
The SoccerBot is a dynamic and responsive robot designed to mimic a soccer player’s movements. Controlled via Bluetooth using the HC-05 module and powered by an Arduino microcontroller, Robot can move in multiple directions. It’s perfect for interactive play and learning. The 3D printed parts allow for easy customization and make assembly more straightforward and fun.
Whether you’re a beginner or a seasoned builder, Soccer Robot brings electronics, coding, and 3D design together in one powerful package. The Soccer Robot is more than a robotit’s your gateway into a fun world of hands-on learning.
Components Required
To create your Soccer Robot, gather the following components:
- Arduino Uno: Acts as the brain of the SoccerBot.
- HC-05 Bluetooth Module: Enables wireless control.
- L293D Motor Driver: Controls motor speed and direction.
- DC Motors (2 or 4): Provides motion to the SoccerBot.
- Lithium Battery (7.4V or 11.1V): Powers your SoccerBot.
- 3D Printed Chassis and Wheels: Custom-designed body parts.
- Wires, Nuts, and Screws: Necessary for proper assembly.
Basics of Arduino Uno for SoccerBot
The Arduino Uno is an open-source microcontroller board based on the ATmega328P. It allows you to program and control your Soccer Robot using the Arduino IDE. You’ll use digital pins to connect your L293D motor driver and Bluetooth module for precise control of your SoccerBot.
Bluetooth Control with HC-05
The HC-05 Bluetooth module is the communication gateway between your Robot and your smartphone. It pairs easily and communicates via serial pins (TX and RX) on the Arduino Uno. This allows you to send commands to the SoccerBot for wireless movement.
Motor Control with L293D
The L293D motor driver IC is essential for controlling your Soccer Robot motors. It allows for bidirectional control of two motors and supports PWM for speed control. This enables the SoccerBot to move forward, backward, and make turns smoothly.
Lithium Battery Power Supply
Power your Soccer Robot with a rechargeable lithium battery. These batteries are lightweight and have a high energy density, making them ideal for mobile robots like SoccerBot. Make sure to connect the battery through the motor driver to manage current efficiently.
3D Printed Parts for SoccerBot
A major advantage of building the SoccerBot is the 3D printed body. This includes the chassis, motor holders, and wheels. These parts not only give your Soccer Robot a professional look but also keep the structure lightweight and modular.
Download STL Files
You can download the STL files required to print theSoccer Robot body parts below:
SoccerBot STL Files
Your SoccerBot files will be ready in 60 seconds!
Print these using any FDM 3D printer. Make sure your printer is calibrated for dimension accuracy to ensure a proper fit.
Download BlueBot Controller App
Assembling the Soccer Robot
Follow these steps to bring your Soccer Robot to life:
- Attach DC Motors to the 3D printed chassis.
- Fix the Wheels onto the motor shafts.
- Install the L293D Motor Driver and connect it to the motors.
- Mount the Arduino Uno and establish connections.
- Connect HC-05 to Arduino TX/RX pins.
- Power Up using the lithium battery.
Double-check connections for safety and stability. Once everything is secure, your Soccer Robot is ready to be programmed.
Soccer Robot Circuit Diagram
Below is the complete wiring layout:

- HC-05 TX → Arduino RX
- HC-05 RX → Arduino TX (via voltage divider)
- L293D inputs → Arduino digital pins (5, 6, 9, 10)
- L293D outputs → Motor wires
- Power lines → Lithium Battery → L293D + Arduino Vin
Arduino Code for SoccerBot
Upload the code below to your Arduino Uno to control the Soccer Robot via Bluetooth:
| 1 | // Pin definitions for motor control |
| 2 | const int motorLeftForward = 5; // Pin for left motor forward |
| 3 | const int motorLeftReverse = 6; // Pin for left motor reverse |
| 4 | const int motorRightForward = 9; // Pin for right motor forward |
| 5 | const int motorRightReverse = 10; // Pin for right motor reverse |
| 6 | |
| 7 | char command; // Stores the received Bluetooth command |
| 8 | |
| 9 | void setup() { |
| 10 | // Set motor pins as outputs |
| 11 | pinMode(motorLeftForward, OUTPUT); |
| 12 | pinMode(motorLeftReverse, OUTPUT); |
| 13 | pinMode(motorRightForward, OUTPUT); |
| 14 | pinMode(motorRightReverse, OUTPUT); |
| 15 | |
| 16 | // Start serial communication at 9600 baud for Bluetooth module |
| 17 | Serial.begin(9600); |
| 18 | // Note: Ensure your Bluetooth module is connected to Arduino TX/RX pins |
| 19 | // and configured to 9600 baud in the Bluetooth app |
| 20 | } |
| 21 | |
| 22 | void loop() { |
| 23 | // Check if a command is received from the Bluetooth app |
| 24 | if (Serial.available() > 0) { |
| 25 | command = Serial.read(); // Read the incoming command |
| 26 | stopMotors(); // Stop motors before executing new command |
| 27 | |
| 28 | // Bluetooth app commands: |
| 29 | // 'F' – Move Forward |
| 30 | // 'B' – Move Backward |
| 31 | // 'L' – Turn Left |
| 32 | // 'R' – Turn Right |
| 33 | if (command == 'F') { |
| 34 | moveForward(); |
| 35 | } else if (command == 'B') { |
| 36 | moveBackward(); |
| 37 | } else if (command == 'L') { |
| 38 | turnLeft(); |
| 39 | } else if (command == 'R') { |
| 40 | turnRight(); |
| 41 | } |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | // Move robot forward (both motors forward) |
| 46 | void moveForward() { |
| 47 | digitalWrite(motorLeftForward, HIGH); |
| 48 | digitalWrite(motorLeftReverse, LOW); |
| 49 | digitalWrite(motorRightForward, HIGH); |
| 50 | digitalWrite(motorRightReverse, LOW); |
| 51 | } |
| 52 | |
| 53 | // Move robot backward (both motors reverse) |
| 54 | void moveBackward() { |
| 55 | digitalWrite(motorLeftForward, LOW); |
| 56 | digitalWrite(motorLeftReverse, HIGH); |
| 57 | digitalWrite(motorRightForward, LOW); |
| 58 | digitalWrite(motorRightReverse, HIGH); |
| 59 | } |
| 60 | |
| 61 | // Turn robot left (left motor reverse, right motor forward) |
| 62 | void turnLeft() { |
| 63 | digitalWrite(motorLeftForward, LOW); |
| 64 | digitalWrite(motorLeftReverse, HIGH); |
| 65 | digitalWrite(motorRightForward, HIGH); |
| 66 | digitalWrite(motorRightReverse, LOW); |
| 67 | } |
| 68 | |
| 69 | // Turn robot right (left motor forward, right motor reverse) |
| 70 | void turnRight() { |
| 71 | digitalWrite(motorLeftForward, HIGH); |
| 72 | digitalWrite(motorLeftReverse, LOW); |
| 73 | digitalWrite(motorRightForward, LOW); |
| 74 | digitalWrite(motorRightReverse, HIGH); |
| 75 | } |
| 76 | |
| 77 | // Stop all motors |
| 78 | void stopMotors() { |
| 79 | digitalWrite(motorLeftForward, LOW); |
| 80 | digitalWrite(motorLeftReverse, LOW); |
| 81 | digitalWrite(motorRightForward, LOW); |
| 82 | digitalWrite(motorRightReverse, LOW); |
| 83 | } |
Bluetooth App Commands:
To control the robot using a Bluetooth app (e.g., “Bluetooth Terminal” or “Arduino Bluetooth Controller”), configure the app to send the following single-character commands:
- ‘F’: Move the robot forward
- ‘B’: Move the robot backward
- ‘L’: Turn the robot left
- ‘R’: Turn the robot right
Setup Instructions:
- Hardware:
- Connect your Bluetooth module (e.g., HC-05 or HC-06) to the Arduino:
- Bluetooth TX → Arduino RX (pin 0)
- Bluetooth RX → Arduino TX (pin 1)
- Power the module (VCC to 5V, GND to GND).
- Connect motor driver inputs to Arduino pins 5, 6, 9, and 10 as defined.
- Connect your Bluetooth module (e.g., HC-05 or HC-06) to the Arduino:
- Bluetooth App:
- Pair your phone with the Bluetooth module (default password is usually 1234 or 0000).
- Open a Bluetooth app and connect to the module.
- Set the app to send single characters (‘F’, ‘B’, ‘L’, ‘R’) when buttons are pressed. For example, in the app, configure a button to send ‘F’ for forward movement.
- Ensure the app is set to send data at 9600 baud to match the Arduino’s Serial.begin(9600).
- Arduino:
- Upload the code to your Arduino.
- Open the Serial Monitor (optional) to debug or verify received commands.
Testing the Soccer Robot
Once everything is connected and programmed:
- Test forward, backward, left, and right movement.
- Check Bluetooth pairing.
- Make sure commands from your app are recognized.
If the SoccerBot doesn’t respond, check your wiring, code, or battery voltage.
Soccer Robot Enhancements
Take your SoccerBot to the next level:
- Add sensors like IR or ultrasonic.
- Install a buzzer for sound effects.
- Improve the app interface.
- Use a better battery for extended runtime.
Soccer Robot is endlessly upgradeable, which keeps the fun going.
Final Thoughts
Soccer Robot is more than just a robot—it’s an educational experience. You get to build, code, and control it with your phone. By combining Arduino, HC-05 Bluetooth, L293D motor driver, and 3D printing, you create something amazing.
Start yourSoccer Robot journey today and unlock new skills in electronics, mechanics, and programming. Once you build your Soccer Robot , you’ll want to build more and more robots!
Start building your Soccer Robot now, and let the innovation begin!
Download BlueBot Controller App and start your journey today!
