How to interface software with external hardware?

I am interested in learning how to program on the Arduino, I decided it would be a good time for me to get into programming micro controllers. I understand where to start with the micro controller part, there are many books out there with many tutorials and even thousands of documentation online for the Arduino. Eventually I would expand my learning to other platforms and do more experimenting. But I want to learn some computer programming in parallel with the micro controller. What would be a good place to start for a language to use for interfacing computer software with external micro controllers like what is done with the Ardupilot GS software? I was looking to learn C++ as a general computer language, but would this be best? I honestly do not know many of the differences in terms of usefulness of all the languages out there. How exactly does the Ardupilot GS do this? Is it programmed in something like C++, then uses something else to interface with the serial bus? What is the difference between a scripting language like python vs C++? Anything that I could find helpful in the scope of this question would be appreciated.

Views: 25

Reply to This

Replies to This Discussion

Scott,

     those are some big questions but you've got to start somewhere I guess!  Some answers:

        - if you program in Arduino then you're actually programming in C++ so it would make sense to try and learn C++ although it's probably one of the harder languages.  Still on a micro controller, the programs are small and it's not too scarry.

       - the GS can be written in any language - normally they use a higher level language than C++..like Visual Basic or Java.

 

     If I were you, I'd start by buying a getting started book on Arduino (like this one from Sparkfun: http://www.sparkfun.com/products/9301) and make it control a servo or an led or something simple like that.  See how that goes and figure out what you want to do next.

 

-Randy

Thank you for the reply.  I have messed around with programming here and there, just never stayed with it. Learning servo control is definitely where I will be starting though. Fundamentals fundamentals, very important.

Scott,

I was once where you are and have learned a good amount of C++ by decifering and then writing code for the Aurduino.

Having a goal and being stuborn and not giving up you can do it to.

Download the latest Arduino IDE/ compiler, buy Arduino boards, I would suggest the Ardupilot , get an ftdi and get to work. It takes a lot of time, especialy for a beginer, but you seem to have the drive.

I have spent many hundreds of dallars on dev boards and IDE/compilers and never did mutch more than make some leds flash (at my will_yea). Having a usefull goal and a good head start does wonders for your enthusiasm, but beware.

When you start having success it can become addictive. Look on Amazon for a book called "C++ Without Fear" by Brain Overland. It is a good referance and can get you started.

Start looking at the Ardupilot code even though you may not get it at first. Keep a tab open to the Arduino reference page and read it often.

Hey, if I did it you can too. It take effort and time, but it's worth it.

Good luck.

 

Yes, I realize it is quite the process. I am getting better at setting realistic goals and working on my self discipline. Based on a lot of past experiences, I now realize that even If I want to do or learn something, it does not automatically make it easy. Especially since starting my Electronics technician class, as a high school program, I am attending a college as an alternative to graduating from normal high school. Free two year tech degree, no problem with that. I plan on going into Electronics engineering, and computer science. Perhaps aiming toward the field of computer systems engineering, but there are many options.

 

Would it be worth it to put in the extra effort over the next years of school on my own time to learn programming, and the sorts? I realize I will have to probably re learn a lot of this information, but it might be nice to have already become familiar. Even aside from that, it is a personal interest of mine, perhaps a tad bit above the level of a hobby considering my career options.

Heck yes it would be worth the effert. I was speaking of my own experience at learning C++.

I never said it would be easy. Getting to the top of your own personal goal/hill/peak has its rewards.

Having dabbled in FORTRAN using an IBM punch card machine as a lot of collage kids did back then (wow am I old or what) , doing a little basic and labview, very little, I have made amazing success ,errr got it to work well . Reverse enginering/learning works well for me. Arduino is the only real codeing I have done. Then there is "Processing" for the PC that was stared by the same poeple as Arduino.

I can now build that "BAT DRONE" that I saw on said kinda super hero show from 1966.

Appreciate the input, very encouraging, and thoughtful.

There are some resources that may help you getting started from scratch here: http://www.practicalarduino.com/

RSS

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The third round was a reliablilty/aerial photography round for both planes and copters, which is now closed. Stay tuned for the next round, beginning soon.

A list of all T3 contests is here

 

© 2012   Created by Chris Anderson.

Badges  |  Report an Issue  |  Terms of Service