Anti Anti-Masker Mask [Hackathon Winner]

Anti Anti-Masker Mask [Hackathon Winner]

Tags
Hackathon
Projects
SolidWorks
Python
C++
Published

Background

The Anti Anti-Masker Mask (AAMM) was a group submission (my friends Phoebe Luo, Olivia Ye, Ryan Chan, and I) to Make UofT, a 24 hour hackathon that ran in February 2022.
The Anti Anti-Masker Mask is a wearable defense mechanism to protect yourself from COVID-19 mandate breakers. It detects if someone within 6 feet of you is wearing a mask or not, and if they dare be mask-less in your vicinity, the shooter mechanism will fire darts at them until they leave.
Video preview
Video submission and summary of project
 
AAMM on a model (my friend Ryan)
AAMM on a model (my friend Ryan)
Close-up of mask
Close-up of mask
SolidWorks CAD of the launcher
SolidWorks CAD of the launcher

How We Built It

The mask can be split into 3 main subsystems.

Physical Systems

The dart launcher, frame, and loading system are entirely custom modeled and built using SolidWorks and FDM 3D Printers. The dart launcher is powered by a small lipo battery and uses 2 brushless drone motors as flywheels. The darts are automatically loaded into the launcher by a rack and pinion mechanism driven by a servo, and the entire launcher is controlled by an Arduino Nano which receives serial communications from the laptop.

Sensors and Vision 

We used a single-point lidar to detect whether a non-mask wearer is within 6 ft of the user. For the mask detection system, we use a downloadable app to take live video stream to a web server where the processing takes place. Finally, for the vision processing, our OpenCV pipeline reads the data from the web server.

Code 

Other than spending 9 hours trying to install OpenCV on a raspberry pi 🤡 the software was one of the most fun parts. To program the lidar, we used an open source library that has premade methods that can return the distance from the lidar to the next closest object. By checking if the lidar is within 500 and 1500mm, we can ensure that a target that is not wearing a mask is within cough range (6ft) before punishing them. The mask detection with OpenCV allowed us to find those public anti-maskers and then send a signal to the s
 
For more info on the challenges we faced, lessons we learned, and future improvements please check out the AAMM DevPost link below :)
TL;DR We underestimated how hard it would be to run OpenCV on the Pi Zero which ruined our plans of having the lidar, vision, and launcher control all run from a battery-powered Pi. We adapted and due to the short time period of the hackathon found some janky workarounds but in the end, gave us a final working product.