Projeto Loopback
Introdução
Neste projeto, você irá construir um código em Python para realizar transmissões e recepções seriais simultâneas utilizando um Arduino. O objetivo é enviar uma imagem através da porta serial e receber simultaneamente uma cópia dessa imagem.
Objetivos
- Enviar uma imagem (a menor possível) através da porta de comunicação serial.
- Receber a imagem simultaneamente ao envio e salvá-la como uma cópia.
- Adquirir compreensão do código base de transmissão UART.
Materiais Necessários
- Hardware:
- Arduino (verificar modelo compatível)
- Cabo USB para conexão com o computador
-
Jumpers para curto-circuitar os pinos RX e TX
-
Software:
- Python instalado no computador
- Biblioteca
pyserial
(instalar compip install pyserial
) - Arquivos de código fornecidos (5 no total)
Montagem
Configuração do Hardware
Exercício 1
Atenção!
Em alguns modelos de Arduino (como o UNO), é necessário manter o botão de reset pressionado ou aterrar o pino reset.
Configuração do Software
- Instalação da Biblioteca PySerial:
- Configuração da Porta Serial:*
Exercício 2
Implementação
Manipulação de Imagens em Python
Para transformar uma imagem em uma lista de bytes e vice-versa, você pode usar os seguintes trechos de código:
# Caminho da imagem original
img_origin = "original_image.jpg"
# Leitura da imagem e conversão para bytes
with open(img_origin, 'rb') as f:
img_bytes = f.read()
# Salvando a imagem recebida como uma cópia
img_copy = "copy_image.jpg"
with open(img_copy, 'wb') as f:
f.write(img_bytes)
Transmissão e Recepção Serial
Exercício 3
Entrega e Avaliação
Conceito C
- Demonstrar a transmissão e recepção da imagem ocorrendo corretamente.
Conceito B
-
Responder às perguntas feitas pelo professor sobre as seguintes funções:
-
getBufferLen
getAllBuffer
getBuffer
getNData
sendBuffer
Conceito B+
-
Entender e explicar os seguintes termos da comunicação UART:
-
Transmissão assíncrona
- UART – Start bit
- UART – Stop bit
- UART – TX, RX, GND
- UART – Baud rate
- UART – Bit rate
- UART – Buffer
- UART – Frame
- UART – Bit de Paridade
- UART – CRC
Conceito A+
- Corrigir a função
getStatus
, que não está funcionando corretamente, e apresentar uma solução.
Data Limite
- 15/08 - Após essa data, a nota terá uma redução de 25% a cada semana de atraso.