Envio de dados do Beaglebone Black para Arduino por meio de UART (Parte 7/15)

Este tutorial representa a comunicação entre o Beaglebone black e o Arduino através do UART. Você não precisa de nenhum outro periférico para este tutorial. UART significa receptor e transmissor assíncrono universal. Ele transmite e recebe dados de forma assíncrona com outro dispositivo que também suporta o protocolo UART.

Ferramentas necessárias:

  • Beaglebone preto
  • Arduíno
  • Conectores fêmea para fêmea

Configuração do ambiente de software

Instale a versão mais recente do python no BBB conforme explicado no tutorial Como fazer o primeiro programa python com Beaglebone Black. Instale a biblioteca adafruit python-GPIO.

Trabalhando

Beaglebone transmite a mensagem que é inserida no prompt de comando e o Arduino recebe os dados e os exibe no terminal serial do Arduino. Execute o script python do terminal SSH e ao mesmo tempo abra o serial do Arduino no PC. Escreva alguma mensagem do terminal SSH. BBB transfere os dados através do UART que são então recebidos pelo Arduino e exibidos no terminal serial.

Descrição

BBB tem no chip cinco portas UART, cada uma contendo dois pinos: pino RX e pino TX para receber e transmitir, respectivamente. Neste tutorial, o UART1 é usado para comunicação com o Arduino. Aqui, o BBB atua como transmissor e o Arduino como receptor. Conecte o pino de transmissão UART1 (24º pino do cabeçalho P9) do BBB para o pino de recebimento (pino número 10º) do Arduino. Usei o software UART no Arduino, por isso o conectei ao pino número 10º (declarei 10º e 11º pin como RX e TX no programa respectivamente). Faça a conexão de aterramento comum entre o Arduino e o BBB, necessária para a comunicação.

Abra o terminal de comando e acesse o Beaglebone black através do SSH conforme explicado em começando com Beaglebone preto. Crie um novo arquivo usando tocar comando com .py extensão (ou seja, led.py). Abra o arquivo com qualquer editor de texto (ou seja, nano, vim etc.) e escreva um código em linguagem python.

Conecte o Arduino ao PC através do cabo USB. Abra-o e escreva um código para receber dados em linguagem C. Para obter ajuda, você pode consulte o tutorial como instalar e executar o Arduino no Linux.

Configuração UART no BBB

Você precisa importar o UART no programa para usar o dispositivo I2C. Você pode criar sua própria biblioteca, mas isso consumiria mais tempo. Portanto, pode ser usada a biblioteca Ad Fruit, que fornece todos os tipos de biblioteca python do BBB.

importar Adafruit_BBIO.UART como UART

Importe também o serial da biblioteca python. Ele encapsula o acesso à porta serial.

importar série

Configure o UART seguindo a função:

UART.setup (“UART1”)

serial.Serial (porta = “/dev/ttyO1”, taxa de transmissão=9600)

A primeira função é instalação e configuração do UART1. A segunda função acessa o dispositivo serial com taxa de transmissão definida. Encontre a porta do dispositivo conectada ao UART na lista abaixo e acesse-a.

Magnetômetro em interface com Beaglebone preto

Agora você pode transmitir e receber dados através do UART. Você pode fechar a porta quando não quiser usá-la.

Configuração do Arduino

Escreva um código-fonte receptor no Arduino e carregue-o no Arduino Uno. Após o recebimento dos dados, eles serão exibidos no terminal serial.

Execute o script no terminal:

Digite o seguinte comando com o nome do arquivo no prompt de comando:

nome do arquivo python.py

ou seja, python uart.py

Código fonte do projeto

 

Código fonte do projeto

###

// UART.C

#incluir

SoftwareSerial uart(10,11);
configuração nula { Serial.begin(9600); uart.begin(9600); } loop vazio { if(uart.disponível > 0) { Serial.write(uart.read ); } } // importar Adafruit_BBIO.UART como UART importar série UART.setup("UART1") disp = serial.Serial (porta = "/dev/ttyO1", taxa de transmissão = 9600) disp.close disp.open enquanto Verdadeiro: se disp.isOpen : imprima "Serial está aberto" mensagem = raw_input("Digite sua mensagem:n") disp.write(mensagem) disp.write("n") exit = raw_input("Você deseja sair ou não YN:") while ((saída! = 'Y') e (saída! = 'N') e (saída! = 'y') e (saída! = 'n')): imprima "Entrada inválida !!! n" exit = raw_input("Você deseja sair ou não YN:") if (saída == 'Y') ou (saída == 'y'): quebrar outro: print "Para continuar....n" print "Desculpe!!! Você não consegue se comunicar com o dispositivo" disp.close

###

Diagramas de circuito

dados do beaglebone-arduino-usando-UART

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.