Tecnologia

Como conectar dispositivos seriais com Tio no Linux

Acessar um dispositivo serial no Linux geralmente é feito usando um comando como o screen. Mas, com o Linux, sempre existem outras opções. Eu uso o Tio há muitos anos com minha coleção de microcontroladores. Por quê? Porque ele simplesmente funciona e é fácil de usar.

Usuários do Windows, aqui está outro guia que ajudará você a fazer conexões seriais no Windows 11 e Windows 10.

(Image credit: Tom’s Hardware)

Recentemente, usei o Tio ao mexer com a nova Estação de Solda Portátil Ifixit. Eu sabia que o Tio facilitaria a conexão serial, permitindo-me explorar o funcionamento do ferro de solda inteligente.

Neste tutorial, mostraremos como instalar e usar o Tio com suas configurações padrão, com uma demonstração rápida do Raspberry Pi Pico 2 sendo o dispositivo serial. Em seguida, passaremos a especificar as configurações de conexão – para placas com uma taxa de baud específica, antes de aprender como registrar todos os dados seriais em um arquivo de texto para análise posterior.

Para seguir este tutorial, você precisará dos seguintes itens:

  • Computador rodando Ubuntu
  • Raspberry Pi Pico 2 (ou Pico / Pico W)
  • Sensor de temperatura DHT11
  • Breadboard de meio tamanho
  • 3 cabos jumper macho-macho

Instalando o Tio via o Gerenciador de Pacotes

Estamos instalando o Tio em nosso laptop rodando Ubuntu 24.04, as mesmas instruções se aplicam à maioria das distribuições Linux baseadas em Debian. Para outras distribuições Linux, verifique seu gerenciador de pacotes, pois o Tio deve estar disponível lá.

1. Abra um terminal e atualize a lista de repositórios, depois execute uma atualização do sistema. A parte da atualização é essencial para que obtenhamos a lista mais recente de pacotes. A atualização é uma boa prática para garantir que todo o seu software esteja atualizado. Se solicitado a confirmar uma atualização, pressione Y.

sudo apt update
sudo apt upgrade

2. Instale o tio.

sudo apt install tio

Circuito de Demonstração Rápida

Para isso, preparei uma demonstração rápida do Raspberry Pi Pico 2 que usa um sensor de temperatura DHT11 para ler a temperatura atual e imprimi-la no shell do Python. A saída é o que leremos por meio de uma conexão serial. Você não precisa fazer isso, o tutorial ainda funcionará com qualquer dispositivo serial que você conectar ao seu computador. Mas com este circuito de demonstração rápida, posso mostrar um cenário típico onde o Tio é usado.

Para esta parte do tutorial, você precisará:

  • Raspberry Pi Pico 2 ou Raspberry Pi Pico
  • Sensor de temperatura e umidade DHT11
  • Breadboard de meio tamanho
  • 3 cabos jumper macho-macho
(Image credit: Tom’s Hardware)

O circuito para esta demonstração é simples. Estamos conectando energia e dados entre o Pico 2 e o sensor DHT11. O Pico 2 alimenta o sensor, e o pino de dados envia os dados necessários para o Pico 2.

Certifique-se de que seu Raspberry Pi Pico esteja rodando MicroPython, siga até o passo 4 neste tutorial e você terá o MicroPython e o Thonny instalados.

1. Abra o Thonny e crie um novo arquivo em branco.

2. Importe três bibliotecas de código. Pin, usado para conectar ao GPIO, time, para controlar a pausa em nosso código, dht, uma abstração para facilitar o trabalho com o DHT11.

from machine import Pin
import time
import dht

3. Crie um objeto, sensor, e use-o para fazer uma conexão entre o código e o DHT11 no GPIO 17. Esta abstração facilita o trabalho com o DHT11.

sensor = dht.DHT11(Pin(17))

4. Crie um loop while True para executar continuamente o código dentro dele.

while True:

5. Pausa por dois segundos e, em seguida, faça uma leitura usando o DHT11.

   time.sleep(2)
   sensor.measure()

6. Obtenha a temperatura e armazene-a em um objeto chamado “temp”.

   temp = sensor.temperature()

7. Imprima uma mensagem no shell do Python, seguida pela temperatura atual como parte de uma frase. Estamos usando formatação de string para inserir os dados de temperatura como uma string na parte correta da frase.

   print("Temperature Checker")
   print('The temperature is:', "{:.1f}ºC\n".format(temp))

8. Salve o código no Raspberry Pi Pico como main.py. Isso forçará o código a ser executado quando o Raspberry Pi Pico for ligado.

Listagem Completa do Código

from machine import Pin
import time
import dht

sensor = dht.DHT11(Pin(17))

while True:
   time.sleep(2)
   sensor.measure()
   temp = sensor.temperature()
   print("Temperature Checker")
   print('The temperature is:', "{:.1f}ºC\n".format(temp))

