![]() The difference between “on” and “off” was a 1 ms and 2 ms pulse (5-10% duty cycle at 50 Hz). First, the PWM signals for the switches left little room for error. One of the largest hurdles to overcome with the software was reading PWM signals from the radio switches and the time-delay for the ultrasonic rangefinder. The software was integrated according to the following diagram. The software for the autonomous quadcopter makes full use of linux’s ability to run parallel processes, as well as the RTOS-like behavior of the Preempt RT kernel patch. Put all together, the control algorithm has a robust error signal on which to base control inputs. ![]() Reliable target location using computer vision. The proximity sensor uses ultrasonic pulses and the speed of sound to determine distance, while the camera captures colors which are isolated and analyzed to produce a Both a camera and a proximity sensor are used to tell the quadcopter where it is. Resources or taking the risk of the Linux kernel missing a deadline and crashing the quadcopter.Ī quadcopter must have a method of localization in order to execute any sort of autonomous motion. a chip that reads serial data signals (encoded with I2C) from the Raspberry Pi, and can generate up to sixteen highly accurate PWM signals without tying up the Pi’s To that end, the team purchased a “PWM Hat” Unfortunately, the Raspberry Pi only has two high-frequency, robust “hardware” PWM pins,Īnd this project needs three highly accurate PWM signals generated at once (the drone cannot autonomously control turning). This meant the Raspberry Pi also needed to generate the same types of signals. All six channels outputted a 50 Hz, 3.3V PWM signal which sent signals using duty cycle. It was not just the switches that sent PWM signals from the radio receiver. Switch A (channel 5) was chosen to switch from human to computer controlled flight. Therefore, the Raspberry Pi can be configured to read those PWM signals from the radio receiver, and use the state of either channel 5 or 6 to toggle the state of the relay. This left two moreĬhannels open for other types of inputs, which included any of the four toggle switches on the radio controller. Of data, even though there are only four flight commands - roll (strafe left/right), elevation (forward/backward), throttle (up/down), and azimuth (turn). Furthermore, the system is set up to send six channels Luckily, though, Tim’s handheld radio controller sends a 3.3V PWM signal at 50 Hz. The signal to change the state of the relays needed to come from the Raspberry Pi itself, since the handheld radio controller cannot send digital signals that the relay will Rather than actually calculate and control the dynamics of the quadcopter. This also allows the Raspberry Pi to only need to send desired directions - such as “fly forward”. It is possible to change where control signals are coming from. This happens mechanically by moving a solenoid against a spring.īy connecting the signal from the handheld radio controller to the “normally closed” contact, and the signal from the Raspberry Pi to the “normally open” contact, Once energized, the switch flips, and a “normally open” contact makes a connection with the “common” contact. When not energized, the a “normally closed” contact is connected to the “common” contact. A relay is a switch controlled by a logic signal. Therefore, a multi-channel relay was used. Therefore, the team made the first goal of development ensuring it was possible to regain control should the quadcopter begin to fly away. Although the quadcopter is small, the speed of the blades creates a safety hazard.įurthermore, a “runaway” quadcopter scenario can be dangerous for airplanes in the surrounding area, and is also illegal. It is very risky to allow an aircraft to behave autonomously.
0 Comments
Leave a Reply. |