Interested in Arduino

Hi

I heard about Arduino recently and it seemed very interesting, so I went on Google and searched for obvious things (i.e. “What is Arduino?”). To get to the point, I will just put my questions into bullets:

  • Do I need to know C or C++, or any other coding to use Arduino?

  • The only code I know is Linux command-line (well some) &
    even less Windows command line (I think the name is DOS?)

  • Are there any good places (links preferably) that you would recommend for an absolute beginner?

  • What are some good projects for someone who is new?

Pleases expect more questions, as I am getting quite interested in it :smiley:

Thanks

-Happyman7

P.S. To be specific, I first heard of Arduino from lifehacker(.com)/5660412
(1st post, couldn’t have link)

Do I need to know C or C++, or any other coding to use Arduino?

Well, it certainly helps if you have at least some knowledge of programming, but I would say you could learn as you go, too. A lot of people here have, most certainly!

Are there any good places (links preferably) that you would recommend for an absolute beginner?

This site (arduino.cc and this forum), of course. Adafruit has some good tutorials. You’ll also want to check out the Earthshine Electronics store (UK) - they have an excellent free beginners book (its a companion to a kit they sell for beginners, but it is great in its own right). Grumpy Mike’s site has good information on it (http://www.thebox.myzen.co.uk/Hardware/Projects.html).

What are some good projects for someone who is new?

In my opinion, the best project you could work toward would be a robotics project. Robotics is a discipline that brings together just about every subset of the field of computer science you can think of. You can easily start out small (interfacing a couple of continuous rotation servos with some wheels on them, and a couple of microswitches and a bumper - the whole thing held together with double-sided tape - instant small desktop rover), and work your way up into the amazing. Along the way, you will learn everything about hardware interfacing, software development and design, and a whole host of other possible disciplines.

Get your Arduino and a kit of parts; most of the major vendors of “real” Arduinos (like Sparkfun, Earthshine, etc) have beginners kits available with enough parts to learn the basics. Study and learn the basics first (how to blink an LED, how to interface a switch, activating a relay or motor, driving a servo, etc), then look around and branch out…

Good luck - and welcome!

:slight_smile:

Welcome.

I’m just getting into Arduino and never learned C, C++ or anything like that. But I did know scripting languages. (JavaScript, PHP, Perl, etc…)

Do you only know basic command line stuff or have you done any scripting at all? If you ever done any shell scripting with if’s, loops, for’s and functions it should be easy. If not you have some learning to do. That doesn’t mean you shouldn’t learn it. Just trying to get an idea of where you’re at. The Arduino site (and the net) has a ton of good examples that you can learn from.

I did the tutorials here Arduino Tutorial - Learn electronics and microcontrollers using Arduino!
It explains how to write programs. They have a starter kit but Earthshine has one that is really good too.

@cr0sh
Thank you, that was extremely helpful. I don’t know if a robot would be the best this for a noob, maybe a simple response system just to get familiar with Adruino? (remember: I have no idea what I am talking about—maybe)

And would this be a good kit?

@biocow

Do I need to know C or C++, or any other coding to use Arduino?.

  • The only code I know is Linux command-line (well some) &
    even less Windows command line (I think the name is DOS?)

As I said. But anyways: I have a little experience with how to use IF & loops (although I am not very comfortable with FOR) in qBasic

New Question:
Does anyone mind sharing some code and some photos of a simple Arduino project they have done?

And would this be a good kit?

That’s an extremely basic kit; I would think if you looked at what parts came with that kit, and then tried to find similar parts elsewhere, you could likely get more for your money (especially if you shopped surplus for the LEDs, resistors, and used regular hook-up wire instead of jumpers, etc).

Check out places like All Electronics, Electronic Goldmine, and Alltronics for surplus components. Things like the USB cable you should already have (or be able to pick up cheap at a dollar store or thrift shop). A breadboard can be found at most surplus electronics places, too. Don’t go for different color LEDs; just get some cheap surplus reds (and greens and ambers if you really need different colors); your goal is to learn, not to spend money on happy flashy stuff.

Download the Earthshine book, and work from there…

:slight_smile:

you could try the getting started with arduino from make ( dont buy it :wink: many copies are available for download on torrent site’s even google will put out many sites where could download ) it is very much self explanatory it will get you through the basic’s of coding in arduino also

  • hope this helps

Of course you would never dream of doing such a thing, especially as it is illegal. Not only that, the Author has put a lot of hard work into the book so do the decent thing and buy it.

I don’t recommend learning C, it’s far too difficult, total waste of time. I’ve been trying for a very long time now but it just gets more and more impossible, not easier. All you’ll see is error messages and nothing working.

At the moment I’m trying to get amforth onto the arduino so that I can learn to program it in Forth, but I can’t make amforth work. However, another project also caught my attention the other day — http://concurrency.cc/ — except there’s no forum or other users on the site or anything, so you’re pretty much on your own. It looks easier than C though.

Arduino and clones have sold thousands and thousands of boards, many to people who have had no prior programming knowledge. C/C++ as used in the Arduino is not that hard to learn, there are so many simple example sketches built into the IDE, just start reading them and using the reference section (http://arduino.cc/en/Reference/HomePage) of the Arduino home site to figure out what each statement is doing. Progress is steady and results almost instant. Lots of help around here as you advance also. The hardest step it the first one, pull the trigger and get one.

Lefty

I don’t recommend learning C, it’s far too difficult, total waste of time. I’ve been trying for a very long time now but it just gets more and more impossible, not easier. All you’ll see is error messages and nothing working.

About the hardest thing to learn that you’ll find in C is pointers and pointer math; once you have that straight in your head, everything is comparatively simple. For the Arduino, you could quite possibly never encounter a need for either in most projects.

C/C++ is simple compared to a number of languages; I’m still trying to get my head around LISP, and I doubt I’ll ever understand anything more than the principles behind languages like Whitespace and Brainf*ck (offending letter removed to protect the innocent). I mean, there’s a place for UTM languages and all, but beyond being able to posture about coding in them to other geeks (or understanding the theory and “mechanics” of a UTM implementation) - there isn’t much use for those two languages otherwise, IMHO.

I think maybe you’re having trouble understanding C/C++ because you haven’t found the right method to learn it. I originally started out with a nice, but simple, introductory book on learning C, then later took a couple of community college courses on C/C++ (using Visual C++, unfortunately - MFC was hell). I’ve never used it for anything very serious (have yet to have a need), but the knowledge has helped me in other languages and projects.

Don’t give up hope!

:slight_smile:

At the moment I’m trying to get amforth onto the arduino so that I can learn to program it in Forth, but I can’t make amforth work. However, another project also caught my attention the other day — http://concurrency.cc/ — except there’s no forum or other users on the site or anything, so you’re pretty much on your own. It looks easier than C though.

I’ve looked at Forth and Occam (what concurrency is based around); Forth, to me, looks like something of a “dead” language - not used much anywhere that I can find, but it might still have a future (?) - maybe someone can set me straight…

Occam seems like something focused on parallel processing systems, and while it may be useful for such systems (I can’t give an opinion here at all), I am not sure how worthwhile it would be for a single processor, especially the Arduino.

I’ve always thought there needs to be a version of BASIC for the Arduino; I know there is AVR BASIC (but it isn’t free or open source - and it isn’t “Arduino”, either - but it is geared to the Atmel line). I’ve also wondered about the possibility of implementing a LOGO interpreter on the Arduino…

:slight_smile:

I’m still trying to get my head around LISP

If you stop now, you might avoid permanent brain damage ;D

Forth, to me, looks like something of a “dead” language

I know I’ll offend some of the cult followers, but you’re largely right about that. It served a valuable purpose back in the days of extremely constrained target environments and extremely expensive development systems. I found it extremely useful when I needed to develop embedded control systems on a tight budget (i.e., no money for hard drives, big RAM, or an expensive OS).

But, in an age when you can buy a powerful development system for about the price of a weekend ski trip that will cross-compile your app with excellent optimization in a few seconds, it’s a lot like flint tool making: an interesting hobby for people who get their kicks from re-enacting the way things were done in primitive times, but not of much practical use unless civilization collapses and we can’t get modern technology anymore.

There’s something to be said about the case for putting BASIC on an Arduino, but I’m not gonna say it, because doing so would get me banned for life ::slight_smile:

Remember what the “B” in “BASIC” stands for: it has some value for people who are just getting started, and need to learn some fundamental concepts (like why “a = a + 1” is not absurd on the face of it). But it should be illegal to offer a BASIC compiler, or an interpreter that accepts a program longer than 50 lines: anything bigger should be done in a real language.

I don’t recommend learning C, it’s far too difficult, total waste of time. I’ve been trying for a very long time now but it just gets more and more impossible

heh. Of course, Ian’s been trying for over a month to get something other than C working on his Arduino. Unsuccessfully. :frowning:
Sometimes it’s not the inherent superiority of a thing that results in it being the best solution for a problem, but mere popularity and the resulting “supportive environment.” That’s probably true of Arduino and C. And Windows. And x86 cpus. And (I could go on, and on…)

Of course you would never dream of doing such a thing, especially as it is illegal. Not only that, the Author has put a lot of hard work into the book so do the decent thing and buy it

i just try out things that way i go for it only after deciding that it’s good to have one around
p.s i bought the book BUT i do it all the time a download a copy and then decide :stuck_out_tongue:

To be honest, I had no idea that Forth was regarded as a dead language. I’d always read about how it was ideal for control systems, and how it was easy to make up your own words and have devices actually do things simply. Has it become an arcane language in the past 30 years such that nobody uses it? I suppose now that you mention it, nobody seems excited by it any more and maybe it’s just me continuing to talk about it because that was the first language I attempted to try to learn back in the '80s. Back then, it was promoted as an exciting new way of doing things for people who don’t understand BASIC (I was one of those — I had a Dragon 64 but could never get to grips with the onboard BASIC, which made no sense to me whatsover and nothing I typed in ever worked — nothing). All I remember was that BASIC was too difficult, but Forth actually produced results easily and largely without complaint. BASIC only ever produced errors. But that was back then when everyone was supposed to learn programming, rather than learn to be a programmer.

Incidentally, I’ve been trying to get something other than C on the Arduino for a lot longer than a month! More like most of this year. It seems highly resistant to that. All I want to do is actually use it, not learn to be a computer programmer (or even learn enough to pretend to be one). I’ve got things I originally wanted to actually do with the arduino, and having to take a few decades out of one’s life to thoroughly master programming is just not something I have time for nor inclination to do. That’s why I liked Forth. With what little I knew about it, I could actually make it do stuff without it complaining and depressing me with errors.

The search continues, then, for a language that a normal artist or designer can easily use, and that can be put on an arduino lilypad. C is unacceptable, it’s honestly too difficult and unnecessarily fussy.

So you have a mega328 8MHz based Lilypad, and something that will do ISP programming (ArduinoISP on a breadboard?) If I were to provide an AMForth.hex file compiled for an 8MHz 328, you could burn it on your lily pad and give it a go?

By Earthshine, do you mean this document? It believe it is talking about this kit.

edit: Wow, I need to refresh before posting…

All I want to do is actually use it, not learn to be a computer programmer (or even learn enough to pretend to be one).

Well the problem seems to be with your expectations. The Arduino is based on the Atmel AVR programmable controller. So if you won’t/don’t learn to program it then it’s probably the wrong solution to whatever you are looking for?

Lefty

Do I need to know C or C++, or any other coding to use Arduino?.

Not at all.
I have been learning the Arduino for 2 months now, and am hooked.
Its not the hardware , I also use the STM8S-Discovery kit which is much cheaper and better according to the guy I have had to have program them, but that’s the difference …

It doesn’t have 33,000 people like this community, many of which are obviously way ahead of this simple device, but are there to help us when we miss out a = sign or whatever.

Apart from tinkering a few lines of Basic in the 80s, the only programming I had was a 2 day course on FORTRAN in 1978.
Don’t expect to be writing new stuff the first day, mess around with the multitude of examples out there, see what you can do by changing the odd line, and if it stops working, figure out why.

retrolefty, - “Well the problem seems to be with your expectations.”

No, the problem is the language. It’s too difficult.