domingo, 31 de julho de 2011

Sistema de controle de Coolers e LEDs com Arduino


Já fazia mais ou menos uns 5 dias que vinha pensando na cor de LEDs que iria utilizar dentro do meu PC, pois quero fazer um casemod mais "leve". Como estava com muita dúvida quanto a cor pensei na possibilidade de fazer um sistema com microcontrolador onde eu pudesse controlar a cor de LEDs RGB (e assim mudar de cor a qualquer momento) e também controlar coolers extra que iriam auxiliar no arrefecimento da máquina (principalmente nos momentos em que estou jogando). 
Quando tive essa idéia já começei a juntar as coisas aqui em casa para montar, levei um dia na parte do Hardware onde tive que procurar os componentes e começar a montagem nas 2 protoboards (1 é só para os botões), no outro dia (ontem) eu fiz a programação, deu umas 5 horas de programação partindo do zero e sem reutilizar código. 
Depois começaram os "ajustes finos" na programação, como alteração dos valores de delay para que o sistema respondesse rápido, correção de alguns erros de código e remoção das mensagens do serial monitor (estava utilizando ele para saber em qual parte do código o programa estava e assim detectar erros e problemas mais facilmente.
A seguir uma imagem do sistema:
E as fotos dos botões:
É possivel ver os 6 botões da interface, onde temos da esquerda para a direita: 
1) acesso a função de ajuste da cor.
2) acesso a função de ajuste da velocidade do cooler.
3) acesso a função de ajuste da cor vermelha.
4) acesso a função de ajuste da cor verde.
5) acesso a função de ajuste da cor Azul.
6) Cancelar, que na verdade é para sair da função.
Funcionamento:
Ao ligar o computador a fonte vai alimentar o microcontrolador, quando ele iniciar vai carregar da sua memória interna a última configuração efetuada para a cor e para a velocidade dos coolers, toda vez que for modificada a velocidade de rotação dos coolers e o valor de cada cor de um LED RGB (vermelho, verde, azul) os dados são armazenados na memória interna do microcontrolador, que serão lidos na próxima inicialização da máquina.
Para modificar a velocidade dos coolers: 
Pressiona-se o botão cooler (o 2º na primeira imagem de cor azul), neste momento o LED amarelo acende indicando que está dentro de uma função de configuração, nesse momento pode-se girar o potenciômetro a fim de ajustar a velocidade dos coolers. Depois de ajustada a elocidade, pressiona-se o botão cancelar (vou mudar o nome para "sair" quando for a versão definitiva), e então o LED amarelo desliga e a velocidade já foi configurada, velocidade que será a mesma quando a máquina for ligada novamente.
A seguir uma foto do circuito de acionamento dos coolers:
Nessa foto é possivel ver o transistor de potência que aciona os coolers (TIP31C) o LED amarelo que indica dentro de uma função, e os LED que correspondem à configuração da mesma cor.
Para modificar a cor da iluminação:
Pressiona-se o botão dos LED (o 1º na primeira imagem), nesse momento o LED amarelo liga, agora deve-se selecionar a cor que deseja-se configurar pressionando o botão equivalente (1 dos 3 que estão agrupados), nesse instante o led correspondente à cor vai acender, agora é só girar o potênciometro e selecionar o valor. Para sair do ajuste dessa cor pressiona-se o cancelar, vai voltar para o "menu" de seleção de ajuste de cor, se eu quiser mudar alguma outra cor é só pressionar o botão da cor correspondente, caso contrário pressiono o cancelar novamente e o led amarelo se apaga, indicando que sai da seleção de cores.
Sempre que for pressionado o botão cancelar após a seleção de uma cor, o valor dela será guardado na memória interna do microcontrolador, e será lida na próxima vez que o computador for ligado.
Agora um vídeo demonstrando o sistema:

