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)

IMG_0423.jpeg
IMG_0431.jpeg
IMG_0434.jpeg
IMG_0433.jpeg

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

  1. 🚗 4-wheel drive powered by hobby motors
  2. 🧠 Arduino-controlled logic
  3. 👀 Dual ultrasonic sensors (front and back)
  4. 🦾 Servo-mounted pan-tilt head for obstacle scanning
  5. 🔁 Smooth motion control and dynamic responses
  6. 🧱 Can detect tall vs low obstacles and respond accordingly
  7. 🎨 Fully 3D-printable modular frame

Supplies

IMG_0426.jpeg

a 3D printer

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

Design Idea

IMG_0426.jpeg
IMG_0425.jpeg
IMG_0424.jpeg

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!

IMG_0418.jpeg
IMG_0415.jpeg
IMG_0416.jpeg
IMG_0436.jpeg
IMG_0437.jpeg

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

F02PV7PMAL3FJNI.jpg
FB8MDUGMAL3FGRL.jpg
FMCGTJ0MAL3FGR1.jpg
FF41K8MMAJO00S9.jpg

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

IMG_0438.jpeg
IMG_0439.jpeg
FMXGDA9MAL3FED0.jpg
IMG_0441.jpeg
IMG_0440.jpeg

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

FQF6V22MAL3FMD1.jpg
FSCR7PNMAL3FLQ2.jpg
FL3E657MAL3FMCR.jpg
FP4M2D0MAL3FK00.jpg
FK6B6UJMAL3FJZW.jpg

The gimbal and servos go according to the photos.


Electronics

FMJY78XMAL3FJ3U.jpg

Here is the pin layout:

🧭 Motors (l298n or similar motor driver)

  1. ENA (Motor A PWM enable): Pin 5
  2. ENB (Motor B PWM enable): Pin 6
  3. N1 (Motor A direction): Pin 7
  4. N2 (Motor A direction): Pin 8
  5. N3 (Motor B direction): Pin 9
  6. N4 (Motor B direction): Pin 11

🔄 Servo Motors

  1. Pan Servo: Pin 3
  2. Tilt Servo: Pin 2

📡 Ultrasonic Sensors

  1. Front/Fixed Sensor:
  2. Trig: Pin A5
  3. Echo: Pin A4
  4. Back Sensor:
  5. Trig: Pin A2
  6. Echo: Pin A3

Arduino code:

https://docs.google.com/document/d/1-PurP0-0BfRkUaqulyqz_7S9uphzjwZibEXVh3zwUKI/edit?usp=drivesdk

Testing/trials and Errors

image.jpg
My Movie 6

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

  1. add stronger power source
  2. Use an esp32’s ai features to remember things it sees
  3. 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.