Projetando as simples coisas sonoras

25/11/2010

As discussões por aqui tão bombando! Quem quiser acompanhar mais sobre o desenvolvimento do projeto, dá uma chegada na wiki do SCS no Interactivos?’10 BH:

http://interactivos.marginalialab.com/wiki/index.php?title=Simples_Coisas_Sonoras

Falou!


interactivos? ’10 BH

22/11/2010

Já começaram as atividades do interactivos? ’10 BH! Estou participando com o projeto Simples Coisas Sonoras. Nesta edição, o interactivos? conta com a presença dos instrutores Arturo Castro, Fernando Rabelo e Kiko Mayorga. Serão duas semanas de produção intensa! =D Vamo que vamo!

Para mais informações sobre o interactivos? ’10 BH e sobre os projetos propostos, visite: http://interactivos.marginalialab.com/.


Nokia PUSH Update

31/01/2010

More videos!


Nokia PUSH: Sketch-your-world summing up

19/01/2010

Since the last post a lot of work has been done.

On the 4th of February all the teams will be together in London to present the results and party! =D

If you want to have more details, you can access our site on Nokia PUSH official blog:

http://blogs.nokia.com/pushn900/category/sketch-your-world/

Below you can see some videos about the project:


Nokia PUSH: Great news!

10/11/2009

Yesterday we had great news: our Nokia PUSH project ‘Sketch Your World’ was selected to be implemented!

Here is the project video:

And here is the PDF.

Now we have to work hard to give life to this beautiful idea! (OH MY GOD!) =D

More information: Nokia PUSH Official blog, Jeez post.


Nokia PUSH

02/11/2009

