Yep. That would make more sense.
Looking down the road, I need to find someone Ican pay to develop this into a finished product (no arduino). I've had batches of hardware parts machined before but not electronics. Where would I post my complete, detailed, requirements so that I can receive bids on a finished product?
Here would be fine. Would be simple to make an arduino like board that could control 100 LEDs.
This one does 96 with 12 shift registers (top of the board) and an ATMega328 (bottom section of the board).
Adding 1 more shift register should for full 100 should be possible.
Or use as is for 96.
Guess what; I only really need 88. They need to be in a row, consist of only red and green LEDs. The finished product would look like this but have 88 LEDs:
It would connect via USB and have a C# example code that would illustrate turning each one one and off. It could also be serial since I could still use a Serial-to-USB converter but USB would be best. If you can't do all of that even supplying the boards and wiring would be useful.
This board would do that nicely. Plug a FTDB Basic USB/Serial adapter or equivalent onto the FTDI header, send in 12 bytes via serial (start byte & 11 data bytes for the 88 LEDs), the uC sends out 11 bytes via spi.transfer to light the LEDs up. Leave on for some predetermined time, or turn off if not turned on in the next chunk of data received.
CrossRoads:
This board would do that nicely. Plug a FTDB Basic USB/Serial adapter or equivalent onto the FTDI header, send in 12 bytes via serial (start byte & 11 data bytes for the 88 LEDs), the uC sends out 11 bytes via spi.transfer to light the LEDs up. Leave on for some predetermined time, or turn off if not turned on in the next chunk of data received.
OK. What services can you provide on this project?
As much as you'd. As little as selling you the board and a set of schematics and PL, to selling you a populated board with wires (could be connectorized) going out to resistors/LEDs (you'd have to specify reds/greens and how long you'd like the wire) for you to mount on something with predrilled 3mm or 5mm holes or whatever sizze LED you'd like, capable of accepting 12 bytes of data at up to 115200 baud via USB that would then turn on the appropriate LED in each byte (1 = on, 0 = off) with about 1mS of lag:
1 bit every 1/115200 of a second received, 10 bits/byte, 12 bytes: (1/115200) sec/bit * 10 bits/byte * 12 bytes = .00104 sec.
A suitable wallwart for power, 88 LEDs * .02A max= 1.76A, so a 2A supply should do nicely.
You could order some LEDs & resistors from here,
http://www.dipmicro.com/store/index.php?act=viewCat&catId=511
do some experimenting as to what brightness you'd like, using a 5V source.
I could even give you a little sketch to run on your arduino:
LEDpin = 2;
void setup(){
pinMode (LEDpin, OUTPUT);
}
void loop(){
digitalWrite (LEDpin, HIGH);
delay (1000);
digitalWrite (LEDpin, LOW);
delay (1000);
}
adjust the pin & on/off times as you wish.
I had ease of assembly in mind when I designed the board.
Should be able to obtain all parts needed from dipmicro.com, and the shift register/drivers TPIC6B595N from Avnet.com. ATMega328P (28 pin DIP) from either place; -PU or -PN is fine. -PN is just wider temperature range.
You haven't indicated if keypress is related to LEDs lighting up or vice versa, so I assume that you will be addressing that in however the keyboard connects to the PC. I won't do the PC coding part.
I'd like to skip the arduino step and go straight to the closest thing I can output commands to from a PC. Do you have an online store? Once the prototyping and testing is finished, I'd like to order these in small batches periodically. I'd want a populated board with leads for the LEDs. An 88-key grand piano's key area is 4ft wide so the longest LED lead would need to be a little over 4ft long. It would be better to have one, long, 4ftx0.5", flat, PCB with the little micro LED's on it and all of the other components. A flexible strip would be better still.
Can do.
No online store, each design I do is pretty much custom.
I accept payment via paypal.
I'll send you a PM with e-mail address.
Measured my wife's baby grand, it is indeed 4 feet from edge lower to edge of upper key.
I'll use 4.5-5 feet wire so the box can sit on the edge, or be left to drape over the edge.
Box will have panel mount connectors for power cord & USB mini-B connector.
Got an idea for the boards, think 8 of them with C# thru C on them, about the limit of the lenght I can do with the license I have, and keeps the boards within 160 x 100mm.
You mention Red & Green - please explain more.
How small do you envision for "little micro LEDs"?
It's normally done C-B. The green LED's would be the natural keys and the red LEDs would be the black keys. It's important that I can send commands to it via C# as I have the whole software side to write. I've seen those flexible strips of LEDs which is where I was getting that idea from. I'm just looking for the most elegant, cheapest solution for this project.
Huh - despite looking at the keyboard several times last night, I managed to create my drawing incorrectly.
Luckily I only had to move a couple of components to fix things.
Okay, single level, or dual level on the LEDs? These are 3mm.
Here's a layout I'm envisioning, with examples of both.
Key to key Spacing isn't quite on, but I'm pretty close. I used 0.9 from key to key, think it's a touch more.
Hmm, internet says white keys are 7/8" with 1/16" gap.
52 keys * 7/8 + 51 gaps * 1/16 = 48 11/16" Little too big.
You're right. The spacing would be a little tricky to work out. The spacing won't be even due the the fact that the center of the black keys are right between the white keys. Printing examples on paper is a great technique though. Instead of trying to do the math, I would just keep increasing/decreasing the spacing until it fit. The goal is to have each LED centered on each key. I would do it in octaves though. From c to b. You don't need to use the 3mm LEDs. You can use the really tinny ones if that is cheaper.
The spacing is not difficult, just some math, resulting in this.
I just printed, will cut & try again.
I have wife's piano, and also an Fatar SL-990 electronic keyboard to try the spacing on.
Rats - still a little off, on the high side this time.
I see you're starting on G# for some reason. In my particular case, the piano starts off with A and the highest note is C. Since it is clear that not all pianos start off with the same note, it may be best to just stick to the conventional c through b and just make one more octave than the paino would typically have. That would be used to cover any variation in starting and ending keys.
EDIT: doing a little more research, the lowest note on an 88-key piano seems to always be A0 while the highest note seems to always be C8.
I had it starting on G# and leaving it off the left most board, made sense when I started; spacing wise I think I have a better handle on it now.
Ok. I guess next step would be to get a prototype printed, populate it, see if everything works on a basic electronic level and then see if it can be interfaced with via PC.
I'm ready when you are with anything you need to get this moving along.