Interactivity & Installation

Wednesday, November 25, 2009

RGB LED Projects

Just looking at some concepts working with RGB LED lights & programming...

1. Hypnocube - My own code and animations (of a 16 year old)
Hypnocube can be ordered.


2. RGB LED cube 8x8x8
An open-source project in continuing development of the eightCubed - an assembly of 512 full color light emitting diodes. Each voxel is addressable by multiplexing the lattice, making sophisticated animations an enjoyable scene on the 8x8x8 LED display.
Each animation has 60 frames per second...
More info... Lumisense ยป eightCubed


3. Another commercial product... 3D LED Cube
http://www.seekway.com.cn/e/ledsys9.htm
Hanging cube


4. Arduino 32x16 RGB Matrix
More info... arduino source in Korean


5. Arduino + Processing + RGB LED Matrix + Kid


I like the last one best! :-)

Thursday, November 12, 2009

TISCH (Tangible Interactive Surfaces for Collaboration between Humans)

Since 2006, there has been quite a lot of research into multitouch user interfaces, largely thanks to Jeff Han. Many people have started building their own hardware, and commercial devices are also starting to become available.

To enable easy development of applications for such multitouch- and tangible-based GUIs, we present libTISCH, a cross-platform, cross-device multitouch development framework. Some of the more prominent features include:
  • ready-to-use multitouch widgets based on OpenGL
  • reconfigurable, hardware-independent gesture recognition engine
  • support for widely used (move, scale, rotate..) as well as custom gestures
  • hardware drivers for FTIR, DI, Wiimote, DiamondTouch..
  • TUIO converters: source and sink
  • cross-platform: Linux, MacOS X, Windows (32 and 64 bit)
  • cross-language: C++ with bindings for C#, Java, Python
Details below:
http://tisch.sourceforge.net/

AVR homebrew device with iPhone aspirations

Can you make an iPhone out of an AVR? No. Can you get a surprising amount of functionality out of a humble 8 bit processor and a cheap touch LCD? Yes.

The iPhone runs more than 30 times faster (417Mhz ARM vs 12Mhz AVR) and has more than 30,000 times as much ram RAM (128M vs 4k) yet this frumpy little device can ape some of the iPhones neater tricks.

Hardware
320x240 LCD with 4 wire resistive touch screen - a ELT240320ATP variant from a dead Sylvania MP3 player - uses a ILI9325 controller.
12Mhz Atmega644 CPU with 64k Flash and 4k RAM - demo fits in 32k.
USB connector for PC communication and charging.
Lithium polymer battery with software controlled power.
Software controlled backlight.
SD Micro slot.

Software
LCD driver to support blitting image decompression and smooth scrolling.
Z-sorted span 3D engine with zero overdraw.
Basic UI framework for gadgets and poorly drawn pictures.
USB mouse or keyboard HID support.
Sampling profiler.
Movie playback.
Sprite engine.

Tricky Bits
4K of RAM might sound like a lot but it isn't. Getting a 3D renderer to fit comes down to the representation of the active triangle edges - this engine uses 16 bytes for a double sided edge so you can have lots of triangles on a horizontal scanline and still run the whole thing in 8k of Flash and 512 bytes of RAM.

Pacman just fits in 8K flash and 512 bytes of RAM. It uses the sprite engine and runs at > 60fps.

None of the images or animations ever linger in RAM, the go straight from the SD card to the screen. The SD card is a wonderful alternative to RAM. Reading a 512 byte block takes ~1ms; not snappy but plenty fast enough for human interation.

At 3.3v, the Atmega644 is limited to about 12Mhz. Pretty pokey when you consider you can buy a 50Mhz ARM Cortex-M3 with the same flash and ram for about 1/3 as much as the 644. Don't get me wrong; I love the Atmel parts but a little more CPU would not go astray.

Source
Source code, demo files, Eagle PCB and schematics at https://sourceforge.net/projects/microtouch/



Source:
http://rossum.posterous.com/avr-homebrew-device-with-iphone-aspirations

Friday, November 6, 2009

Using a light sensor to alter states of a LED

By changing the intensity of light received by the tiny light sensor, the LED blinking rate can be manipulated. As seen in example 6a, it looks pretty straight forward...



I did not get it to work yesterday wondering if it was a bad sensor. I talked to an engineer and showed him the circuit. He quickly spotted an error, I had put the sensor on the other half of the breadboard... oops...

Example 6b as shown below, the change of the original code was subtle, modified the code:
analogWrite(LED, val/2) and produced a more dramatic result.



* updated on Nov 29 as followed...
Since the effect was rather subtle, I replaced the original light sensor with a larger 12mm one to give it a try. The modified code did not work properly... ??? Change back to the original code worked a little better... The result did not make much sense...

Upon trying back & forth with the 2 sensors and various codes, the size of the sensor seems to contribute little to the test results. The sensor is in fact sensitive to light from various directions, not just on the top portion. Thus, the larger the sensor, the harder to control bounced light from around; yet deliver unpredicted results. Video below use a black box to block direct light & bounced light, the original and modified code with either one of sensors finally all work properly.

Thursday, November 5, 2009

Working with a push-button & LED on Arduino

Just trying different instructions with Arduino, example 02, 03a, 03b & 03c. These are variations of code for just using a simple push button to turn on or toggle a LED light.

Video shot of example 03c, with a line of code of delaying 10ms; which is one of the techniques developed to do de-bouncing.