Slava Kucheryavykh – DH LAB https://dhlab.lmc.gatech.edu The Digital Humanities Lab at Georgia Tech Fri, 29 Jul 2016 08:47:21 +0000 en-US hourly 1 https://wordpress.org/?v=6.2.2 41053961 LED Wiring https://dhlab.lmc.gatech.edu/floorchart/led-wiring/ https://dhlab.lmc.gatech.edu/floorchart/led-wiring/#respond Fri, 29 Jul 2016 08:47:21 +0000 http://dhlab.lmc.gatech.edu/?p=420 The LED strip has three inputs: +5V, Gnd, and data input. The data input has to come from one end of the strip, indicated by the arrows.

20160715_140926

20160715_140721

The power for the strip can come from any end. The +5V needs to be connected to 5 volts power supply. The Ground needs to be connected to both, the ground from the power supply and to the ground pin in the Arduino mega. The data input needs to be connected to Arduino mega through 470 Ohms resistor.

Also the neopixel guide suggests to put 1000 microfarad capacitor in parallel with power. In this case two 4700 microfarads are being used for 10 led strips.

The resistor has been soldered to the wire and is covered by shrink tubing.20160715_141658

In order to power all 30 strips, terminal strips are used to distribute the power. The first terminal strip is connected to the power supply and is used to split the power to another three terminal strips.20160715_140816 20160715_141149_1

Each of the second terminal strips can host 11 connections. 10 are used by the LED strips and then the extra one can be used to power Arduino mega. On the terminals where the power is connected to the strip, two 4700 microfarad capacitors are placed.

The strip itself is separated into positive and negative parts.

20160712_153718_1

The neopixel guide recommends to use 20 – 60 mAmps per pixel. Since there are 900 pixels the total current should be 18 – 54 Amps. But I found that using one 10 Amps power supply is more than sufficient to power all the pixels at about 1/3 brightness. But incase that is not enough a second power supply can be connected to the main terminal strip.

]]>
https://dhlab.lmc.gatech.edu/floorchart/led-wiring/feed/ 0 420
Capacitive Touch Sensors in a Grid https://dhlab.lmc.gatech.edu/floorchart/capacitive-touch-sensors-in-a-grid/ https://dhlab.lmc.gatech.edu/floorchart/capacitive-touch-sensors-in-a-grid/#respond Wed, 22 Jun 2016 17:18:50 +0000 http://dhlab.lmc.gatech.edu/?p=334 It is also possible to take the idea discussed in  Why Keyboards Matter post and tailor it for capacitive touch. This way it also possible to represent 900 individual user inputs with far less microcontroller pins.

The main idea behind this method would be similar to the keyboard (connecting buttons in a grid, so that microcontroller can get a coordinate of an activated button by detecting activated  row and column), only instead of using some kind of switches, a capacitive touch sensor (some conductive material) is used. This way one cell on the grid would be connected to two inputs on microcontroller that would be able to determine cell’s coordinate.

The problem occurs, though, when using one continuous conductive material for one cell. For example something like one piece of conductive fabric or metal foil. Because when detecting capacitive touch microcontroller sends pulses of signals instead of continuous current and the entire grid becomes connected through the connecting wires and acts like one big capacitive touch sensor.

One way to fix this problem is to put diodes on every wire connected to the cell. An alternative would be to use two separate pieces of conductive material that will not intersect. Here are some examples of those “non-intersecting” capacitive buttons.

 

CapTouch1CapTouch1-2CapTouch2CapTouch2-220160622_122849

These buttons are effectively two wires that are close enough so that a finger will touch both. But since they’re separate and do not intersect with each other, the problem discussed above will not occur.

If the look of those naked wires on the button cell is not desired, it is possible to put material over the button. By having a resistor in range 5M – 10M ohms it is possible to put fabric, thin cardboard, etc. and still detect the touch. By putting even higher resistor even thicker material can be used.

]]>
https://dhlab.lmc.gatech.edu/floorchart/capacitive-touch-sensors-in-a-grid/feed/ 0 334
Peabody Overall Report https://dhlab.lmc.gatech.edu/floorchart/peabody-overall-report/ https://dhlab.lmc.gatech.edu/floorchart/peabody-overall-report/#respond Fri, 03 Jun 2016 18:24:25 +0000 http://dhlab.lmc.gatech.edu/?p=272 Peabody project involves making a physical version of Peabody’ alternative timeline representation. The main components will include 30 NeoPixel strips, Arduino Mega microcontroller, and some kind of touch sensors.

