Shop OBEX P1 Docs P2 Docs Learn Events
Wife wants me to make this - Page 2 — Parallax Forums

Wife wants me to make this

245

Comments

  • tonyp12tonyp12 Posts: 1,951
    edited 2014-01-16 08:56
    How are you going to handle Power?
    Most households don't have a in-floor a/c outlet in their living room.
    If there is access to the floor from the celling below it, you could install a outlet.
    Myself with a single story house with concrete floor,I guess I would put a large battery that would have to be charged overnight ~twice a month.
    As I can live with a power cord across the floor once in a while but not all the time.

    If there is a rug under the table that goes all the way to or past the couch and the couch is a against a wall,
    I would then put the DC adapter under the couch and run some flat speaker wire for DC-power under the rug.
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-01-16 08:59
    Heater. wrote: »
    ... when you are done.

    Done with what? :innocent:

    So we've got:

    Variable intensity RGB LEDs through touch sensitive diffusion panels
    sound output
    sound input
    WiFi enabled
    "mood" lighting (you could actually do LED strips underneath the table edge to provide some mood counter lighting)

    Can you imagine the game of Simon you could play on a 16x24 grid (or whatever the final size is)

    Make it a little bigger and a much sturdier base and you can play Twister
    As it is, you can play Tetris and many other table games.

    Good thing you hav Carte Blanche.....we're going to spend a LOT for you!!!
  • Heater.Heater. Posts: 21,230
    edited 2014-01-16 09:12
    mindrobots,
    Done with what? :innocent:
    Well, I didn't want to spell it out. But you get the idea:)

    I was wondering about that resolution. 19 and 12 are such awkward numbers in our binary computer world. 16 by 24 would be much nicer to program.

    But maybe aesthetics is at work here, 19 by 12 gives an aspect ratio of 1.58 which is quite close to the magical golden ratio of about 1.62.
    Where as 24 * 16 is an aspect ratio of 1.5. Perhaps that is close enough.

    Do keep those "pixels" square though.

    Speaking of pixels, given that we have three colour LEDs offering a huge rainbow of colours this thing should be able to play videos as well.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-16 10:59
    Make sure and make a couple of test pixels to get an idea of how bright the LEDs will be, how hot they'll get and how much current they will draw.

    Since apparently everybody doesn't closely follow all of my projects, I'll point out I have a variety of WS2812B PCB designs in this thread. I think they might be a good match for this project. (No, I don't think they would.) They would sure make the wiring easier.

    The downside to using WS2812 LEDs instead of using shift registers is you'll lose color depth at low brightness settings. IMO, this is a big problem. You don't want to have to have the table at it's full brightness in order to get the cool colors you wanted.

    If you don't know what I mean about color depth, find out. It's important to this project. I can provide video examples if you like of LED displays losing the number of colors they can display as the brightness level is decreased. This could be a big problem with WS2812 LEDs.
  • JonnyMacJonnyMac Posts: 9,107
    edited 2014-01-16 11:04
    I was wondering, what does everyone think of using WS2812 LEDs?

    That would certainly simplify wiring the LEDs; the trick then is converting a linear string to a matrix. I wrote about the WS2812 for Nuts & Volts and even created a little module for it in DipTrace. Those files are attached in case they're helpful. FWIW, you can order right inside DipTrace but I noticed the limit is 199 boards (comes out to about $60 for the PCBs).

    My WS2812 object: http://obex.parallax.com/object/703
  • JonnyMacJonnyMac Posts: 9,107
    edited 2014-01-16 11:10
    I'll point out I have a variety of WS2812B PCB designs

    I've been using the WS2812B in my designs as well. I've attached my pixel PCB (DipTrace files) that uses it.
  • vanmunchvanmunch Posts: 568
    edited 2014-01-16 13:04
    Take a look at O'Hara's RGB 1-2-3 http://rgb-123.com/

    1-2-3.jpg


    He went through a ton of work and had a very successful KickStarter.

    You can read about it here and make sure you watch the video:
    http://ohararp.com/kickstarter-rgb-123-goes-live/
    700 x 468 - 301K
  • TCTC Posts: 1,019
    edited 2014-01-16 13:05
    tonyp12 wrote: »
    How are you going to handle Power?

    That is one part I will have to work on, and not my problem. It is her's
    mindrobots wrote: »
    "mood" lighting (you could actually do LED strips underneath the table edge to provide some mood counter lighting)

    Can you imagine the game of Simon you could play on a 16x24 grid (or whatever the final size is)

    Make it a little bigger and a much sturdier base and you can play Twister
    As it is, you can play Tetris and many other table games.

    Good thing you hav Carte Blanche.....we're going to spend a LOT for you!!!

    I like the "mood" lighting idea.

    My wife would not mind it being 16 x 32

    Yea, you all are going to make me spend all my money :smile:
    Heater. wrote: »

    Do keep those "pixels" square though.

    Speaking of pixels, given that we have three colour LEDs offering a huge rainbow of colours this thing should be able to play videos as well.

    I want to keep them square, I think it would look better

    I don't know if I want to tackle playing videos, I am all ready going out of my comfort zone.
    Duane Degn wrote: »
    The downside to using WS2812 LEDs instead of using shift registers is you'll lose color depth at low brightness settings. IMO, this is a big problem. You don't want to have to have the table at it's full brightness in order to get the cool colors you wanted.

    If you don't know what I mean about color depth, find out. It's important to this project. I can provide video examples if you like of LED displays losing the number of colors they can display as the brightness level is decreased. This could be a big problem with WS2812 LEDs.

    I was worrying about the color depth. I don't want to buy 512 LEDs just to find out I cant turn down the brightness.

    If you all ready have video, that would be great. But don't make a video just for this.
    JonnyMac wrote: »
    That would certainly simplify wiring the LEDs; the trick then is converting a linear string to a matrix. I wrote about the WS2812 for Nuts & Volts and even created a little module for it in DipTrace. Those files are attached in case they're helpful. FWIW, you can order right inside DipTrace but I noticed the limit is 199 boards (comes out to about $60 for the PCBs).

    How hard would it be to convert from a linear string to a matrix?

    I really have to get a Nuts & Volts subscription :smile:

    I am use to Eagle, never used DipTrace
  • JonnyMacJonnyMac Posts: 9,107
    edited 2014-01-16 13:16
    How hard would it be to convert from a linear string to a matrix?

    If you create rows that don't zig-zag back and forth, it should be easy. Duane used strip LEDs (hacked Christmas bulb string) to create a sign matrix that was really cool.
    I am use to Eagle, never used DipTrace

    I've attached PDF of the schematic and the Gerber files for the board (WS2812)
  • TCTC Posts: 1,019
    edited 2014-01-16 13:22
    Here is what we have so far:
    ~16 x 32
    ~1-1/2" square pixels
    ~full color per pixel
    ~glass (not plastic) top
    ~spectrum analyzer
    ~real time visualizations
    ~some form of human input (capacitive, button, light, etc...)
    ~Games (Tetris, pong, etc...)
    ~under table mood lighting
    ~Bluetooth control from phone (serial link) to change modes
    ~and a budget for the electronics of $300 (I could con a little more if needed)

    Let me know what would you do. If you would do something different.

    I am going to be WAY out of my comfort zone, I have never did anything on that list. That is why I would like to know how would you guys do it. So it would give me an idea of what I need to do.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-16 13:32
    TC wrote: »
    I was worrying about the color depth. I don't want to buy 512 LEDs just to find out I cant turn down the brightness.

    If you all ready have video, that would be great. But don't make a video just for this.

    It sounds like you already understand the problem.

    IMO, this should be a deal breaker for the WS2812 LEDs. If you want to dim the display, you'll drastically lose color depth.
    TC wrote: »

    How hard would it be to convert from a linear string to a matrix?

    I think JonnyMac is referring to the difficulty of having an array where the pixel numbers aren't arranged in memory the same way they are physically.

    I think this issue gave him trouble with one of his cool LED costumes.

    I had a similar problem when using GE-35 Christmas lights. In order to get the lights to fit in my display, I had to zigzag the strand back and forth. This is not how memory is laid out. I ended up creating a lookup table to match the physical location with the RAM location.
    TC wrote: »
    I am use to Eagle, never used DipTrace

    If you know how to use Eagle already then great but if you're still new to Eagle, I'd suggest switching to DipTrace.
  • TCTC Posts: 1,019
    edited 2014-01-16 13:37
    vanmunch wrote: »
    Take a look at O'Hara's RGB 1-2-3 http://rgb-123.com/

    1-2-3.jpg


    He went through a ton of work and had a very successful KickStarter.

    You can read about it here and make sure you watch the video:
    http://ohararp.com/kickstarter-rgb-123-goes-live/

    He has some great stuff. The only thing is, I don't like the LED spacing. I would need 1-12"(38.1mm), the 16x16 has 12.5mm.

    But it also made me realize I am going to have to use one heck of a power supply. for that same 16x16, he is saying it can consume 15.36A. I might have to use a computer power supply.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-16 13:41
    TC wrote: »
    ~full color per pixel

    . . .

    So it would give me an idea of what I need to do.

    I think some LEDs like Microcontrolled linked to and some high power shift registers would give you the best color control of the options discussed.

    The high power shift registers are sink only so make sure and get common anode LEDs.

    Edit: I linked to the "A" version of the high power shift registers. The "B" versions cost less (they're what I'm using).

    I know I keep harping about the color density but I think this will a big issue. I'm constantly turning my LED displays to their lowest brightness settings to keep them from being too annoying to my wife. But I also want the display to have the capacity to be really bright in case I want to use it outside or just because.
  • TCTC Posts: 1,019
    edited 2014-01-16 13:49
    Duane Degn wrote: »
    IMO, this should be a deal breaker for the WS2812 LEDs. If you want to dim the display, you'll drastically lose color depth.

    I think it is a deal breaker, the price alone is a deal breaker.
    Duane Degn wrote: »
    I think JonnyMac is referring to the difficulty of having an array where the pixel numbers aren't arranged in memory the same way they are physically.

    Got ya, I was getting worried that I would have to be a veteran programmer.

    Duane Degn wrote: »
    If you know how to use Eagle already then great but if you're still new to Eagle, I'd suggest switching to DipTrace.

    I have been using Eagle for years. I have figured almost everything about it.
  • TCTC Posts: 1,019
    edited 2014-01-16 14:01
    Duane Degn wrote: »
    I think some LEDs like Microcontrolled linked to and some high power shift registers would give you the best color control of the options discussed.

    Holy cow!! 350mA per output!?!? Am I really going to need that capability?
    Duane Degn wrote: »
    The high power shift registers are sink only so make sure and get common anode LEDs.

    Would I want the shift registers to control the columns or the rows?
    Duane Degn wrote: »
    I know I keep harping about the color density but I think this will a big issue. I'm constantly turning my LED displays to their lowest brightness settings to keep them from being too annoying to my wife. But I also want the display to have the capacity to be really bright in case I want to use it outside or just because.

    Please, you are not harping. I have no experience with this many LED's, or RGB LED's
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-16 14:50
    TC wrote: »
    Holy cow!! 350mA per output!?!? Am I really going to need that capability?

    Probably not. I think the 350mA is for all outputs at once but still I think the "B" version of the chip would probably work fine.

    Keep in mind each LED will be on only 1/8 of the time at the most so you'll want to drive the LED harder than you would if the LED were continually on. While the LED will be on 1/8 of the time the shift registers may have to be on all the time.

    The other thing you need to figure out is how to drive the anodes. This will need to be a higher current driver than the cathodes since the anode driver may need to drive up to 96 LEDs (counting each pixel as three LEDs) at once. I've used half bridge motor controllers but I don't like my current solution. This is something I've been meaning to ask the forum about.
    TC wrote: »


    Would I want the shift registers to control the columns or the rows?

    I think the norm is to use the shift registers to control the columns.

    If I were you, I'd try to take advantage of whatever software is already available.

    I've already done a lot of work controlling RGB arrays with shift registers, so I think you'd be wise to configure your hardware in a way to make it easy to use the software I've written.

    I'm not sure if the latest schematic I've posted includes individual access to each color's enable pin but my next version of PCB will include this change. I strongly recommend keeping the enable pins accessible to use for brightness control. I've made the mistake of "simplifying" a layout by tying enable pins to ground. Don't. You'll want to control them and possibly each color individually.

    In order to get the data out quickly, I also think it's a good idea to have separate data lines for each color. This allows a full pixel to be sent with each clock pulse.
  • TCTC Posts: 1,019
    edited 2014-01-16 15:48
    I was doing a little poking around, and I found this schematic. I have not dug to deep into it, but I was thinking replace the Atmega with a prop. The schematic has the row drivers, and the column drivers. What do you guys think?

    schematics_v2.jpg
    1024 x 448 - 51K
  • kwinnkwinn Posts: 8,697
    edited 2014-01-16 16:47
    How about a 20 x 12 array like this. Close to what the video showed and driven with the prop should easily do 16 brightness levels per color with PWM. Might be possible to use TPIC6B595's depending on the leds chosen.
    591 x 465 - 63K
  • TCTC Posts: 1,019
    edited 2014-01-16 16:55
    kwinn wrote: »
    How about a 20 x 12 array like this. Close to what the video showed and driven with the prop should easily do 16 brightness levels per color with PWM. Might be possible to use TPIC6B595's depending on the leds chosen.

    Not a bad idea, but the wife wants it to be 16 x 32. And with 16 levels of brightness, I don't think she would like that. It looks like in the video there are more colors than that.
  • kwinnkwinn Posts: 8,697
    edited 2014-01-16 16:58
    16 levels for each of the R, G, and B leds would give 4096 colors.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-16 17:01
    kwinn wrote: »
    How about a 20 x 12 array like this. Close to what the video showed and driven with the prop should easily do 16 brightness levels per color with PWM. Might be possible to use TPIC6B595's depending on the leds chosen.

    The TPIC6B595 chips can only sink current. You can't using them to drive the anodes.

    I don't think it would slow things down much to use a normal 74HC595 chip to control whatever is used to drive the anodes.

    I could get 5-bits (32 levels per color) color depth with a 16x8 array but that was before switching to separate data lines for each color. I don't know if using separate data lines will increase the speed enough to get 6-bits per color or not.

    One possible way of getter better color depth would be to use multiple cogs. I'm planning on doing this in my LED project. I'm not sure what the best strategy for using multiple cogs would be. The array could be divided in sections with various sections controlled by a separate cog or a cog could be used to control just one color.
  • kwinnkwinn Posts: 8,697
    edited 2014-01-16 17:02
    16 x 32 could be done but would require 14 shift registers. 12 for the columns and 2 for the rows.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-16 17:04
    kwinn wrote: »
    16 levels for each of the R, G, and B leds would give 4096 colors.

    IMO, 4-bits per color looks pretty good.

    I've got to make a better demo video of my arrays. I can adjust the array size and color depth on the fly to experiment with various combination. Darn it, I don't have time today to make it.

    It's pretty interesting to see how a rainbow looks at various color depths.
  • xanaduxanadu Posts: 3,347
    edited 2014-01-16 17:09
    Has anyone even built an array using WS82xx LEDs? They work like magic in strips, they seem like a very worth option, especially if diffused. Not sure on how you would address them in a game like Tetris. You could do some really wild effects otherwise. Make a big VU meter out of it with some random routines, if it gets boring switch the music.
  • kwinnkwinn Posts: 8,697
    edited 2014-01-16 17:39
    Re: : "The TPIC6B595 chips can only sink current. You can't using them to drive the anodes."

    Not directly, but you can use them to drive a PNP or Pchannel fet to drive the anodes. This makes better use of the TPIC's and makes wiring the outputs a bit simpler.
  • TCTC Posts: 1,019
    edited 2014-01-16 17:54
    Duane Degn wrote: »
    IMO, 4-bits per color looks pretty good.

    I've got to make a better demo video of my arrays. I can adjust the array size and color depth on the fly to experiment with various combination. Darn it, I don't have time today to make it.

    It's pretty interesting to see how a rainbow looks at various color depths.

    I am having trouble understanding how each pixel can have different brightness when a shift register is controlling the LEDs. I am use to driving LEDs in static mode, with only on/off control.

    Would it be better/easier to use an ic that offers individual PWM control? My inexperience is asking.
  • xanaduxanadu Posts: 3,347
    edited 2014-01-16 17:59
    [video=youtube_share;SFjMOfBbglI] 3 RGB LEDs per pixel and ping pong balls are a great diffuser. WS8211 72 LED/m
  • kwinnkwinn Posts: 8,697
    edited 2014-01-16 18:48
    TC wrote: »
    I am having trouble understanding how each pixel can have different brightness when a shift register is controlling the LEDs. I am use to driving LEDs in static mode, with only on/off control.
    What you do is produce/shift the column bits out 16 times for each row of leds. If a led intensity is 0 the bit for that column would be 0 all 16 times. If the led intensity was 8 then 8 out of the 16 times the row bit would be 1. Sort of multiplexing combined with PWM.
    Would it be better/easier to use an ic that offers individual PWM control? My inexperience is asking.
    It might be, but often the task of producing an image on the led array from an x/y array of pixels in memory gets really complicated.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2014-01-16 19:06
    TC wrote: »
    I am having trouble understanding how each pixel can have different brightness when a shift register is controlling the LEDs. I am use to driving LEDs in static mode, with only on/off control.

    The driver for the shift register has to written in PASM in order to shift the bits fast enough for brightness control.

    The code to move around the pixels can be written in Spin though.
    TC wrote: »

    Would it be better/easier to use an ic that offers individual PWM control? My inexperience is asking.

    Maybe? I'm not familiar with an IC which could do this. I'm very interested in hearing what options are available.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2014-01-16 20:12
    With visualisations, if your wife likes itunes visualisations we can cheat a bit here. Take a video of an itune visualisation. Then run it through one of the various programs to convert to bitmaps. Then a bit more image processing (done on a PC) to get it down to the 19x24 resolution or whatever you choose, and to decrease the resolution to whatever it ends up. This is all the preprocessing done behind the scenes to play a video like this on the Propeller http://www.youtube.com/watch?v=Ev7kKXGybEA It is just one big file, loaded a screen at a time off an SD card. So you can play anything you like on your display by cheating and filming the thing you want rather than writing complex programs. Maybe you even cheat and use a stock video of the 'game of life' rather than actually coding the 'game of life'.

    A propeller would be perfect for this. Files and graphics stored on an SD card (4 pins). So you would have 24 free pins to drive the display. Cogs can do updates more than fast enough.

    BTW the code to play that youtube video came in at (I think) about 8 lines of Spin code that I had to write. All the complex code was written by others and found on the Obex. Hmm *ponders*, I wonder if anyone has written some RGB driver code and posted it on the Obex?
Sign In or Register to comment.