Tag: arduino

1 Vote up

Day 28: Thing 28: Charley plexed display

Today I made the software for some hardware that I built a while ago.

The origional question was if I got 15000 leds for next to nothing and it costs 4-15 per 8×8 array (with the 4$ solution also needing 4 to eleven additional parts) to drive them are we getting anywhere? I looked at 2 solutions before realizing that the leds were to dim to do much of anything that interested me. One solution was to drive the led rows with cmos shift registers and sink the columns using TPIC6 based shift registers.

The other solution is called charlyplexing.

The idea is to multiplex a series of leds in a way that maximizes the leds per io pin avaliable. The led connections are paired and driven one at a time depending on the direction of the output pins. The remaining pins are tri-stated out of the way. It is a pretty intense software complexity vs hardware problem.

As only one led in the array is on at a given time, multiplexing the leds into an array reduces the brightness significantly making my near free leds impractical for this application. (These are 5×6 array, the fonts i used were for 5×7 displays)

3 Vote up

Day 25: Thing 25: AntiSocial(ism)

I went to radio shack about a month ago and bought an utrasonic distance sensor made by parallax called a ping))).

I have been feeling cranky and anti social lately so I thought I should make something that didnt want to be bothered.


I am considering adding an air horn for people who dont respect its limits but think that the neighbors might not appreciate it much.

2 Vote up

Day 24: Thing 24 — Mouse Whiskers (touch sensor)

Two weekends ago Aidan and I went to radio shack and he was looking at these $9 bug bots which have a sound sensor, two touch sensors (antennae) and 6 legs. He was very interseted in both the walking mechanism and the touch sensor. We decided that we should add one of those to his arduino based mouse (A168).

1 Vote up

Day 22: Thing 22: The $15 Wiring Board.

Since I had so much trouble yesterday porting with getting the bootloader on a new processor I though I should try something easier (these are things that I have been meaning to do for some time so it seemed appropriate to try them on a timeline).

Recently someone published the code for an Stk500v2 based bootloader for the new wiring platform. I have wanted to run wiring on several of the systems I have using the mega128 and the olimex header board that sparkfun sells. Between sparkfun and Ebay my per board cost is about 11 bucks. With the ftdi ft232rl usb to serial chip at $4 that would make the wiring platform affordable :)

On top of the latest wiring platform not running at all on my g4 I could not get the bootloader on either the sparkfun board or the et-avr-stamp that I had on the bench.

It turns out that part of the solution to this was in the next rev of the wiring software which fixed the bootloader issue. Once I got the bootloader to work with wiring I realized that the wiring platform requires a 32khz clock crystal to be connected to tosc1 and tosc2. Once this was added to both boards things started working.

1 Vote up

Day 20: Thing 20: Arduino on a (simm) Stick.

In response to a conversation I had with “lady ada” in which she asked me “what is an arduino?” I have been pushing the question “What isnt?”. I have a bunch of stuff that I have built around the simstick platform which I wanted to reclaim so I put a 168 on a dt107 (dontronics) board and adjusted the IDE to see it. (this is in preparation for bigger and better mods)

1 Vote up

Day 17: Thing 17: Soldering Iron Timer Redux

Today I really made Space and time (The appartment was getting a bit difficult to get around in).

So this is a make up entry.

After oxydizing the first tip on my new weller I decided it was time to build a new soldering iron timer (and one for my glue gun as well). This is a bench junk project. It is mostly from scores at Wackey Willies (RIP 2007). I had a 4 channel Solid State Relay board with 3 channels populated and a small pile of outlets (I have plans for most of them :). The transformer for the digital power supply is from an old clock radio. At present the buttons turn on the Soldering Iron and Hot Glue Gun and it stays on for about 10 minutes (The arduino doesnt support the RTC crystal that all of the x8 family has attached to Timer 2).

The big button on the right turns everything off. There is a front pannel which I will program to give some status (the leds on the board are two burried to really use for on off status at a glance). Also there is a set of buttons on the panel (currently unwired) to allow for timing adjustment and other future planned functions.

I would also plan use this to adjust the temperature on the iron.

2 Vote up

Day 16: Thing 16: Headbucket Headlights (more things that go blink in the night)

I went to the hardware store to replace the tip on my new Weller soldering iron after discovering that Radio Shack did not have a suitable one. At radio shack I picked up two 1100 mcd leds. On the way back I went to the art supply store to see if they had copper small enough to work with the led arrays. They told me about a bead supply store downtown so I went I bought some silver coated copper wire and made anouther led pannel. (it looks like I have enough resin to make 4).

Then I went to putting the leds on the front of my helmet. If they arent too police blue, I am finally legal.

1 Vote up

