10 June 2010
As my final project for Joe Paradiso's sensors class, I created a sensors library for Arduino. It provides abstractions for some of the hardware peripherals on the ATmega328 microcontroller on the Arduino: timer 1, timer 2, and the analog-to-digital convertor (ADC). On top of these, it provides higher-level functionality like a sleep function and a function to sample the ADC at regular intervals. I'd eventually like to add something similar to the low-level hardware abstraction to the Arduino core and the class provided a good opportunity to test the capabilities of such an API.
If you're curious, you can read the overview of the library (pdf) or download the library itself: Sensor.zip.
06 June 2009
There are a lot of people creating value around Arduino: e.g. this experimentation kit from oomlout, tons of videos from Make Magazine, various books, etc. When I see all this activity, two questions come to mind, one selfish and one altruistic. The selfish question is: how can I capture more of this value? The altruistic question is: how can I make these things more accessible and useful to the Arduino community?
To rephrase the first question, should I (or others on the Arduino team) be doing these things ourselves, to earn more of the money flowing into the Arduino ecosystem? I think the answer is "no", I should be doing what I enjoy, what I'm best at, and leave the rest to others to profit from. As Tim O'Reilly says: "create more value than you capture." Still, it can be difficult to be at the center of a movement in which others seem to be reaping most of the rewards. I need to remember that the goal (and the importance) of Arduino is about empowering others to do things for themselves - not selling lots of circuit boards (or kits or books or magazines).
The second question doesn't have a simple answer. Can we do more to publicize other resources on the Arduino homepage? Probably. Should we make it easier for others to build on our software and hardware? Yes. Can we use our position to convince others to open up their work? I hope so. But what's most important? What should we do first? Good question!
Any suggestions?
24 May 2009
/*
* Blink - the basic Arduino example.
*/
int ledPin = 13; // LED connected to pin 13
void setup() // run once
{
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop() // run over and over again
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}