Browse Source

Extended xyControl

Thomas Buck 12 years ago
parent
commit
a272d7aa6a
3 changed files with 25 additions and 19 deletions
  1. 15
    9
      input/projects/xycontrol.md
  2. 2
    2
      output/rss.xml
  3. 8
    8
      output/xycontrol.html

+ 15
- 9
input/projects/xycontrol.md View File

31
 
31
 
32
 Three tasks are controlling the Quadrocopter Orientation in Space.
32
 Three tasks are controlling the Quadrocopter Orientation in Space.
33
 
33
 
34
-+ The Orientation Task reads the Gyroscope and Accelerometer and calculates the current Roll and Pitch angles. They are stored in the global struct "orientation".
35
-+ The PID Task is then feeding these angles into two PID controllers. Their output is then used by...
36
-+ The Set Task, which calculates the motor speeds and gives them to...
37
-+ The motor task, which sends the new values via TWI to the motor controllers.
34
++ The [Orientation Task][orient] reads the Gyroscope and Accelerometer and calculates the current Roll and Pitch angles. They are stored in the global struct "orientation".
35
++ The [PID Task][pid] is then feeding these angles into two PID controllers. Their output is then used by...
36
++ The [Set Task][set], which calculates the motor speeds and gives them to...
37
++ The [motor task][motor], which sends the new values via TWI to the motor controllers.
38
 
38
 
39
 # Supported Hardware
39
 # Supported Hardware
40
 
40
 
44
 + Brushless Motor Driver [BL-Ctrl V1.2][ctrl] with eg. the [Robbe Roxxy Outrunner 2824-34][mot] Brushless Motor.
44
 + Brushless Motor Driver [BL-Ctrl V1.2][ctrl] with eg. the [Robbe Roxxy Outrunner 2824-34][mot] Brushless Motor.
45
 + BTM-222 Bluetooth UART Bridge ([PCB][bt])
45
 + BTM-222 Bluetooth UART Bridge ([PCB][bt])
46
 
46
 
47
-## External Memory (xmem.h)
47
+## External Memory ([xmem.h][xmem])
48
 
48
 
49
 The external memory consists of a 512Kx8 SRAM, bank-switched onto the 16bit avr address space.
49
 The external memory consists of a 512Kx8 SRAM, bank-switched onto the 16bit avr address space.
50
 This gives us 8 memory banks, consisting of 56KB. All memory from 0x0000 to 0x21FF is the AVRs internal memory. The memory banks are switched into 0x2200 to 0xFFFF.
50
 This gives us 8 memory banks, consisting of 56KB. All memory from 0x0000 to 0x21FF is the AVRs internal memory. The memory banks are switched into 0x2200 to 0xFFFF.
52
 
52
 
53
 The data and bss memory sections, as well as the Stack are located in the internal RAM. The external RAM is used only for dynamically allocated memory.
53
 The data and bss memory sections, as well as the Stack are located in the internal RAM. The external RAM is used only for dynamically allocated memory.
54
 
54
 
55
-## Orientation Calculation (orientation.h)
55
+## Orientation Calculation ([orientation.h][orient])
56
 
56
 
57
 Calculates the current angles of the platform, using Gyroscope and Accelerometer Data with a Kalman Filter. It is using this slightly modified [Kalman Filter Implementation][kalman] by Linus Helgesson.
57
 Calculates the current angles of the platform, using Gyroscope and Accelerometer Data with a Kalman Filter. It is using this slightly modified [Kalman Filter Implementation][kalman] by Linus Helgesson.
58
 
58
 
59
 # PC and Android Tools
59
 # PC and Android Tools
60
 
60
 
61
-You can find some PC Software in the 'tools' directory. Each one should be accompanied by it's own Readme file.
61
+You can find some PC Software in the [tools][tools] directory. Each one should be accompanied by it's own Readme file.
62
 
62
 
63
 ## UART-Flight Status Packet Format
63
 ## UART-Flight Status Packet Format
64
 
64
 
93
  [pololu]: http://www.pololu.com/catalog/product/1268
93
  [pololu]: http://www.pololu.com/catalog/product/1268
94
  [ctrl]: http://www.mikrokopter.de/ucwiki/en/BL-Ctrl_V1.2
94
  [ctrl]: http://www.mikrokopter.de/ucwiki/en/BL-Ctrl_V1.2
95
  [mot]: http://www.conrad.de/ce/de/product/231867
95
  [mot]: http://www.conrad.de/ce/de/product/231867
