Escolar Documentos
Profissional Documentos
Cultura Documentos
SUMÁRIO
1 Introdução 4
2 Arduíno 4
2.1 Firmata 5
Por que usar Arduino (Padrão) Firmata? A necessidade de comunicação. 5
3 Processing 6
4 O Projeto 8
4.1 Montagem 9
4.2 Programação do Projeto 12
4.3 Interface 14
5 Resultados Obtidos 15
5.1 Problemas encontrados 17
6 Conclusões 18
Referências 19
3
Lista de Ilustrações
1 Introdução
Para solucionar problemas de engenharia, são desenvolvidas técnicas que
complementam a teoria e a experimentação. Nesse contexto, faz-se necessário o
conhecimento das técnicas de medição, dos instrumentos e da forma adequada em que estes
serão aplicados e também das técnicas de processamento de dados. Esses aspectos são
estudados na instrumentação eletrônica.
Sensores são dispositivos que detectam e respondem com eficiência a algumas
entradas provenientes de um ambiente físico, como por exemplo: luz, calor, movimento,
umidade, pressão ou qualquer variável detectável em um ambiente.
Atuadores são dispositivos que realizam a conversão de energia elétrica, hidráulica ou
pneumática, em energia mecânica. A potência mecânica gerada pelos atuadores é então
enviada para os dispositivos conectados aos atuadores, através dos sistemas de transmissão,
para que os mesmos realizem algum movimento.
Além disso, este trabalho visa apresentar uma interação da linguagem Processing com
o Arduino, dessa forma, quando um sensor recebe uma entrada específica proveniente do
ambiente, ele emite uma saída, que geralmente é um sinal capaz de ser convertido e
interpretado pelo processador.
Diante disso, exemplos e aplicações desses instrumentos, serão estudados com
maiores detalhes nos tópicos seguintes.
2 Arduíno
Arduino é uma plataforma eletrônica de código aberto baseada em hardware e software fáceis
de usar. As placas Arduino são capazes de ler entradas - luz em um sensor, um dedo em um
botão ou uma mensagem no Twitter - e transformá-las em uma saída - ativando um motor,
ligando um LED, publicando algo online. Você pode dizer à sua placa o que fazer enviando
um conjunto de instruções para o microcontrolador na placa. Para isso utiliza-se a linguagem
de programação Arduino (baseada em Wiring ), e o Software Arduino (IDE) , baseado em
Processing .
5
Além das características citadas, o Arduino possui uma forma padrão de como os
conectores são distribuídos na placa, isso permite ligações de outros módulos expansivos,
chamados de Shields. Esses módulos se acoplam sobre as placas principais. Existem vários
módulos disponíveis no mercado atualmente, sendo eles: sensores, relés, display LCD, entre
outros.
Fonte: arduino.
2.1 Firmata
Firmata é um protocolo para comunicação com microcontroladores de software em um
computador host. O protocolo pode ser implementado em firmware em qualquer arquitetura
de microcontrolador, bem como em software em qualquer pacote de software de computador
host.
Por que usar Arduino (Padrão) Firmata? A necessidade de comunicação.
6
3 Processing
Desde o início, o Processing foi projetado para ser o mais simples possível para
iniciantes, sabendo que sua simplicidade também beneficiaria usuários mais experientes. Foi
inspirado no imediatismo de linguagens anteriores como BASIC e Logo, bem como em
nossas experiências aprendendo a codificar e ensinando codificação para uma ampla
variedade de origens. Os mesmos elementos ensinados em uma aula de ciência da
computação do ensino médio ou universitário são ensinados através do Processing, mas com
uma ênfase diferente. Com foco na criação de mídia visual e interativa, os alunos iniciantes
em programação acham satisfatório fazer algo aparecer em sua tela logo após o uso do
software. Este currículo motivador provou ser um sucesso para liderança em design, arte, e
estudantes de arquitetura em programação e para envolver o corpo estudantil em geral nas
aulas gerais de ciência da computação.
4 O Projeto
Visa atender as especificidades exigidas na disciplina de Instrumentação Eletrônica:
Deverá ser realizado um projeto de instrumentação, com o objetivo de medir uma grandeza ou
grandezas (mensurados), de forma a especificar os sensores/dispositivos utilizados, como
também os circuitos de condicionamento. Os resultados deverão ser mostrados, por exemplo,
em um LCD, ou que os dados obtidos possam ser plotados em gráficos com as grandezas
monitoradas.
Neste projeto, teremos dois circuitos principais. Primeiro, vamos mostrar o
acionamento de um cooler – ligando-o e desligando-o por meio de sinais vindos do Arduino.
E o segundo, o sensor LM35 irá medir a temperatura da fonte do carregador de um aparelho
celular.
Lista de materiais:
● Arduino UNO;
● 3 Resistores;
● 2 Potenciômetros;
● Relé de 5V;
● 3 LEDS;
● Cooler (DC 5V);
● Sensor de temperatura (LM35);
● Jumpers;
● Carregador de celular;
● Fonte de alimentação 5V;
● Bateria de celular.
9
4.1 Montagem
Na primeira parte, vamos usar um relé, ao qual por sua vez conectamos o motor DC
que iremos controlar. O Módulo Relé é ideal para acionar uma lâmpada ou outra carga que
exija até no máximo 10A utilizando o Arduino ou qualquer outro microcontrolador.
Ele funciona exatamente como uma chave (interruptor). No borne cinza há 3
conexões: NA (Normalmente Aberto), C (Comum) e NF (Normalmente Fechado). Ou seja,
quando o Módulo Relé estiver "desligado", C estará conectado à NF. Quando estiver ligado, C
estará conectado à NA.
O arduino recebe os valores de tensão do pino do meio do potenciômetro 1, de acordo
com esses valores o código irá indicar quantos LEDs irão acender (simulando um volume).
Quando chega num determinado volume, o código vai acionar o arduino e esse ativará
a porta que o relé está conectado. Como indicado anteriormente, o relé vai chavear e permitir
a passagem de corrente da fonte externa de 5V para o ventilador para ligá-lo.
10
Figura 4: Funcionamento.
4.3 Interface
Como mostrado na figura abaixo, Através da aplicação é possível visualizar o estado
de sensores e atuadores, assim como gravar os dados de interesse.
5 Resultados Obtidos
O aplicativo utilizado para medir a corrente foi o DevCheck. Embora saibamos que o
aparelho android dispõe de diversos sensores internos , à nossa disposição no momento essa
era a melhor opção para fazer as medições com o lm35. É perceptível e esperado que como
ele estava posicionado na tela do aparelho as medições fossem abaixo do sensor do próprio
aparelho.
17
6 Conclusões
Referências
ARDUINO. Firmata Library. Disponível em:
https://docs.arduino.cc/hacking/software/FirmataLibrary. Acesso em 03 de fevereiro de 2023.
SRITU HOBBY. Processing IDE with LED On and OFF. Disponível em:
https://srituhobby.com/processing-ide-with-led-on-and-off/. Acesso em 05 de fevereiro de
2023.
AUTO CORE ROBOTICA. Como utilizar Processing com Arduino: Parte 3. Disponível
em: https://autocorerobotica.blog.br/como-utilizar-processing-com-arduino-parte-3/. Acesso
em 05 de fevereiro de 2023.
23
Anexos
Anexo A - Código principal
//DECLARAÇÕES DE BILIOTECAS E VARIAVEIS
import processing.serial.*; // Carrega a biblioteca Serial na pasta Libraries
do Processing
import cc.arduino.*; // Carrega a biblioteca Arduino na pasta desse
projeto
Arduino arduino; //Criou esse objeto para poder utilizar as
funções da biblioteca do arduino
Table tabela;
PImage ufcg_logo, powerON, powerOFF, click, clickON; //serve para as imagens
PFont fonte; //serve para mudar a fonte do programa
PrintWriter output1, output2;
void setup() {
size(800,600); //Tamanho da Janela
smooth(); // Habilita o anti-aliasing
void draw() {
background(250); //Cor do fundo da tela
efeito_do_mouse();
cabecalho();
potenciometro();
menu_potenciometro();
lm_35();
mouse_interacao();
// Foi tudo feito em funções nas abas, daí é só chamar cada uma delas
mantendo a organização
}
Anexo B - Cabeçalho
void cabecalho() {
image(ufcg_logo, 1,30, width/5.5, height/4); //posição a exibir e tamanho
redimensionado
fill(0,0,0); textFont(fonte); textSize(22); //Atributos do texto de cor,
fonte e tamanho da letra
void efeito_do_mouse () {
noStroke(); // Desativar traço
fill(0, 15); // Cor de Preenchimento do que vem abaixo
Anexo D - LM35
int pino_lm35 = 2; //Pino que vai estar conectado
float val_leitura = 0; //Valor inicial
void lm_35() {
arduino.pinMode(pino_lm35, Arduino.INPUT); //setup pino na input
(A0=2)
val_leitura = arduino.analogRead(pino_lm35)*(0.48); // Valor da temperatura
convertido ou ajustado
26
delay(50);
//LM35 MENU---------------------------------------------
fill(0); // Cor de Preenchimento preto
text("Sensor LM35", 305,480); //Escreve o texto nessa posição
text("Temperatura = ", 305, 510);
fill(0, 0, 255, 20); // Cor do objeto abaixo
rect(300,485,240,40); // Desenha um retângulo
fill(0,210,0); // Cor do que vem abaixo
text(val_leitura, 445, 510); // Exibe na tela o valor do
Potenciômetro 2
text("°C", 515, 510); // Texto nessa posição
}
//Potenciometro 2 MENU---------------------------------------------
fill(0); // Cor de Preenchimento preto
text("Potenciômetro 2", 0,450); //Escreve o texto nessa posição
27
void mouse_interacao() {
Anexo G - Potenciômetro
int potenciometro1 = 0; //Pino que vai estar conectado
int potenciometro2 = 1; //Pino que vai estar conectado
float val_pot1 = 0; //Valor inicial
float val_pot2 = 0; //Valor inicial
void potenciometro () {
arduino.pinMode(potenciometro1, Arduino.INPUT); //setup pino na
input (A0 =0)
arduino.pinMode(potenciometro2, Arduino.INPUT); //setup pino na
input (A1 =1)
val_pot1 = arduino.analogRead(potenciometro1)*5.2/1023; // Valor do
Potenciômetro 1
delay(5);
val_pot2 = arduino.analogRead(potenciometro2)*5.2/1023; // Em vez de
potenciômetro poderia ser um sensor de temperatura
delay(5);
println(val_pot1, " ", val_pot2);
int i;
for(i=3; i<=5; i++){ // Esse i=3 é pra resolver um bug
que esta ativando outro led sem necessidade
29