{"id":23,"date":"2012-08-10T13:42:30","date_gmt":"2012-08-10T13:42:30","guid":{"rendered":"http:\/\/www.dnclabs.com\/?p=23"},"modified":"2012-08-11T15:19:34","modified_gmt":"2012-08-11T15:19:34","slug":"quadracopter-design-philosophy","status":"publish","type":"post","link":"http:\/\/www.dnclabs.com\/?p=23","title":{"rendered":"Quadracopter design philosophy"},"content":{"rendered":"<p>I started work on a quadracopter design a year ago but I&#8217;m not sure my motivations are the same as others who take on this challenge. My initial goal is to understand how the quadracopter works rather than flying one. As a result my work has been divided into a number of sub-systems that can be designed and characterized. Information on quadracopters comes in two forms. First there are research papers filled with math and second there are a lot of example projects complete with code but almost no documentation. I want to travel a path between those extremes to get to the point where I can design my own sub-systems while having a solid understanding of how all of the math turns into\u00a0 design decision. I plan to document my research in a less formal method using only enough math to get the job done. I also want to document the open source code and hardware that goes into the building\u00a0 blocks so they are available for re-use.<\/p>\n<p><a href=\"http:\/\/www.dnclabs.com\/wp-content\/uploads\/2012\/08\/Wordpress_QuadracopterDesignPhilosophy.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-89\" title=\"Wordpress_QuadracopterDesignPhilosophy\" src=\"http:\/\/www.dnclabs.com\/wp-content\/uploads\/2012\/08\/Wordpress_QuadracopterDesignPhilosophy.png\" alt=\"\" width=\"623\" height=\"309\" srcset=\"http:\/\/www.dnclabs.com\/wp-content\/uploads\/2012\/08\/Wordpress_QuadracopterDesignPhilosophy.png 779w, http:\/\/www.dnclabs.com\/wp-content\/uploads\/2012\/08\/Wordpress_QuadracopterDesignPhilosophy-300x148.png 300w\" sizes=\"auto, (max-width: 623px) 100vw, 623px\" \/><\/a><\/p>\n<p>The first decision to make was selecting a processor for the quadracopter. While the AVR is a very popular choice I didn&#8217;t want to be processor bound. I also realized that trigonometric functions on and 8 bit processor would cripple the performance. I ended up choosing a 32bit ARM cortex M3 processor which has a clock rate in excess of 100MHz and included a hardware multiplier. The LPC1769 is more than up to the challenge of calculating arctan(&Phi;) without breaking a sweat. This also means I don&#8217;t need to invoke odd algorithmic approximations like using the small angle rule where sin(&Phi;) &asymp; &Phi; which just clouds the code readability. If I need sinf then I just use it and let all that processing power calculate my results.<\/p>\n<p>The other decision I made was to code everything in C using the GCC tool chain. This means that all of the tools are open source and available across all major platforms. The LPCExpresso board that I bought for early development cost ~$30 and includes an in circuit debugger and Eclipse development environment. \u00a0I designed a sensor daughter card that can mount on top of the processor board. This is only for development as I will re-design a new PCB as the project progresses.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I started work on a quadracopter design a year ago but I&#8217;m not sure my motivations are the same as others who take on this challenge. My initial goal is to understand how the quadracopter works rather than flying one.&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"http:\/\/www.dnclabs.com\/?p=23\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-23","post","type-post","status-publish","format-standard","hentry","category-quadracopter"],"_links":{"self":[{"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=\/wp\/v2\/posts\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=23"}],"version-history":[{"count":10,"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=\/wp\/v2\/posts\/23\/revisions"}],"predecessor-version":[{"id":34,"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=\/wp\/v2\/posts\/23\/revisions\/34"}],"wp:attachment":[{"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.dnclabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}