96
- [bt]: http://xythobuz.org/index.php?p=bt
96
+ [bt]: http://xythobuz.de/bluetooth.html
97
  [kalman]: http://www.linushelgesson.se/2012/04/pitch-and-roll-estimating-kalman-filter-for-stabilizing-quadrocopters/
97
  [kalman]: http://www.linushelgesson.se/2012/04/pitch-and-roll-estimating-kalman-filter-for-stabilizing-quadrocopters/
98
  [fleury]: http://homepage.hispeed.ch/peterfleury/avr-software.html
98
  [fleury]: http://homepage.hispeed.ch/peterfleury/avr-software.html
99
  [gpl]: http://www.gnu.org/licenses/gpl.html
99
  [gpl]: http://www.gnu.org/licenses/gpl.html
100
- [bsd]: https://github.com/xythobuz/xyControl/blob/master/COPYING
100
+ [bsd]: https://github.com/xythobuz/xyControl/blob/master/COPYING
101
+ [xmem]: https://github.com/xythobuz/xyControl/blob/master/include/xmem.h
102
+ [orient]: https://github.com/xythobuz/xyControl/blob/master/include/orientation.h
103
+ [tools]: https://github.com/xythobuz/xyControl/tree/master/tools
104
+ [pid]: https://github.com/xythobuz/xyControl/blob/master/include/pid.h
105
+ [set]: https://github.com/xythobuz/xyControl/blob/master/include/set.h
106
+ [motor]: https://github.com/xythobuz/xyControl/blob/master/include/motor.h

+ 2
- 2
output/rss.xml View File

6
 <atom:link href="http://www.xythobuz.de/rss.xml" rel="self" type="application/rss+xml" />
6
 <atom:link href="http://www.xythobuz.de/rss.xml" rel="self" type="application/rss+xml" />
7
 <description>xythobuz Electronics &amp; Software Projects</description>
7
 <description>xythobuz Electronics &amp; Software Projects</description>
8
 <language>en-us</language>
8
 <language>en-us</language>
9
-<pubDate>Mon, 06 May 2013 20:03:07 -0000</pubDate>
10
-<lastBuildDate>Mon, 06 May 2013 20:03:07 -0000</lastBuildDate>
9
+<pubDate>Mon, 06 May 2013 20:35:53 -0000</pubDate>
10
+<lastBuildDate>Mon, 06 May 2013 20:35:53 -0000</lastBuildDate>
11
 <docs>http://blogs.law.harvard.edu/tech/rss</docs>
11
 <docs>http://blogs.law.harvard.edu/tech/rss</docs>
12
 <generator>Poole</generator>
12
 <generator>Poole</generator>
13
 
13
 

+ 8
- 8
output/xycontrol.html View File

55
 <h2>Flight Control Software Flow</h2>
55
 <h2>Flight Control Software Flow</h2>
56
 <p>Three tasks are controlling the Quadrocopter Orientation in Space.</p>
56
 <p>Three tasks are controlling the Quadrocopter Orientation in Space.</p>
57
 <ul>
57
 <ul>
58
-<li>The Orientation Task reads the Gyroscope and Accelerometer and calculates the current Roll and Pitch angles. They are stored in the global struct "orientation".</li>
59
-<li>The PID Task is then feeding these angles into two PID controllers. Their output is then used by...</li>
60
-<li>The Set Task, which calculates the motor speeds and gives them to...</li>
61
-<li>The motor task, which sends the new values via TWI to the motor controllers.</li>
58
+<li>The <a href="https://github.com/xythobuz/xyControl/blob/master/include/orientation.h">Orientation Task</a> reads the Gyroscope and Accelerometer and calculates the current Roll and Pitch angles. They are stored in the global struct "orientation".</li>
59
+<li>The <a href="https://github.com/xythobuz/xyControl/blob/master/include/pid.h">PID Task</a> is then feeding these angles into two PID controllers. Their output is then used by...</li>
60
+<li>The <a href="https://github.com/xythobuz/xyControl/blob/master/include/set.h">Set Task</a>, which calculates the motor speeds and gives them to...</li>
61
+<li>The <a href="https://github.com/xythobuz/xyControl/blob/master/include/motor.h">motor task</a>, which sends the new values via TWI to the motor controllers.</li>
62
 </ul>
62
 </ul>
63
 <h1>Supported Hardware</h1>
63
 <h1>Supported Hardware</h1>
64
 <ul>
64
 <ul>
66
 <li>Accelerometer and Magnetometer LSM303DLHC, code based on the <a href="https://github.com/pololu/LSM303">Pololu Example</a>.</li>