Como coloquei no final do vídeo as próximas etapas são:
- Montar em uma placa de circuito impresso, assim fica muito mais organizado.
- Montar em uma caixa e fixar dentro do computador, tenho uma baia ainda fazia no gabinete e é nela que vou instalar o sistema.
- Criar painel frontal para o controle no computador, é preciso criar um painel que seja simples de operar, fácil de construir e que seja "bonito", pois não quero meu computador parecendo um montro (se bem que seria legal).
Por hoje era isso pessoal, até a próxima.

sábado, 30 de julho de 2011

Teclas de atalhos do Windows 7


Na postagem de hoje venho liberar alguns atalhos do Windows 7, tudo se tornam mais fácil e rápido de ser executado quando se utiliza um atalho do teclado, então selecionei uma lista de atalhos que irão ser úteis no dia-a-dia, vários deles eu utilizo diariamente como os de alinhamento da tela que utilizo para deixar 2 telas alinhadas em lados opostos no monitor, isso ajuda muito quando precisa-se trabalhar em uma tela mas verificar os dados em outra. Chega de papo, vamos aos atalhos:
 Windows + Seta para cima: Maximiza a janela;
Windows + Seta para baixo: Restaura a janela quando maximizada. Caso não esteja maximizada, o comando minimizará a janela;
Windows + Seta para esquerda: Alinha a janela atual à esquerda da tela;(utilizo muito esse e o que vem a seguir)
Windows + Seta para direita: Alinha a janela atual à direita da tela;
Windows + "+": Aumenta o Zoom na tela;
Windows + "-": Diminui o Zoom na tela;
Windows + "P": Abre o menu mostrando as opções de monitores e projetores; (utilizo muito esse também)
Windows + Home: Minimiza todas as janelas, menos a atual;
Windows + Barra de espaço: Torna todas as janelas transparentes com objetivo de visualizar a área de trabalho;
Windows + Shift + Seta para esquerda: Move a janela atual para o monitor da esquerda no caso de haver mais de 1 monitor no mesmo computador;
Windows + Shift + Seta para direita: Move a janela atual para o monitor da direita no caso de haver mais de 1 monitor no mesmo computador;
Windows + D: Restaura todas as janelas abertas para mostrar a área de trabalho;
Windows + E: Abre o Windows Explorer; (atalho clássico)
Windows + F: Para iniciar pesquisa no Windows;
Windows + L: Coloca o computador em Modo de Espera;
Windows + M: Minimiza todas as janelas;(mais um clássico)
Windows + PauseBreak: Abre as "Propriedades do Sistema";(muito utilizado desde o XP)
Windows + R: Abre a caixa de diálogo "Executar";(quem trabalha com informática sabe decora esse rapidinho)
Windows + U: Abre o Gerenciador de Utilitários;   
Alt + P: Mostra ou esconde a janela de pré-visualização no Windows Explorer;
Windows + Tab: Mostra uma pré-visualização das janelas abertas em 3D;
Ctrl + Windows + Tab: Mostra uma pré-visualização das janelas abertas em 3D, mas exibe também quando as teclas livres.
Windows + (número): Executa os programas da barra de tarefas de acordo com a ordem dos programas configurados;
Windows + T: Mostra mini-visualizações dos programas sendo executados na barra de tarefas sem ser necessário passar o mouse por cima.
Alt + Seta para esquerda: Volta à janela anterior;
Alt + Seta para direita: Avança para a janela seguinte, caso já tenha voltado uma janela;
Ctrl + Roda do mouse: Troca o tamanho ou modo de visualização atual;
Sem deixar de lembrar dos clássicos, mas muito úteis:
Alt + F4: Fecha a janela atual;
Alt + Tab: Alterna a visualização entre as janelas abertas;
F1: Abre os tópicos de ajuda;

Esses atalhos são muito úteis, pois ficar só clicando com o mouse demora muito mais. Bom pessoal, até a próxima.

quarta-feira, 27 de julho de 2011

Robô Explorador de labirintos 2 D

