drexel_coax_copter
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
drexel_coax_copter [2016/11/01 10:42] – created dwallace | drexel_coax_copter [2016/11/09 16:29] (current) – dwallace | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Co-Axial Helicopter with IR Elevation Control ====== | ====== Co-Axial Helicopter with IR Elevation Control ====== | ||
- | == Introduction == | + | ===== Introduction ===== |
This is the project I am working on in order to better prepare myself for working with Dr. Tadokoro in Japan next fall. | This is the project I am working on in order to better prepare myself for working with Dr. Tadokoro in Japan next fall. | ||
- | I will be recreating the project found in this article: | + | I will be recreating the project found in this article: |
- | == GantChart == | + | ===== GantChart ===== |
- | [[File: | + | |
- | [[File: | + | |
- | = Updates = | + | {{dylanw: |
+ | |||
+ | {{dylanw: | ||
+ | |||
+ | ===== Updates | ||
+ | |||
+ | ==== 2/11/13 ==== | ||
- | == 2/11/13 == | ||
Created first plan for project, which fell through because I was sick on the weekend I was planning on coming. Instead I just read up on the article and did some research on hardware, IR, and building a circuit. | Created first plan for project, which fell through because I was sick on the weekend I was planning on coming. Instead I just read up on the article and did some research on hardware, IR, and building a circuit. | ||
- | == 2/22/13 == | + | ==== 2/22/13 ==== |
Today I came into the lab and worked on the Dr. Oh's coaxial helicopter (Syma 107RS). I attempted to turn on the heli and controller and while the helicopter turned on, the controller didn' | Today I came into the lab and worked on the Dr. Oh's coaxial helicopter (Syma 107RS). I attempted to turn on the heli and controller and while the helicopter turned on, the controller didn' | ||
Here are the images I took of previous Syma and its controller. | Here are the images I took of previous Syma and its controller. | ||
- | < | ||
- | File: | ||
- | File: | ||
- | File: | ||
- | File: | ||
- | </ | ||
- | == 3/2/13 == | + | {{dylanw: |
+ | Red Syma Helicopter\\ | ||
+ | |||
+ | {{dylanw: | ||
+ | Internal LED and RF Controller Internals\\ | ||
+ | |||
+ | ==== 3/2/13 ==== | ||
Tested the Yellow Syma 107 Helicopter that came in the previous week. The controller works with the Red Syma helicopter and it flies well. It is difficult to fly the yellow helicopter and it constantly translates to its left while it is flying, so it is a difficult to simply | Tested the Yellow Syma 107 Helicopter that came in the previous week. The controller works with the Red Syma helicopter and it flies well. It is difficult to fly the yellow helicopter and it constantly translates to its left while it is flying, so it is a difficult to simply | ||
- | {{#ev:youtube|ic7JOI80d1Q}} | + | {{youtube>ic7JOI80d1Q?large}}\\ |
+ | |||
+ | ==== 3/16/13 ==== | ||
- | == 3/16/13 == | ||
I downloaded several android apps that work with the audio jack transmitter. However none of them worked on the syma 107, even the one designed to work with it. I attempted to use the code I had found online to signal the Syma 107 with the Arduino program I had written, but that didn't work either. So instead I dissembled the old transmitter and unsoldered the potentiometers in preparation for using it with the arduino. | I downloaded several android apps that work with the audio jack transmitter. However none of them worked on the syma 107, even the one designed to work with it. I attempted to use the code I had found online to signal the Syma 107 with the Arduino program I had written, but that didn't work either. So instead I dissembled the old transmitter and unsoldered the potentiometers in preparation for using it with the arduino. | ||
+ | ==== 3/19/13 ==== | ||
- | == 3/19/13 == | ||
I tested the android transmitter with Chris' | I tested the android transmitter with Chris' | ||
- | < | + | {{youtube>oDIkT7AJqWM?large}}\\ |
- | {{#ev:youtube|oDIkT7AJqWM}} | + | |
+ | ==== 3/20-21/13 ==== | ||
- | == 3/20-21/13 == | ||
I spent these days testing the Infrared LED and attempting to send a signal to the SYMA helicopter from my arduino. When testing my first program I realized that it didn't send the correct signal to the SYMA. After speaking with Rob, I decided to test the signal being put out by hooking up an oscilloscope to a infrared receiver and examining the signal being sent from the real transmitter. After seeing how the signal changed, I decided to look online to see if anyone had decoded the signal that I could borrow. | I spent these days testing the Infrared LED and attempting to send a signal to the SYMA helicopter from my arduino. When testing my first program I realized that it didn't send the correct signal to the SYMA. After speaking with Rob, I decided to test the signal being put out by hooking up an oscilloscope to a infrared receiver and examining the signal being sent from the real transmitter. After seeing how the signal changed, I decided to look online to see if anyone had decoded the signal that I could borrow. | ||
- | == 4/1/13 == | + | ==== 4/1/13 ==== |
The program I have written is able to set the throttle on the Syma 107. | The program I have written is able to set the throttle on the Syma 107. | ||
- | {{#ev:youtube|nJhYnParnlI}} | + | {{youtube>nJhYnParnlI?large}}\\ |
+ | |||
+ | ==== 4/2/13 ==== | ||
- | == 4/2/13 == | ||
I started writing a program that would make the helicopter' | I started writing a program that would make the helicopter' | ||
- | == 4/4/13 == | + | ==== 4/4/13 ==== |
I realized that the helicoper needed something to prevent it from traveling in a direction other than up and down. So I decided to start working on a parallel bar system. I started working on this device in the machine shop by taking some recycled wood. However I quickly realized that the wood split and splintered and became unable to serve the purpose I needed. I decided that I would need another material. | I realized that the helicoper needed something to prevent it from traveling in a direction other than up and down. So I decided to start working on a parallel bar system. I started working on this device in the machine shop by taking some recycled wood. However I quickly realized that the wood split and splintered and became unable to serve the purpose I needed. I decided that I would need another material. | ||
- | == 4/6-7/13 == | + | ==== 4/6-7/13 ==== |
I've been working on an autocad file to laser cut some parts to make the parallel bar system in the Hess machine shop. I've also been working on the program that will take a height entered and make the helicopter rise to the height and attempt to maintain it's height based on some other factor. | I've been working on an autocad file to laser cut some parts to make the parallel bar system in the Hess machine shop. I've also been working on the program that will take a height entered and make the helicopter rise to the height and attempt to maintain it's height based on some other factor. | ||
- | == 5/17/2013 == | + | ==== 5/17/2013 ==== |
I tested the payload of the Syma 107 in order to test how much additional electronics it can lift without affecting it's thrust too much. I determined this to be around 35-40g. Although this may reduce the thrust, the helicopter needs to be weighed down a little in order to track the its height during flight. | I tested the payload of the Syma 107 in order to test how much additional electronics it can lift without affecting it's thrust too much. I determined this to be around 35-40g. Although this may reduce the thrust, the helicopter needs to be weighed down a little in order to track the its height during flight. | ||
- | == 5/27/2013 == | + | ==== 5/27/2013 ==== |
This week I worked on a new AutoCad file in order to cut the pieces that I will assemble into a parallel bar system. The issue is that because of various projects, exams and midterms, and work due this week in class, I was unable to enter the Hess lab in order to laser cut the parts (after speaking with RJ earlier, he recommended using the Hess lab instead of the DASL CNC machine for the parts). I will go into the lab on Tuesday to cut the parts. I will still work on the next step in the project this week in order to keep on track as it does not rely on the parallel bar system to be constructed. | This week I worked on a new AutoCad file in order to cut the pieces that I will assemble into a parallel bar system. The issue is that because of various projects, exams and midterms, and work due this week in class, I was unable to enter the Hess lab in order to laser cut the parts (after speaking with RJ earlier, he recommended using the Hess lab instead of the DASL CNC machine for the parts). I will go into the lab on Tuesday to cut the parts. I will still work on the next step in the project this week in order to keep on track as it does not rely on the parallel bar system to be constructed. | ||
- | ==5/30/13== | + | ==== 5/30/13 ==== |
I cut the parts for the helicopter boom on Tuesday and assembled it today. Here is a video of it moving. | I cut the parts for the helicopter boom on Tuesday and assembled it today. Here is a video of it moving. | ||
- | {{#ev:youtube|b4icqNwcaRE}} | + | {{youtube>b4icqNwcaRE?large}}\\ |
+ | |||
+ | ==== 6/2/13 ==== | ||
- | ==6/2/13 == | ||
This past week I assembled the helicopter boom an the helicopter. I have also created a circuit to measure the height of the helicopter by attacking an ultrasonic sensor to the opposite end of the boom pointing at the ground. Since the ultrasonic sensor will be aiming at the ground and will always be parallel, the height can be determined pretty easily. Also, since the distance from a table to the floor is already a fair distance, there will be no issues with the ultrasonic being too close to the surface it is determining distance to. This following week I will attempt to write the learning algorithm. | This past week I assembled the helicopter boom an the helicopter. I have also created a circuit to measure the height of the helicopter by attacking an ultrasonic sensor to the opposite end of the boom pointing at the ground. Since the ultrasonic sensor will be aiming at the ground and will always be parallel, the height can be determined pretty easily. Also, since the distance from a table to the floor is already a fair distance, there will be no issues with the ultrasonic being too close to the surface it is determining distance to. This following week I will attempt to write the learning algorithm. | ||
- | < | + | |
- | File: | + | {{dylanw: |
- | File: | + | Breadboard Fritzing Circuit\\ |
- | </ | + | |
+ | {{dylanw: | ||
+ | Ultrasonic connected to the arduino and values can be read off of it\\ | ||
Here is the arduino file that I use to send data to and from the ultrasonic to receive the distance measurement. | Here is the arduino file that I use to send data to and from the ultrasonic to receive the distance measurement. | ||
- | *[[Co-Axial Helicopter with IR Elevation Control Code]] | ||
- | == 6/8/13 == | + | [[drexel_coax_copter_code|Co-Axial Helicopter with IR Elevation Control Code]] |
+ | |||
+ | ==== 6/8/13 ==== | ||
This past week I was working on the algorithm to read the ultrasonic values and learn the correct IR signal to send to the helicopter to make it rise based on the reading from the Ultrasonic sensor. I have been able to get the signal to change and raise the heli, however additional testing is still needed. The following video shows the system in action. | This past week I was working on the algorithm to read the ultrasonic values and learn the correct IR signal to send to the helicopter to make it rise based on the reading from the Ultrasonic sensor. I have been able to get the signal to change and raise the heli, however additional testing is still needed. The following video shows the system in action. | ||
- | *[[Co-Axial Helicopter with IR Elevation Control Code]] | ||
- | {{# | ||
+ | {{youtube> | ||
- | ==6/19/13== | + | ==== 6/ |
I have taken a break to take final exams for the past term. Afterwards I had to travel home to Chicago. I took my components with me in order to continue working. I have been coding, however, the parallel bar system was broken on the trip over. I am still tweaking my code however, when I return to Philadelphia I will cut another piece to replace the one that broke and finish testing. I have compiled a list of all the part necessary, where to purchase them and their costs for this project. I have also added a pdf drawing of the parallel bar components and have listed their lengths. | I have taken a break to take final exams for the past term. Afterwards I had to travel home to Chicago. I took my components with me in order to continue working. I have been coding, however, the parallel bar system was broken on the trip over. I am still tweaking my code however, when I return to Philadelphia I will cut another piece to replace the one that broke and finish testing. I have compiled a list of all the part necessary, where to purchase them and their costs for this project. I have also added a pdf drawing of the parallel bar components and have listed their lengths. | ||
- | ''' | + | **Parts List**\\ |
- | {| class=" | + | |
- | |- | + | |
- | ! scope=" | + | |
- | ! scope=" | + | |
- | ! scope=" | + | |
- | ! scope=" | + | |
- | |- | + | |
- | | Helicopter | + | |
- | | 1 | + | |
- | | $18.95 | + | |
- | | [http:// | + | |
- | |- | + | |
- | | IR LED | + | |
- | | 1 | + | |
- | | $0.75 | + | |
- | | [http:// | + | |
- | |- | + | |
- | | Arduino UNO R3* | + | |
- | | 1 | + | |
- | | $29.95 | + | |
- | | [http:// | + | |
- | |- | + | |
- | | Cast Acrylic* | + | |
- | | 12in x 12in x .236in | + | |
- | | $11.95 | + | |
- | | [http:// | + | |
- | |- | + | |
- | | NXT US Sensor* | + | |
- | | 1 | + | |
- | | $21.99 | + | |
- | | [http:// | + | |
- | |- | + | |
- | | NXT Connector Cables* | + | |
- | | 1 | + | |
- | | $24.59 | + | |
- | | [http:// | + | |
- | |- | + | |
- | | Sharp GP2D02 IR Sensor* | + | |
- | | 1 | + | |
- | | $12.50 | + | |
- | | [http:// | + | |
- | |- | + | |
- | | Superglue | + | |
- | | 1 | + | |
- | | $5.64 | + | |
- | | [http:// | + | |
- | |- | + | |
- | | Motorola 1N4001 Diode* | + | |
- | | 1 | + | |
- | | $0.18 | + | |
- | |[http:// | + | |
- | |- | + | |
- | ! scope=" | + | |
- | | $126.50 | + | |
- | |} | + | |
- | < | + | |
- | ''' | + | ^ Item ^ Quantity |
+ | | Helicopter | ||
+ | | IR LED | 1 | 0.75 | [[http:// | ||
+ | | Arduino UNO R3* | 1 | 29.95 | [[http:// | ||
+ | | Cast Acrylic* | ||
+ | | NXT US Sensor* | ||
+ | | NXT Connector Cables* | ||
+ | | Sharp GP2D02 IR Sensor* | 1 | 12.50 | [[http:// | ||
+ | | Superglue | ||
+ | | Motorola 1N4001 Diode* | ||
+ | | Total | ||
- | [[File: | + | *These components were found in the lab, a place to purchase them is provided. |
+ | |||
+ | **Parallel Bar Components** | ||
+ | |||
+ | {{dylanw: | ||
Each piece is cut multiple times to have backups in case they break. | Each piece is cut multiple times to have backups in case they break. | ||
Line 152: | Line 129: | ||
The large t-shaped parts are glued to the helicopter' | The large t-shaped parts are glued to the helicopter' | ||
- | {| class=" | + | ^ Component |
- | |- | + | | Parallel Bar |
- | ! scope=" | + | | Connector Pieces |
- | ! scope=" | + | | End Pieces |
- | |- | + | | T-shape (bar) | 20mm x 100mm | |
- | | Parallel Bar | + | | T-shape (narrow piece) | 2.5mm x 45mm | |
- | | 20mm x 300mm | + | | Hole sizes |
- | |- | + | | Distance between holes | 25mm |
- | | Connector Pieces | + | | Contour radius |
- | | 20mm x 45mm | + | |
- | |- | + | |
- | | End Pieces | + | |
- | | 20mm x 85mm | + | |
- | |- | + | |
- | | T-shape (bar) | + | |
- | | 20mm x 100mm | + | |
- | |- | + | |
- | | T-shape (narrow piece) | + | |
- | | 2.5mm x 45mm | + | |
- | |- | + | |
- | | Hole sizes | + | |
- | | 2mm | + | |
- | |- | + | |
- | | Distance between holes | + | |
- | | 25mm | + | |
- | |- | + | |
- | | Contour radius | + | |
- | | 5mm | + | |
- | |} | + | |
- | ==6/ | + | ==== 6/28/13 ==== |
- | When I returned to campus I found that the laser cutting lab was shut down for the summer. As a result, I chose to directly super-glue the helicopter to the helicopter boom instead of gluing the landing gear to the helicopter boom. I proceed to test my code. I found that the ultrasonic sensor was simply not outputting accurate enough values for the program. As a result I decided to quickly change the NXT Ultrasonic sensor to a Sharp GP2D02 IR distance sensor. It was fairly simple to set up this sensor and integrate it into my program. I used a library by [https:// | + | |
- | [[File: | + | |
- | I then proceeded to test my program in order to get readings. After tweaking for a bit, the ending program was able to get the readings needed in order to begin improving on its runs each time. | + | |
- | ''' | + | When I returned to campus I found that the laser cutting lab was shut down for the summer. As a result, I chose to directly super-glue the helicopter to the helicopter boom instead of gluing the landing gear to the helicopter boom. I proceed to test my code. I found that the ultrasonic sensor was simply not outputting accurate enough values for the program. As a result I decided to quickly change the NXT Ultrasonic sensor to a Sharp GP2D02 IR distance sensor. It was fairly simple to set up this sensor and integrate it into my program. I used a library by [[https://sites.google.com/ |
- | [[File:IRHeliProject_FinalCircuit.png|500px|thumb|center|Output vs CM]] | + | |
+ | {{dylanw: | ||
- | ''' | + | I then proceeded to test my program in order to get readings. After tweaking for a bit, the ending program was able to get the readings needed in order to begin improving on its runs each time. |
- | Code is here: [[Co-Axial_Helicopter_with_IR_Elevation_Control_Code# | + | |
+ | **Final Circuit Design** | ||
- | The way the algorithm works is it is first inputted value for the height that it needs to achieve. It converts this to a signal to look for from the GP2D02 with a bit of wiggle room. The algorithm then proceeds to randomize a value for the throttle. After five seconds it records a fitness value (based on the absolute distance between the height needed and the height achieved scaled by the distance between the height needed and the min or max value that can be achieved on the boom.) it and associates it with the throttle value and a run number. It then reruns the algorithm and checks the previous fitness value, if it is an improvement, | + | {{dylanw: |
- | ''' | + | **Algorithm Description** |
+ | |||
+ | Code is here: [[drexel_coax_copter_code# | ||
+ | |||
+ | The way the algorithm works is it is first inputted value for the height that it needs to achieve. It converts this to a signal to look for from the GP2D02 with a bit of wiggle room. The algorithm then proceeds to randomize a value for the throttle. After five seconds it records a fitness value (based on the absolute distance between the height needed and the height achieved scaled by the distance between the height needed and the min or max value that can be achieved on the boom.) it and associates it with the throttle value and a run number. It then reruns the algorithm and checks the previous fitness value, if it is an improvement, | ||
- | {{# | + | **Final Project Video** |
+ | {{youtube> | ||
- | ''' | + | **Reflection** |
This was a very difficult project for me and in the end ruined my image of myself. I thought too highly of myself when I first started creating my gantt chart. I thought it would only take me two weeks. The project didn't seem difficult, I had done similar things before. However, weeks soon turned into months. Pretty soon it became apparent that I did not have the knowledge necessary to decode signals, construct circuits and develop the programs. I felt this was supposed to be a learning experience, so for a long time I chose not to take the simple way out and search if someone else had already decoded the signals. This was my main problem. I did not have the skills or understanding to accomplish this on my own and even asking other members in the lab to teach me how to do things | This was a very difficult project for me and in the end ruined my image of myself. I thought too highly of myself when I first started creating my gantt chart. I thought it would only take me two weeks. The project didn't seem difficult, I had done similar things before. However, weeks soon turned into months. Pretty soon it became apparent that I did not have the knowledge necessary to decode signals, construct circuits and develop the programs. I felt this was supposed to be a learning experience, so for a long time I chose not to take the simple way out and search if someone else had already decoded the signals. This was my main problem. I did not have the skills or understanding to accomplish this on my own and even asking other members in the lab to teach me how to do things |
drexel_coax_copter.1478022140.txt.gz · Last modified: 2016/11/01 10:42 by dwallace