72
先先先先先先先先 Advanced Quad-copter Research Project 先先 : 先先先 先先先 先先 先先先 先先先先 : 先先先 先先 : 先先先先 先先 : 先先先

Thrd relase t

Embed Size (px)

Citation preview

  • 1. Advanced Quad-copter Research Project : : : :

2. 3. 4. 5. 1. 2. 3.4. 5.Visual Basic 6.Innobasci 7.Altium Desinger 09 3.1. 2.4.5.6.7.8.9.10. 1.101 2. C# &C++ 3.3pi 6. 1.1. 2. 3. 4. 5. 6. 7. 8. 1. 2.11 3. 1.101 4. 3pi ()2.3.4.PWM5.6.Arduino 7. 1.Android 1.2.Arduino2.3.APM2.53. 4. 5.PWM4. 5.Visual Basic 6.Innobasci 7.Quartus II 8.Keil uVision36.7.8.9.9.Arduino 10. Altium Desinger 10 1.101 2. 3.3pi 4. 5. 8. 1. 2. 3. 4. 5. 6. 7. 8. 1.101 2.11 3.3pi 4.Make Faire 2012 1.Arduino 2.Bluetooth3.GPS 9. 1.1. 2. 3. 4. 5. 6. 7. 8. 1.101 2.3.4.5.6. 10. () APM2.5 APM2.5 Android Arduino PID DEMO 32345 6.7 8 9.10 11 1213.1415 16 17 18 20 25 25 40 40 5060 70 20 19 80 88 92 97 (%) 11. 12. Android 13. Android AndroidLinux Android AndroidMP3 MIDIFLACWAVJPEGPNGGIFMPEG-4 AndroidGPS 2D3D Android 14. (Ericsson) IEEE 802.15.1----2.45GHz723.1kb/s WIFIWIFIWIFI WIFI 15. Ardupilot 2.5 (APM2.5) 3DR Robots GPS OSD 16. Ardino DUE ArduinoAtmel 8-bit AVRArduino IR() Arduino201210Ardino DUE Arduino16 MHz AtmegaDUE84MHz ARMCPU Direct Memory AccessDMA CPU 17. ARM ARMAdvanced RISC Machine32RISC AMD2014ARM64 Arduino DUE ATSAM3X8E Cortex ARMv7-MCortex-M3 18. 19. Electric Speed Controler , ESC PWM 20. Arduino IDE Arduino IDE (Integrated Development Environment) ArduinoJava ArduinoC (Clike)C 21. Eclipse eclipseIBMJAVA (IDE)eclipse Android IBMeclipseVisual Age for JavaIDEIBM200111 eclipseEclipse Eclipse Foundation20129 Juno4.2 22. Mission Planner APM GPS PWM 23. 22ms1~2msPWM Arduino22msPWM 24. Android AndroidManifest.xmlandroid:screenOrientation="landscape" 25. Android (SeekBar)eclipse src/android/widgetJAVA VerticalSeekBar.java 26. Android SeekBar onDrawrotate(-90)90 (second.xml) VerticalSeekBar 27. Android SeekBar Seek BarSeek Barzz 28. Android Android 29. Android SensorManager smSensorManagerSensor getSystemService(SENSOR_SERVICE) 30. Android SensorManager smSensorManagerSensor getSystemService(SENSOR_SERVICE) 31. Android SensorTypeACCELEROMETER 32. Android SensorEventListener Sensorvalues[0](X)values[1] (Y)xxyy TextView 33. Android Sensor registerListener Sensor.manager.SENSOR_DELAY_FASTEST0 msSensor.manager.SENSOR_DELAY_GAME20 msSensor.manager.SENSOR_DELAY_UI60 msSensor.manager.SENSOR_DELAY_NORMAL200 msregisterListener registerListener(:us) 34. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = 10 inChar = 10 35. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = X inChar = 10 X 36. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = 5 inChar = 10 X 5 37. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = Y inChar = 10 X 5 Y 38. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = 60 inChar = 10 X 5 Y 60 39. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = Z inChar = 10 X 5 Y 60 Z 40. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = 1000 inChar = 10 X 5 Y 60 Z 1000 41. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = R inChar = 10 X 5 Y 60 Z 1000 R 42. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = 1900 inChar = 10 X 5 Y 60 Z 1000 R 1900 43. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = M inChar = 10 X 5 Y 60 Z 1000 R 1900 M 44. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //ture inputString =/ninChar = 10 X 5 Y 60 Z 1000 R 1900 M /n 45. Arduino [SerialEvent] char inChar ; While (Serial1.available()) inChar =(Serial1.read()) ; //PWM inputString += inChar ; //inCharIf (inChar == /n) //stringComplete = ture ; //tureinputString = /ninChar = 10 X 5 Y 60 Z 1000 R 1900 M /nstringComplete = ture// 46. Arduino If (stringComplete) // // () XXYYZZM 'R // 10X 5Y 60Z 1900M 1000RPWM p2 = inputString.indexOf(Y) ;; //Y p3 = inputString.indexOf(Z) //Z MR p1 = inputString.indexOf(X) ; //X (index) (index) (index)vy = (1060 + (inputString.substring (p1+1,p2) . vz (p2+1,p2) vx = (1050 + (inputString.substring (0,p1) . toInt()) * 3.8 / 10 ; toInt()) * 3.8/ 10 ; toInt()) * 9/ 10 ;Y = 60 X=5 Z 10 vy = 1671 vz 1862 vx = 1540 47. Arduino If (stringComplete) // // () XXYYZZM 'R // 10X 5Y 60Z 1900M 1000RPWM digitalWrite (pinx , HIGH) ; */ digitalWrite (piny , HIGH) ; digitalWrite (pinz , HIGH) ; digitalWrite (pinm , HIGH) ; digitalWrite (pinr , HIGH) ; inputString = // stringComplete = false ; ///*APM 48. Arduino PWMPWM PWM PWM22ms 1ms~2msdo loop 10us Timer2200 (10us*2200=22ms) 22msPWM//TimerTotal+1 //Total2200 (T = 2200us) 49. Arduino Total = 0vx = 0vy = 0vz = 0vm = 0vr = 0 vxvyvzvmvr 10001100 1200130014001500 (us)PWM XY Z MR 50. PWM Arduino vr For Total If Total >= vx ;; 2200) >= 2200us (++Total < // digitalWrite(pinr LOW) digitalWrite(pinx ,, LOW) ;; HIGH XY ; Z MR1100 800 200 1000 600 1200 700 400 Total =1100 2200 51. Arduino 52. Arduino (GP2Y0A02YK0F) 20CM-80CM 4.5V-5V 53. Arduino (GP2Y0A02YK0F) GP2Y0A02YK0FPSD() IRED ( ) 54. Arduino (GP2Y0A02YK0F) PSDPSD 55. Arduino (GP2Y0A02YK0F) PSDPSD 56. Arduino (GP2Y0A02YK0F) PNP-N 850940nm 57. Arduino 58. Arduino Arduino 59. Arduino Arduino - sensorIR10 sensorIR21 Induction()7 Out_DUE(Arduino DUE)6 LED13 Sensor1() 60. Arduino Arduino - Induction out_DUE LED LOW( 61. Arduino Arduino - sensorIR1sensor1 y = 10650.08 * x ^ (-0.935) 10() delay time 62. Arduino Arduino -Data Sheet 63. Arduino Arduino -EXCEL 64. Arduino Arduino - : y = 10650.08 * x ^ (-0.935) - 10 65. Arduino Arduino - 30cm 30sensor HIGH HIGHDUE LED 66. Arduino Arduino 67. 68. (APM) 3.3VICTPS79133DBVR 3.3V0V 69. (APM) 3.3VICTPS79133DBVR 3.3V0V 70. PCB TPS79133DBVR 3.3VHMC5883L AT45DB161D-MU Data Flash MS5611-01BAMPU-6000 ( + ) 71. IC 72. CJAVA XML