Overview, Introduction & Prerequisites:
This is a repository of Features, Sensors & Hardware that is used with the Robots & Rovers... Mostly
Prerequisites:
No explicit prerequisite course work, Electronics, Logic, or Coding knowledge is required. Come as you are. 🧠
Topics:
Random Robot / Rovers Hardware
I'm a huge supporter of Open Source and Creative Commons resources. This is another way of saying Free, Equitable and Accessible resources... 📽️ 🎧 📰 📖 📝🛠️ 🖼️ - Want to Support Me on this endeavor?
Let's get started... Its going to be a wild, fun, awesome ride...
Web Site: WWW.STEAMCLOWN.ORG | Contact: TopClown@STEAMClown.org | LinkedIn: Jim Burnham | TikTok: STEAM Clown
Consider Supporting my Open Source STEAM Curriculum Development -- Patrion: Jim The STEAM Clown | Amazon: Amazon Classroom Wishlist,
Note: TEACHERS!!!! If you are going to use any of these lessons or labs, please let me know. I would really like to understand how you are using this material. I want to know what works, what does not work, what would you like me to add, and how I can make it better. If you changed something, let me know, because it's probably a good idea and you should share it with me, so I can add it and share with everyone else.
This Module or lesson is how I teach in my class. Many of the lessons might be specific to my class, but you could probably adjust them for your class. I'll try to make them a neutral as I can, so they can be used in any Mathematics, Physics, Computer Science, or any other Engineering / Technology class. Let me know how I can make that better. I'll try to keep this unit current and relevant. Please let me know if any resource links are broken or not accessible.
Send me email at TopClown@STEAMClown.org You can also Join the STEAM Clown's Mailing List. If you want to Unsubscribe, click my Unsubscribe From Mailing List link
Author: Jim Burnham - TopClown@STEAMClown.org. License: Distributed as Open Source.
I would like to thank <Your Company or Organization Here> for their generous support of my classroom and curriculum development. <Your Company or Organization Here> has <Your value proposition, call to action, & related content and message>
(If you would like to sponsor this, or other Modules or presentation, please contact TopClown@STEAMClown.org or check out my "How To Help Page"
If you would like to sponsor other Curriculum Development, check out my "How To Help Page" or contact TopClown@STEAMClown.org
No explicit prerequisite course work or coding knowledge is required, but students are expected to have a good understanding of basic computer principles.
Primer: "Aaron, I can imagine no way in which this thing could be considered anywhere remotely close to safe. All I know is I spent six hours in there and I'm still alive... You still want to do it?"
As with any activity, please make sure you are using appropriate safety equipment. If you are coding, writing, reading, or working a lab, make sure you stand up and stretch every hour or so, Please consider any safety issues connecting to a Raspberry Pi, Arduino, computers and other electronic equipment.
What information can you transwmit & recenve on a Rover or Robot?
All these Features / Sensors / Options Are Potentually A Robot Club Project
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
XL
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Rover Controll Communication:
RC Controller:
RC Controller to controll the Drive Train - Arduino/Raspberry Pi
Easy way to switch from RC control to Autonomous / Semi Autonomous
"Dead Man" / "Kill Switch" / "Stop Motors" on RC controller
BlueTooth Phone Controller - RPi/Arduino
Ranging, Obstacle and Line Sensors:
Ultrasonic (HC-SR04) - Distance, obstacle avoidance Arduino curriculum - Ultrasonic - Arduino - with functions to check distance/objects
Set of functions
method to pass to a Raspberry Pi (serial or i2c)
IR line sensor / array - Line following Arduino curriculum
ToF / LiDAR to a wall - Single Point LiDAR - Precise reference distance - Distance-measurement discussion
Outdoor-rated 2D or 3D LiDAR - Ultrasonic and cheap IR ToF struggle in sunlight and grass. A sunlight-tolerant LiDAR handles obstacles and mapping
LiDAR (2D) SLAM, mapping - Pi 5 rover toolkit - Better LiDAR (Neato)
LiDAR (2D) SLAM, mapping - Pi 5 rover toolkit - Arcadia LiDAR (Arcadia)
Downward ToF "cliff" sensors - Detect ditches, curbs and holes ahead of the wheels
Location:
GPS - 2–5 m typical Outdoor baseline
Low Cost GPS - I2C? - Raspberry Pi I2C Bus?
Capture and Send over WiFi / Update Raspberry Pi Web Page?
Phone App to Send currrent Phone (On Rover) GPS data
GPS - More acurate - GPS CM Level Acuracy
RTK GPS (u-blox ZED-F9P class) ~2 cm Recommended for the big rover - RTK GPS + dual-antenna heading - Centimeter positions plus heading that doesn't depend on a magnetometer
Mesh Radio GPS - DIY differential GPS from fixed APRS beacons Partial correction of common GPS error Student experiment
RDF bearing triangulation Position from bearings to known beacons Yagi or Doppler DF on the rover
RSSI trilateration Rough distance from signal strength Noisy; teaching example
LoRa SX1280 time-of-flight ranging Meter-level, hundreds of meters License-free, 3 anchors + rover
LoRa sx1280 Amazon with links to wiki and other docs
UWB (Qorvo DW3000) ~10 cm Borderline range at 100–200 m outdoors
Geofence - Software boundary using GPS. Stop or return if the rover leaves the field
Auto-docking + charging station - Long-term autonomy
Solar Compass - analog mux project.
Communication & Telemetry:
915 MHz LoRa / Meshtastic (Part 15) License-free student beacons and telemetry - Telemetry - Live dashboard (MQTT + Grafana or a web UI) - Battery, temperatures, GPS track, faults
Black-box data logger - Logs commands, sensor data and faults for debugging and student analysis
IMU - Data and status loging / passing to Arduino/Raspberry Pi
What Other Telemetry Channels & Radio is used on Indoor/Outdoor Rovers?
Vision Features:
USB UVC cameras - (any USB camera - Seeed X10 1080p) Teleop, data collection, vision - Pi 5 rover, LeKiwi
Stereo / depth camera - Terrain and obstacle depth; check that it is rated for sunlight - Depth camera (Orbbec Gemini 2 / 305) 3D perception, obstacle depth - Rovers, but also on Robot Arms - LeKiwi options, robot arm discussion
Thermal (FLIR Lepton 3.5, MLX90640) Heat detection, motor/servo heat monitoring - Thermal camera on the rover - Spot hot motors, find people and animals, night detection
NoIR camera + IR illuminator Low-light vision Robot arm discussion
OpenCV, YOLO, MediaPipe, ArUco markers Detection, tracking, fiducial navigation Pi 5 rover toolkit
Visual odometry Position from camera motion Distance-measurement discussion
Color Blob Detection - OpenCV Orange Cone Detection
FPV / camera video link - Remote driving and inspection. pass video data to base station. Not processed on the rover, but set to remote location (like SkillsUSA US&R)
Fiducial markers at the field base (ArUco / AprilTag) - Precise docking with the camera
Motion Sensing and Odometry
Wheel encoders (quadrature and single-line) Distance, speed, turn angle VIAM rovers use single-line encoders; curriculum Module 9
Encoder-free open-loop trim Rough straight driving First step for motors without encoders
Gyro heading hold (IMU + PID) Straight driving without encoders MPU-6050, BNO055, BNO085
Accelerometer (ADXL345 on Viam Rev 1) Motion, tilt, bumps Double integration drifts with t²
Zero-Velocity Updates (ZUPT) Resets velocity drift when stopped Drive-stop-drive pattern
Time × calibrated speed Rough distance Scale for battery voltage
Accelerometer vibration FFT Wheel RPM estimate Advanced, surface-dependent
Stall / stuck detection Motors commanded but no motion IMU-based; valuable without encoders
Collision detection Acceleration spike IMU-based
Magnetometer / compass Absolute heading Keep away from motors and steel
Back-EMF speed sensing Motor speed without encoders Fiddly; good advanced lesson
Optical flow (PMW3901) True ground motion, catches slip Best low-cost encoder alternative
Rover - Environmental and Environmentla Awareness:
Environmental (temp, humidity, wind, pressure, weather. etc) - A mission payload that turns the rover into a field science platform - Weather Station on the Rover.
Ambient light sensor + headlights - Dusk operation and better camera exposure
Ambient light sensor + headlights - Dusk operation and better camera exposure
Rover Health / Status:
Battery monitoring - (INA226 / INA228 current and voltage, plus a proper BMS) Range estimation, low-voltage cutoff, speed compensation, and lithium safety (UL 3100 concerns)
Per-motor current sensing - Stall detection, wheel slip, overload protection, stuck-in-mud alerts
Temperature sensors on hub motors, motor controllers and battery - Hub motors on grass work hard; thermal derating prevents damage
Emergency-Stop
Layered E-stop - Fail-safe NC latching relay + motor-driver enable pin
RF dead-man switch - Untethered outdoor operation (walk along pull cord), Remote "Kill /Deadperson" button built into controllers
Rover Status - Safety
Physical bumpers or contact switches Last-resort collision detection that works when the cameras don't
Stack light + buzzer Shows armed / autonomous / fault states to people nearby
Addition Safety Topics:
Standards awareness - ANSI/RIA R15.08, ISO 3691-4, ISO 13849-1, UL 3100
The biggest gaps for the big outdoor rover, in priority order:
A link-loss failsafe. The rover should stop automatically if the control link drops. Design a layered E-stop and a dead-man switch, with a watchdog on the radio link is a separate protection. Rover stops automatically if the control or telemetry link drops for more than about 0.5–1 s. Separate from the dead-man switch.
Health monitoring. Track battery voltage and current, current on each motor, and temperatures on the hub motors and controllers. Hub motors working through grass get hot, and current spikes are your best stall and stuck-in-mud indicator.
Sensors that work in sunlight. Ultrasonic and cheap IR ToF sensors that work indoors struggle outdoors in sunlight and grass. Plan on an outdoor-rated LiDAR plus downward-facing "cliff" sensors to catch ditches and holes.
Sensor fusion. Combine RTK GPS, the IMU, wheel and steering encoders and optical flow in an EKF (ROS 2 robot_localization) instead of trusting any single source.
Tilt cutoff, geofence and stack light. These are cheap and important once the rover is heavy and moving fast near people. Tilt / rollover cutoff from the IMU - Stop motors past a safe pitch or roll angle
Rover will have a USB or Raspberry Pi Camera.
Camera, looking for a color "Blob" that is an Orrange cone
The goal of this Sensor project is to be able to detect basic OpenCV color blob detection for a ambient light in a cone
Rover sensor is a Raspberry Pi processing Camera input
Addition Thoughts:
There will be cones on a field, and the Rover needs to find them
Robot Club Project Links
This Project need to be claimed as a Robot Club Project
Rover will have a USB or Raspberry Pi Camera.
Camera, looking for a color "Blob" that is generated by a small RGB Led Photography Light (8cm x 8cm)
The goal of this Sensor project is to be able to compare basic OpenCV color blob detection for a ambient light of a orange cone and a 8cm RGB led light
Rover sensor is a Raspberry Pi processing Camera input
Addition Thoughts:
Add this to a small tripod platform. How high does it need to be?
Add this RGB LED Box to the Beacon platforms (the Meshtasitc Radios)
What is needed to power them off the same battery that is running the rest of the Beacon?
Robot Club Project Links
This Project need to be claimed as a Robot Club Project
Rover will have an Arduino Mega controlling it. The Arduino will be driving the drive wheels
Capture the PWM signals from the RC receiver and translate to signals/setting values to drive the rover
Addition Thoughts:
Build Drive functions to be flexable and usable when a Raspberry Pi tells the Rover to drive.
Robot Club Project Links
This Project need to be claimed as a Robot Club Project
Rover will have an Arduino Mega controlling it. The Arduino will be driving the drive wheels
Raspberry Pi will capture signals from the RC receiver, and then using USB or I2C, tell the Arduino how to drive.
Capture the PWM signals from the RC receiver and translate to signals/setting values to drive the rover
Addition Thoughts:
Robot Club Project Links
This Project need to be claimed as a Robot Club Project
Connect to the Arduino R4 Bluetooth
Connect to the Raspberry Pi 5 Bluetooth
(Claude-AI Feedback) An Xbox controller works well as a rover remote. It’s cheap and familiar to students, and it gives you two analog sticks, two analog triggers, a D-pad, about ten buttons and rumble feedback.
Ways to connect it
Raspberry Pi (easiest): Pair it over Bluetooth, or plug in over USB. Linux sees it as a standard gamepad, so Python can read it with evdev or pygame. If you’re heading toward ROS 2, the joy and teleop_twist_joy packages turn stick movement into velocity commands with almost no code.
ESP32 with Bluepad32: The Bluepad32 firmware/library lets an ESP32 talk to Xbox One and Series controllers directly over Bluetooth, with no Pi needed. It’s great for a small Arduino-style rover.
Arduino Uno/Mega with a USB Host Shield: The USB Host Shield 2.0 library supports wired Xbox One controllers and the Xbox 360 wireless receiver. It works, but it’s clunkier than the ESP32 route.
Pi as Host, Arduino as Device: The Pi reads the controller and sends simple serial commands (like L:120,R:-80) to an Arduino that runs the motor drivers. This fits your plan of starting with Arduino and adding the Pi later, because the Arduino motor code doesn’t change.
Control schemes to teach
Tank drive: The left stick runs the left wheels and the right stick runs the right wheels. It’s the simplest math and a good first lab.
Arcade drive: One stick does forward/back plus turning, using left = throttle + turn and right = throttle - turn, clamped. It’s a nice lesson in mixing and saturation.
Holonomic (omni/mecanum): The left stick translates in any direction and the right stick rotates. This is where controllers really shine, because students can see the vector math happen: strafing, diagonals, and field-oriented drive if you add an IMU.
Trigger throttle: Right trigger is forward, left trigger is reverse, and a stick steers, like a racing game. Kids love it.
Quality-of-life and safety features
Deadband: Ignore stick values near center so the rover doesn’t creep.
Expo/response curves: Square or cube the input for fine control at low speed.
Speed modes: Buttons switch between turtle, normal and turbo, which is very useful in a crowded classroom.
Hold-to-drive switch: The rover only moves while you hold LB, so if a student drops the controller, it stops.
E-stop button: One button immediately cuts all motor output.
Failsafe on signal loss: If no input arrives for about 250–500 ms, stop the motors. This matters most for the big grass rover with hub motors.
Rumble feedback: Vibrate on obstacle detection, low battery or a bumper hit.
Spare buttons: Use them for lights, horn, camera tilt on the D-pad, toggling autonomous mode, or recording waypoints.
Here’s a taste of arcade mixing (Arduino side)
cpp
// LEARN: throttle and turn come in as -255..255 from the controller
int left = constrain(throttle + turn, -255, 255);
int right = constrain(throttle - turn, -255, 255);
// LEARN: deadband — ignore tiny stick wobble near center
if (abs(left) < 15) left = 0;
if (abs(right) < 15) right = 0;
This also gives you a natural progression for the Rovers repo: tank drive, then arcade, then holonomic, then field-oriented, then teleop plus autonomy handoff.
Rover will have their own Battery and Power systems, but the filed will have some logistics to make sure batteries and other power systems are charged and ready.
Charge RGB LED units
Charge Radio Beacon platform units .
Addition Thoughts:
On the Beacon platforms, add a mount point and power options for the RGB LED unit
What is needed to power them off the same battery that is running the rest of the Beacon?
Robot Club Project Links
This Project need to be claimed as a Robot Club Project
If you are a teacher and want to connect and teach this Lesson or Module, discuss how I teach it, give me feedback, please contact me at TopClown@STEAMClown.org
To access this Lesson Plan and the Teacher collaboration area, you will have needed to connect with me so I can Share the content with you. Please go to the Teachers & Partner Page, check out my Licensing and fill out my Collaboration and Curriculum Request Form. I'll review and then grant you access to the requested areas and lesson plans if they exist.
If you have questions or feedback on how I can make a presentation, lesson, lab better please give use my Feedback Form.
I’ll work on getting these in, but it’s the last thing I want to work on :-) When I have them updated, I’ll move to the top of the Lesson Plan.
NGSS: <list standard numbers>
California CTE Standards: <list standard numbers>
Related Instructional Objectives (SWBAT): <list standard numbers>
CCSS: nnn, RSIT: nnn, RLST: nnn, WS: nnn, WHSST: nnn, A-CED: nnn, ETS: nnn <list standard numbers>
Main Standard:
Priority standards:
National Standards:
Reference Text Book - Basic College Mathematics with Early Integers 4th edition - Elayn Martin-Gay - University of New Orleans - Pearson
Reference Sites -
https://imgbin.com/png/ZJtzkYZZ/under-construction-png
RC Controller - Arduino
RC Controller - RPi
BlueTooth Drive Control
Game Controller (xBox) RPi or ESP32
feature
Key: 📰 Slides / Audio 🎧 / 📽️▶️ Video/YouTube / 🎧▶️📽️ Audio/Video / ✨ Resources / 🖼️ Tutorial / 📖 Reading Activity / 📝 Writing Activity / 📖 📝 Reading/Writing / 📟 Coding / 🛠️ LAB Activity / 🚀 Quiz / 🔎 Review / ✔️ Mastery Check / ✍️ Sign Up /🍕 Extra Credit / 🕸️ Web Links / 👩🏽🎓🧑🏽🎓🧑🏿🎓👩🏫 Class / 🏵️📜📃 Certificate / 🗂️ 📈 Collecting Survey Data
/🧟 Review / 🦾 Practice / 🆙Level Up /
🎚️🦑📤🎯 🚧
- 🦑 Special Project -
Assignment Type: ⚓ Establishing (Minimum Standard) / ⛏️ Developing (Digging Deeper) / 💎 Aspiring (Putting It Together)
This is an ⚓ Establishing Assignment (Minimum Standard) - "Everyone Do" Assignment
This is an ⛏️ Developing (Digging Deeper) - "Everyone Should Do, To Stretch" Assignment
This is an 💎 Aspiring (Putting It Together) - "When you have done the ⚓ Establishing and⛏️ Developing" Assignment
🚀 Formative Quiz - 🔎 Review
🚀 Quiz -🔀 Mastery Path
🚀 Summative Quiz -✔️ Skills Mastery Check
Quiz - verify that they are all listed as a "Formative", "Mastery Path", or "Summative"
🚀 Formative Quiz - These are quizzes that the students can take a few times. I have them either set for unlimited times, or 3-5 times, where the final score is their average. The idea is that these Formative Quizzes are designed for students to learn and master a skill. while I want them to ger 100%, and when it's set to unlimited tries, the student should get 100% eventually. When the quiz is set to 3-5 tries with an average, then they should be prepared and should take the quiz seriously. I set the quiz to not show the right answer, but I do let them see their wrong answer. I also put the explanation of the right and wrong answer in the right and wrong answer prompt for each question. That way they can see why they got the answer wrong and learn from that experience.
8.1.0.3.2.4 - Python - Ch 3 - Functions - Quiz #2 -Built-In Functions - 🚀 Formative Quiz
🚀 Quiz -🔀 Mastery Path - These Mastery path quizzes are to be presented after the student has had a chance to do some labs and some Formative quizzes. The goal is to let students have 2 chances to take this quiz, and take the average of the 2 attempts. Based on the average, they will be presented with a Canvas Mastery Path, where they will have an option for take additional quiz and assignments to help with remediation. This will get them ready to take the Summative Quizzes.
8.1.0.3.3.1 - Python - Ch 3 - Functions - Mastery Quiz #1 - 🚀 Quiz -🔀 Mastery Path
🚀 Summative Quiz -✔️ Skills Mastery Check - These Mastery path quizzes are to be presented after the student has had a chance to do some labs and some Formative quizzes. The goal is to let students have 2 chances to take this quiz, and take the average of the 2 attempts. That will be their final module/subject topic grade.
8.1.0.3.3.1 - Python - Ch 3 - Functions - Skills Mastery Check Quiz #1 - 🚀 Summative Quiz -✔️ Skills Mastery Check