Indoor UV light surface cleaning drone
- Introduction
- Materials
- Diagram
- Stripe Led Assembly
- Science Content
- Tello Important Considerations
- Gateway Configuration
- Tello Software
- Final Product
- Demo
The Covid19 pandemic has been an event that has affected not only the life of each person, but the coexistence of people in all aspects of life and one of these aspects has clearly been the way in which employees coexist in offices .
One of the main measures to combat the pandemic is cleaning work areas [ 1 ], however the use of chemicals to perform this cleaning can be harmful to health in the long term, so the use of UV lights is a vital part for the future of office work.
I want to make a drone that is capable of deactivate Covid19 in office areas that conventional robots cannot access for example [ 2 ].
- TMiRob
- XDBOT
- Tru-D SmartUVC
- UVCLight
- Siemens / Aucma
None of these robots is capable of disinfecting surfaces such as tables or desks.
List the hardware and software you will use to build this.
Hardware:
- DJI Tello Drone.
- RaspberryPi 3/4.
- 30 UV Leds (3V, 40mA).
- 1 Resistor (22 Ohm).
- 3.7 V, 400mA, LiPo Battery, C1.
Software:
- Python 3.8.
Libraries:
- Paho-Mqtt. (https://pypi.org/project/paho-mqtt/)
- TelloPy. (https://pypi.org/project/tellopy/)
Diagram:
Assemble the LED's one by one, taking care to always connect Anodes with Anodes and Cathodes with Cathodes.
Create a ring around the base of the drone.
Place the power circuit of the Led strip.
And works.
NOTE: Whenever you work with UV Led's wear eye protection.
According to a scientific article from PurpleSun [ 3 ] we know the following data:
This is the minimum dose to lower virus activity by 90%.
Watts equals Joules divided by Seconds.
Watts per time equals Joules.
Therefore Watts per time divided by area equals Joules divided by area equals dose.
Within an electrical circuit Watts is equal to Voltage per current.
Developing the formula to our problem, we know that the voltage of each Led is 3 volts and the number of LED's is 30, therefore.
We obtain the current of the circuit with the resistance that we have before the LED's, since we have a LiPo battery, this will stabilize its voltage at 3.7 Volts, however the LED's require 3 volts to work, therefore our resistance will be determining the current that passes through the LED's, in this case the voltage that the resistance will have will be 0.7 volts.
Then.
Therefore the power of all LEDs would be.
Combining all the formulas we obtain the following general formula.
- Vsource = Voltage of the source [volts]
- Vled = LED operating voltage [volts]
- R = Resistor before the led [ohms]
- NLeds = Number of LED's in parallel in the circuit [dimensionless]
- Area = Exposure area [square meter]
- Time = Exposure time [seconds]
Substituting in the formula the values โโwe want.
Now we calculate the exposure time necessary for the drone to achieve the D90 dose.
- Check the propeller order, if the order of the propellers is not correct, the drone will not fly.
-
This drone is very unstable outdoors because wind affects it, I recommend for it only to be used for indoor applications.
-
I recommend using a protective cage so that the drone is 100% safe.
-
If you use the protective cage the drone can not perform flips, if you try them, the drone will fall and hit itself hard.
-
Always check the battery level of the drone, if the battery is less than 10% the drone will not take off, also if it is flying and reaches 10% the drone will land.
Download the operating system of the Raspberry Pi.
- To download the operating system of the Raspberry enter the following link:
- Link: https://www.raspberrypi.org/downloads/raspbian/
- Download the lastest version.
Flash the operating system in the SD.
Software: https://www.balena.io/etcher/
Because the drone use the WiFi connection to control it, we must first connect to our WiFi to set up the libraries.
-
Run the following commands to setup the libraries
sudo apt-get update sudo apt-get upgrade sudo apt-get install python3-opencv pip3 install tellopy git clone https://github.com/altaga/CoviDrone
-
Connect to the Tello Drone WiFi network.
Libraries that you have to install before continuing.
The drone flight algorithm is based on pure programming along with the libraries that were previously mentioned. The algorithm reviews at all times that there is a stop signal (or any other mark) in front of it and looks for the way to focus and approach.
Signal recognition is done using Haar Cascades, the Haar Cascade file used will be in the "haar_model" folder, inside "Rasp", more information in the link below.
Link: https://docs.opencv.org/3.4.3/d7/d8b/tutorial_py_face_detection.html
It is important to mention that this code provides the method to check all the sensors of the drone, for example the height, the level of the battery, position, etc ... However we added that the battery level has to be displayed in the OpenCV screen at all times:
def handler(event, sender, data, **args):
global prev_flight_data
global battery
drone = sender
if event is drone.EVENT_FLIGHT_DATA:
if prev_flight_data != str(data):
#print(data)
datas=str(data)
num = datas.find("BAT")
battery=int(datas[num+4:-31])
print("Battery:" + str(battery))
prev_flight_data = str(data)
else:
print('event="%s" data=%s' % (event.getname(), str(data)))
The system works like a state machine, the case requires the command that makes the drone approach the signal, with this type of system we avoid sending commands that are useless to the drone.
Lateral Fly Control Diagram (This is the diagram of how the drone moves if you are looking at it from the side):
Frontal Fly Control Diagram (This is the diagram of how the drone moves if you are looking at it from the front):
In our case, the path that the drone must follow to travel the table is as follows.
Video: Click on the image:
Sorry github does not allow embed videos.
Articles:
https://covid19.cdc.gov.sa/community-public/preventive-measures-in-workplaces/
https://tectales.com/bionics-robotics/9-disinfection-robots-fighting-the-coronavirus.html