I have been working on making a quad-copter from scratch. My idea is to create an autonomous capable quad copter from scratch, studying open source projects for assistance. My design uses (4) ATMEGA8 MCU as motor driver/controllers, and many sensor inputs (GPS, Temp, Gyro, Voltage, Proximity, etc). I plan track many data points, and add features as I learn.
My current Hardware goal is to design and build it in a way that the hardware is capable of supporting anything I may want to do in the future.
I am now trying to pick a "brain" for this project. Comparable commercial project (open source) would be the 3DR Pixhawk, which uses ARM MPU. Pixhawk controller page
I am ok with the answer being a combination of MCU and MPU or one or the other, im just stuck.
I am torn between a few Arduino boards, the Galileo, the Edison, and the Beaglebone Black.
Rasberry Pi doesn't seem to be geared towards this project.
I want my copter to learn from previous data it collects, so that it impacts how it corrects flight in future adjustments, maybe makes real time changes to its flight plan based on input. Or sometimes all of that is disabled for manual flight mode with software assistance (i plan to make my beginning here).
Can anybody knowledgeable in strengths and weaknesses of these different boards shed some light on advantages or disadvantages of one over the other? I am attaching a theoretical flow chart to illustrate my guestimate of how this can work. This is also one of my first software projects outside of scripting for lab equipment, so learning curve and programming efficiency also matter, as it means Ill be reading books on a new language, whichever that happens to be.
I found this article, it seems to indicate my flowchart idea is kind of accurate, maybe minus the MCU for data aquisition, in favor of interfacing with I2C directly from main MCU.
Any other thoughts on this matter? Does that article seem accurate in comparing MCU vs MPU in this project?
I don't think the ATmega-based Arduinos will work. The Arduino MEGA 2560 can't run the latest "ArduPilot" builds because it just doesn't have the program and memory space. That's why they switched to ARM for the Pixhawk. If you plan to write your own software you should probably start with an ARM processor now. Maybe the $20 Teensy 3.1 (72 MHz Cortex-M4, 64K SRAM, 256K FLASH) would be a good choice. You could start with the ArduPilot code and build on that.
johnwasser:
I don't think the ATmega-based Arduinos will work. The Arduino MEGA 2560 can't run the latest "ArduPilot" builds because it just doesn't have the program and memory space. That's why they switched to ARM for the Pixhawk. If you plan to write your own software you should probably start with an ARM processor now. Maybe the $20 Teensy 3.1 (72 MHz Cortex-M4, 64K SRAM, 256K FLASH) would be a good choice. You could start with the ArduPilot code and build on that.
Thanks, thats what i was wondering. I have done lots of reading and I am at another question in this same topic.
I see very little done with the intel eddison as a Flight controller, so I wanted to play with that and start there.
If I do that, knowing its a microprocessor running an OS, should I still use an ARM Microcontroller in conjunction with it?
One line of thought says that the eddison will be running an opperating system and I need a dedicated chip for flight control so that if time gets managed poorly and services take priority over flight control, there is a microcontroller to keep it flying stable.
My other line of thinking says that intel eddison is so darn fast, that there is no need for an arm microcontroller because he can bang through instructions quick enough that managing services wouldn't matter.
I am wanting to do autonomous flight with communications to a ground PC via RF or WIFI so the processor will be doing some background stuffs.