Sunday, November 7, 2010

lo-fi 3D Lego Digitize

while browsing around the internet i found this article of interest

http://www.rchoetzlein.com/project/digitizer/


(these images are lifted from the page, but it gives you an idea of whats linked above)





ardunio_typewriter

A new way to interact with fiction from Jonathan M. Guberman on Vimeo.




"Automatypewriter is a project by Jonathan Guberman of Site 3 coLaboratory hackerspace in Toronto that features an Arduino controlled typewriter that can type on its own as well as detect what is being typed on it. Here’s a demo of the Automatypewriter playing the classic text aventure game Zork."

Friday, November 5, 2010

PROJECT_2 : Even more Digiprogress.



/*
* Show messages on an 8x8 led matrix,
* scrolling from right to left.
*
* Uses FrequencyTimer2 library to
* constantly run an interrupt routine
* at a specified frequency. This
* refreshes the display without the
* main loop having to do anything.
*
*/

#include

#define SPACE { \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0} \
}

#define H { \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 1, 1, 1, 1, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0} \
}

#define E { \
{0, 1, 1, 1, 1, 1, 1, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 1, 1, 1, 1, 1, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 1, 1, 1, 1, 1, 0} \
}

#define L { \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 1, 1, 1, 1, 1, 0} \
}

#define O { \
{0, 0, 0, 1, 1, 0, 0, 0}, \
{0, 0, 1, 0, 0, 1, 0, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 0, 1, 0, 0, 1, 0, 0}, \
{0, 0, 0, 1, 1, 0, 0, 0} \
}

byte col = 0;
byte leds[8][8];

// pin[xx] on led matrix connected to nn on Arduino (-1 is dummy to make array start at pos 1)
int pins[17]= {-1, 5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10, 9, 8, 7, 6};

// col[xx] of leds = pin yy on led matrix
int cols[8] = {pins[13], pins[3], pins[4], pins[10], pins[06], pins[11], pins[15], pins[16]};

// row[xx] of leds = pin yy on led matrix
int rows[8] = {pins[9], pins[14], pins[8], pins[12], pins[1], pins[7], pins[2], pins[5]};

const int numPatterns = 6;
byte patterns[numPatterns][8][8] = {
H,E,L,L,O,SPACE
};

int pattern = 0;

void setup() {
// sets the pins as output
for (int i = 1; i <= 16; i++) {
pinMode(pins[i], OUTPUT);
}

// set up cols and rows
for (int i = 1; i <= 8; i++) {
digitalWrite(cols[i - 1], LOW);
}

for (int i = 1; i <= 8; i++) {
digitalWrite(rows[i - 1], LOW);
}

clearLeds();

// Turn off toggling of pin 11
FrequencyTimer2::disable();
// Set refresh rate (interrupt timeout period)
FrequencyTimer2::setPeriod(2000);
// Set interrupt routine to be called
FrequencyTimer2::setOnOverflow(display);

setPattern(pattern);
}

void loop() {
pattern = ++pattern % numPatterns;
slidePattern(pattern, 60);
}

void clearLeds() {
// Clear display array
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
leds[i][j] = 0;
}
}
}

void setPattern(int pattern) {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
leds[i][j] = patterns[pattern][i][j];
}
}
}

void slidePattern(int pattern, int del) {
for (int l = 0; l < 8; l++) {
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 8; j++) {
leds[j][i] = leds[j][i+1];
}
}
for (int j = 0; j < 8; j++) {
leds[j][7] = patterns[pattern][j][0 + l];
}
delay(del);
}
}

// Interrupt routine
void display() {
digitalWrite(cols[col], LOW); // Turn whole previous column off
col++;
if (col == 8) {
col = 0;
}
for (int row = 0; row < 8; row++) {
if (leds[col][7 - row] == 1) {
digitalWrite(rows[row], LOW); // Turn on this led
}
else {
digitalWrite(rows[row], HIGH); // Turn off this led
}
}
digitalWrite(cols[col], HIGH); // Turn whole column on at once (for equal lighting times)
}

PROJECT_2 : Digiprogress con't


MORE RHINO PROGRESS...


so far so good with rhino! i never thought i would say this, but i am mildly enjoying the program ... (granted, its probably because ben and liz is here whenever something gets terribly confusing)

so it is to my understanding that each layer of cutting has to be saved in an individual file to be routed out. so from the original rhino sketch i broke it down into three individual files.



SOME OTHER CONSIDERATIONS.

-we are considering painting the entire board a high gloss black, which, i am fond of initial but upon further reflection am not sure how to make the text clear to read... however...nother contrasting color should be an easy enough fix.... we shall see...

-LED colors used for the light scale are red (oil) orange (natural gas) yellow (coal) green (alternative) while the color scale may boarder on cliche, the idea is to make as clear and cohesive as possible, using colors such as blues and greens or purples and pinks do not have the same color association as the yellow to red spectrum (similar to the color code system used for terror alerts). So, rather than viewing it as cliche, its an established color palette for the issues we are addressing.

DIGI-INFO
Ben has been plugging away at trying to figure out get the most from the dweenies, in considering multiplexer/demulitlexers. this is order to increase the amount of info being received and processed by the micro-controllers : delightful. because this is an an analogue input to the boards, we need to get analogue multiplexers to disperse this info. to the LEDs. so there are 48 photo resistors and 40 LEDS that should theoretically work in a grid like pattern to send and receive the codes so that way the the LEDS correspond to the assigned photo resistor.

Thursday, November 4, 2010

PROJECT_2 : Digital Progress!


Ben and I worked on the original file that he and Liz created. We resides, scaling the image by ten, then again by ten. Centered it and added text boxes for the information. the circles are at 1/4 of an inch diameter and we have LEDs to match. there 4 rows of 10, each LED will indicate 10% of energy usage per state.

PROJECT_2 some other ways of visualizing data







http://flowingdata.com/2008/12/19/5-best-data-visualization-projects-of-the-year/

while there are some more visually simulating ways to display data, the clarity comes at a cost.
i personally prefer something that is more clear, simple, and minimal, rather than something more elaborate and harder to comprehend.