quarta-feira, 23 de fevereiro de 2011

Arduitter is back

New video, new pics, new interface. For now, just a preview.

Splash screen

Info screen

Wait for more. In the meantime, follow Arduitter on Twitter.

sexta-feira, 18 de fevereiro de 2011

[OFF-TOPIC/pt-BR] Mais Arduino e LEDs RGB

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ó.



[Página do projeto via Hack A Day]

[OFF-TOPIC/pt-BR] Wii Motion Plus + Arduino

Que tal hackear o Wii Motion Plus pra conversar com o Arduino e conseguir acessar os dados do giroscópio? Saca só.


[via Make Online]

quarta-feira, 16 de fevereiro de 2011

[OFF-TOPIC] Love Song Machine

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ó.


[Página do projeto via Adafruit]

terça-feira, 15 de fevereiro de 2011

[OFF-TOPIC/pt-BR] Arduino + LED RGB = Ambilight

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.



Código Java:

import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JFrame {
    private static final int WIDTH = 1440;
    private static final int HEIGHT = 900;
   
    public Main() {
        setSize(100, 100);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setAlwaysOnTop(true);
        setLayout(new BorderLayout());
       
        JPanel leftPanel = new JPanel();
        leftPanel.setSize(getWidth() / 2, getHeight());
        add(leftPanel, BorderLayout.WEST);
       
        JPanel rightPanel = new JPanel();
        rightPanel.setSize(getWidth() / 2, getHeight());
        add(rightPanel, BorderLayout.EAST);
       
        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);
           
            leftPanel.setBackground(new Color(Math.round(red), Math.round(green), Math.round(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);
           
            rightPanel.setBackground(new Color(Math.round(red), Math.round(green), Math.round(blue)));
           
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
   
    public static void main(String[] args) {       
        new Main();       
    }
}

Resultado:

Ambilight - Java version

[Página do projeto via Hack A Day]

sábado, 12 de fevereiro de 2011

Why the Arduino Won and Why It’s Here to Stay (pt-BR version)

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.

sexta-feira, 11 de fevereiro de 2011

[OFF-TOPIC/pt-BR] JEEPuter

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ó.

JEEPuter


[Página do projeto via Hack A Day e Arduino Blog]

quarta-feira, 9 de fevereiro de 2011

[OFF-TOPIC/pt-BR] Quadro de mensagens com Arduino

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ó.


[Instructables via Hack A Day]