66
 <li>Accelerometer and Magnetometer LSM303DLHC, code based on the <a href="https://github.com/pololu/LSM303">Pololu Example</a>.</li>
67
 <li>I got both of these Sensors on the <a href="http://www.pololu.com/catalog/product/1268">MinIMU-9 v2</a>.</li>
67
 <li>I got both of these Sensors on the <a href="http://www.pololu.com/catalog/product/1268">MinIMU-9 v2</a>.</li>
68
 <li>Brushless Motor Driver <a href="http://www.mikrokopter.de/ucwiki/en/BL-Ctrl_V1.2">BL-Ctrl V1.2</a> with eg. the <a href="http://www.conrad.de/ce/de/product/231867">Robbe Roxxy Outrunner 2824-34</a> Brushless Motor.</li>
68
 <li>Brushless Motor Driver <a href="http://www.mikrokopter.de/ucwiki/en/BL-Ctrl_V1.2">BL-Ctrl V1.2</a> with eg. the <a href="http://www.conrad.de/ce/de/product/231867">Robbe Roxxy Outrunner 2824-34</a> Brushless Motor.</li>
69
-<li>BTM-222 Bluetooth UART Bridge (<a href="http://xythobuz.org/index.php?p=bt">PCB</a>)</li>
69
+<li>BTM-222 Bluetooth UART Bridge (<a href="http://xythobuz.de/bluetooth.html">PCB</a>)</li>
70
 </ul>
70
 </ul>
71
-<h2>External Memory (xmem.h)</h2>
71
+<h2>External Memory (<a href="https://github.com/xythobuz/xyControl/blob/master/include/xmem.h">xmem.h</a>)</h2>
72
 <p>The external memory consists of a 512Kx8 SRAM, bank-switched onto the 16bit avr address space.
72
 <p>The external memory consists of a 512Kx8 SRAM, bank-switched onto the 16bit avr address space.
73
 This gives us 8 memory banks, consisting of 56KB. All memory from 0x0000 to 0x21FF is the AVRs internal memory. The memory banks are switched into 0x2200 to 0xFFFF.
73
 This gives us 8 memory banks, consisting of 56KB. All memory from 0x0000 to 0x21FF is the AVRs internal memory. The memory banks are switched into 0x2200 to 0xFFFF.
74
 This gives us 8 banks with 56KB each, resulting in 448KB external RAM.</p>
74
 This gives us 8 banks with 56KB each, resulting in 448KB external RAM.</p>
75
 <p>The data and bss memory sections, as well as the Stack are located in the internal RAM. The external RAM is used only for dynamically allocated memory.</p>
75
 <p>The data and bss memory sections, as well as the Stack are located in the internal RAM. The external RAM is used only for dynamically allocated memory.</p>
76
-<h2>Orientation Calculation (orientation.h)</h2>
76
+<h2>Orientation Calculation (<a href="https://github.com/xythobuz/xyControl/blob/master/include/orientation.h">orientation.h</a>)</h2>
77
 <p>Calculates the current angles of the platform, using Gyroscope and Accelerometer Data with a Kalman Filter. It is using this slightly modified <a href="http://www.linushelgesson.se/2012/04/pitch-and-roll-estimating-kalman-filter-for-stabilizing-quadrocopters/">Kalman Filter Implementation</a> by Linus Helgesson.</p>
77
 <p>Calculates the current angles of the platform, using Gyroscope and Accelerometer Data with a Kalman Filter. It is using this slightly modified <a href="http://www.linushelgesson.se/2012/04/pitch-and-roll-estimating-kalman-filter-for-stabilizing-quadrocopters/">Kalman Filter Implementation</a> by Linus Helgesson.</p>
78
 <h1>PC and Android Tools</h1>
78
 <h1>PC and Android Tools</h1>
79
-<p>You can find some PC Software in the 'tools' directory. Each one should be accompanied by it's own Readme file.</p>
79
+<p>You can find some PC Software in the <a href="https://github.com/xythobuz/xyControl/tree/master/tools">tools</a> directory. Each one should be accompanied by it's own Readme file.</p>
80
 <h2>UART-Flight Status Packet Format</h2>
80
 <h2>UART-Flight Status Packet Format</h2>
81
 <pre><code>printf("t%.2f %.2f %.2f\n", kp, ki, kd);
81
 <pre><code>printf("t%.2f %.2f %.2f\n", kp, ki, kd);
82
 printf("u%.2f %.2f\n", pid_output[1], pid_output[0]); // Pitch, Roll
82
 printf("u%.2f %.2f\n", pid_output[1], pid_output[0]); // Pitch, Roll

Loading…
Cancel
Save