FAD - Bloco para Leitura e Escrita de EEPROM Interna

Saudações caros amigos,

no inicio dessa semana 20/11/12, terminei mais um bloco importante para o projeto FAD. Os blocos de leitura e escrita na memória interna do hardware do FAD, já que ele é baseado no Atmega328 e bootloader do arduino, a forma de acesso da memória é da mesma forma que o arduino convencional, essas são as funções que utilizei no código (usável em arduino):

#include <EEPROM.h>

void eepromWrite(int endereco, unsigned int valor)
{
  if(valor <=255 && valor >= 0 && endereco <= 1023 && endereco >= 0)
  {
    EEPROM.write(endereco, valor);
  }
}

unsigned int eepromRead(int endereco)
{
  unsigned int valor;
  if(endereco <= 1023 && endereco >= 0)
  {
    valor = EEPROM.read(endereco);
    return (valor);
  }
}

Em LabVIEW a forma de acessar, gravar e ler as informações ficou simples: 
Escrevendo e Lendo dados na Memória EEPROM Interna
É muito importante a uso da EEPROM, pois ela não funciona como a memória RAM, depois de desligar o hardware o que estiver na RAM é apagado. Na EEPROM os dados são mantidos após cortar a energia. Pode ser utilizada sistemas que necessitam de um horário para realizar algo, ou armazenar uma variável que posteriormente será necessária.

O resultado da leitura ficou: 
Leitura da posição 4 da memória


Suporte Display LCD - Projeto FAD

Saudações,

consegui terminar hoje mais alguns blocos, agora são para o módulo Display LCD com suporte a 16x2 e 20x4 caracteres. Segue a imagem do código teste:

Teste do módulo LCD - FAD
Logo mais posto o restante...

Projeto Digitorr Adaptação para o Kinect

Saudações amigos,

projetei no segundo semestre de 2011, um braço robótico controlado e monitorado via PC para um trabalho da faculdade. A matéria não exigia a construção física do projeto, apenas programação, mas como eu gosto de fazer coisas bem feitas e diferentes, optei pelo braço robótico.

No primeiro semestre de 2012, minha professora Luciene, comprou um kinect para estudos de realidade ampliada e emprestou para mim e meu grupo, o projeto agora consistia em controlar o braço robórico pelo kinect. O projeto foi um sucesso, resultou em vários artigos, então para vocês verem os projetos, vou postar alguns vídeos.

Projeto Original:

Adaptação para o Kinect:

Novos Blocos para Multi-thread por Filas - Projeto FAD

Saudações amigos,

o projeto FAD agora está com mais módulos, essa semana fiz os módulos para execução de loops em paralelo. Quando se fala de execução paralela com microcontroladores, sabemos que a maioria dos microcontroladores que utilizamos para estudar, fazer projetos não possui suporte a tal tarefa. O melhor jeito que encontrei para fazer isso foi utilizando fila para comunicar, por software, entre dois loops (no LabVIEW). Apesar de funcionar bem, o microcontrolador continua a executar seus comandos estruturados, sem thread. Pela comunicação serial o labview faz todo o papel de thread, entre várias informações transmitidas pela USB os dados do thread estão no meio, fazendo o usuário ter a sensação de multiprogramação. A seguir podemos ver a paleta reservada a programação paralela entre loops;

Paleta Multi-Thread
Ainda há blocos para implementar, com o tempo vou programando eles. Os primeiros que criei foram os que tive necessidade de utilizar, foi a escrita e leitura de dados do tipo int e float, escrita e leitura de strings, escrita e leitura de booleanos, um bloco para finalizar o programa, um bloco Flush para limpar a fila. Um exemplo de código foi o teste que realizei, tive que utilizar duas filas para comunicar entre dois loops, para escrita e leitura, o ideal seria apenas uma fila, com o tempo vou melhorando os códigos...
Teste de códigos
Vou explicar +- com funciona a comunicação via fila no código interno;
Blocos de escrita e leitura de números
O primeiro bloco é o de escrita (insert) de números, ele possui a variável "Nome do componente" que é o código primário para referenciar um objeto, o segundo bloco, que é o de leitura, o "Nome do componente" tem que ser o mesmo da referência para que haja comunicação entre os loops e obtendo os dados. Se isso não acontecer, se houver algum erro de escrita no nome do componente, a fila vai se encher a acontecer um overflow, a interrupção do sistema ainda não está pronta, mais vai ser a próxima etapa para o projeto.


Sonar com LabVIEW, FAD e Sensor Ultra-sônico

Saudações queridos leitores,

esse post é sobre um teste que fiz com o sensor ultra-sônico que mencionei no post anterior, utilizei minha própria biblioteca, que também está disponível no blog. O projeto consiste em desenvolver um sonar (perecido com radar, mais utiliza o som em vez de ondas de rádio), utilizando o projeto FAD, 1 servo motor e um sensor ultra-sônico. 
"A velocidade do sinal ultrasônico é de aproximadamente 340 m/s, assim, se o sensor estiver a uma distância d do objeto, o sinal percorrerá uma distância equivalente a 2d para sair e retornar ao sensor. Sabendo esses conceitos é possível calcularmos a distancia de um objeto pela formula." 
Fonte: http://ferpinheiro.wordpress.com/2011/04/29/meu-primeiro-projeto-arduino-sensor-ultrasonico-hc-sr04/

Painel Frontal do Sonar

Diagrama de Blocos do Projeto FAD
O código em LabVIEW foi programado para incrementar o angulo com 9 graus a cada ciclo do FOR, que possui no total 20 ciclos, completando 180 graus. A precisão pode ser alterada, tendo uma leitura mais precisa a cara incremento de 1 grau, porem o tempo total de leitura será mais demorado.

Um video para mostrar o funcionamento do software/hardware: