Pukhraj Dhiman
Created August 16, 2020 © GPL3+

Covid-19 Virus Sanitizing Bi-copter using UV light

UV light is mounted on the Bi-copter to disinfect every part of the room

AdvancedWork in progress15 hours112

Things used in this project

Hardware components

Quadcopter kit
NVIDIA Jetson Nano Developer Kit
NVIDIA Jetson Nano Developer Kit
For running the code developed on Google Colab
Arduino Pro Mini 328 - 3.3V/8MHz
SparkFun Arduino Pro Mini 328 - 3.3V/8MHz
For Switching ON-OFF the UV Light using commands from Jetson Nano
PCA9685 16 channel Servo Controller
For controlling the Servo
UV LED Strip
For Disinfecting/Sanitizing the surface
MG995 servo motor
For controlling the Pan of the UV light & also the forward backward movement of bicopter
Ultrasonic Sensor
For avoiding obstacles like walls, in-room appliances, household things etc.
BO Wheels
For linear movement of the robot
Silver Aluminium foil
Because glass absorbs a lot of UV light we are using Aluminium foil for having greater surface area without being absorbed

Software apps and online services

Fusion 360
Autodesk Fusion 360
For developing the 3d design of the bicopter
Google Colab
For developing and testing the python code in a Virtual Environment

Hand tools and fabrication machines

Multitool, Screwdriver
Multitool, Screwdriver
Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free


Read more


BI-COBOT Smart Person Detector for Automatic Switching of UV Light

A Raspberry-Pi Camera is connected to the Jetson Nano in which a Python Program is running for detecting the Human and whenever it detects a Human being it will command Microcontroller to turn OFF the UV Light


Code For Automatic Switching of UV Lights

Whenever a Person is detected by the Jetson Nano It will automatically tells the microcontroller to shut down the UV Lights
import numpy as np
import cv2

hog = cv2.HOGDescriptor()

cap = cv2.VideoCapture(0)

out = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc(*'MP4'),1.5,(640,480))

    ret, frame = cap.read()
    frame = cv2.resize(frame, (640, 480))
    gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
    boxes, weights = hog.detectMultiScale(frame, winStride=(8,8) )

    boxes = np.array([[x, y, x + w, y + h] for (x, y, w, h) in boxes])

    for (xA, yA, xB, yB) in boxes:
        cv2.rectangle(frame, (xA, yA), (xB, yB),(0, 255, 0), 2)
    if cv2.waitKey(1) & 0xFF == ord('q'):




Pukhraj Dhiman

Pukhraj Dhiman

13 projects • 6 followers