Biblioteca Sensor Ultra-Sônico IDE 22 e 1.0.1 - Library Ultrasonic Sensor IDE 22 e 1.0.1

Saudações amigos,

Sensor Ultra-Sônico US - 020
essa semana chegou para mim um pedido que realizei na Deal Extreme, um sensor ultra-sônico (http://dx.com/p/ultrasonic-sensor-distance-measuring-module-for-arduino-148659?item=4). Achei seu funcionamento incrível, mas deparei com um problema de versões, como a biblioteca não é da própria fabricante os códigos não funcionavam na IDE 1.0.1 do Arduino, por ser uma IDE nova as funcionalidade da antiga (022) não funcionavam na nova. Então programei uma versão, baseada na antiga, que roda tanto nas IDEs antigas como na nova, com exemplos em .pde e .ino . Os testes foram feitos com esse sensor. 

Download da Library Ultrasonic Sensor: Library Ultrasonic Sensor.zip

Um exemplo básico de código é esse: 



/* Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module.
/  Camilo de Lellis Barreto Junior - Computer engineer
/  Uberlandia - Minas Gerais - Brazil
/  10/2012
/  e-mail: <barretojuniormail@gmail.com>
/  blog: http://roboticlabview.blogspot.com.br
*/

#include <Ultrasonic.h>

Ultrasonic ultrasonic; 

void setup() {
  Serial.begin(9600); 
  ultrasonic.attach(9,8); // (Trig PIN,Echo PIN)
}

void loop()
{
  Serial.print(ultrasonic.Ranging(CM)); // CM or INC
  Serial.println(" cm" );
  delay(100);
}

O sensor US - 020 teve um alcance máximo entre 160 e 150 cm, achei a distância de alcance muito boa. Os resultados são bem exatos, com uma precisão incrível. 

Recebendo a distancia em cm - Serial Monitor

Sensor Ultra-Sônico

Bom, não podia faltar a integração com o LabVIEW e adicionar mais um componente para o projeto FAD. Fiz mais um bloco para leitura do sensor, minha idéia é criar um radar ultra-sônico para mapear uma área com obstáculos e mostrar esses obstáculos na tela, como se fosse uma tela de radar, como a dos filmes. Isso pode ser aplicado em robôs de reconhecimento, autônomos, entre outros. Um primeiro teste foi feito, ainda há melhorias a fazer: 

Tela em construção do Radar Ultra-Sônico


Códigos em LabVIEW

Ainda está no começo, quero adicionar um servo motor para movimentar o sensor de 0 a 180 graus, a cada grau o sensor faz a leitura de distância, e plotar isso no radar. Futuramente postarei atualizações.


Implementando os Blocos Kinect LabVIEW

Saudações caros amigos, esse video é um exemplo da utilização dos blocos que modifiquei para integrar o Kinect com o LabVIEW.

Sistema embarcado da STRATOS

Saudações caros amigos,

hoje, 14 de outubro de 2012, Felix Baumgartner bateu vários recordes, um deles foi saltar de uma capsula com uma altitude de 39 mil metros. Mais um acontecimento entra para história. A missão é bem parecida com uma viagem a outros planetas, a diferença é o dinheiro investido, equipe com menos pessoas, apenas um tripulante e o retorno a terra. Bom, para que a missão seja realizada sem nenhum contra tempo, o equipamento e a capsula necessitam de uma atenção maior, software's avançados e sem erros. Hoje assistindo alguns vídeos me deparei com uma imagem bem conhecida por mim, e fiquei orgulhoso por eu ter noção e conhecimento desse software incrível: LabVIEW.
Felix Preparado para Pular
LabVIEW é Utilizado na Capsula STRATOS
Sim pessoal, a equipe da Stratos optaram por utilizar o labview para ser o sistema da capsula, na imagem podemos observar os "Goungs" típicos do programa, o gráfico, os slides... Observando o controle, podemos ver o monitoramento de carga das baterias, LEDs de Oxigênio Alto e Baixo, gráfico de altitude em relação ao tempo, altitude em pés, relógio da missão, temperatura de refrigeração, recepção de dados (RX data), Comm Port cortado, entre outros. O uso do LabVIEW em projetos é realmente destacável, seja em projetos espaciais quanto projetos de faculdade.

Kinect in LabVIEW

Saudações,

como sempre de costume, tenho mais um projeto da faculdade, mas esse é bem especial pois pode ser meu TCC. Bem, no segundo semestre de 2011 fiz um projeto do Braço Robótico Digitorr (http://www.youtube.com/watch?v=Fum_yxm7v9I), ele é controlado via Arduino e PC, no video podemos observar que quando coloco um barril de óleo  nos quadradinhos frontal, automaticamente o braço se move e pega o barril e o deposita nos quadrados ao lado. Todo essa transação é visualizada e controlada no computador, cada barril que é colocado na "mesa" é salvo data/hora/local no banco de dados. 

O projeto foi um sucesso, todos gostaram. No primeiro semestre de 2012, eu e 2 amigos tivemos a proposta de desenvolver um projeto com Kinect para RA ou Reconhecimento de Gestos. Então tive a idéia de usar meu projeto anterior, bom, falar e pensar é fácil, o difícil é fazer. Projeto já definido, comecei a pesquisar como programar o kinect, qual SDK? Qual Linguagem? Qual SO? Não foi nada fácil, tive que aprender C#, que no entanto só tinha conhecimento básico em C, Java e VB, depois de aprender um pouco da linguagem C# comecei a programar para o kinect, sua API não é nada fácil, tive que usar a versão beta porque não foi fácil achar material na internet sobre a programação. Altos e baixos, depois de alguns meses o projeto ficou pronto, funcionando perfeitamente, lindo. Fomos apresentar no SIT Uniube (Simpósio de Inovações Tecnológicas ), e por incrível que pareça, nossa banca ficou lotada, todo mundo ficou impressionado, ninguém tinha visto uma coisa assim. O sucesso foi tão grande que apresentamos nosso artigo em várias Universidades e workshop's. E ainda estamos apresentando. Video feito no dia do SIT, bem no final da noite: http://www.youtube.com/watch?v=34eT4T5KX2k&feature=plcp

Blocos Programação Kinect LabVIEW
O kinect é uma ferramenta incrível, ele possui 2 câmeras uma RGB e outra infravermelho, a câmera infravermelha trabalha em conjunto com um emissor infra vermelho. O emissor emite pontos infravermelhos no ambiente que é captado pela câmera, a intensidade dos pontos capturados indicam a profundidade do ambiente, transformando esses dados em uma imagem de 3Dimensões. Possui também vários microfones para anular ruídos do ambiente. Não vou dar detalhes sobre o projeto que estou em mente, mas já comecei a criar blocos em LabVIEW para programar o Kinect, esses códigos foram distribuídos na internet de forma muito complexas, todos os blocos que fiz foram modificações dos originais, modificações para melhorar o entendimento e utilizar os recursos que eu preciso que não tinham. Esses são alguns blocos que já comecei a fazer.

Código para Teste
Quero usar o LabVIEW porque estou cansado de utilizar códigos contextuais, para fazer a função ou método para ler a câmera RGB preciso no mínimo 10 linhas de código C#, em labVIEW eu utilizo 2 blocos, um para leitura e outro para exibir a imagem. Não que o labVIEW seja mais fácil, cada bloco possui uma série de códigos dentro tão complexos quanto em C#, os blocos são como classes em linguagens orientada a objeto. Alem disso, o labVIEW me da suporte a conexão serial, banco de dados,  mult-loop (Threads) com maior velocidade, PID, GUI, Gauges, etc. Esse é um código que fiz para testar uma parte dos blocos que criei.


A imagem acima foi o resultado que obtive com os blocos que criei, a primeira imagem é o Frame em 3D, eu posso rotacionar a tela para ver as dimensões, observando, podemos ver meu braço e a mão, no fundo minha guitarra encima da cama. A segunda tela é a tela de cores para a profundidade, quanto mais longe o kinect mais branco fica, quanto mais perto mais escuro fica, isso é muito interessante, pois podemos calcular a distancia do kinect a um objeto pela cor. A terceira tela é a imagem da câmera RGB. 

Logo mais, posto atualizações.!