Essa postagem fazia quase um mês que estava para sair, agora vai....
Bom, há um tempo atrás (lá por 08/2010) eu ajudei um leitor do blog com algumas dúvidas que ele tinha a respeito do Arduino, e também na própria comunidade do Arduino no orkut, ele estava fazendo um projeto de um robô seguidor de labirintos em 2D que fazia parte da sua defesa de curso de Engenharia de Computação da Universidade Tecnológica Federal do Paraná, e como havia prometido ele me mandou o material para publicar aqui no blog e deixar a disposição para download.
Primeiro, segue o vídeo do robô:

E agora o link para download do material teórico:
 
Antes de finalizar esta postagem gostaria de parabenizar o pessoal do grupo: Bruno Eduardo de Oliveira Meneguele, Fernando Padilha Ferreira e Vinicius da Silva Arcanjo pelo ótimo robô que foi construído e também agradecer por permitir a disponibilização do material aqui no Blog. Que seja útil a muitos internautas que estão procurando mais informações sobre construção de robôs e de uma forma ou de outra acabam vindo parar aqui no blog.
Até a próxima pessoal e não se esqueçam que sempre que tiverem dúvidas podem perguntar, pois estarei disposto a ajudar vocês.

segunda-feira, 25 de julho de 2011

Robô Explorador - Programa de controle

Agora que estou de férias (na teoria) resolvi voltar ao blog para fazer a postagem do programa de controle do robô explorador, lembram dele??
É, muitas coisas aconteceram nesse tempo que estive fora do blog, muitas mesmo, e a interface do blog em rascunho mudou completamente (integração com o Google+) então estou me adaptando com a nova interface ainda. 
Hoje vim para postar sobre o programa de controle do robô, ele ainda está em desenvolvimento de acordo com as minhas necessidades, mas mesmo assim segue a tela principal do programa na versão que se encontra no momento:
Ele se encontra na segunda versão, pois a primeira que fiz era mais para testes iniciais e eu era obrigado a utilizar sempre a mesma porta COM na hora de fazer a comunicação com o robô, nesta versão posso mudar de computador e mesmo assim continuar controlando o robô, basta selecionar a porta COM que está conectado ao robô. Para essa tarefa eu clico no botão "Conectar" na janela conexão e a seguinte tela é aberta:
Nessa tela eu seleciono a porta de conexão no item "Port" e em "Baud rate" eu seleciono a velocidade de comunicação, nesse caso "COM3" e 9600 respectivamente. A partir do momento que mando conectar (clicando em OK), o programa se conecta ao robô e em seguida muda a barra de status, como mostrado a seguir:
No caso ele mostra a porta a qual esta conectado, quando estou fazendo testes com o Arduino e reprogramando o Atmega328 preciso me conectar ao robô pelo Arduino, mas como a conexão já foi estabelecida pelo meu programa oaplicativo não consegue se conectar, por isso (e por outros motivos) tive que adicionar o botão "Desconectar":
Quando clico neste botão a mensagem se altera indicando fim da conexão. Como estou enviando dados em formato decimal e por padrão o arduino recebe em formato ASCII eu precisava monitorar a comunicação, para ver se estava tudo ok a todo o momento, então fiz o campo "Log de Conexão" que me mostra o valor recebido pelo robô.
Assim eu posso, segundo meus parâmetros saber se está ou não funcionando a bagaça... e caso alguma coisa não funcione direito tenho o campo "Envio manual":
Onde posso, adivinha só, enviar manualmente um comando para o robô! ohhhhh. O programa ainda precisa de ajustes e adaptações, mas em testes funcionou sem problemas no Windows XP e Windows 7 o que é muito bom. 
O robô precisa de algumas coisas ainda mas já tem o necessário para andar, até o fim da semana coloco as primeiras imagens dele e um vídeo dele andando, se der tempo aproveito o embalo para postar as fotos do robô autônomo.
Até mais pessoal, um abraço e até a próxima.