Lightning McShower

A robot car that hunts down smelly engineers and tells them to shower.


"YOU SMELL LIKE SHIT! GO SHOWER!"

That's what Lightning McShower yells after it rolls up to you, sniffs the air, and confirms what everyone around you already knew.

Inspiration

Every hackathon has a moment around hour 20 where the room gets... thick. Everybody notices. Nobody says anything. Telling someone they stink is the one conversation no engineer is equipped to have.

So we built a robot to have it for us.

What it does

Lightning McShower is a small robot car with a camera, a gas sensor and absolutely no filter.

  • It drives around the room. We control it from a browser dashboard with a live camera feed.
  • It sees you. Person detection runs on our laptop and draws a box around every human in the car's view.
  • It detects stink. A gas sensor on the car measures how bad the air around you is.
  • It only yells when both are true. Our one rule: speak only when there's a person in frame AND the air is foul. Bad air in an empty hallway is just a sensor reading. A person in clean air is just a person. The comedy lives in the overlap.
  • It escalates. It starts polite ("Beep boop. Shower status: overdue."), gets rude, and ends at full meltdown, all in voice lines our team recorded ourselves, with a robot voice filling any gaps.
  • Bonus: an opt-in "Hall of Stench" leaderboard. You only join by raising your hand.

How we built it

ELEGOO robot car                    Laptop                         Browser
Arduino + ESP32 camera   ──WiFi──▶  Python bridge            ──▶   Dashboard
+ BME688 gas sensor                 · drives the car               · live video
(our custom firmware)               · spots people (YOLO)          · drive controls
                                    · scores the stink             · stink meter
                                    · decides when to yell
                                    · plays our voice lines
  • Hardware: an ELEGOO Smart Robot Car kit (Arduino UNO + ESP32 camera module) with a Bosch BME688 gas sensor we wired on and wrote custom firmware for.
  • The brain: a Python (aiohttp) bridge on the laptop. It holds the connection to the car, answers the car's once-a-second heartbeat, and stops the car automatically if commands stop for half a second.
  • The eyes: YOLO person detection runs locally. The car's camera only allows one viewer, so the laptop becomes that viewer and re-broadcasts an annotated stream the whole team can watch.
  • The mouth: a small, unit-tested state machine decides when to speak, with cooldowns and escalating rudeness so it never repeats itself.
  • Everything runs offline, because the car's WiFi network has no internet.

Challenges we ran into

  • Integrating different hardware components. Connecting the WiFi module, camera module, and sniff module proved to be a difficult task. Each component worked reliably on its own, but integration required a lot of trial and error.
  • Testing the nose. To test the accuracy of the sniffing module, we needed some reliable input data. This required our team to make a trip to the bathroom to set the baseline for our sniff sensor.
  • Writing custom firmware. The gas sensor doesn't plug into anything ELEGOO supports, so we had to write our own firmware for a proprietary circuit board. Somewhere along the way we broke the firmware, and for a while Lightning McShower was a very expensive paperweight. We figured out how to bring it back, got the sensor talking, and now it smells.
  • The camera only allows one viewer. The car's camera can only stream to one thing at a time, so the laptop watches for everyone and re-broadcasts the feed.
  • Running everything locally. Controlling the car means joining its WiFi, which goes nowhere. Detection, decision-making and voice all had to run locally on the laptop.

Accomplishments that we're proud of

  • It's genuinely funny. It engages the whole room and leaves people with a memory.
  • It's real hardware doing a real thing: an actual car that drives up to people and roasts them.
  • All data collected requires consent: video never leaves the laptop, and nobody lands on the leaderboard without first giving explicit permission.

What we learned

  • Hardware will humble you. We expected each hardware module to work perfectly on the first try, but it ended up taking many hours of debugging.
  • Improvisation. We had to drive to different stores to buy the hardware that was missing for this project. We had to drill a hole into the car to mount a pole, and duct-tape metal weights to stabilize it. We also had to use a soldering iron, which none of us had used in many years.

What's next for Lightning McShower

  • Full autonomy: let it hunt people down on its own instead of us driving.
  • Tailored roasts: comment on your outfit and your 4th energy drink, not just the smell.

Built with: python, aiohttp, websockets, yolo, ultralytics, pytorch, opencv, numpy, javascript, html, css, arduino, esp32, bme688, elegoo

Try it out: https://github.com/Ethanniu3177/Lightning-McShower

Built With

Share this project:

Updates

Submission history