How to Start ARM project ?! Computer Engineering Student needs help!

Thread Starter

EnJuhNeer

Joined Nov 15, 2013
4
Hello everyone!

I am currently a computer engineering student interested in embedded systems and robotics and i feel, that studying all that theory quickly leads to boredom since i personally learn the fastest while doing something practical - which is why i wanted to start my own project. The thing is, that i don't know where to start.


What i have in mind:

I was thinking of an ARM based Quadcopter, that is both capable of autonomous and human-controlled flight. The copter would have all the basic sensors needed for successful flight. I have also added an image (attachment) to describe what i have in mind and what the abstract schematic of the system would look like. Also what i would like to know is wheter an, lets say a 32bit ARM would be capable of handling all communications(includes video transmitting via RF) and sensor processing? Or should all subsystems have their own microcontrollers that communicate with the main ARM MCU? I know, that Flight Control Unit must have its own Microcontroller to handle motor speeds and high voltage for motors, that needs to be isolated from main circuit.


I would like to interface the copter to my PC so that it sends telemetry and flight data to GUI application, which acts kind of as a cockpit, from where i could change flight settings etc, the copter would also be controlled with a joystick through computer and through this application. I was planning to write the GUI application in Java (Java for its easy GUI building) and the software for the copter in ... Should i use C or C++? I thought, that for hardware related programming i should ofcourse use C, but for control and flight logics, because they could highly benefit from OOP?


I KNOW, that this is a very massive project and i have no intentions building it with weeks, or even months. I am ready to learn and study everything i need to know to build such a system, however long it takes.

As a first goal i would be happy to interface the ARM to PC via USB and switch some LEDs on and off from my GUI application. As a next step maybe add a sensor and get it to work reliably, then just see on from there.


SO what i really want to ask is: How should i start and with what? Which would be the firsts steps towards building such an embedded system. ALSO if you see any problems or flaws in my concept - PLEASE point them out to me and maybe even suggest an alternative. If You have any comments regarding this project please be so nice and speak them out loud.


Thank You, all, who are willing to help me study and become more familiar with this world of embedded systems!
 

Attachments

Brownout

Joined Jan 10, 2012
2,390
SO what i really want to ask is: How should i start and with what? Which would be the firsts steps towards building such an embedded system.
As I see it, there are a couple different ways to go. Are you going to fabricate a custom curcuit board? If not, thenI would be looking at development system boards. You'll need to have an interface for each of the periphreals you plan to use. So, the first order of business is to select all the components and list all the interfaces you'll need. Then you can survery dev systems to find one that has the required interfces. There may be other ways to get the interfaces if you can't find a suitable dev syste.
 

Thread Starter

EnJuhNeer

Joined Nov 15, 2013
4
As I see it, there are a couple different ways to go. Are you going to fabricate a custom curcuit board? If not, thenI would be looking at development system boards. You'll need to have an interface for each of the periphreals you plan to use. So, the first order of business is to select all the components and list all the interfaces you'll need. Then you can survery dev systems to find one that has the required interfces. There may be other ways to get the interfaces if you can't find a suitable dev syste.
Go get STM32F0DISCOVERY. For under $10 what is there to lose?
Actually i was planning to fabricate a custom board, maybe first an adapter for easy prototyping. But this STM32F0DISCOVERY also sounds like a good oppurtunity. BUT then i would be discarding all chances to learn anything about electronics design. Should have mentioned it in my original question - i also want to design all electronics by myself.
 

Brownout

Joined Jan 10, 2012
2,390
In that case, the first step is to write a detalied requirements list. You'll need to note every detail about everything the board must do. Interfaces, data throughput, components, software, operating system, device drivers, critical paths, data and control planes, signal integrity, shielding, cooling, RFI/EMI, etc. etc. etc. Once that is done, you might want to rethink doing it all yourself.

Actually, that's not even the first step. Before you do that, you need system requirements, analysis, simulaitons, component line up, and so forth. You have only an idea, but you have alot of research, analysis and organization to do before you can even being designing.

In other words, you need a plan.
 
Last edited:

MrChips

Joined Oct 2, 2009
30,621
No, no, no.

The STM32F0DISCOVERY is to get you up and running with understanding ARM software and hardware development.

After you have done that you are free to layout your own PCB.

To be a successful electronic designer you have the go through the full design loop a few times.
 

Thread Starter

EnJuhNeer

Joined Nov 15, 2013
4
In that case, the first step is to write a detalied requirements list. You'll need to note every detail about everything the board must do. Interfaces, data throughput, components, software, operating system, device drivers, critical paths, data and control planes, signal integrity, shielding, cooling, RFI/EMI, etc. etc. etc. Once that is done, you might want to rethink doing it all yourself.

Actually, that's not even the first step. Before you do that, you need system requirements, analysis, simulaitons, component line up, and so forth. You have only an idea, but you have alot of research, analysis and organization to do before you can even being designing.

In other words, you need a plan.
Thank you, this is a really helpful answer, that directs me - points me a way to start looking answers for my questions! If other users would also share their insights and perspectives as You, i could learn so much!
 

Brownout

Joined Jan 10, 2012
2,390
Also, don't overlook development systems. There exist to help you with your design. When the first PDA was developed, it was prototyped on a dev system before the electronics were designed.
 

Potato Pudding

Joined Jun 11, 2010
688
The Quadcopter is a huge project for an experienced developer.

As a beginner you want to take the small pieces of that and count any of them that you can progress in as a success. If you were a junior in a team with experienced leaders or partners they would still be very happy and impressed if you handled one or maybe two of the systems with all issues resolved and a seamless interface with the rest of the system. They would love you.

I would personally try something much simpler.

Make a small styrofoam glider, like the $1.50 toy ones. Give it some custom ultraminiature control solenoids attached to control surfaces. A piece of tinfoil or tape on a paperclip or twist tie might be enough.

Develop an optic sensor system -three phototransistors might do it - probably infrared or otherwise spectrally filtered - and turn the glider into a guided aircraft.

Have the glider chase a laser pointer dot, or an LED on a tent pole around a dark room.

Build several with an LED on their tails and have them dogfight.

You can do the quadcopter too, but smaller stages will help.
At that stage the STMDiscovery32F4 is worth your time and money. It has peripherals that would be useful like an accelerometer.
 

Thread Starter

EnJuhNeer

Joined Nov 15, 2013
4
Thank You!

All great ideas - i will probably start out with the first stages and won't even think about a quadcopter yet. First i'll probably just start out with a development board like reccomended by you and before and try to interface a simple sensor to it, see if i can get a solid distance calculation program set up with a sonar etc. So when i have an understanding how all subsystems work i'll start trying to make them work together and start developing a quadcopter.
 
Top