Arduino "wannabe" beginner questions

Hello everyone,
My name is Matteo a 20 year old aerospace engineer student from Italy.

I would like to start learning Arduino, in order to get more into some “practical aspects” of what I am studying: I cannot hide you that one of the goals I have in mind is to build my own quadcopter!
But, before committing into “big projects”, I think it is a way be better to start off with simple stuff, just to get in touch with the board and its programming.
Now, I have put my eye on the starter kit: basic stuff, of course, but probably enough to understand something about Arduino and to get a basic “know – how”. Am I wrong?

Then, a mandatory specification on the state of my programming knowledge: at the moment I don’t know how to program in C/C++ language which, if I remember correctly, is the language you must “talk” to the board with (even if in the future I plan to learn it).
But I have read that it is possible to get an interface for Arduino boards with MATLAB and Simulink too: this may be a better approach for me, since I already know something about how to use them, along with their “philosophy”.
My question is: using these two softwares to program the board, may I use them to COMPLETELY program the board, without losing any versatility?

Finally, I would really appreciate if anyone could give me some tips on useful books !

Thanks in advance,
Have a good day

Matteo

p.s.: I hope to have posted in the correct section. If not, I do apologize for the inconvenience.

I am sorry to have to tell you but although you can interface the Arduino with MATLAB and Simulink you cannot program it using them. For that you need to learn some C++ which would be a worthwhile investment for you. The Arduino IDE has a number of examples included that will show you the basics and there is plenty of help available on the Web, not least here.

Go on, take the plunge and buy an Arduino. You know you want to !

UKHeliBob:
Go on, take the plunge and buy an Arduino. You know you want to !

Yeah, you're right!

Anyway, a bad news!
But then, it seems that many factors would lead me to start learning C. LOL

Now, it may sound as a very beginner question, but: ok, I cannot program the board to do what I want it to do with MATLAB and simulink, so...what are they useful for?

teopilot:
Now, it may sound as a very beginner question, but: ok, I cannot program the board to do what I want it to do with MATLAB and simulink, so...what are they useful for?

But you can program the Arduino to do what you want it to do with MatLab (I don't know enough about simulink). You just can't use MatLab to program the board.

You use C++ and the Arduino IDE to write and upload programs to the Arduino. You can then use any program that can communicate with the Arduino via USB, Ethernet, WiFi, Bluetooth, Radio, etc. to send and receive data that can be used to control almost anything.

There are quite a number of folks using MatLab, talking to Arduinos, and quite a few using Arduinos to fly Quadcopters (see http://aeroquad.com/content.php). The Arduino Mega2560 is one of the preferred boards for a full-featured Quadcopter, and depending on your level of expertise, you may write all or part of the software, or download complete, fully functional open-source software.

It's good that you know what you ultimately want to do, but to jump to that without some programming experience under your belt is like dropping out of the womb and instantly trying to run a sub-10 second 100 meters. Buy the Mega board and start running the sample programs that are distributed with the IDE. There are plenty of tutorials on C and C++ available free on the web. Personally, I'd start with C and ease into C++.

The Arduino system makes using C/C++ easy by hiding some of the "housekeeping" behind the scenes.

It is a great system for learning by doing. If you get an Arduino and work through some of the examples that come with the Arduino IDE you will soon discover that you have learned a good bit of C/C++ without any effort.

Personally I think you would be better to start with an Arduino board before you start studying C/C++ in any organized way - especially if you are already familiar with programming concepts from any other language. By getting a basic learning from the Arduino it will help to focus your studies.

...R

Well, first of all I would like to thank you very much for the replies and the inputs!

Then, just to point out: my programming knowledge is limited to write MATLAB codes to solve numerical analisys problems.
And then I can use simulink as a support for modelling and simulate the behaviour of simple physical systems.
But, probably, better than nothing! :wink:

Robin2:
It is a great system for learning by doing.

Although some C/C++ may be useful in life I agree with you that probably, as far as Arduino is concerned, a learning by doing (of course with the support of books and materials about programming) is more effective.

econjack:
It's good that you know what you ultimately want to do, but to jump to that without some programming experience under your belt is like dropping out of the womb and instantly trying to run a sub-10 second 100 meters.

Even if my dreams are big, I still keep my feet on the ground, with the intention of starting from basic stuff. :wink:

lar3ry:

teopilot:
Now, it may sound as a very beginner question, but: ok, I cannot program the board to do what I want it to do with MATLAB and simulink, so...what are they useful for?

But you can program the Arduino to do what you want it to do with MatLab (I don't know enough about simulink). You just can't use MatLab to program the board.

You use C++ and the Arduino IDE to write and upload programs to the Arduino. You can then use any program that can communicate with the Arduino via USB, Ethernet, WiFi, Bluetooth, Radio, etc. to send and receive data that can be used to control almost anything.

Probably there is something a bit unclear to my mind.
What are the limitations I may encounter using MATLAB instead of the standard IDE?

As far as "what to buy", do you think that the starter kit would be a good idea?
I mean, it seems that it contains some different things that allow you to start with several micro-projects...
But would the board UNO be able to support also "bigger" stuff (I am thinking of eventual future developments, still basilar!)?

I think "starter kits" are often a waste of money, in that most people have a particular area of interest, but you end up paying for stuff that you may never use. In your case, rather than buying a kit, buy an Arduino, and breadboard, a hefty wall wart, and a servo motor or two and experiment with those for a while, using the resources available to you on this site.

teopilot:

lar3ry:

teopilot:
Now, it may sound as a very beginner question, but: ok, I cannot program the board to do what I want it to do with MATLAB and simulink, so...what are they useful for?

But you can program the Arduino to do what you want it to do with MatLab (I don't know enough about simulink). You just can't use MatLab to program the board.

You use C++ and the Arduino IDE to write and upload programs to the Arduino. You can then use any program that can communicate with the Arduino via USB, Ethernet, WiFi, Bluetooth, Radio, etc. to send and receive data that can be used to control almost anything.

Probably there is something a bit unclear to my mind.
What are the limitations I may encounter using MATLAB instead of the standard IDE?

Just reviewing threads I have participated in, and not followed after...

Well it depends on what you mean. If you mean "using MATLAB to program the Arduino", the limitation is that it would be quite a feat to have MATLAB compile a program and upload it. The word "impossible" could be proven to be wrong, but it would come close.

As for communicating with the Arduino after you have programmed it, there are no real limitations. The IDE, to communicate with a running program, uses the Serial Monitor. You type things to send to the program, and read things it sends back. The limitation there is that the stuff that comes back is only useful if read by a human who understands what the program is telling you.

You can use any serial device to send data to and receive data from the Arduino, which means that a PC program could send commands, the Arduino could do something, and report back, and the PC program could then send different commands based on the data that came back.

If MATLAB can send data on a serial port, and receive data from that same port, it can be the PC (Or Mac, or whatever) program that interfaces with the Arduino. All you need to do is to write the Arduino program to be able parse the output from MATLAB, and be able to respond to MATLAB in a format that is readable by (and meaningful to) MATLAB

Of course, you can also communicate with the Arduino without a PC proram. It could be a device that communicates and that communication can be Serial, Two-Wire interface, SPI, One-Wire, Radio, IR, or whataver.