IOIO Android Breakout Board

~~~~ WARNING: AWESOME ~~~~

My new thing has officially arrived. Both in the literal sense and philosophically. I love my Arduino, and I love my Android…now I can have the best of both.

Introducing, the IOIO breakout board…

ioio breakout board

+1 sleek

I snagged this guy from SparkFun. You know how the Android is full of stuff? Accelerometers, touch screen, GPS receiver, WiFi…etc? Instead of having to start from scratch for each of my Arduino projects to introduce components, this board will allow me to use the Android/Java as the backbone of my code, instead of using Processing/C++. And that, my friends, is +++.

Take a look at this awful-picture-quality-having video:

Sorry about that…I had to use Katie’s old BlackBerry to record the demo. It leaves much to be desired.

Anyhow, so far I have just managed to get Eclipse configured, and have uncovered several gotchas. The biggest obstacle was getting the permissions worked out and linking the libraries properly. When in doubt, chmod -R 777 * and let it rip. We’ll see what comes of this…could be cool once I dust off my Java skills.

Of note: pretty sure I am the first person to get this working on a Droid 2, and likely the first to set this up on Linux. It just shipped yesterday, so the sky is the limit on this…I am very excited. Big props to Ytai and SparkFun.

Arduino Solar Cell Night Light Concept

So, I’ve formalized the solar cell project I have been poking at for a while. I managed to clean up my code and mess with some initial conditions, etc., and now have a fairly solid proof of concept for a solar cell-centered night light.

lighty

you may want to ramp up that LED a bit

As was the case in my first few runs, my sketch incorporates a five second initialization phase. This acts to set both relative minimum and maximum values which act to provide “full light on” and “full light off” values, respectively. The generated power from the solar cell is read in to the Arduino via analog input, and the LEDs are driven via digital outs. The rest is some simple math that transforms the range of the analog signal into a digital range of zero to two hundo fifty five.

It’s giant-ass-text-having snippet time!

// Solar LED IO
// Joseph Swanson | http://swantron.com
// 2011

// Define constants
const int sensorPin = A3; // Solar cell Pin
const int ledPin = 5; // varuiable LED Pin

// Define variables
int sensorValue = 0; // wipe read value
int sensorMin = 0; // set initial min
int sensorMax = 1023; // set initial max

void setup() {

// turn on Pin 11 LED…indicates calibration period begin
pinMode(11, OUTPUT);
digitalWrite(11, HIGH);

// stay lit for five seconds
while (millis() < 5000) { sensorValue = analogRead(sensorPin); // adjust for real max if (sensorValue < sensorMax) { sensorMax = sensorValue; } // adjust for real min if (sensorValue > sensorMin) {
sensorMin = sensorValue;
}
}

// end Pin 11… calibration period finito
digitalWrite(11, LOW);
}

void loop() {
// read the solar cell analog
sensorValue = analogRead(sensorPin);

// apply a little calibration to the sensor reading
// bit from example sketch at http://arduino.cc
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);

// set constraint for outliers with respect to min/max
sensorValue = constrain(sensorValue, 0, 255);

// fade the LED from one to 255
analogWrite(ledPin, sensorValue);
}

Pretty straight forward. On to the vid…


It’s web2.0-too-many-script-ass-calling embedded video time!

Not too bad. Again, I used an Arduino Duemilanove and a Solar World panel. I might try to further this concept by incorporating my 120V switch and getting a lamp up in here. Stay tuned, as always.

Arduino Solar Cell-Based Detector

*Proof of Concept Warning*-*Proof of Concept Warning*-*Proof of Concept Warning*

Mission: Utilize a solar cell to vary the intensity of an LED

Supplies: Arduino Duemilanove <--> USB <--> Notebook (Linux, por supuesto)
Breadboard, Jumper Wires, Make-shift Jumper Wires (spare resisters), LEDs, Solar Cell

Setup: Here it is

work at work

I herd you like to work, I set you up so you can work at work

The setup is pretty straight forward: Read analog, write digital. The primary hurdle was figuring out the initialization step. Basically, I needed to provide a time-frame where you can read in minimum / maximum values from the cell. The LEDs in the awesome video below show the results… v

This project is full of take-off ideas. Reverse the range on the LED outputs, and you have a setup that powers up a light as the ambient light levels fall. Motion detector…you bet. You could implement a setup to run the initialization cycle at intervals, to provide a real-time average light level, and check for a delta of some size. Boom. There you go.

I’ll clean up the code, use some real jumpers, horse around with things in general, and throw up a post. With a snippet. Check back.

Arduino Proof of Concept Vid

As promised, behold the much-anticipated footage of my Arduino AC Interface proof of concept. It was dark in my ‘lab,’ so the footage leaves something to be desired.

So, if anyone is in need of a strobe light, hit me up. I’m all over that.

Stay tuned…I am working on the web-side of the Android dev kit, so hopefully I will have another test coming soon. Ethernet shield, Android, Arduino, and 120V…I’m getting giddy.

Arduino AC Interface

I finally got around to throwing out a little proof of concept with my new toy. I managed to utilize a PowerSwitch Tail to gain control of 120V AC with Arduino…and I did it without electrocuting myself. Not getting electrocuted, FTW.

Long story short, the PowerSwitch Tail is a simple switch. 120V AC in, and either 0V AC out or 120V AC out, with the later being the case when a 5V DC signal is introduced to the unit. Here is what it looks like…

switch tail is switchy

Activity: locate brass monkey

I used some jumper wires I had sitting around “the lab.” You can feed anything into that sucker; speaker wire would throw the switch. Moving on…

Well, it turns out that the Arduino loves to dump 5V signals…like it was made to do so. So, this switch setup is perfect for my microcontroller projects…whatever they may turn out. Anyhow, all you need to do is pick a digital out and ground from the Arduino board, and hooks it up. Hooks it up like this…

bonus url

shameless plug

One of the best things (most handy?) is that the IDE makes pushing code to the unit quick. Plug a USB cable in, crank out some code, and there you go.

hook up them shits

hook up them shits

Good news.
It’s MF-ing snippet time!

/*
Relay Switch proof o’ concept
*/

// Assign digital pin 12 for chatting

int ledPin = 12;

// Define setup method

void setup() {

// Define pin 12 as output

pinMode(ledPin, OUTPUT);
}

// Define loop

void loop()
{
digitalWrite(ledPin, HIGH); // Switch on
delay(406); // wait
digitalWrite(ledPin, LOW); // Switch off
delay(406); // wait
}

That is all there is to it…signal for a while, no signal for a while. 406 is a random value, chosen because I like the 406.

I plugged one of Katie’s lamps into the switch…which was plugged into my “lab” power strip.

tubetv

protip: use discarded tube TVs as experiment stations

Uploaded the code to the controller, and there you have it…

darkness was upon the face of the deep

darkness was upon the face of the deep

Survey says…

let there be light

let there be light, mofo

There it is. I shot a video, but YouTube puked during my upload. Not too upset, seeing as how it was just a video of a DIY strobe lamp. The cool part of this lies in the possibilities to extend upon the concept. Throw a web interface in the mix, and you can have a web-controlled lamp. Replace the lamp with something more useful, and you get the point.

EDIT: 1/24

I uploaded the video I snapped to YouTube…here is a hard-link, and I’ll toss the vid in a post shortly. I think I need to enable video embedding, but if you really have a hankering to watch the thing, knock yourself out.