A week or so ago I was asked to submit an abstract. Having never done so before I googled the structure followed what I found. My first drafted ended up to be way over the 250 work limit, but I like what I wrote because it helps explain my efforts in research at the University of Oregon. So since no one else gets to read it I figure I will post it here so someone can read it.
Enjoy!
Introduction:
The reason for this project began with my increasing interest in computer hardware and embedded systems. Professor Kinsy’s arrival at the University of Oregon was timely for me because his focus of research is on computer hardware. I reached out to him in hopes of learning more on the subject. I was fortunate enough to convince him to let me work in his lab, and was able to help him set up the lab and start a project focusing on drones. The aim of the drone project is to complete a task using an autonomous drone that will introduce the lab to the subject of drones and provide detailed documentation on the lab’s drone for potential future research by others.
The task or project I chose was not based on the need to discover new research, but rather the need to learn and understand the platform the drone uses. Since drones are much more than just software, the systems are much more complex. I decided my project would be to make an addition to the drone by adding a bright controllable strip of LEDs to control from flight controller software. This way I can learn how to write a driver for an LED using DMA, how to add a new module to our computer on our drone, how to add a new module in our software flight controller, and how to have the modules communicate using radio frequencies. All steps of this project are elementary in understanding the entire autonomous drone system.
Problem:
Starting drone research in a brand new lab had several obstacles. The first was choosing a drone system (software and hardware) that functions as needed but still allows for manipulation of the system to experiment with research. We need a system that can fly drones using GPS from point A to point B, being controlled from a laptop. This was tricky because most drone systems are made by for-profit companies that make their systems a “black box” solution, dramatically narrowing the possible systems we could use.
The LED project caused several problems. Learning to program a microcontroller was new to me, so that made the work more difficult from the get go. Additionally, the LEDs I chose are more difficult to communicate with than other LEDs. The LEDs each have 3 small LEDs: 1 red, 1 green, and 1 blue as well as a small integrated circuit on them to control each smaller LED. The complexity of the individual LED and the timing of its input signal makes controlling it less intuitive. I was also faced with controlling the drivers in the flight controller software, a complex open source hardware and software project used by many. This is challenging because it requires using radio frequencies to to trigger the driver, and requires some understanding of how the flight controller uses GPS position to stay on the course of a flight plan. The idea is to have the flight controller be capable of controlling flight patterns with specific LED characteristics to create a timelapse video or long exposure photo of the drone traveling a particular flight path with particular LEDs turned on.
Procedures:
The first task of choosing a drone platform was fairly easy for me, because I had prior experience working with an expert in embedded systems and drones. I met a creator of a drone company at a local Makers Club in the spring of 2014 and was very impressed with his work on drones. When I was put to the task of choosing a drone platform, I contacted him for further assistance. He – added great value , and really got the project going. He lead us onto using an autopilot (computer on drone) that he designed, which gave us great info as to what we are working with. Also he opened us into the world of Paparazzi UAV, an open source drone platform. This platform is impressive and getting better daily. There is active development in this project which makes it exciting to work in and perfect for the research environment . Once I got my hands on Paparazzi with a drone and saw it working, I knew that it was a great platform to use for research.
The LED project took a bit more to unravel. This seemed like a pretty elementary project when I started it, controlling a few LEDs, but this had a lot more steps than anticipated. To make learning microcontrollers easier, I started by tackling some smaller problems. I used an evaluation board for the chip I was programming, sort of a safe development circuit to prototype the driver. The board has some features on it besides the chip, a few are LEDs that are easier to control and hardwired into the boards circuit. I started by manipulating the LEDs on the board, learning about pulse width modulation and how to control them with timers and interrupts. This was new to me and very cool. The development was different from what I am used to because it is a different computer and the debug process can be very different. It is also much easier to lock the system up and not know it or understand why because the system is smaller than normal computers and the amount of error messages it delivers is far less than a personal computer. When you develop on a personal computer, you are inside the system of that computer so the system has a much better idea of what you are doing wrong. With the microcontroller, you are developing from an external system and you are developing the system that the microcontroller uses so the only basis for error messages is know the instruction set which your microcontroller architecture uses, and knowing the physical schematics of the how the microcontroller and all its registers work. After playing with PWM, timers, and interrupts I moved on to add the direct memory access controller to play a role in controlling theDMA. DMA uses hardly any of the core CPU and it can be used to transfer different values to our timer to make different PWM’s. I was told I would need it for the final LED driver, so I – learned how it worked and practiced more with the LEDs on the evaluation board. Adding DMA to the project made manipulating different PWM streams possible with fast performance and little effect on the core processor. Though this seems insignificant when thinking that I am only driving a few LEDs, it becomes very useful due to the fact that the core of the chip is needed to fly the drone. This optimizes the drones chip features for the use of an LED, and perhaps this knowledge will be useful in future research.
Results:
Currently the project is still under development. As I finish my last quarter here at the University of Oregon, I am trying to volunteer as much time as possible to the project while finishing school, working for a different research division on campus, and looking for a full time Job. The results have not been fully implemented or tested, but strong progress has been made controlling the LEDs. As of now submitting this abstract, I am able to control the LEDs with our chip using DMA in a way that is scalable for over 100 LEDs. The scaling issue focuses on memory. I am in the midst of integrating the LED driver into Paparazzi’s flight controller so it will work with the -GPS functionality to be able to draw shapes in the sky with certain colors. This is the first goal I plan to accomplish in adding the LED driver to Paparazzi, but once this has been completed and tested I plan to revisit the module to improve its capabilities.
Conclusions:
This project was a very good project for the CAES lab and me because it was able to show some of the possibilities one has when using the CAES drone for a research project. I think I have been able to learn enough on drones and the Paparazzi open source project to be able to document a decent journal to leave the UO CAES Lab. I believe there is much ground to cover in the field of research on drones, especially with their increasing popularity and functionality. In the early phases of the drone research I read several published papers on research in the field and was disappointed at the lack of depth on the subject. First off there was not a wide variety of sources, actually only about two labs were publishing on the matter, and their work was somewhat elementary. Since not much has been published in the field, drone researchers are having a hard time starting deep in areas to publish on. This is a great opportunity area to dive into because there is a lot of room for growth and research papers to be written. It is not that I am excited for one to publish a scientific paper, but it is that I am excited to see scientific papers published in the field of drones in hopes that it will challenge new scholars to dispute findings and focus more on this emerging field of drones. I hope that the work I will provide the UO CAES Lab will contribute to future scientific research papers on drones.