Você está na página 1de 25

Processing e Arduino

// uma introdução à coleta de dados

Barbara Castro
Doutoranda em Artes Visuais EBA/UFRJ
Mestre em Artes Visuais EBA/UFRJ (2013)
www.barbaracastro.com.br
Processing e Arduino
// uma introdução à coleta de dados

Aula 3 - 26 de fevereiro de 2015


Introdução à Arduino

Barbara Castro
Doutoranda em Artes Visuais EBA/UFRJ
Mestre em Artes Visuais EBA/UFRJ (2013)
www.barbaracastro.com.br
O que é o Arduino?

> Massimo Banzi (2005) no Interaction Design Institute de Ivrea


> Criação de uma plataforma ao estilo Processing, mas
para hardware, de baixo custo, para estudantes
> Plataforma de prototipagem eletrônica opensource,
microcontrolador, linguagem (C) e ambiente de
programação

Processing e Arduino // uma introdução à coleta de dados 3 /25


Olhando o Arduino Uno

Entradas/Saídas Digitais

Botão Reset

LED (Pin 13)


USB
LED de Transmissão
LED de Recepção

Microcontrolador

Alimentação
de Energia

Pins de Energia Entradas Analógicas


Processing e Arduino // uma introdução à coleta de dados 4 /25
O que fazer?
Medir entradas Controlar saídas
(sensores) (leds, motores, etc.)

ldr
sonar (luz) botão led

motor
pulso

barômetro monóxido
de carbono

piezo

Processing e Arduino // uma introdução à coleta de dados 5 /25


Tipos de entradas e saídas
Analógicos - contínuos valores

ldr
sonar (luz) botão led

motor
pulso

barômetro monóxido
de carbono

piezo

Processing e Arduino // uma introdução à coleta de dados 6 /25


Tipos de entradas e saídas
Digitais - binário boolean
(exceção ~ que são PWM, que podem simular analógico)

ldr
sonar (luz) botão led

motor
pulso

barômetro monóxido
de carbono

piezo

Processing e Arduino // uma introdução à coleta de dados 7 /25


Projetos inspiradores

No Place Like Home - Dominic Wilcox

Processing e Arduino // uma introdução à coleta de dados 8 /25


Projetos inspiradores

The Abovemarine - Adam Ben-Dror

Processing e Arduino // uma introdução à coleta de dados 9 /25


Projetos inspiradores

Electrolibrary - Waldek Węgrzyn

Processing e Arduino // uma introdução à coleta de dados 10 /25


Projetos inspiradores

Immaterials - Timo Arnall

Processing e Arduino // uma introdução à coleta de dados 11 /25


A interface do Arduino

> Baixar, instalar e abrir o Arduino (www.arduino.cc)

Menu
Ações* Monitorar o Serial
Abas (dados lidos)

Código

* Verificar erros
Carregar sketch

Mensagens
Console
Barra de estado

Processing e Arduino // uma introdução à coleta de dados 12 /25


Configuração Arduino

> Placa: Selecionar o tipo de Arduino que está sendo utilizado


Menu Ferramentas > Placa > “Arduino Uno”

> Porta: Selecionar qual porta USB está sendo utilizada


Menu Ferramentas > Porta > “COM3”

Processing e Arduino // uma introdução à coleta de dados 13 /25


Primeiro exemplo

> Abrir o exemplo Blink (File>Examples>01.Basics>Blink)

void setup() {
pinMode(13, OUTPUT); //o pin será utilizado para saída
}

void loop() {
digitalWrite(13, HIGH); // turn the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off
delay(1000); // wait for a second
}

Processing e Arduino // uma introdução à coleta de dados 14 /25


Alguns componentes para começar

Breadboard
placa reutilizável para experimentos
sem solda

Jumpers

Processing e Arduino // uma introdução à coleta de dados 15 /25


Revendo conceitos de eletricidade

Tensão(V) - Unidade: Volts (V) V=R*I


medida de potencial elétrico

Corrente (I) - Unidade: Amperes(A) I=V/R


intensidade do fluxo de corrente

Resistência(R) - Unidade: Ohms (Ω) R = V/I


dificuldade de se estabelecer uma corrente elétrica

*Potência(P) - Unidade: Watt(W) P = V*I


Consumo de energia

Processing e Arduino // uma introdução à coleta de dados 16 /25


Resistores
Utilize resistores para regular a * Para descobrir qual resistor usar: R=V/I
corrente do circuito e evitar que
componentes super-aqueçam ou Ex: LED Vermelho 3mm
queimem.
R = voltagem da fonte(5V) - voltagem do led (2V)
Código de Cores corrente do led (20mA)
R = 3/0.02
R = 150 Ω (no mínimo)

Processing e Arduino // uma introdução à coleta de dados 17 /25


LED externo

* Software para desenho e/


ou teste de circuitos
Fritzing
123dCircuit

Processing e Arduino // uma introdução à coleta de dados 18 /25


TEMPO PARA EXPERIMENTAR
ARDUINO - SAÍDAS

Processing e Arduino // uma introdução à coleta de dados 19 /25


Recebendo dados de sensores (Código do Arduino)

NO SETUP
> Serial.begin(frequencia); // frequencia de entrada de bits/s
// 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800,
38400, 57600, or 115200

NO LOOP
> analogRead (numerodoPin); // função para captar dados
Ex: int sensor = analogRead(A0);
> Serial.print(dado); // escrever valores no serial monitor para
serem acessados no Processing posteriormente

* Para enviar/receber vários dados de Arduino para Processing


seguir exemplo 04.Communication > VirtualColorMixer no Arduino

Processing e Arduino // uma introdução à coleta de dados 20 /25


TEMPO PARA EXPERIMENTAR
ARDUINO - ENTRADAS

Processing e Arduino // uma introdução à coleta de dados 21 /25


Projetos inspiradores

Hiperorganismo antropofágico - Guto Nóbrega

Processing e Arduino // uma introdução à coleta de dados 22 /25


Classe Serial no Processing

GLOBAL
> import processing.serial.*;
Serial porta;

NO SETUP
> porta = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil(‘\n’); // eventos para cada linha

Processing e Arduino // uma introdução à coleta de dados 23 /25


Evento Serial no Processing
void serialEvent(Serial porta) {
String inString = porta.readStringUntil(‘\n’);
if (inString != null) { // verificar conteúdo para evitar erros
inString = trim(inString); // eliminar espaços
// separar valores por vírgula em um array e converter para float
float [] sensors = float(split(inString, “,”));
sensor1 = sensors[0];
sensor2 = sensors[1];
}
* Arrays são uma coleção de variáveis
do mesmo tipo acessáveis por índice
tipo nome [] = {valor0, valor1, valor2};
Ex: int dados [] = {3,7,21}; dados[1]=7;

Processing e Arduino // uma introdução à coleta de dados 24 /25


TEMPO PARA EXPERIMENTAR
PROCESSING E ARDUINO!

Processing e Arduino // uma introdução à coleta de dados 25 /25