Hi Sean,
I think you've touched on exactly the primary advantage of the arduino: the existing library of little programs out there for interfacing to various bits of hardware. You want to use a DS1307? No need to look through the datasheets and figure out how to interface to it, all you need to do is include the DS1307 interface library. I can definitely imagine the appeal. However, the disadvantages as I see them: 1) You need to add hardware to your schematic to make an "arduino".. This includes a serial port interface chip and a few other things. 2) You are limited to a couple of very specific AVR chips.. the ATMega168 & ATMega328 I believe. This kind of negates one of the primary advantages of the AVR platform, the huge catalog of parts and the ease of migration from one to another.
3) You can't use AVRStudio, which is actually a pretty decent IDE.

I think that the arduino would be a neat/easy way to get into doing this without needing to understand everything.. but I think it would start to cramp fairly quickly. When you're finding yourself wiring up huge charlieplexing schemes because you can't use a chip with more I/O pins, I think you'll see what I'm talking about. :)
Also, do arduinos support JTAG?

This idea of "start from a high level and work your way down" is not a new one. Teach the kids basic first, the 'harder' languages later, etc. I've always been a proponent of the opposite. Teach the kids assembler first and higher level languages later. The basic building blocks really are quite easy to understand and will serve you in good stead when trying to learn the latest and greatest high level language.

Again, it really depends on the end goal. If the goal is to learn microcontrollers, then I would suggest avoiding the arduino. If the goal is to build a clock, then the arduino is not a bad plan at all. If the arduino will get you working on the thing where you wouldn't have otherwise, then I'm all for it. The important thing is to stop talking about it and start spending some serious hours working on it.

-Adam


On 7/15/2011 8:44 AM, Sean Voisen wrote:
If you're a bad/beginner programmer, I think the easiest way to get
started is to build your own simplified Arduino clone on a breadboard
or perfboard and use the Arduino IDE and libraries for programming.
Get an FTDI adapter from Sparkfun and an Atmega328 with the Arduino
bootloader already on it. (The alternative is to buy an Arduino and
pop the chip out.) Build your clock around your perfboard clone. There
are tutorials scattered about the Internet on how to build an Arduino
clone on breadboard/perfboard, and the Arduino schematics are readily
available.

This is exactly how I built my first clock:
http://voisen.org/portfolio/mercury-retrograde/ (I'll happily share
the source if you want it.)

Sure, Arduino is hyped, but there's a reason for that. The Arduino
"Wiring" libraries are really the key. They make AVR programming super
simple by abstracting away the complexity of AVR Libc. This eliminates
the need for AVRStudio (a beast of a program) or buying an AVRStudio
compatible programmer (expensive). Once you're comfortable with the
Arduino libraries, it's much easier to move to straight AVR Libc if
you want.

Really the Arduino isn't anything special. It's just an Atmega328
microcontroller + USB + power supply in a nice form factor with nice
libraries and an (albeit crappy) IDE. But it has a huge and friendly
user community, and tutorials/examples galore.

My two cents,
Sean


--
You received this message because you are subscribed to the Google Groups 
"neonixie-l" group.
To post to this group, send an email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/neonixie-l?hl=en-GB.

Reply via email to