F.R.E.D. (Friendly Rover Exploration Device)
by Dum-Etinkerer in Circuits > Arduino
322 Views, 10 Favorites, 0 Comments
F.R.E.D. (Friendly Rover Exploration Device)




Meet F.R.E.D. — my Friendly Rover Exploration Device! He’s a cool little bot that can handle all kinds of terrain and kind of has a mind of his own. I built him using an Arduino Uno, some ultrasonic sensors, and pan/tilt servos. At first, I planned to control him with an FPV camera and RC controller to do long-range exploring, but then I thought it’d be even cooler if he could do it all on his own. Now he can figure out what’s in his way and decide if he should dodge it, roll over it, or back up and try again.
🧩 Features
- 🚗 4-wheel drive powered by hobby motors
- 🧠 Arduino-controlled logic
- 👀 Dual ultrasonic sensors (front and back)
- 🦾 Servo-mounted pan-tilt head for obstacle scanning
- 🔁 Smooth motion control and dynamic responses
- 🧱 Can detect tall vs low obstacles and respond accordingly
- 🎨 Fully 3D-printable modular frame
Supplies

a 3D printer
- 1× Arduino Uno
- 1× L298N motor driver module
- 2× HC-SR04 ultrasonic sensors
- 2× SG90 micro servos
- 4× Hobby DC gear motors
- 3D printed chassis parts (STL files provided below)
- Battery pack (6×AA or Li-ion) the more volts the better
- Jumper wires, breadboard, screws, etc
- 4x 20mm ball bearings
- 2x 5-16-18_91251A383_Screw
- as many M3 screws as you can find
Design Idea



I designed the frame for off-road capability, allowing Fred to navigate almost any terrain. It uses an “A”-shaped rocker arm for maximum ground clearance, with string threaded through the frame to connect the arms—reducing the need for moving parts. Fred has two ultrasonic sensors: one in front for obstacle detection and pathfinding using a gimbal, and one in back as a proximity sensor. If something gets too close from behind (within 1.5 ft), Fred backs away—sometimes he just doesn’t feel like social, he’s too busy exploring or napping.
Note: There are still some things I need to fix with the stl. Files so I will add them when they are ready.
Downloads
Building the Frame!





Once all the parts are printed, you can begin assembly! I recommend using zip ties to secure the motors to the rocker arms—although I used screws, zip ties work just as well and are easier to manage. Important tip: Do not cut the zip tie that comes pre-installed on the motors from the factory. I learned this the hard way—once removed, the wires got pulled off 😭.
There are also optional holes in the rocker arms you can use to route your wires and keep everything tidy. As you assemble the frame, refer to the pictures for guidance.
If you're having trouble installing the bearings, try placing them in the freezer for a couple of hours. The slight shrinkage makes them easier to fit. Just be sure to install them immediately after taking them out.
Attach the Balance String




I found some thick para cord, i just put a knot on one end and threaded it through the rocker hole, through the frame to the other side then did another knot on the other rocker. Please be extra careful when using scissors! I learned that the hard way.
Mounting the Sensors





This step should go pretty straight forward, just mount the sensors where they seem to go, might need to find some smaller screws for this or improvise
Gimbal





The gimbal and servos go according to the photos.
Electronics

Here is the pin layout:
🧭 Motors (l298n or similar motor driver)
- ENA (Motor A PWM enable): Pin 5
- ENB (Motor B PWM enable): Pin 6
- N1 (Motor A direction): Pin 7
- N2 (Motor A direction): Pin 8
- N3 (Motor B direction): Pin 9
- N4 (Motor B direction): Pin 11
🔄 Servo Motors
- Pan Servo: Pin 3
- Tilt Servo: Pin 2
📡 Ultrasonic Sensors
- Front/Fixed Sensor:
- Trig: Pin A5
- Echo: Pin A4
- Back Sensor:
- Trig: Pin A2
- Echo: Pin A3
Arduino code:
https://docs.google.com/document/d/1-PurP0-0BfRkUaqulyqz_7S9uphzjwZibEXVh3zwUKI/edit?usp=drivesdk
Testing/trials and Errors


While working on the electronics, I encountered a significant challenge: the motors weren’t receiving enough power. As seen in the video, the robot struggles to turn smoothly and with the lack of enough power the sponsor did not perform well. After troubleshooting, I discovered that the sensors and servos were drawing too much current from the motors but there still wasn’t enough for the sensors, leaving the motors underpowered. To test this theory, I temporarily unplugged the rear motors—and the code worked perfectly. With reduced power consumption, the motors performed as expected. This revealed a key insight: managing power distribution is just as critical as the design itself. Also since the motors are wired parallel, it draws less voltage but more current, and the opposite for a series circuit. I’m now exploring solutions like dedicated power supplies or optimized circuitry to ensure every component operates at full potential.
Improvements
- add stronger power source
- Use an esp32’s ai features to remember things it sees
- stronger motors
I’m really happy with how much of the robot has worked so far, and I’m proud of what I’ve been able to build. Even though there were some challenges, it’s been a great learning experience, and seeing it actually come together has made all the hard work worth it.