Over Christmas break I stumbled upon some classes listed on the Sparkfun website. Two of them happened to be scheduled over a three day weekend early in January. At approximately 16 hours, the drive from Edwardsville, IL to Boulder, CO couldn’t be much longer and still be truthfully be described as a “day trip.” But when else would I have a chance to learn about microcontrollers and programming in a classroom environment? I decided to make the journey and give the classes a try.
Introduction to Arduino – January 14th
This class is more of a “microcontrollers lite” course. The Arduino is a nifty device; as I’ve mentioned before, it makes prototyping easy and allows for rapid development. But the purpose of the Arduino is to place a layer of abstraction between the ones and zeros of a microcontroller and the user. Instead of using binary operations to flip bits on the register directly, an Arduino programmer would use the command
pinMode(pinNumber, INPUT) to set a pin to accept input.
That’s perfectly fine, and it may in fact become the norm in the future. Unfortunately, the Texas Instruments microcontroller I’ll be programming on the Sprite has no fancy layers of abstraction. As a result, this class was more for my own interest in the Arduino platform. I wouldn’t be surprised if I ended up using Arduinos in additional side projects, or even in local tracking systems for the Sprite signals.
ATMEGA in-depth class – January 15th
The aim of this class is closer to that of the NerdKit I’ve posted about earlier. An Arduino has a microcontroller on board. In case of the Arduino Uno, it’s a an ATmega328p chip (the NerdKit chip is an ATmega168). This in-depth class begins with the student building and Arduino Uno on a breadboard, beginning with the naked chip. Once finished, the chip and its surrounding components behave like a typical Arduino and can be programmed with the Arduino development environment.
Some details about the registers, the makefiles, and the rest of the typically abstracted aspects of the Arduino are covered in this course. One subject of particular interest to me is using the Arduino as a programmer for other chips – in this course, the ATtiny85.
Unfortunately, the course had only been offered once before by the Sparkfun staff. They promised that it went much better the first time. On the day I attended, things stopped working a little before halfway into the day. Many of the problems were due to a recent update in the Arduino development environment that broke most of the old code. Other problems had to do with the fact that stripping away Arduino’s comfortable layer of abstraction results in (surprise!) complications.
I’d say that between the two courses, I can safely claim to have moved from “dabbler” to “beginner” in the Arduino realm. The second course didn’t cover quite as much microcontroller information as I had hoped, but I do feel plenty confident in my breadboard abilities now.
The only major downside of the trip, aside from the 16 hour drive both ways, was the beginning of a cold that’s stuck with me for going on three weeks now. That, along with the beginning of a new semester, has kept me from updating as often as I’d like. But I did get a nice view of the mountains!