Day 14: Thing 14: Remote Arduino Programmer.

I have been so happy with the programmer that I have been using that I wanted to add this capability to the xbee rf modules that I built a few months ago. I wired dio0 to both send and recieve boards and put the cap on the output side and wired up a reset.

Then I figured out that the data passing would require updating the flash on both boards and that that required a windows based PC. (LARGE PILE OF EXPLICITIVES REMOVED HERE) I moved the passthrough to the rts/cts pairs which the old firmware is supposed to support met NOOOOO!

If I built it but it doesn’t work yet did I make a thing?

UPDATE: 25feb08 I found an old ob900 (I have like 15 old omnibooks in various states of running) that was running W2k and upgraded the firmware on both radios. I will test them out after I have had some sleep.

3 Vote up

Day12: Thing12 — Helmet Taillights

One of our local dorkbots put an arduino in a bucket the other day and I got inspired to put one in my head bucket.

I lined the two largest holes in the back of the helmet with foil tape (for ducts) and then built two boards with leds and mounted in the area with my head. I glued a 4 pack of rechargable AA batteries on the top and plan to mount the 5000 mcd led in the front in the next day or so. While I am testing it the arduino run time board is taped to the outside but I plan to mount a really bare bones arduino under the battery when It is done.

3 Vote up

Day 11: Thing 11 — led arrays

Today I got 2000 little leds in the mail.

They are really bright. So of course I had to play around with them. I made 2 8×8 arrays one is made of magnet wire with no supporting background. I will figure out if I am going to mount this on somehting later. In the mean time I built one on a perf board. Both took for EVER to make. The one on the perfboard is wired to a maxim 7219 led driver to be driven by an arduino.

1 Vote up

Day 10: Thing 10 — Wheel Watchers for Hacked Tamaya Mouses.

My son aidan and I have been working on a pair of arduino based robots. Today I had him look at the boards from the check reader pile and reverse engineer the emitter detector pairs that tell the reader when the check is present. After poking around at the circuit board he came up with this diagram. Which we distilled into this circuit.

I was making a set of paper encoders to attach to the wheels but aidan thought it would be better just to use the holes in the gears After a trip to the hardware store for some epoxy putty to sheild the phototranister, I put two pair in each of the Tamaya Wall Following Mouse based robots and bench tested them with an arduino.


4 Vote up

Clap-On Clap-Off Volume Controller. Day 9. YAY!

clap volume control
volume control
board markings

embedded by Embedded Video

Today I made a clap-on/clap-off volume controller using the motorized potentiometer volume knob out of a broken stereo system. It is Arduino based and uses another one of the crappy H-Bridges left behind by one of my summer students. It also uses a clap-detector (or “broken glass detector”?) I got off of the Electronic Goldmine a long time ago for cheap.

This isn’t the most elegant solution, but it is quick and dirty and gets the job done.

Code as follows:

/* CLAP ON CLAP OFF VOLUME KNOB
* ————
*
* Controls a motorized potentiometer for adjusting the volume of
* a stereo audio stream by clapping. One clap off and another clap on.
*
* Created 9 February 2008
* by Randy Sarafan
* http://www.randysarafan.com
*
*/

int relay1Pin = 4; // relay 1 pin
int relay2Pin = 5; // relay 2 pin
int relay3Pin = 6; // relay 3 pin
int relay4Pin = 7; // relay 4 pin
int clapperPin = 3; // Clapper analog pin
int val = 0; // Sets clapper variable
int resetter = 0; // variable for switching between on and off

void setup()
{
pinMode(relay1Pin, OUTPUT); // sets the relay pins as output for 1 to 4
pinMode(relay2Pin, OUTPUT);
pinMode(relay3Pin, OUTPUT);
pinMode(relay4Pin, OUTPUT);

digitalWrite(relay1Pin, LOW); // sets initial states low for Relays 1 to 4
digitalWrite(relay2Pin, LOW);
digitalWrite(relay3Pin, LOW);
digitalWrite(relay4Pin, LOW);

//pinMode(clapperPin, INPUT);
val = analogRead(clapperPin); // assigns values on the clapperPin to val

digitalWrite(relay3Pin, HIGH); // Relay 1 active
digitalWrite(relay4Pin, HIGH); // Relay 2 active
delay(20000); // full rotation off @ 3V
digitalWrite(relay3Pin, LOW); // Relay 1 off
digitalWrite(relay4Pin, LOW); // Relay 2 off
delay(5); // short delay
digitalWrite(relay1Pin, HIGH); // Relay 1 active
digitalWrite(relay2Pin, HIGH); // Relay 2 active
delay(12000); // value for default volume setting
digitalWrite(relay1Pin, LOW); // Relay 1 off
digitalWrite(relay2Pin, LOW); // Relay 2 off
delay(5); // short delay
beginSerial(9600);
}

