Serial monitor na Digispark? Não tem, mas…

A Digispark é uma bela plaquinha, todo mundo que mexe gosta. Não é pra menos, uma board tão diminuta com recursos sob medida e de fácil programação pela IDE do Arduino, sem dúvida é uma opção muito bem vista frente a um Arduino (que é muito mais inflado de recursos, claro). Mas como tudo tem lado bom e lado ruim, o Digispark (que utiliza um Attiny85) não possui serial e para fazer uma leitura de debug ou trocar dados com ele, é necessário utilizar um dos diversos recursos disponíveis. A dica desse artigo é a interação com o teclado e o parsing da mensagem para utilizar no Linux (desktop, Raspberry etc).

DigiKeyboard





O caminho mais simples para trocar informações com o Digispark é certamente o DigiKeyboard. Em substituição ao Serial.print() do Arduino, você pode utilizá-lo e tudo o que você precisa fazer é adicionar a biblioteca keyboard. A partir daí, você precisará enviar a informação que será repassada ao computador como se fosse um teclado. Um exemplo simples referenciado pela Digistump é abrir o Examples->DigiSparkKeyboard->Keyboard. Depois em Windows, abra o Notepad , faça o upload do código para o Digispark e rapidamente torne o foco para a janela do notepad. Em alguns segundos será escrito “Hello Digispark!” no editor. Como ele atuará como um keyboard, qualquer aplicação em foco receberá dados escritos por ele.  Agora, como capturar essas entradas em Linux para interagir com o Raspberry, por exemplo?

LogKeys

O programa logkeys é um sniffer de teclado que funciona tanto com teclado serial quanto com teclado USB. Ao contrário do que parece, invés de ser utilizado para uma função obscura como capturar senhas e logins de usuários desprecavidos, ele nos servirá como assistente para capturar o que for “digitado” pelo Digispark. Sua utilização é bastante simples, tal qual sua instalação:

Após instalado, faça um clone do repositório para pegar o keymap pt_BR.map:

E copie o mapa para o nível de diretório em que você está:

Depois execute:

Digite alguns comandos e  termine o processo do logkeys:

O que você errar e apagar, substituir ou qualquer coisa, aparecerá no log, exceto você use comandos do bash_history, porque ai o log só registrará os comandos <up> e <down> das setas. Veja:

log do logkeys
log do logkeys

Bem, aí está seu arquivo com os comandos com toda a informação que você precisa, ou seja, a única tarefa do Digispark será ler o sensor e enviar o valor para o sistema. No log do sistema você terá data/hora seguida do valor enviado pelo Digispark! O que? Não sabe fazer parsing nas mensagens? Ok, vou dar uma força. Crie um script shell chamado reader.sh, por exemplo. já aplique as permissões para execução:



Edite o arquivo e coloque o seguinte conteúdo:

O “tail -n2” poderia ser “tail -n1”, esse comando eu compus em um teste real com o teclado, então como eu precisava digitar o comando para ler o arquivo, tive que pegar o tail e o head.

Tendo essa linha, o formato será como um CSV, campo separado por ponto-e-vírgula (“;”). Ou você pode manipular diretamente o valor em sua aplicação Python, C, etc.

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Projetos Arduino e Eletrônica – https://www.facebook.com/groups/projetosarduinoeletronica/

ESP8266 BR – https://www.facebook.com/groups/ESP8266BR/

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.