Projects, Tidbits and Tools
This is a new section recently added to publish various projects that I've completed, and tools or scripts that I've written at some time or another. This page will be a little small for a couple weeks as I track down various items and get them added. Stay tuned.
Lightmeter - AVR project
This was a project that I undertook so that I could learn what ADC is, and how it works. The ADC (Analog-Digital Converter) in this circuit, is used to convert the voltage reading from the voltage divider created from the two resisters. The capacitor that is in parallel with the photoresistor to smooth out the noise of the voltage that it sends.
For the MCU, I used an atmega8 because it was what I happened to have on my devboard at the time. You could use any of the atmega/attiny MCUs that have an ADC and a full 8 IO lines for port D and it should work equally well.
Inside the atmega, we split the analog reading into one of 9 levels, and then enable the number of consecutive LEDs based on what was read to create the bargraph effect. Originally I had made this circuit as a thermometer using a thermoresistor, but the temperature doesn't vary as much as the light does so it wasn't as much of an entertaining circuit as the light meter was.
Schematic + Source
Stoplight - AVR project
The second version of my first AVR project was a traffic stoplight. The first version was pretty basic, only consisting of the 6 traffic lights that blinked in a traffic-like sort of way. It was really just enough to learn how to write basic C for the AVR, compile and write my code to flash, and figure out outputting values on a single port.
In version two, I added Walk and Don't Walk lights for each direction, which involved using another timer. I fixed the timer values for both TIMER0 and TIMER1, and fixed up alot of my code as well. Overall, I'm completely happy with how it turned out.. I like watching the lights for a while.. it's mesmerizing.
Schematic + Parts List + Source
Last.FM CLI - Perl Script
So, first there was last.fm and it was revolutionary. Really awesome stuff. If you haven't heard about it yet, I highly suggest you go check it out. If I had to sum it up in a couple words, maybe I'd try "personalized radio station that you can customize and control.. and is awesome."
While last.fm is awesome, it does have a downside... their website is pretty terrible, and you need to use it for a lot of lastfm's functionality. So, what I wanted to make was a command line interface to last.fm, replacing the need to have to use their website. Initially this started off as a way to tag music, so then, I could script operations on my last.fm profile. Have a list of artists you like? Tag them all with one line of shell script! Then I got requests for the ability to recommend artists to people and I added this in as well. Then I expanded functionality to also include current playback functions, adding commands for ban, skip and love actions on songs.
Git Repository + Nightly Tarball