Picocom - Gravando dados enviados via USB pelo Arduino

Publicado por Anthony Collucci em 17/07/2013

[ Hits: 13.604 ]

Blog: http://www.amcollucci.com.br

 


Picocom - Gravando dados enviados via USB pelo Arduino



Esta dica aborda como utilizar o Picocom para gravar dados enviados via porta USB pelo Arduino em arquivos.

Nos testes, utilizei o Ubuntu 13.04.

Comunicação serial

Enviar bits de forma sequencial por um fio ou barramento, é chamado de comunicação serial, é um meio muito utilizado para comunicação entre dispositivos. Existem diversas tecnologias de comunicação serial, como RS-232, USB, FireWire, Fibre Channel, SCSI, dentre outras.

Todas as placas do Arduino possuem, ao menos, uma porta de comunicação serial (chamadas de UART ou USART), nos pinos digitais 0 (RX) e 1 (TX), e boa parte deles pode se comunicar com um computador via USB. Você pode utilizar o Serial Monitor incluído na IDE para escutar diretamente na porta serial.

Instalando o Picocom

O Picocom é um emulador de terminal burro, baseado no Minicom. O site oficial é:
Para instalá-lo no Ubuntu, basta digitar o seguinte comando:

sudo apt-get install picocom

Para utilizá-lo, é muito simples, você precisa apenas chamar o programa e usar como argumento, o terminal virtual utilizado:

picocom ttyxxx

Detectando o Arduino

Quando o Arduíno é conectado, é criado um arquivo no diretório "/dev", chamado "ttyXXXX" onde o xxx pode variar de acordo com o seu sistema.

Abaixo, seguem três formas de detectar em qual terminal o seu Arduino se encontra:

1º Método: Com o Arduino desconectado, digite o comando:

ls /dev | grep tty
Linux: Picocom - Gravando dados enviados via USB pelo Arduino

Agora, conecte-o e repita o processo. Você deve comparar as duas saídas, o tty que aparecer na segunda saída e se não estiver na primeira, é o terminal de comunicação com o Arduíno.
Linux: Picocom - Gravando dados enviados via USB pelo Arduino

2º Método: Na IDE do Arduíno, acesse o menu:

  TOOLS → Serial Port → /dev/ttyXXX

3º Método: Digite o comando:

dmesg | grep tty

O tty aparecerá na saída do comando, como na imagem abaixo:
Linux: Picocom - Gravando dados enviados via USB pelo Arduino

Preparando o Sketch e gravando em arquivo de texto

Agora, vamos fazer o Arduino nos enviar dados pela USB, para isso, utilize o código abaixo:

void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println("Aprendendo a usar Serial");
}

Grave esse código no Arduino, abra um terminal e digite:

picocom /dev/ttyXXXX

Verá que será exibido no terminal, a frase "Aprendendo a usar Serial".

A grande vantagem de utilizar o Picocom ao invés do serial monitor, é a possibilidade de gravar os dados enviados em um arquivo de texto, CSV ou outro qualquer, como no exemplo abaixo:

picocom /dev/ttyXXXX /home/dump.txt

Fontes


Outras dicas deste autor

O comando grep

Roteiro de instalação e configuração de um Servidor Debian

TCP/IP para sistemas embarcados

Duas dicas de SSH

Acelerando o apt-get ou similares

Leitura recomendada

Colocar atalhos na área de trabalho do Ubuntu

Instalando o KDE4 no Ubuntu / Kubuntu (7.10)

DHCP para mais de uma rede

Agendamento de tarefas

Como tocar rádio online com Firefox no BRLix

  

Comentários
[1] Comentário enviado por gabriel_torelli em 18/07/2013 - 21:21h

Olá Anthony. Você pode utilizar também o "cat" para a mesma tarefa, o que é mais simples, pois está presente em todas as distros e tem opções interessantes para a coleta desses dados pela serial. Abraço!
"cat /dev/ttyXXXX > /home/dump.txt"

[2] Comentário enviado por acollucci em 19/07/2013 - 09:25h

Gabriel torelli,

Veja nesse link: http://playground.arduino.cc/Interfacing/LinuxTTY

Nele mostra a configuração do TTY para se usar o cat, infelizmente em todos os testes que realizei não consegui fazer funcionar, por isso utilizei o picocom.

detalhe, no ultimo comando ficou faltando o ">>"

o correto seria:

$ picocom /dev/ttyXXXX >> /home/dump.txt



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts