sexta-feira, 15 de abril de 2016

Expansão de Entradas digitais e Analógicas

Esta semana estive trabalhando no firmware de um arduino para expandir as entradas digitais e analógicas da beaglebone. Basicamente desenvolvi um firmware que através de um protocolo de mensagens, envia pela interface serial as informações das entradas digitais e analógicas mapeadas dentro dele.
Fiz duas versões:

1) Protocolo proprietário com mensagem no padrão ASCII: este programa ainda não foi devidamente testado, mas creio que funcionará. A mensagem a ser enviada para obtenção dos valores digitais e analógicos é: 
Requisição: >ID,NOME_DO_PINO# -> Ex: >0001,A0# (4 bytes para o ID e 2 bytes para o nome do pino)

Resposta: >ID,NOME_DO_PINO,VALOR# -> Ex: >0001,A0,1024# (4 bytes para o ID, 2 bytes para o nome do pino e ATÉ 4 bytes para o valor)

Obs: As mensagens sempre terão em seu conteúdo o carácter de início '>', o carácter de separação ',' e o carácter de fim '#'.

2) Protocolo padrão modbus RTU: este programa está testado e funcional. Nele mapeei 8 entradas analógicas e 8 entradas digitais. Usei como base para desenvolvimento deste firmware a library modbus para arduino desenvolvido por André Sarmento e que está publicado no GIT HUB (clique aqui para acessar).
As funções para dar acesso aos valores dos periféricos mapeados são:

Para ler o estado das entradas digitais -> Read Discrete Inputs (0x02).
Para ler as amostras das entradas analógicas -> Read Input Registers (0x04).

Para informações do funcionamento do protocolo modbus busque santo google.

Proximo passo é colocar a serial da Beaglebone conversando com o Arduino e alterar o Programa 2 para ter acesso a essas entradas digitais e analógicas do Arduino.


Nenhum comentário:

Postar um comentário