Essa semana postei sobre um projeto que utilizava uma fita de LED RGB para simular o efeito Ambilight da Philips. Um ponto marcante sobre esse primeiro projeto é que ele utilizava somente uma fita de LEDs e foi aí que modifiquei um pouco o código disponibilizado para que o projeto pudesse passar a utilizar duas fitas de LEDs RGB.
Dito isso, me deparei com este outro projeto também de Ambient Lighting que usa duas fitas de LEDs RGB (nenhuma ligação com o código que disponibilizei), baseado no Amblone (Ambilight Clone). O Amblone por sua vez defende a utilização de três fitas de LEDs (duas, uma em casa lateral, e uma superior). Christian Pigeon, o responsável pelo projeto, não o Amblone, mas o que se baseou no Amblone, iria utilizar no seu trabalho um Arduino Duemilanove, que tem somente 6 pinos PWM, que são utilizados para controlar o R, o G e o B de cada uma das duas fitas. Portanto foi necessário fazer uma adaptação do código do Amblone para utilizar somente duas fitas. Vale a pena dá uma conferida no esquema eletrônico e nós códigos disponibilizados. Saca só.
No dia 13 de Fevereiro, a Tellart lançou um projeto para o Dia dos Namorados (de lá, não daqui). O projeto é bem interessante e se baseia em 8 sinos que podem ser tocados pela internet. Cada sino corresponde a uma nota musical e a interface criada por eles permite que você crie o seu próprio som ou ouça sons pré-configurados. Controlados por um Arduino conectados a solenóides, a aplicação permite ainda que você veja a sua música sendo tocada ao vivo, via stream. Saca só.
Como até hoje só vi nos produtos Philips e o nome que eles deram a isso foi Ambilight então vamos de Ambilight mesmo. O que nada mais é do que identificar a cor predominante na tela, seja do monitor ou da televisão, e utilizar esta cor para iluminar a parte de trás do mesmo. O efeito visual é bem legal, deve ser interessante assistir a um filme numa televisão com este atrativo.
Segue o projeto do royboy utilizando Arduino para simular este mesmo efeito. Bom salientar que o projeto utiliza somente uma fonte de iluminação e o Ambilight ao que me parece tem duas fontes de iluminação, uma em cada lado da tela. Eu gostei do projeto e acabei adaptando em Java para utilizar as duas laterais da tela. Como eu não tenho nada de LEDs RGB ao alcance para testes, vou disponibilizar o código e quem tiver interesse em utilizá-lo pode ficar a vontade. Deixa nos comentários um link pro seu projeto que eu referencio ele aqui. Segue o projeto e o código.
Robot robby = null; // creates object "robby" of robot class
try { //standard Robot class error check
robby = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
int pixel; //ARGB variable with 32 int bytes where
// sets of 8 bytes are: Alpha, Red, Green, Blue
float red = 0;
float green = 0;
float blue = 0;
BufferedImage screenshot = null;
while (true) {
// get screenshot into object "screenshot" of class BufferedImage
screenshot = robby.createScreenCapture(new Rectangle(new Dimension(WIDTH, HEIGHT)));
// 1368*928 is the screen resolution
int i = 0;
int j = 0;
// 1368 * 928
// I skip every alternate pixel making my program 4 times faster
for (i = 0; i < (WIDTH / 2) ; i = i + 2) {
for (j = 0; j < HEIGHT; j = j + 2) {
pixel = screenshot.getRGB(i, j); // the ARGB integer has the colors of pixel (i, j)
red = red + (int) (255 & (pixel >> 16)); // add up reds
green = green + (int) (255 & (pixel >> 8)); // add up greens
blue = blue + (int) (255 & (pixel)); // add up blues
}
}
red = red / ((WIDTH / 4) * (HEIGHT / 2)); // average red (remember that I skipped ever alternate pixel)
green = green / ((WIDTH / 4) * (HEIGHT / 2)); // average green
blue = blue / ((WIDTH / 4) * (HEIGHT / 2)); // average blue
//System.out.println("red: " + red + "\t green: " + green + " \t blue: " + blue);
// RIGHT SIDE
for (i = (WIDTH / 2); i < WIDTH; i = i + 2) {
for (j = 0; j < HEIGHT; j = j + 2) {
pixel = screenshot.getRGB(i, j); // the ARGB integer has the colors of pixel (i, j)
red = red + (int) (255 & (pixel >> 16)); // add up reds
green = green + (int) (255 & (pixel >> 8)); // add up greens
blue = blue + (int) (255 & (pixel)); // add up blues
}
}
red = red / ((WIDTH / 4) * (HEIGHT / 2)); // average red (remember that I skipped ever alternate pixel)
green = green / ((WIDTH / 4) * (HEIGHT / 2)); // average green
blue = blue / ((WIDTH / 4) * (HEIGHT / 2)); // average blue
//System.out.println("red: " + red + "\t green: " + green + " \t blue: " + blue);
Li este artigo, intitulado Why The Arduino Won and Why It's Here to Stay, do Phillip Torrone da Adafruit Industries, aquela mesma que ofereceu um prêmio de dois ou três mil dólares pra quem conseguisse hackear o Kinect da Microsoft e disponibilizasse o código online, e me interessei por ele. Até o momento o artigo no post original tem 75 comentários e 126 reações, que são os comentários no Twitter, o que significa que ele tem dado o que falar. Resolvi então traduzir o artigo pra o Português Brasileiro e disponibilizar aqui no blog para que mais pessoas pudessem ter a oportunidade de ler o que uma pessoa que se interessa, trabalha e acredita no Arduino tem a dizer sobre esta plataforma de desenvolvimento que vem numa crescente bastante significativa.
Depois do sucesso do Scooterputer, agora é a vez do JEEPuter. Criado por Ed Zarick, o JEEPuter é a integração da parte elétrica do Jeep com o Arduino. É possível controlar faróis, ignição, navegação GPS e outros. Deve ter dado um belo de um trabalho, mas o resultado é bem interessante. Saca só.
uhclem criou um quadro de mensagens utilizando um display e todas as três memórias disponíveis no Arduino (Flash, RAM e EEPROM) para armazenamento das mensagens que serão exibidas. A comunicação é feita via módulos XBee. Saca só.