We didn’t win, WE WON (http://blogs.nokia.com/pushn900/index.php/2009/11/09/if-we-could-draw-your-attention-for-a-moment/)!  but we tried hard. That’s the point with everything. =D

More details: jeez’s post and Nokia PUSH official blog.


Lanterna de LEDs infravermelhos

20/11/2008

Quando estamos falando de superfícies multitoque, dentre várias técnicas de captação da posição dos dedos, temos o uso de placas de acrílico iluminadas com luz infravermelha. No que diz respeito a iluminação desta placa, existem duas formas mais populares: FTIR (Frustrated Total Internal Reflection) e DI (Diffuse Illumination).

Na primeira técnica, os LEDs infravermelhos iluminam a lateral do acrílico e quando o dedo é posicionado na sua superfície, ele frustra a luz que seria totalmente refletida fazendo com que a ponta do dedo se torne iluminada e isto permite que a imagem seja processada pelo programa de identificação de blobs com a câmera IR.

FTIR

Frustrated Total Internal Reflection

Na segunda técnica de iluminação, uma fonte de raios infravermelhos (uma lanterna de leds infravemelhos) é direcionada para a superfície inferior do acrílico e quando o dedo é posicionado reflete parte da luz que incide sobre ele e assim identifica-se um blob na imagem.

Diffuse Illumination

Diffuse Illumination

Inspirado pela segunda técnica, construí essa lanterna de LEDs infravermelhos com a base de uma antiga webcam e ajeitando os componentes como descrito no esquemático abaixo. Foi minha primeira experiência com placas padrão e confesso que as soldas ficaram nojentas (não foi por nada que eu cobri parte do fundo com fita isolante ahuahuahuah).

Objetivo: testar o reacTIVision numa superfície transparente para poder chegar pelo menos perto de um dos projetos mais fodas que eu já vi: reactable.

Ae, peopleware!


Arduino: teste #2

15/11/2008

Segundo teste com o Arduino: joystick + caixa de som.

Abaixo o programa que roda no Arduino.

int speakerOut = 8;
// pino de saida do alto-falante
int analogInput_1 = 3;
// pino de entrada do potenciometro 1 (P1)
int analogInput_2 = 5;
// pino de entrada do potenciometro 2 (P2)
int value_1 = 0;
// valor lido do P1
int value_2 = 0;
// valor lido do P2
int mapped_1 = 0;
// valor mapeado do P1
int mapped_2 = 0;
// valor mapeado do P2

void setup() {
pinMode(speakerOut, OUTPUT);
// setando o pino 8 como saida
pinMode(analogInput_1, INPUT);
// setando o pino 3 como entrada
pinMode(analogInput_2, INPUT);
// setando o pino 5 como entrada
}

void loop() {
// loop principal
value_1 = analogRead(analogInput_1);
// leitura do valor de P1
value_2 = analogRead(analogInput_2);
// leitura do valor de P1
digitalWrite(speakerOut, LOW);
// não manda sinal para o speaker
mapped_1 = map(value_1, 0, 1023, 1000000/261.63, 1000000/523.25);
// detalhes abaixo
mapped_2 = map(value_2, 0, 1023, 1000000/261.63, 1000000/523.25);
// detalhes abaixo
period = (mapped_1 + mapped_2)/2;
// faz apenas a média dos dois valores (escolha aleatória minha)
digitalWrite(speakerOut, HIGH);
// liga a caixa durante o period
delayMicroseconds(period);
digitalWrite(speakerOut, LOW);
// desliga a caixa durante o period
delayMicroseconds(period);
}

Os valores 1000000/ 261.63 e 1000000/523.25 representam o período em microsegundos das notas C4 (Dó 4) e C5 (Dó 5) na escala de notas. O C4 é considerado o Dó do meio. Para maiores informações, veja a lista das frequências das notas musicais.

Falou, peopleware!


Canetas de LED Infravermelho

12/11/2008

Não é por nada que o vídeo de Johnny Chung Lee tá na categoria de “Rated most jaw-dropping” lá no TED.com. O cara botou muito quente em superutilizar um “mero” (há! de mero não tem nada) controle de Nintendo Wii para fazer uma coisa totalmente diferente do propósito do joystick. Seguindo os passos do nosso mestre inspirador, construí essas canetinhas cuja ponta é um LED infravermelho.


Arduino: teste #1

11/11/2008

Bem, faz pouco tempo que eu comprei um Arduino motivado pela onda de posts nas minhas feeds (dentre elas o blog da MAKE Magazine) descrevendo milhões de projetos interessantíssimos que estavam sendo feitos com esse pedacinho de hardware. A plataforma dele é opensource, o que é um negócio arretado pra hardware pois dá um poder de comunidade extremamente forte. Sei que ainda vou escrever muito sobre a filosofia do Arduino, pois eu acho que tem tudo a ver com o momento que tá rolando (digo o meu momento e o momento no mundo também), mas meu objetivo agora é colocar aqui meu primeiro teste com Arduino.

Fui no site do Arduino (http://www.arduino.cc) e achei uma porrada de exemplos que me deixaram de queixo caído pelo resultado deles e pela simplicidade de botar eles para funcionar. Foquei em um projetinho bem bem simples, mas um sonho de criança para mim: controlar um motorzinho com precisão, mandar ele ir para lá e para cá sem que ele fique rodando idenfinidamente. Eu sei que eu tô subestimando o poder do Arduino, mas bah! é o primeiro teste…

O exemplo é o Knob. O código eu já tinha (peguei do site), o negócio agora era juntar os materiais. Potenciômetro: CHECKED! (facinho de encontrar em caixas de som velhas de computador). Protoboard: CHECKED! (frescura minha mesmo, dava pra fazer tudo na gambiarra dos fios). Servomotor: OPS! Bem, esse aí eu não tinha… mas nada mais instigante que ir na Rua da Concórdia e descobrir que eles vendem servomotor para controlar a posição de antena de televisão (eu acho que eles pensam que servomotor é só para isso, porque todos se espantaram quando eu falei que dava para controlar o servo pelo computador). Bem, servomotor é um negócio muito massa e dá pra controlar a posição do motor com precisão. Quem quiser saber mais: googleeia ae! (Tá, eu sou bonzinho: servomotor na wikipedia).

Vou botar logo o código e o vídeo que eu tô enrolando muito já.

// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott> 

#include <Servo.h> 

Servo myservo;  // create servo object to control a servo 

int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin 

void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
} 

void loop()
{
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}

Falou, peopleware!


Follow

Get every new post delivered to your Inbox.

Join 1,310 other followers