Usando as Configurações Padrão do Tio

As configurações padrão do Tio geralmente fazem o trabalho, e com isso em mente, o Tio facilita o uso delas. Tudo o que precisamos fazer é chamar o comando tio junto com o caminho para o dispositivo. Mas como podemos localizar o dispositivo? O Tio tem exatamente esse recurso. Então, vamos passar por como usar o Tio, começando com a identificação do dispositivo serial correto e, em seguida, conectando-se a ele. Neste caso, é um Raspberry Pi Pico 2 rodando MicroPython.

1. Feche o Thonny. O Thonny e outros aplicativos projetados para trabalhar com microcontroladores têm seus próprios recursos de comunicação serial que podem interferir.

2. Abra um terminal e descubra qual nome de dispositivo foi atribuído ao seu Raspberry Pi Pico. No nosso caso, foi /dev/ttyACM0, mas pode ser algo diferente.

tio -l
(Image credit: Tom’s Hardware)

3. Use o tio para conectar ao Raspberry Pi Pico.

tio /dev/ttyACM0

4. Você deve agora ver a saída serial no terminal. A cada segundo, uma nova leitura de temperatura aparecerá na tela. Pressionar CTRL + C interromperá o código em execução e o levará a um shell interativo do Python onde comandos podem ser inseridos.

(Image credit: Tom’s Hardware)

5. Para fechar o tio, pressione CTRL + t e depois pressione Q.

O comando list do Tio, tio -l, listará todos os dispositivos capazes de uma conexão serial, incluindo vários dispositivos conectados ao mesmo tempo. Aqui temos o Raspberry Pi Pico 2 e um Arduino Uno conectados ao mesmo tempo.

(Image credit: Tom’s Hardware)

Especificando as Configurações de Conexão

Por padrão, o Tio usará 115200 8N1, em outras palavras:

  • 115200: Esta é a taxa de baud, a taxa na qual os dados são comunicados.
  • 8: Estes são os bits de dados, descrevendo como um caractere de dados é enviado de um dispositivo serial.
  • N: Este é o bit de paridade, às vezes chamado de bit de verificação. É usado para detecção de erros.
  • 1: Este é o bit de parada, identificando efetivamente quando o fluxo de dados termina.

A taxa de baud de 115200 é bastante comum hoje em dia e muitas placas, desde Arduino até o novo Raspberry Pi Pico 2.

Com o Tio, podemos especificar as configurações de conexão para atender às necessidades do dispositivo. Neste exemplo, criamos um sketch simples do Arduino para imprimir “Tom’s Hardware” a cada segundo na interface Serial. No sketch do Arduino, codificamos a taxa de baud para 9600 (Serial.begin(9600)).

(Image credit: Tom’s Hardware)

Esses poucos passos são mais para referência, caso seja necessário especificar as configurações de conexão.

(Image credit: Tom’s Hardware)

Para definir a taxa de baud do Tio, precisamos executar o comando com alguns argumentos extras.

1. Abra um terminal e inicie o tio com argumentos para definir a taxa de baud para 9600, bits de dados para 8, fluxo para nenhum, bits de parada 1 e paridade para nenhum.

//code//

tio /dev/ttyACM0 –baudrate 9600 –databits 8 –flow none –stopbits 1 –parity none

//code//

2. Os dados seriais ao vivo serão impressos no shell do tio, verifique se a mensagem rola pela tela.

3. Pressione CTRL + t e depois pressione Q para sair do Tio e retornar ao terminal.

Escrevendo Dados em um Arquivo de Log

Um recurso bastante útil é configurado quando usamos o comando Tio. O recurso em questão direciona uma cópia da saída para um arquivo de log.

Usando o projeto do sensor de temperatura do Raspberry Pi Pico, capturaremos a saída em um arquivo de texto chamado temperature-log.txt.

1. Do terminal Linux, inicie o Tio com dois argumentos. O primeiro é –log-file, que especifica o caminho completo para o arquivo (o tio criará o arquivo se ele não existir e sobrescreverá quaisquer arquivos existentes com o mesmo nome), o segundo é -L, que habilita a escrita em um arquivo de log. Lembre-se de alterar o caminho do dispositivo para corresponder ao do seu dispositivo.

tio /dev/ttyACM0 –log-file temperature-log.txt -L
(Image credit: Tom’s Hardware)

2. Execute o Tio por alguns momentos, o suficiente para coletar os dados de que você precisa.

3. Pressione CTRL + t e depois pressione Q para sair do Tio e retornar ao terminal.

4. Abra o arquivo em um editor de texto para visualizar o log de dados.

5. Altere o comando para adicionar o argumento correspondente que anexará a um arquivo de log existente.

Shares:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *