As I explained at my review of Making Things Talk, that book re-awakened my interest in electronics. Frankly, although I've had a lot of fun with computers and programming over the last thirty years, it's getting a little too smooth and polished for my taste. I'm a rough and tumble, Wild West kind of guy - I liked programming the most when it was bare metal. So after excitedly ripping through that book at Warp 8, I rushed to my computer and ordered a "Wiring" I/O board.
Slight aside: worst product naming ever. Using "Wiring" as your product name makes it very difficult to find things about it on the web. They should have called it something meaningless and unique.
The Wiring board is 128K flash memory with a ATMEL atmega128 microcontroller and a bunch of inputs and outputs. I bought this instead of the less expensive Arduino board because it has an RS232 serial input in addition to the USB. You can see a full comparison of this and similar boards at http://www.wiring.org.co/ioboard/compare.html.
I had a little trouble getting this working on my Mac - the Wiring language you download hasn't yet been updated for Leopard - it uses niutil commands, which has all been replaced with dscl. Being lazy and impatient, I didn't want to figure out what I'd need to do with dscl, so I just changed perms on /var/lock and /var/spool.
I also initially screwed up by downloading Processing instead of Wiring - basically the same language, but the underlying libraries are different, so of course I got nowhere fast. However, I eventually realized my mistake and very soon after that was able to write my first program. Wiring makes that very easy because there's a diagnostic LED on the board at pin 48, so this program exercises it:
// Blinking LED
// by BARRAGAN <http://barraganstudio.com>
// turns on and off light (LED) connected to a digital pin, with
// intervals of 1 second (1000 milliseconds)
// Note in the circuit the LED it has a positive (long leg) and a ground
// (short leg), if the LED doesn't turn ON, it might be it is inverted.
// Created 2 December 2003
// Revised 1 May 2007
// modified a.p.lawrence to use pin 48 and to change delay interval
int ledPin = 48; // LED connected to the Wiring I/O board pin 48
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(5000); // waits for 5 seconds
digitalWrite(ledPin, LOW); // sets the LED off
delay(5000);
}
Having not read the instructions fully .. ok, ok, having not read the instructions at all, I didn't realize at first that I needed to reset the board to load the compiled program. There's a little button to do that.. push it and there is a brief period of time during which you can upload your code. The code is then stored in the flash memory. That's all covered in the User's Guide that I hadn't bothered to read..
The two images at left show the diagnostic light being controlled by that program. Pretty exciting, right? Well, maybe not, but it is an easy way to start to understand the board and how to program it without having to worry about whether you reversed anything, or used the wrong resistor or whatever: it shows you the darn thing works.
There's not much more I can do with this right now anyway. I was sure that in some drawer here I had piles of miscellaneous resistors, jumpers and similar stuff left over from thirty-five years or so back, but I've pawed through everything and can't find a thing. Probably the smart thing to do is just order a "Starter pack". Strangely enough, I haven't been able to easily find that on-line. I can find a few stores that sell kits of mixed resistors and the like, but they are all overseas.. maybe electronics as a hobby is less popular in the U.S.? Oh well, I'll stop in a You-Do-It; they probably have something.. and if not, I'll just grab a bunch of stuff and make my own kit.
This is going to be fun..
Have you tried Searching this site?
Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates
This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.
Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.
Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.
We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.
Click here to add your comments
Sun Nov 11 14:10:21 2007: Subject: bruceg2004
Thanks, Tony. I can't wait to start experimenting with this, with my 4.5 yr old daughter. She is probably a bit young for this right now, but she loves to build things. Poor girl has me as her father; I used to love messing around with electronics as a kid. Things certainly have come a long way from taking my allowance to a Radio Shack, and spending it on motors, resistors, breadboards, and switches :-)
Mon Nov 12 16:30:51 2007: Subject: BigDumbDinosaur
Hey, Tony. Sounds as though you are getting a real charge out of this! <Groan>
Tue Nov 13 15:13:57 2007: Subject: BigDumbDinosaur
BTW, what's that scripting language? Looks like a cross between BASIC and C.
Tue Nov 13 16:42:38 2007: Subject: TonyLawrence
It's called "Processing" (though I'm using the "Wiring" version here). It's open source. See http://www.processing.org/
Don't miss responses! Subscribe to Comments by RSS or by Email
Click here to add your comments
If you want a picture to show with your comment, go get a Gravatar