things i’m learning from the mp3 trigger that i forgot:
>>power it using usb or 5V? extension
1 long blink – No formatted microSD media found.
1 long blink, followed by 1 short blink – microSD media found, no MP3 files located.
Constant short blinks – Hardware problem with MP3 Decoder.
3 short blinks – microSD media found, at least 1 MP3 file located.
–>Track names have to be as followed:
and so on
LIMITATIONS TO THE MP3 FORMAT?
—>IT Supports a bit rate of up to 192 kB
Initially I think my problem is the SD card, if I remember correctly:
What I’m trying to set up now :
–>spin an crank shaft that is somehow attached to an encoder, when the encoder recognizes motion, trigger a song. To trigger a song, this should happen when jumping one of the “mp3 tracks” to ground on the mp3 trigger, ie writing low to one pin that is connected to the mp3 trigger track pins.
using any encoder code: http://bildr.org/2012/08/rotary-encoder-arduino/
and this schematic:http://www.hobbytronics.co.uk/arduino-tutorial6-rotary-encoder
– > Step 1. Only if there is a change in state of encoder position, write LOW to the pin.
Let’s start with pin 13, just to see if I can have this happen with the light.
AND , once the state changing stops, write HIGH (ie don’t play the song)
Simply, this takes an arduino input (ie the encoder) but then outputs a DIGITAL signal to trigger a track. So here, D13 triggers a track to play when written LOW.
The outer strip on the mp3 trigger pins are GND; the inner pins are what D13 should be connected to;
After a while this proved not to be so simple:
things learned: use a pull up resistor for triggering clean, LOW output. ; if any of the pins are “pulled high” none of the pins will work…
see more here :
Soon I will make a how-to guide for Sneel_002 on instructables.com, as I did for the first version of Sneel, (i’m working on that) but until then…
Sneel swam in central park
Like a real snakes vertebrates:
I used Arduino Mega with multiple servos attached, using multiple 6V NiMh battery packs, placed along the body, with an xbee mounted on top to control three parameters of wave behavior: period, wavelength, and amplitude.
I taped the bottom of the Arduino so nothing shorted:
First I stuffed the arduino + xbee into a waterproof sac:
Then I decided that was overkill so I just stuffed everything into the tube (as I had sealed each servo motor with epoxy and had a water tight seal on the tube top and bottom)
A diagram of the control firmware and the relationship between the classes:
I wrote an Arduino library called ServoWave to control period, amplitude and wavelength of the oscillation for Sneel’s swimming behavior.
See how each servo motor oscillates – in the following graph, I print out values of each servo as each motor rotates in a sine wave slightly out of phase from each other. The x axis is time and the y axis is angle, and each colored line is a different motor.
After getting everything packed up in the tube, I tested Sneel_002 on the floor of ITP.
He seemed sort of real:
Sneel in the wild:
a quick start:
questions for consideration:
snake or eel( float or sink)
propeller for forward propagation?
behavioral test – think better about mechanics of aquatic locomotion
Here are some images of the progress:
my email to the p comp list:
It turns out something weird is happening with my batteries – I can run the lipo batteries I have with two DC motors, giving me a current draw of 1800 mAmps (around there anyway when I tested with the multimeter)m, at around 8 V .
When I try to power solely one servo, the voltage drops immediately to below 2 V. The batteries seem to be fully charged , as indicated by the charger I’m using and when I try to give them voltage from a power supply of 8.4 volts at 0.25 mAmps limit, the power supply shuts to 0 (I think this happens with LI ion batteries, a chip prevents over charging if using a regulated power supply…?)
Anyway, what can possibly be preventing me from running one servo with a current rating of 0.3 Amps peak , but I can run DC motors , with 1800 mAmp peak? ?
I can’t figure out what might be wrong – if the battery was damaged, I thought I’d not be able to use it for the DC motors, but since it works fine that way… what can be the problem?
OK another Totally Weird thing is happening:
when I try to test the amperage on one servo by plugging the multimeter in series between the battery +7.4 V and the servo + power , the servo DOES seem to move a bit (slower than when I use just a 6V non rechargeable battery).
When I but without the multimeter in series I get no motion (immediate voltage drop to 1.5 V from 7.4)
Also, the multimeter is reading 0 amps even when in series with the battery and Vin on the servo
SO I realized I can’t stack it… UGH. I dont understand why I can’t combine two LI ion batteries to make 7.4 V from 3.2 V. WHy?
And now I am using vivitar batteries from cameras, but my voltage regulator, which brings the voltage down to 5.8 V gets super hot. this scares me.
Also, the small servos get super hot. Especially the Emax MD (i’m also using Emax A ).
SO I think I’ll buy some larger servos now, from servocity , as well as perhaps a 6 V NImh battery. Ugh.
get bigger servos
get new battery
put more screws on black servos
put on loctite
test o rings
put dielectric / marine grease
seal with epoxy the rest of the large servos
get more vacuum tubing
figure out battery pack, arduino power, face, etc
logging voltage here: http://www.levinegabriella.com/bellflower/bellflower_dataLog.txt
arduino code here:
php and more to come…
I like the concept of always trying to reach something, or always trying to see something, but you cannot penetrate barrier in order to reach / see it. In a sense, something only occurring when you blink, to me seems like you straddle the threshold of perception… well, i dunno. I have to develop this more and figure out what it actually is I’m trying to see that I never can
Here is a video of me testing my blink mechanism then trying to implement it in the dark, as I thought that would be dramatic. However, there was a delay in the dark, as I guess the camera vision was more difficult.
A few tests with others:
using a mp3 trigger, and getting into the matrix circuit behind the keypad (luckily the phone was OPEN and not locked) we’re going to allow people to pick up the phone
The payphone is so much simpler than I thought! the coin slot is just a bunch of gears, then the circuitry for the buttons and the receiver etc… nice
So I soldered some wires onto the already working switch so when the receiver is picked up a dial tone plays, then working on the matrix to activate different tracks when I button is pressed
the mp3 trigger is pretty simple with a micro sd card, FAT 16 formatted (<2 gb)- either it can be digitally controlled, by closing the switch on pins 0-17 (which switches between 18 tracks), Or it can interface with arduino serially.
Kate Watson and I will install a payphone at long branch bar in austin tx:
I have been trying for a number of weeks to perfect this, as in, find the correct transistor that would not overheat or burn out (one that is rated for a high enough voltage since it’s using AC 120 V). I followed this circuit from Dmitri’s blog, except instead of the IRF 250 I used an IRF730.
At first, I was using the IRF 520, with a 100 V drain source voltage and a 9 amp continuous drain current. It worked fine at first, and then it burnt out (there was connectivity between the gate-source and gate-drain). So I got an IRF540, with a 100 V drain source voltage and a 33 continuous drain current. This similarly worked at first, then burnt out.
Finally, I used the IRF730 which works pretty well so far! And doesn’t burn out – it is rated upto 400 V (which far surpasses the 120 V wall voltage in the US).
It works for a light (a resistive load):
and a fan (an inductive load):