Material Utilizado para o protótipo:
- Arduino
- Celular com Android e Internet.
- Shield Ethernet
- 3 LEDs nas cores Vermelha, Verde e Azul (RGB)
- Bateria de 9v
- Armação da Luminária
- Folha de Papel / Acrílico
Códigos Usados...
Nunca existiu uma grande inteligência sem uma veia de loucura. - Aristóteles
import processing.serial.*; // Biblioteca serial nativa do processing import cc.arduino.*; // Biblioteca de interação com o arduino Arduino arduino; // Cria um novo objeto arduino para interação com a placa color off = color(4, 79, 111); //Declara as cores usadas no exemplo color on = color(84, 145, 158); int[] values = { Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW }; //Cria um array para armazenar os valores a serem passados para a placa //Arduino.LOW representa os valor LOW na placa arduino sendo acessada pela biblioteca //Arduino void setup() { size(470, 200);//Tamanho da tela println(Arduino.list());//Esse é um comando usado apenas para saber // qual a porta utilizada pela placa. arduino = new Arduino(this, Arduino.list()[0], 57600); //Construtor //do objeto arduino, onde Arduino.list()[0] é a porta usada e 57600 é a Baud //da porta serial //Este For é uma parte do código que devemos prestar atenção //pois nele estamos utilizando código do arduino. //tente substituir este bloco por: /* arduino.pinMode(2,Arduino.OUTPUT); arduino.pinMode(3,Arduino.OUTPUT); arduino.pinMode(4,Arduino.OUTPUT); etc */ for (int i = 0; i <= 13; i++) arduino.pinMode(i, Arduino.OUTPUT); } //Percebeu a semelhança? com o código do arduino? //Pois é... //Este bloco desenha a interface, não vem ao caso agora void draw() { background(off); stroke(on); for (int i = 0; i <= 13; i++) { if (values[i] == Arduino.HIGH) fill(on); else fill(off); rect(420 - i * 30, 30, 20, 20); } } //Esta função é um presset do Processing, pode ser chamada de Evento // Ela é chamada SEMPRE que um botão do mouse é pressionado. void mousePressed() { int pin = (450 - mouseX) / 30;//Utiliza a posição X do mouse para //saber que botão foi clicado //Perceba que aqui ele não utiliza a posição Y //mas vamos deixar assim pra simplificar. //Este bloco if simplesmente comuta os valores if (values[pin] == Arduino.LOW) { // A parte legal esta aqui!! // pra quem já conhece o arduino e POO não tem o que explicar // se não vamos lá: // aqui você manda a sua placa, representada aqui pelo objeto "arduino" // e manda ele escrever numa saída digital // perceba que a variável pin é uma variável do programa, e não da placa arduino.digitalWrite(pin, Arduino.HIGH); values[pin] = Arduino.HIGH; } else { arduino.digitalWrite(pin, Arduino.LOW);//idem values[pin] = Arduino.LOW; } }