void loop()
{
val = analogRead(clapperPin);
delay(100);
Serial.println(val);
digitalWrite(relay1Pin, LOW); // sets all relays low for 1 to 4
digitalWrite(relay2Pin, LOW);
digitalWrite(relay3Pin, LOW);
digitalWrite(relay4Pin, LOW);
//lowers sounds
if (val 100) {
if (resetter == 1) {
delay(1);
}
else{
digitalWrite(relay3Pin, HIGH); // Relay 3 active
digitalWrite(relay4Pin, HIGH); // Relay 4 active
delay(12000); // pauses twelve seconds
digitalWrite(relay1Pin, LOW); // sets all relays low for 1 to 4
digitalWrite(relay2Pin, LOW);
digitalWrite(relay3Pin, LOW);
digitalWrite(relay4Pin, LOW);
delay(5);
resetter = 1; // switches to on-mode
}
}
//raises sound
if (val > 200) {
if (resetter == 1) {
digitalWrite(relay1Pin, HIGH); // Relay 1 active
digitalWrite(relay2Pin, HIGH); // Relay 2 active
delay(12000); // pauses twelve seconds
digitalWrite(relay1Pin, LOW); // sets all relays low for 1 to 4
digitalWrite(relay2Pin, LOW);
digitalWrite(relay3Pin, LOW);
digitalWrite(relay4Pin, LOW);
delay(5);
resetter = 0; // switches back to off-mode
}
}
}

1 Vote up

Day 7: Thing 7: TA8080K Motor Board

TA8080K

I have long been annoyed with how the l293s require 3 pins per motor to drive them and traded a couple of on hand mega8s for a bag of these toshiba parts. They are 1 amp motor drivers and perfect for some of the things I am working on for thing a day.

Board

2 Vote up

Back and forth thing of wonder. Day 4. Eh…

Back and forth

embedded by Embedded Video

So, the thing I kept trying to make kept breaking every chance it got. Finally, it somehow turned into this. Basically, I whipped something together using the slide mechanism from inside a printer, an Arduino, a junky photocell controlled H-bridge left behind by one of my least promising students this summer and the relay controlled extension cord I used in the penguin.

In short, as the thing moves back forth, it hits a switch which turns a lamp on or off which in turn changes the direction its moving in. There’s two seperate circuits at work. Yup… that’s pretty much it.

1 Vote up

Day 4, Thing 4 Aduino (adaboot) Programmer.

My Bulky PrototypeI was using the programming half of a a bulky prototype that I have been working on to program one of the mice from Day 1 and I looked at the pile hanging precariously off of the coffe table and thought to myself.

“I need to just build one of these. “

The finished productModifying Sparkfun Board.to fit in the boxthe input sideflea assemblyblinkin lightsin placetest runTranslucencedone

So I did.

The programmer is based on the Auto-Reset Hack and the AdaBoot bootloader. The reset is pulled by putting a capacitor on the DTR line of the serial interface which is also the bootloader interface. Most people put the cap on the Arduino but I put it on the programmer (where it belongs). This programmer was built using the ftdi ft232rl breakout board sold by sparkfun. I had to trim it down to get it to fit in the pretty blue box i bought at Tap Plastics. The chip out of the box presents two of its 4 gpio (general pourpose i/o) pins to indicate when serial is being sent and recieved. I wired a pair of very bright leds that I had to them and then tried to pipe the light to the corners using some translucent plastic tubes and hot glue. It looks pretty cool!

3 Vote up

Cell Phone Penguin Loves You! Day 1! Yay!

Cell Phone Penguin Loves You!

embedded by Embedded Video

And the Instructable slideshow

Today I made a penguin that alights in joy when your cell phone rings. Okay okay, maybe only when my cell phone rings. And maybe it doesn’t alight, but light up. And maybe I didn’t make the penguin at all… but I did make it light up when my cell phone rings.

It uses an Arduino, an AQV210EH low-voltage relay and a hacked cell phone vibrating alert. It was a good excuse to figure out the Arduino, but I still rather use a PIC.

Arduino code by popular demand:

int anlgPin = 2; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int val = 0; // variable to store the value coming from the sensor

void setup() {
pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT
}

void loop() {
val = analogRead(anlgPin); // read the value from the sensor

if (val > 50)
{
digitalWrite(ledPin, HIGH); // turn the ledPin on
delay(10000); // stop the program for some time
digitalWrite(ledPin, LOW); // turn the ledPin off
}
}

Anyways… enough of the technical…. See it for yourself! Watch the video sucka!