The project can be subdivided into four parts: crafting the actual board that would hold everything together, making neopixels work, making human intractable cells around the pixels, and making the software to run the program.

Exterior

This part of the projects focuses on uniting every physical component and making the actual grid. The grid can be from hard material making it unable to be bent, or it can be from some kind of fabric making it more like a carpet that can be folded. The hard exterior will allow for a more stable design as all the components have less chances to shift and disconnect. But this approach will be further from the original that was made on a rug. It also will be harder to transport and will be more bulky.  The bendable exterior will allow for the grid to fold, resembling the original design, but it will be more challenging to implement.

Neopixels

Neopixels are going to be used to light up the cells, so the task for this part will be connecting them to a microcontroller. There will be 30 strips of neopixels, with 60 pixels on each strip, with only 30 pixels used. A 1000 microfarad or higher capacitor and a 470 ohms resistor need to be used to protect neopixel strips. Because of quantity of pixels used, an external power supply will be necessary. It needs to be at most 5 V DC and with 900 total pixels running, around 20 – 54 Amps. Since most likely the LEDs will not be all powered to the maximum white light brightness, two 10 Amp power supplies should be sufficient. The strips will use 30 digital pins on the Arduino Mega, but it is possible to join some strips together to control them from a single port.

Touch sensors/buttons

In order to make physical interaction with each cell possible, touch sensors or buttons need to be used. The challenge is that there will be 900 individual cells, and it is impractical to connect them all to a microcontroller. So the touch sensors/buttons need to be connected in strips of around 30 units and a microcontroller needs to differentiate between the 30 of them. For that analog pins need to be used. There are 16 analog pins and 15 PNW pins that can simulate analog input through the use of an Arduino library.

There are several options:

  • Pure button – A button can be placed in the cell. The benefit of this approach is that it is very reliable. It will give a clear reading when pressed. The con is that instead of the whole cell the user can only interact with one button. It will also be very challenging to tell 30 buttons apart.

 

  • Felt between two conductive materials – This can simulate a button and it can cover the entirety of the cell. The con is that it is less reliable than a button.

 

  • Pressure sensor – Allows once again to cover all of the cell. It also allows for various readings, not just HIGH/LOW. This can be useful in differentiating between different pressure sensors.

 

  • Capacitive touch – Also allows for most of the cell to be covered, and by changing signals from individual sensors with resistors, it might be possible to differentiate between them by using only one analog input. The con is that signal ranges of can overlap and produce inaccurate readings.

 

Another way that 900 touch sensors can be represented is through a 30×30 grid. Lines going one direction, say horizontally, will have high signal and the other lines going vertically will have low signal. By using some touch detection, one point on a grid will have two interacting lines joined together. Then the microcontroller will be able to identify the coordinate of that touch sensor. The downside of this method is the pin requirement, 60 pins in total. But by using two microcontrollers, this will not be an issue.

Software

The software will be fairly simple. By pressing a cell, the pixel of that cell should light up. There can be several options for choosing a color of the pixel though.

  • One of them is to use an additional button to cycle through the colors.

This option allows for a standalone device that will not be dependent on the computer. The con is that there will need to be some way to indicate the current color. Perhaps one of the unused pixels or and additional diode(s) can be used.

 

  • The other option is to use the select the color. In that case some connection between the device and the computer needs exist. This can be done through cable or Bluetooth. The biggest con of this approach is that the grid cannot be used without a computer.

 

Order of project parts

First priority is to make all the 30 NeoPixel strips and touch sensors working.  The strips have been tested to work, but it is necessary to test all 30 strips at the same time. To see how power adaptor can handle it. The more challenging part is getting 30 touch sensors made such that they can be differentiated by microcontroller through one input pin. Those two can be done mostly at the same time.

Then once both NeoPixels and touch sensors work, they can all be joined together and the exterior can be made. At the same time it is possible to write the software code for controlling the strips and the sensors.

]]>
https://dhlab.lmc.gatech.edu/floorchart/peabody-overall-report/feed/ 0 272