Perl – Comunicação serial com Arduino

ArduinoPythonComSerialTopo

Continuando os posts sobre comunicação serial com o Arduino utilizando varias linguagens hoje vou trabalhar com Perl, muitas pessoas não conhecem principalmente quando comento com desenvolvedores Windows :), não é meu forte em desenvolver projetos longos mas com pequenos scripts e algo que irá processar uma quantidade grande de dados ele se sai/saiu muito bem, vamos lá então…

Primeiramente o ambiente utilizado será Linux :) novidade né! Bom, para este exemplo precisaremos do Device::SerialPort como não é trivial ele vir junto vamos verificar se possuímos este Modulo.

Como é a primeira vez que nessa VM eu uso algo com Perl, eu não tenho o Device::SerialPort, então vamos instalar que pode ser feito de duas maneiras:

Primeira maneira a la estilo how-to:

Segunda maneira e a que eu prefiro :) baixar o modulo do cpan e compilar, vamos ver :)

O procedimento acima para construir o modulo pode ser visulizado no arquivo README, onde peguei as informações sobre compilar e instalar o modulo mas ocultei aqui a saída, sobre o make test no meu deu alguns erros porque ele usou o ttyS1 e o meu ftdi esta usando ttyS2 mas enfim, nesta etapa não importaria e atenção ao usar sudo make install ou usar permissão de super-usuário para instalar o modulo, e vamos ver novamente se o modulo esta instalado agora.

Mas no nosso script Perl também tem uma etapa que irá checar se o modulo esta OK, caso a mensagem “Device::SerialPort nao encontrado!” for exibida ao executar o script verifique os passos acima pois o modulo não foi encontrado.

Vamos ao nosso código agora:

Vamos testar nosso código, meu device USB é /dev/ttyS2, meu baudrate 9600 e o caractere a ser enviado é o ‘t’:

A tela acima esta funcionando como previsto, caso você ver algo como abaixo:

Provavelmente o /dev/ttyS2 não é o correto, substitua pelo correto do seu device, agora caso o baudrate ou o carácter a ser enviado estiver incorreto a mensagem “Aguardando recebimento dos dados…” ficara aparecendo direto, além do mais o firmware que estou usando para o Arduino é o clássico default para todos desta serie de comunicação serial, caso precisar aqui esta o link.

Não abordei aqui a linguagem em Perl em si, o foco foi trabalhar comunicação serial com ela, então a parte de repetição, condicional, argumentos, variáveis e declarações eu abstrai, mas uma pesquisa rápida no google deve resolver, não sou um desenvolvedor Perl Expert mas sempre digo que Perl é linguagem de macho, não é tão amigável iniciar e tem umas particularidades punk.

Não se limite a apenas as funções passadas, é o básico para funcionar, mas o modulo é extenso e possui N possibilidades e recursos para ajudar.

Bom pessoal, fico por aqui espero ter ajudado com mais esta etapa e até a próxima!

Referências

http://search.cpan.org/~cook/Device-SerialPort-1.002/SerialPort.pm
http://playground.arduino.cc/Interfacing/PERL

Share Button

CC BY-NC-SA 4.0 Perl – Comunicação serial com Arduino by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.