quinta-feira, 2 de dezembro de 2010

CÓDIGO PARA LEITURA DOS SENSORES - ARDUÍNO


CRIANDO CODIGO PARA LEITORA DE 2 SENSORES NAS PORTAS ANALOGICAS 0 e 1


void setup(){
 Serial.begin(9600);
}
void loop(){
 int luz = analogRead(0);   // faz a leitura da porta analogica 0
 int luz2 = analogRead(1);
 Serial.print(luz); //imprime o valor do sensor de luz
 Serial.println(",");    //imprime a virgula final e pula uma linha
}




ADAPTAÇÃO DO CODIGO ANTIGO (VIA TECLADO) PARA O PROCESSING

import processing.serial.*;     //importa a biblioteca de comunicao serial
Serial pArduino;                //cria uma nova porta serial chamada pArduino

import ddf.minim.*;
Minim minim;
AudioSample som1;
AudioSample som2;
AudioSample nosound;        // definindo uma variavel para uma pausa

float luz;
float luz2;

void setup() {

  size(800,600,P2D); //cria uma janela de 500 x 500
  noStroke();        //desenhos sem contornos


    minim = new Minim(this);
    som1 = minim.loadSample("som1.mp3", 2048);
    som2 = minim.loadSample("som5.mp3", 2048);
    nosound = minim.loadSample("nosound.mp3", 2048);


  println(Serial.list()); //imprime no console output do processing as portas disponíveis
  String nomePorta = Serial.list()[1]; //pega a porta numero 0 em nomePorta

  pArduino = new Serial(this, nomePorta,9600); //cria uma conexao serial a 19200, mesma velocidade configurada no arduino, no pArduino criado la em cima
  pArduino.bufferUntil('\n'); // define quando uma mensagem é nova, no caso quando é pula linha
}

void draw() {

  background(0); //limpa o background


 //rect(width/2, height/2, luz*20, luz*20); // desenha uma quadrado na posicao definida pelo sensor de luz, e o tamanho do quadrado definido pelo sensor IR
//rect(width/2, height/2, luz2/25, luz2/25);
}



void serialEvent(Serial pArduino) {

  String myString = pArduino.readStringUntil('\n'); // le a mensagem na porta serial ate chegar o fim de linha definido com pula linha \n
  myString = trim(myString);
  int sensors[] = int(split(myString, ',')); //quebra a mensagem lida na porta serial nas virgulas!!!!!!
 
  for (int sensorNum = 0;
 
          
            sensorNum  < sensors.length;
            sensorNum++) {
            print("Sensor " + sensorNum + ": " + sensors[sensorNum] + "\t");
    }
 
 if (luz == 0) {
  som1.trigger();

} else {
    nosound.trigger();
 // som2.trigger();
}


if (luz2 == 0) {
  som2.trigger();

} else {
    nosound.trigger();
 // som2.trigger();
}

 luz = sensors[0]; //atualiza a variavel luz com valores lidos na porta serial
 luz2 = sensors[1];

}

Publicado por Alessandro de Paula e Fabiane Roberta Siqueira

TRABALHANDO NO PROJETO

Montando os componentes na protoboard, fazendo a liagação e comunicação com o arduino.


Equipe de desenvolvimento trabalhando no projeto da bateria virtual.


Transferindo a programação para o arduino.


Alessandro programando.


Montando a estrutura do código da bateria virtual.


Postado por Jeferson J. Antunes.

terça-feira, 23 de novembro de 2010

Projetos Realizado com Arduino

Achei uns trabalhos realizados com o arduino, que vale a postar no nosso blog.

Bem interessante.


Criado há alguns anos como um componente de hardware "camaleão" e de baixíssimo custo, o Arduino é capaz de ser a base de muitos projetos geeks: desde simples luzes piscando até robôs completos podem ser montados tendo o Arduino como base.
Para programar esse hardware, existe um ambiente de programação (chamado de Arduino IDE) tão fácil de usar que não é preciso ter conhecimento técnico prévio para isso. De fato, o site oficial diz que a parafernália é voltada a hobbystas de eletrônica e artistas, gente que normalmente não tem nenhum treinamento de programação.
Com isso em mente, Bonifaz Kaufmann, um programador do MIT, resolveu criar uma ferramenta de programação para fazer com que celulares, e outros equipamentos móveis "pilotados" pelo Android pudessem interagir com dispositivos externos ao celular baseados no Arduino. Assim nasceu o Amarino. Conforme a página do projeto (www.amarino-toolkit.net/index.php), o Amarino é hoje desenvolvido numa parceria do MIT com a universidade de Klagenfurt, na Áustria.
Esse pacote de ferramentas tem por objetivo capacitar as pessoas de forma que elas utilizem os eventos do aparelho de uma maneira criativa, exteriorizando essas informações sob os mais diferentes métodos disponíveis e mesmo alguns ainda não criados.
Com o Amarino, qualquer bizarrice criada usando um Arduino passa a ter acesso a eventos internos do telefone com Android, como os ativados por ligações, mensagens ou sensores de luz e movimento. Assim, por exemplo, pode-se fazer um aparelho com uma lâmpada e um alto-falante que toca La Traviata e pisca em código-morse sempre que chegar uma mensagem de SMS. Ou usar o acelerômetro do celular para ligar a luz da sala.
De acordo com informações no site do Google Code, que hospeda o projeto, é possível controlar múltiplos dispositivos em paralelo e existe suporte às versões 1.x e 2.x do Android, menos para os aparelhos HTC Hero e HTC Tatoo.
Postado por Fabiane Roberta Siqueira

Arduino - Sensores de movimentos


PDFImprimir
Em mais uma série de experimentos feitos com Arduino, é possivel ver o funcionamento de um sensor de movimento com alarme programado com uma placa de arduino e utilizando componentes eletronicos como buzzers, resistors e led.




Vale a pena ver!

Postado por Fabiane Roberta Siqueira - 09309014

quarta-feira, 10 de novembro de 2010

AFINAL QUEM É ESSE TAL DE ARDUINO?

No decorrer de todo esse ano, ouvimos muito sobre um tal de Arduíno, principalmente nas aulas de projeto experimental. Mas afinal quem é e para que serve esse cara?
Na verdade se trata de um computador físico baseado numa simples plataforma de hardware livre, projetada com um microcontrolador de placa única, com suporte de entrada/saída  embutido e uma linguagem de programação  padrão.

O objetivo do arduíno é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por artistas e amadores. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas. Pode ser usado para o desenvolvimento de independentes objetos interativos (como no caso do nosso projeto a bateria virtual), ou ainda para ser conectado a um computador hospedeiro. Uma típica placa Arduino é composta por um controlador, algumas linhas de E/S digital e analógica, além de uma interface serial ou USB, para interligar-se ao hospedeiro, que é usado para programá-la e interagi-la em tempo real. Ela em si não possui qualquer recurso de rede, porém é comum combinar um ou mais Arduinos deste modo, usando extensões apropriadas chamadas de shield. A interface do hospedeiro é simples, podendo ser escrita em várias linguagens. A mais popular é a Processing, mas outras que podem comunicar-se com a conexão serial são: Max/MSP, Pure Data, SuperCollider, ActionScript e Java. O Arduino e clones fazem uso de shields (escudos, em inglês), nas quais são placas de circuito impresso normalmente fixados no topo do aparelho, através de uma conexão alimentada por pinos-conectores. Estes são expansões para ele, sendo que disponibilizam várias funções específicas, desde manipulação de motores até sistemas de rede sem fio.

Postado por Gleice A. Silva

sexta-feira, 5 de novembro de 2010

CODIGO BATERIA VIRTUAL:

Depois de um longo e doloroso inverno, conseguimos entender um pouquinho de Processing, e criamos o código para testes no teclado. Isto serviu para clarear as idéias em relação à funcionalidade com o Arduíno. Abaixo esclareceremos o que faz cada linha do projeto:


CODIGO BATERIA VIRTUAL:

** IMPORTANDO A BIBLIOTECA MINIM:
** Esta biblioteca permite o uso de samples ou áudio que será carregada no PROCESSING

import ddf.minim.*;

** CRIANDO VARIÁVEIS PARA CADA SOM

Minim minim;
AudioSample som1;
AudioSample som2;
AudioSample som3;
AudioSample som4;
AudioSample som5;

** CRIANDO UMA INTERFACE PARA O PROJETO
** Esta parte ainda não está definida. A intenção é criar uma interface para que o usuário ver quais instrumentos está sendo acionado.

float moveX = mouseX;
float moveY = mouseY;
float raio = 15;

float bx;
float by;

void setup()


{
  size(800, 600, P2D);

  minim = new Minim(this);


** CARREGANDO OS SAMPLES

  som1 = minim.loadSample("som1.mp3", 2048);
  som2 = minim.loadSample("som2.mp3", 2048);
  som3 = minim.loadSample("som3.mp3", 2048);
  som4 = minim.loadSample("som4.mp3", 2048);
  som5 = minim.loadSample("som5.mp3", 2048);
}

** CRIANDO UMA INTERFACE PARA O MOUSE

void draw()
{

  moveX = mouseX;
  moveY = mouseY;

  background(255,255,255); 

  stroke(255);
  bx = width/2.0;
  by = height/2.0;
  rectMode(RADIUS);


  //baqueta
  fill(255,0,0);
  ellipse(moveX, moveY, raio*2, raio*2);
}

** DEFININDO AS TECLAS QUE ACIONARÃO OS RESPECTIVOS SAMPLES


void keyPressed()
{
  if ( key == 'k' ) som1.trigger();
  if ( key == 'a' ) som2.trigger();
  if ( key == 's' ) som3.trigger();
  if ( key == ' ' ) som4.trigger();
  if ( key == 'l' ) som5.trigger();
}

void stop()
{

  minim.stop();

  super.stop();
}




O próximo passo para nosso projeto, montar o Arduíno com os sensores, que ainda estamos decidindo quais utilizar. Aguardem.



Fausto / Alessandro

PESQUISA DE SOM

Inicialmente o que nos deu uma boa base para o desenvolvimento do projeto "Bateria Virtual", foi um outro projeto o da harpe laser, que é um  instrumento musical eletronico  que consisti  em diversos laser,  feixes a ser obstruídos, como o arrancar das cordas de uma harpa, a fim de produzir sons. 
Esse instrumento é usado pelo famoso  Jean Michel Jarre em seus concertos.Em base nesse conceito tivemos a idéia de projetar a Bateria Virtual utilizando de técnicas semelhantes, e a utilização do processing,
Pensando neste projeto tivemos que converter todos os 6 sons de instrumentos que tínhamos, (caixa, bumbo, tom 1 e 2, ximbau e prato de ataque. )  para mp3, pois é  o formato que é aceito pela biblioteca minim do processing.
Com isso pretendemos propor uma interação inovadora.
 
Postado por:
Jeferson J. Antunes 
Diego Juvenal