The new guy has a question!!

I'd like to start off by saying Hi. Here goes: "Hi"

There. Got those formalities out of the way, now I can get down to my question.

I just wandered over here from parallax's website (sorry if by saying parallax I'm using dirty language. I'll get better). I want to get started with learning how to program microprocessors and whatnot. I've had 2 professors recommend that I get my hands on some microprocessors and specifically mentioned the BASIC stamp. However, I'm a linux guy, and over in the parallax forums they're suggesting that if I want to stick with linux, I may want to check other stuff out. So here I am. But I need to know where I can get some info to help me get going on one of these Arduino setups. Mostly what has my wheels turning at this point is that I saw 'educational kits' from parallax that looked really straightforward in learning how to get started programming their microprocessors. I'm sure there's something like that for Arduino, it's just a matter of finding it. Does anyone here have any suggestions as to where to order something like that or at least some 'suggested readings' so a new guy (such as myself) can get the basic info he needs to get rolling? Any help would be appreciated. Thanks guys.

Welcome to the forum.
Adafruit has a nice starter pack.

They also have great tutorials.
http://www.ladyada.net/learn/arduino/

HA! Another opportunity to plug my new book!

30 Arduino Projects for the Evil Genius - Simon Monk.

This has projects that illustrate sensing, displaying driving motors / servos etc.

It explains how the electronics work pretty much from first principals. Ditto the programming.

Hey, adafruit has some nice stuff. I especially liked that starter pack. Thanks, you've given me some great stuff!!

I think you will like arduino better, basic has the tendency of becoming mind bashing frustrating when you want to do something a little less point A to point B

I think you will like arduino better, basic has the tendency of becoming mind bashing frustrating when you want to do something a little less point A to point B

Sounds cool. I'm already liking the Arduino community a lot better as it is. Never programmed in Basic tho. I see that Arduino is programmed in a C-based language. Pretty sweet. I did several programs for a Lego NXT in C, so it'll be easy.

still learning my self but here are some things I reference often and from those and hanging around you can pick up on some other stuffs.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=news

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1247637768

http://www.adafruit.com/index.php?main_page=tutorials

If you can afford something a bit more expensive than the adafruit arduino kit, Spark Fun Electronics offers a kit with more components: http://www.sparkfun.com/commerce/product_info.php?products_id=9951
It also comes with a manual to get started and do some basic projects. This is the kit that I started out with a couple months ago. It is a pretty good kit. :slight_smile:

I'm not going to push a kit or something like that, but I think you'll find the Arduino more to your liking for Linux.

I started out a project using a Basic Stamp 2 I had lying around; for me, the coding wasn't an issue (I grew up on BASIC), but I was kinda wary that Parallax only provided a bytecode compiler for the Stamp series under Linux as a binary, with no source. At the time, I thought "well, somethings better than nothin'!".

When I decided to upgrade my system to a 64-bit box (ubuntu, BTW), that's when I hit a brick wall with the Stamp.

Their bytecode compiler wasn't just a binary - it was a statically-linked binary! That meant there was -no way- to use it on a 64-bit box; it would only work (at best) on a 32-bit box. Nothing possible could be done on a 64-bit box to get it to run (like IA32 wrappers). After discussion with Parallax, I learned that they weren't going to update the compiler, because they didn't have the source code, they lost contact with the original programmer (who had the source code), and didn't really seem to care about the product (Basic Stamp 1 & 2, at least) because it was being EOLd (in favor of the SX and the Propellor). They also didn't seem to give a darn about Linux users.

Oh well. I ended up looking around, and somehow happened upon the Arduino. I honestly couldn't be happier with the decision. Some may tell you "well the Arduino isn't a real microcontroller" or some other such nonsense; there seems to be a lot of people in the PIC world who think if you program in something higher level than assembler, you aren't getting the most out of your chip. I can't completely argue against that, having some experience with assembler, but really, I think they're approaching it from the wrong way (the proper way to write any application - whether for a microcontroller or a PC or whatever - is to first diagram and design the application, then code in whatever language suits you for that application; the higher-level the language, the better. If you find areas where you need speed increases, look toward the inner loops in those areas, and fix those, then work outward. If you are still facing issues after those optimizations, look again, and see if you need to tighten up the code, or develop those areas in lower-level code (check to see what opcodes your compiler is spitting out - maybe you can do better, depending on the compiler, and what optimization flags you have set - or don't!).

Ultimately, approaching such applications from the bare-bottom-up, on a microcontroller, from assembler, can really turn into the "wrong way" to do it. You might get it done, and it might work fast, but unless your only eatin-n-drinkin' is in assembler, you likely will be able to get something working faster using a higher-level language. This becomes especially true if you are doing the coding for a client; they don't generally care what you work in, or that it is "blazing fast" - first and foremost, they want something to work, then worry about speed and other issues. Steak before sizzle, ya know?

The Arduino (well, really the ATMega) is just as much a microcontroller as anything else. Think of the Arduino as actually a "carrier board" for the ATMega - that's a terminology you might be familiar with from Parallax products. Sure, it has a bootloader to make things simpler, so you don't need a fancy programmer or anything to start off with. I think that's a great thing; others look down their noses at it. Not that it can't be used (you can ditch the bootloader, gaining back 2K of program space, and use a real programmer with the Ardunio and IDE if you want - if you really want, you can go all AVRFreak and drop the IDE as well!)...

Welcome aboard. As one Linux fan to another, I hope the Arduino turns out to be fun for you like it has for me.

:slight_smile:

Know what's funny, is yea I did read some posts from the parallax forums that were bashing on the arduino. Particularly in the propeller section.

Thanks for all the good stuff. Can't wait to get started playing around.

propeller is a darn beefy chip, its a whole different world, though I would not want to cut my teeth on it

Ahem - I used Propellers for some time. They are most excellent designs, you can do things with them at a higher precision and higher speed and with a simpler software design than with most other controllers.
One of their drawbacks is simply that they cost more (naturally!) so it hurts more when you burn one... However there are more draw backs.

Their main advantage is, that everybody can truly understand the internal working of the controller. It does not take a 300 p datasheet :slight_smile: Of course there are more advantages :slight_smile:

Heh, I came to arduino for similar reasons, I learnt on PIC micro's in C18, but quite fed up with with having to boot my mac into windows just to program a uC.

Arduino is mostly just a bootloader, libraries and IDE, the carrier board is mostly irrelevant, and not even necessary. The libraries provide a nice amount of abstraction, that means you don't have to dig through datasheets for hours just to find what bit to set to enable an ADC. Of course if you want your program to be more efficient you don't have to use them.

The propeller is an interesting uC, but I just couldn't bring myself to learn another whitespace sensitive language shudders.

This becomes really OT now..
SPIN is IMO a very good low level language, limited by the size of the interpreter (2K bytes!!!). There are reasons to believe that the whole chip be the result of a drunken bet ".. and I can write an interpreter for a truly nice language in 2K bytes.." :slight_smile:
But it is ANOTHER language, and C is awkward on the Propeller.

Yea, I was actually pretty impressed by the Propeller to be honest. Sounded like... well- a machine!

And it did sound like a bit much for starting out. But definitely cool. Especially thought it'd be cool to make some robot flyer with a video camera on it or something. :sunglasses: I read some discussions on that. But that'd have to wait...