Skip to content

Projeto de interface gráfica feita com Qt para controle e leitura de dados do Arduino. Interações com widgets, mouse e teclado.

License

Notifications You must be signed in to change notification settings

mateustoin/Qt-GUI-for-Arduino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Instagram Youtube Twitch Telegram

Uso de linguagens de programação para uma maior diversidade de projetos.

Índice

Sobre

Hoje projetos de hardware não sobrevivem mais apenas com hardware, pois a tendência é sempre ter cada vez mais tecnologias e dispositivos conectados. Cada vez mais temos opções de softwares que integram dispositivos, fornecem dados e interagem com o usuário de maneira simples e intuitiva. Além disso, sabemos que projetos com Arduino e componentes eletrônicos são capazes de realizar inúmeras tarefas e serem utilizados em diversas soluções tecnológicas para problemas do dia a dia. Unindo isso ao poder do software, é possível potencializar a capacidade dos projetos e tirar mais ideias do papel, criando cada vez mais soluções e atingindo públicos diferentes.

O objetivo do projeto foi desenvolver uma interface gráfica para o controle e leitura de dados de alguns dispositivos conectados ao Arduino, a fim de comprovar a capcidade e validar conceitos de programação para a construção de um Software integrado com hardware.

O framework utilizado para o projeto foi o Qt, uma toolkit em C++ multiplataforma, ou seja, o software criado para este projeto funciona no Windows, Linnux e MacOS.

Abaixo você pode visualizar o circuito montado no simulador Tinkercad. Visto que o circuito validado é físico e integrado com um software que roda em um Sistema Operacional, a simulação não servirá para demonstrações, apenas para referência na visualização do circuito.

Figura 1. Representação do Circuito montado no Tinkercad

Circuito

Figura 2. Esquemático do Circuito

O circuito possui alguns componentes que juntos são capazes de provar vários conceitos na montagem de circuitos e programação para Arduino. O potênciometro funciona como um dispositivo que substitui a leitura de qualquer tipo de sensor, enquanto o led atua para validar dispositivos que ligam e desligam, além de testes com o PWM. Por último, o Servo Motor como um atuador, para se movimentar e atuar conforme a necessidade.

Lista de Materiais

  • Arduino Uno R3
  • Protoboard
  • Fios macho-macho
  • Led difuso 5mm
  • Potênciometro 10k Linear
  • Micro Servo Motor
  • Resistor 220Ω
  • Resistor 10kΩ

Interface Gráfica

A interface gráfica, como pode ser vista na figura abaixo, é simples e possui algumas funcionalidades. Possui uma área de reconhecimento de portas, para identificar as placas que estão conectadas e um botão para atualizar a lista. Possui também um botão para conectar e um label para indicar se está conectado ou desconectado.

Abaixo, na área de controle, tem um slider responsável por alterar a luminosidade do LED e a própria imagem do LED é um botão, para ligá-lo e desligá-lo quando for clicado. Na direita tem um slider semelhante, para controlar o Micro Servo Motor de 0º a 180º, além de poder controlá-lo também pelo teclado.

Por último, na interface podemos ver um display de leitura do potênciometro, que mostra o valor inteiro ou em valor percentual, indicando o início e o fim do seu curso. Esse potênciometro poderia ser substituído por qualquer tipo de sensor que gere dados.

Figura 3. Interface simples de controle e leitura feita em Qt

Placa de Circuito Impresso (PCB)

Para que o projeto não fosse apenas um circuito montado em uma protoboard, uma PCB foi pensada para futuramente ser utilizado como um protótipo fácil de utilizar em um minicurso ou workshop. Para isso, o mesmo circuito testado e validado foi idealizado para se tornar um Shield para Arduino.

Um shield consiste em uma placa criada com um propósito específico que é encaixada em cima de uma placa Arduino com todas as conexões já feitas, deixando a experiência mais fácil, direta, estilo plug-and-play.

Figura 4. Esquemático da PCB

No gif abaixo é possível observar os pinos laterais, que seriam encaixados diretamente na placa Arduino, enquanto no centro da placa se encontram todos os componentes e slots para encaixar os componentes do projeto.

Figura 5. Modelo 3D da PCB

Software utilizado para a criação da PCB: EasyEDA

Começando

Siga estas instruções para criar, replicar e modificar o modelo do projeto na sua máquina.

Pré-requisitos

Os softwares utilizados para a criação e execução do código.

Qt: Kit Desktop 5.15.2 Arduino: Arduino IDE 1.8.13 ou PlatformIO

Instalação

Para executar o código Qt, basta clonar este repositório ou fazer o download. Depois abrir a IDE do Qt (Qt Creator), File > Open file or project e depois selecionar o arquivo arduino-gui.pro dentro da pasta do projeto arduino-gui.

O código do Arduino pode ser encontrado na pasta codes/qt_arduino.ino. Para utilizá-lo, basta ter a IDE do Arduino instalada e realizar o upload do código na placa. Além disso, ter todos os componentes conectados de acordo com o circuito esquemático mostrado na primeira figura.

Uso

Figura 6. Exemplo de uso da Interface feito durante a live de desenvolvimento

Features

  • Controla luminosidade do LED pela interface
  • Liga e desliga LED pelo teclado
  • Controla posição do Servo Motor pela interface
  • Controla posição do Servo Motor pelo teclado
  • Visualiza valor do potenciômetro/sensor em um display
  • Visualiza o valor do potenciômetro/sensor em valor percentual
  • Painel de verificação de placas conectadas no computador
  • Botão de conexão

Alguns outros componentes básicos como push-button e sensor LDR seriam uma ótima adição ao projeto, porém o potênciometro já serve como substituto para a maioria dos possíveis inputs que poderíamos ter.

Algumas melhorias que poderiam ser feitas futuramente:

  • Botão de conectar vira desconectar
  • Maior responsividade entre os componentes e imagens
  • Melhoria no design da interface (UI/UX)
  • Controle de mais componentes

Licença

Copyright © 2021 Mateus Antonio da Silva.
This project is MIT licensed.

About

Projeto de interface gráfica feita com Qt para controle e leitura de dados do Arduino. Interações com widgets, mouse e teclado.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published