I want to build an interactive LED Table. What are my options for a controller?
I want to build an interactive LED Table. What are my options for a controller?
I have seen a couple of videos and instructables where people have created a matrix of LEDs controlled by photodiodes/photoresistors inside coffee tables, so that when you put your hand over the table or put a mug down, the lights under the object light up.
I want to take this to the next level by controlling the matrix with a microcontroller. Reason being: I can do even more with the matrix, maybe turn it into a VU meter or do cool light shows.
Here is what I was thinking:
A 9x5 matrix of LEDs (blue) with a 8x4 matrix of sensors (photoresistors):
I have a couple of PIC microcontrollers with 36 I/O pins lying around plus some other smaller ones. I haven't used PIC MCs before so I thought this might be a good project to use them for.
Do you have any recommendations for the controller design? Maybe I could use 2 MCs, one for the LEDs and one for sensors? Maybe just use one MC and use demultiplexers to switch in the many sensors?
Lay it on me fellas!
Much depends on the PICs you have available, particularly how much and which type of I/O they have, think analog multiplexed ADC.
Sharing rows or columns between sensors and LEDs, like Chris suggests, is often done if sensors are digital like the LEDs I/O, for instance for a matrix of pushbuttons. It's not so evident for mixing analog (photoresistors) and digital (LEDs). What you could share is the I/Os controlling (de)multiplexers if you would need those.
Having a separate controller for sensors and LEDs, like you suggest, could be a good idea, as the extra I/Os may make some multiplexers unnecessary. You'll also need a few lines on each for communication between the two. As I understand it you'll want to start with a simple "action!" signal, but when the interaction becomes more advanced you may want to pass the coordinates of the mug to the other controller, so that its actions can depend on these coordinates. A simple UART will do, but still needs 2 I/Os on each controller (even if you only have communication in one direction).
For the sensors I'm thinking of two CD4051 multiplexers, one for the rows, the other for the columns of a matrix. If your PIC has an analog multiplexer for its ADC you can do with just one CD4051, but this uses a few more I/Os.
Select one of the photoresistors to place in series with a fixed resistor to make a voltage divider, so that you can determine the photoresistor's value with an ADC.
For driving the LEDs you can use a 74HC138 demultiplexer to select one row, and use the low level active output to drive a PNP transistor which will source the current to drive a column. For driving the columns you can use an I/O port of the PIC directly.
Like I said you can share the driving lines for one of the analog multiplexers with those of the 74HC138. Just saves you 3 I/O lines.
You might consider using IO expanders, cpld's or yes, you could use slave microcontrollers. Since such a project only has to respond in human timeframes, the internal architecture can require a long series of things to be done to produce one human-visible result.
Your sensors could easily be placed in a row-column matrix that you would scan.
Your LEDs can be matrixed to the degree that you are willing to drive them with pulses rather than continuously (which is fairly common).
You may be able to share one set (the row or column) lines between the sensors and LED's.
You might look into a technique called "charlieplexing" though as with everything it has tradeoffs.
I have seen a couple of videos and instructables where people have created a matrix of LEDs controlled by photodiodes/photoresistors inside coffee tables, so that when you put your hand over the table or put a mug down, the lights under the object li
i am studying about differential cryptanalysis, and found one metric to measure the resistance of a sbox to it, but to use it, it is necessary to build a difference distribution table, like the one in this link, this is is the table of sobox s1 of de
Which of the following is NOT true with respect to a transparent bridge and a router? Both bridge and router selectively forward data packets A bridge uses IP addresses while a router uses MAC addresses A bridge builds up its routing table by inspect
I have a pricing plan table with multiple payment options. I'm not sure whether it is best to place the pricing options in a drop-down (and fire off the submit on the "onchange" event) or simply have buttons for the user to choose (there are onl
When I join a layer with another layer all the attributes are correctly displayed in the first layer. However when I use the Query builder (Layer - Query) and then use Zoom to layer, nothing is displayed. sgrieve - thank you for you guys taking the t
I know SQL well enough to perform basic queries and manipulate data split into multiple tables in a database. I know Excel 2007 a bit better and use it frequently to manage my mechanical engineering projects. Sometimes in Excel I want to manipulate d
I need to built a 3x3x3 LED cube. I need to be able to turn every LED on (not at the same time) in different patterns. I need to use Charlieplexing (note that any other method is not a viable option), with a Arduino UNO (6 pins). I am allowed to use
I teach an undergraduate course in Thermodynamics and I would love to use Mathematica to demonstrate the various engineering processes that involve the expansions and compressions of steam and common refrigerants such as R134a. I know that wolfram al
A straightforward navigation structure can increase the usability of your site, and make information easy to find. By using basic HTML and CSS, you can build a horizontal nav bar that provides interaction when a user hovers over a navigation link. St
I'd like the distance to be about 1/10th of a mile; less distance will be fine if that's easier to build. What tools and parts may I need for this? I have plenty of LEDs lying around and I have breadboards. I should add I've been working with electro
I am a beginner at logic gates/circuits and would appreciate some help constructing a running LED light system. The concept is to have a row of 20 LED lights that start flashing, one after another, after receiving a certain input. The only two option
I love Chemistry and the Periodic table is very useful for me, however I can't remember all of the properties of all of the elements, so I was wondering if there was some sort of Periodic table interactive app? I am running Ubuntu GNOME 15.10 with GN
I got a question from our product team to build a "Table availability of customer service representatives (user)". f For example : user_A was available to accept a call from 12:00 to 12:03, so I have in the database a table with UserName = user_
I have a large table that I am updating. Is it possible to disable index updates on the destination table until the load is complete? It seems like a waste for it to be constantly updating the index with each commit. I can just drop and recreate the
are there built-in functions to build a modern HTML grid (as in grid control, not css grid layout) in WordPress? for example, one that is page-able and sortable. --------------Solutions------------- There are many different approaches to grid layouts
Having the foresight to begin collecting data from our production environment several years ago, I have a table with a following structure- Part Status Startdate Enddate I can write a relational join, but how do I then go about including this in my p
I'm a beginner in electronics, read a few books, have solid understanding of the basics. I would like to make an LED Screen Project I need some quick advice for. I want my RGB LED Matrixes to be able to join for bigger size screen and have the same c
I would like to have something like an LED bar, except that the light emission should not be broken up into separate lights, but be more or less continuous - without much greater light intensity per length. Finally, it should be used for a thin, flex
We're using Percona's pt-table-checksum for MySQL replication integrity check. Is it possible to pass some or all of the options using some sort of configuration file? For instance, can we write the list of tables we want checked in a file? I underst