SimpleBot
| SimpleBot | |
|---|---|
| SimpleBot - BRS's first robot design | |
| Use Case | Educational robot for learning line following, optical odometry, and basic robotics |
| Microcontroller | Raspberry Pi Pico or Raspberry Pi Pico W |
| Sensors | 2× Infrared Line Detector, 2× Optical Encoders (custom), optional MPU6050 IMU, optional nRF24L01 radio |
| Power | 4× AA batteries (6V nominal) via MP1584 buck converter (3.3V output) |
| PCB | BRS Differential Drive Robot Control Board (through-hole assembly) |
| Est. Cost | Under $20 (with batteries) |
| Repository | GitHub Repository |
SimpleBot is the Bespoke Robot Society's original robot design, created for students, educators, and cost-conscious makers. It's a fully functional differential drive robot that demonstrates core robotics concepts including motor control, sensor integration, and autonomous navigation.
Design Goals
SimpleBot was designed with BRS's core mission in mind:
- Enable Real-World Use Cases - SimpleBot is a demonstrator for dead reckoning and line maze problems, required study for all entry-level roboticists.
- Design and build custom robots - 3D-printed chassis with modular sensor mounts
- Lower the barrier to entry - Under $20 total cost with Optical odometry and line following sensors included.
- Teach robotics fundamentals - Every component serves an educational purpose
Overview
SimpleBot is based on commonly available "Arduino Smart Car" components (motors, wheels, battery holder) combined with a custom 3D-printed chassis and optional custom PCB. The robot can be built three ways:
- Breadboard Version - Wire everything on a breadboard (fastest to prototype)
- Protoboard Version - Solder components to perfboard (more permanent)
- Custom PCB Version - Use the BRS Differential Drive Robot Control Board (most compact)
All three versions run the same code and have identical functionality.
Capabilities
Line Following
Two infrared line detectors mounted under the chassis track a black line on a white surface (or vice versa). The robot adjusts its motor speeds to stay centered on the line.
Optical Odometry
Custom encoder circuits use LEDs and photoresistors to count pulses from slotted wheels attached to the motors. This allows the robot to measure distance traveled and perform dead reckoning.
Motor Control
The TB6612FNG dual H-bridge provides independent speed and direction control for both wheels via PWM signals from the Pico.
Expansion Ready
The PCB includes headers for:
- MPU6050 6-axis IMU (accelerometer + gyroscope) via I²C
- nRF24L01 2.4 GHz radio module via SPI
- 4× sensor headers for additional sensors (3.3V + GND + GPIO)
- Analog/digital breakout headers for custom additions
Hardware
Base Components
| Component | Description | Qty | Est. Cost |
|---|---|---|---|
| Arduino Smart Car Kit | 2× TT motors with wheels, encoder discs, battery holder, power switch, caster wheel | 1 | $6 |
| Raspberry Pi Pico | Microcontroller board (or Pico W for Wi-Fi) | 1 | $4 |
| TB6612FNG Module | Dual H-bridge motor driver | 1 | $3 |
| MP1584 Module | Buck converter (6V → 3.3V) | 1 | $1 |
| Infrared Line Detector | Line following sensors | 2 | $1 |
| LM393 IC | Dual comparator for optical encoders | 1 | $0.25 |
| Resistors, LEDs, photoresistors | Encoder circuit components | Set | $1 |
| 4× AA Batteries | Power supply (1.5V each = 6V total) | 4 | $2 |
| 3D Printed Parts | Chassis, motor mounts, sensor mounts | Set | $2 (filament) |
| Total | ~$20 |
PCB Options
- BRS Differential Drive Robot Control Board (Through-Hole) - $5-10 for 5 PCBs from JLCPCB, ~$5 in components
- Breadboard/Perfboard - Cheaper but less compact
Mechanical Design
SimpleBot uses a modular 3D-printed chassis with several key features:
Chassis Modules
- Main Chassis Plate - Central platform with mounting points for all modules
- Battery Block - Secures 4× AA battery holder with velcro strap retention
- Caster Assembly - Front-mounted caster wheel with adjustable height
- Motor Mounts - Dovetail attachment system for easy motor positioning
- Sensor Rail - Underside mounting for adjustable line sensors
All STL files and the FreeCAD source are available in the GitHub repository.
Assembly
See the detailed SimpleBot Assembly Guide (or GitHub version) for step-by-step mechanical assembly instructions with images.
Electronics
Circuit Design
The electronics integrate:
- Power regulation (6V battery → 3.3V via buck converter)
- Motor control (TB6612FNG dual H-bridge)
- Optical encoder circuits (LM393 comparators)
- Sensor interfaces (line detectors, IMU, radio)
- GPIO expansion (analog and digital headers)
PCB Design
See the detailed SimpleBot PCB Guide (or GitHub version) for:
- Full schematic
- PCB layout views
- Component placement
- Assembly instructions
- Gerber files for manufacturing
The PCB uses through-hole components for easy hand-soldering, making it ideal for educational builds and beginners.
Software
SimpleBot runs MicroPython on the Raspberry Pi Pico, making it accessible to beginners while providing full control over hardware.
Programming
- Install Thonny IDE or use any MicroPython-compatible editor
- Connect Pico via USB
- Copy Python files from the repository to the Pico
- Edit configuration for your specific hardware
- Run and test!
Code Structure
The SimpleBot code is organized into modular files:
- motor.py - Motor control class with PWM speed control
- encoder.py - Optical encoder pulse counting
- line_sensor.py - Line detector interface
- robot.py - High-level robot control (drive forward, turn, etc.)
- main.py - Main program loop
Example Code
from robot import SimpleBot
import time
# Initialize robot
bot = SimpleBot()
# Drive forward 30cm using odometry
bot.drive_distance(30) # cm
# Follow a line
while True:
left, right = bot.read_line_sensors()
if not left and not right:
bot.forward(speed=50) # Both on white - go straight
elif left:
bot.turn_right(speed=40) # Left on line - turn right
elif right:
bot.turn_left(speed=40) # Right on line - turn left
time.sleep(0.01)
Full code examples available in the GitHub repository.
Build Paths
Choose the path that matches your skill level and available resources:
Path 1: Buy Everything (Easiest)
Best for: Complete beginners, classrooms
- Purchase all components from the bill of materials
- 3D print the chassis parts (or use a print service)
- Order the pre-assembled PCB (or use breadboard)
- Follow assembly guide
- Upload code and go!
Time: 2-4 hours assembly + printing time
Path 2: Solder It Yourself (Learning)
Best for: Learning electronics, gaining soldering experience
- Purchase components and blank PCB
- Order Gerber files from JLCPCB (~$2 for 5 PCBs)
- Learn through-hole soldering techniques
- Assemble PCB step by step
- Integrate into 3D-printed chassis
- Upload code and test!
Time: 4-8 hours including soldering practice
Path 3: Design Your Own (Advanced)
Best for: Experienced makers, custom requirements
- Use SimpleBot as a reference design
- Modify the FreeCAD chassis for your needs
- Adapt the PCB design in KiCad
- Add custom sensors or actuators
- Create your own robot variant!
Time: Unlimited - this is your custom project!
Learning Outcomes
Building and programming SimpleBot teaches:
3D Printing
- Printing functional mechanical parts
- Working with heat-set inserts
- Designing for printability
Electronics
- Motor control with H-bridges
- Sensor interfacing (analog and digital)
- Power regulation with buck converters
- PCB assembly (through-hole soldering)
Software
- MicroPython programming
- PWM for motor speed control
- Interrupt-driven encoder counting
- Sensor polling and decision making
- PID control (optional advanced topic)
Robotics Concepts
- Differential drive kinematics
- Optical odometry for position tracking
- Line following algorithms
- Dead reckoning navigation
- Sensor fusion (with IMU)
Variations
SimpleBot Mini
A smaller version designed to fit standard micromouse mazes (under development).
SimpleBot Pro
Enhanced version with additional sensors, faster motors, and ROS integration (future development).
Community Variants
See Build Logs:SimpleBot for community members' custom builds and modifications.
Limitations
SimpleBot is designed as an educational platform, so it has intentional limitations:
- Speed - Deliberately slow for safety and learning
- Maze Size - Too large for standard micromouse mazes (see SimpleBot Mini)
- Terrain - Designed for flat, smooth surfaces only
- Line Following - Two-sensor configuration is simple but less robust than arrays
These limitations are features, not bugs - they provide opportunities for learning and improvement!
Next Steps After Building SimpleBot
Once you've built and programmed SimpleBot, consider:
- Master line following - Optimize your code for speed and accuracy
- Add the IMU - Implement heading-based navigation
- Add the radio - Control remotely or implement swarm behavior
- Design custom sensors - Add ultrasonic, IR distance, or other sensors
- Build a maze - Create line-following challenges
- Modify the chassis - Add a pen holder for drawing robots
- Teach others - Document your build and help newcomers
Resources
- GitHub Repository - CAD files, code, PCB designs
- SimpleBot Assembly Guide - Step-by-step mechanical assembly
- SimpleBot PCB Guide - Electronics and PCB information
- Raspberry Pi Pico - Microcontroller documentation
- BRS Differential Drive Robot Control Board - PCB details
See Also
- Differential Drive - Theory behind two-wheeled robots
- Optical Odometry - Measuring distance with encoders
- Line Following - Algorithms and techniques
- Motor Control - PWM and H-bridge operation
- 3D Printing for Robotics - Designing and printing robot parts
Community
Share your SimpleBot build: