Facilitadores
Lucas Cabral
• Graduando em Engenharia de Teleinformática.
• Bolsista CNPq ITI: Fabricação Digital.
• https://www.behance.net/robluch
• lucascabralcarneiro@gmail.com
Reno Beserra
• Graduando em Sistemas e Mídias Digitais.
• Monitor de Projeto de Graduação: Interfaces
Alternativas de Sistemas Multimídias.
• reno.less@gmail.com
Sobre o Workshop
Objetivos
• O workshop busca introduzir o participante à plataforma Arduino,
apresentando suas funcionalidades, variedade de aplicações e
comunidade de usuários. O participante terá a oportunidade de
conhecer as principais funções da linguagem de programação do
Arduino, fazer a leitura de sensores e controlar atuadores, digitais e
analógicos, com ênfase na prática e na experimentação.
Divisão
• Conhecendo a plataforma.
• Primeiros passos.
• Prototipagem.
O que é o Arduino?
Arduino é uma ferramenta para fazer sistemas de computação que
podem sentir e controlar mais do mundo físico do que um computador
pessoal. É uma plataforma de prototipagem eletrônica baseada em uma
placa microcontroladora e em um ambiente de desenvolvimento para
escrever software para a placa.
O que é o Arduino?
Computação Física
Arduino pode ser usado para desenvolver sistemas interativos,
recebendo inputs de uma variedade de sensores e controlando uma
variadade de luzes, motores e outros outputs físicos. Projetos utilizando
Arduino podem utilizar a placa independente ou podem se comunicar
com software rodando em seu computador.
O que é o Arduino?
Computação Física
• Sensores e atuadores.
O que é o Arduino?
Computação Física
• Comunicação com software.
O que é o Arduino?
Referências: http://hacknmod.com/hack/top-40-arduino-projects-of-the-web/
O que é o Arduino?
O microcontrolador do Arduino: ATmega328
O que é o Arduino?
O microcontrolador do Arduino: ATmega328
O que é o Arduino?
As placas podem ser montadas à mão ou compradas pré-montadas.
O que é o Arduino?
Tipos de placas
http://arduino.cc/en/Main/Products
O que é o Arduino?
Shields
http://arduino.cc/en/Main/Products
Origem
Interaction Design Institute Ivrea (IDII)
• O Arduino surgiu da experiência de Maximo Banzi em ensinar
eletrônica para designers para a criação de protótipos interativos.
• Havia a necessidade de se criar uma plataforma de desenvolvimento
barata e fácil de usar por pessoas sem vasto conhecimento técnico.
O jeito Arduino
Prototipagem
• DIY.
• Produzir protótipos de
modo mais simples e
rápido, com menor
custo possível.
• Confirmar
funcionalidades.
• Utilizar dispositivos já
prontos e adaptá-los
de modo a explorar o
trabalho prévio.
O jeito Arduino
Prototipagem
• “No passado, o uso de elementos de
eletrônica significava que teríamos de lidar
com engenheiros o tempo todo e criar
circuitos desenvolvendo um componente
de cada vez; esses problemas faziam com
que pessoas criativas deixassem de se
envolver diretamente com o meio. A
maioria das ferramentas era destinada a
engenheiros e exigia vasto conhecimento
técnico. Nos anos recentes,
microcontroladores tornaram-se mais
baratos e fáceis de serem utilizados,
permitindo a criação de ferramentas
melhores. O progresso que fizemos com o
Arduino significa que aproximamos essas
ferramentas do iniciante, permitindo que
essas pessoas construam seus projetos
depois de apenas dois ou três dias de
trabalho.” Maximo Banzi
O jeito Arduino
Experimentação
• Tinkering: “é o que ocorre quando você tenta realizar algo que ainda
não domina, guiado por sua criatividade, imaginação e curiosidade.
Essa atividade é, em sua essência, um processo que combina
diversão e investigação.” www.exploratorium.edu/tinkering
• Hacking: superar e contornar as limitações de sistemas e estender
suas capacidades.
O jeito Arduino
Colaboração
• Comunidade de usuários.
• Movimento Maker.
• Código aberto.
Experiências
Pinokio
• Luminária animatrônica.
• Utiliza Arduino, Processing e OpenCV para imbuir Pinokio com a
capacidade de estar ciente de seu ambiente, especialmente de
pessoas, e expressar uma variedade dinâmica de comportamentos.
http://www.ben-dror.com/pinokio/
Experiências
Eye Writer
• Sistema de rastreamento ocular open source de baixo custo que
permite pacientes com ELA desenhar usando apenas os olhos.
http://www.eyewriter.org/
Experiências
Eye Writer 2.0
• "A arte é uma ferramenta de empoderamento e de mudança social, e
eu considero-me abençoado por ser capaz de criar e usar o meu
trabalho para promover a reforma da saúde, trazer a consciência
sobre ELA e ajudar os outros.“ Tempt 1
http://www.eyewriter.org/
Experiências
Conscious Clothing
• Sistema vestível de auto-rastreamento de dados.
• Usa um Arduino Lilypad ligado a um sensor de ar de partículas e uma
série de tiras de elástico de malha em torno do tórax para medir a
respiração.
• Os dados geo-referenciados coletados são transmitidos em tempo real
para qualquer dispositivo com Bluetooth, permitindo sua visualização
em formatos diferentes.
http://blog.arduino.cc/2013/07/11/conscious-clothing-wins-a-prize/#more-7644
Experiências
Tweet-a-Pot
• Cafeteira controlada remotamente pelo Twitter.
http://www.instructables.com/id/Tweet-a-Pot-Twitter-Enabled-Coffee-Pot/
Experiências
Arduino Materia 101
• Impressora 3D Open Source de baixo custo.
http://blog.arduino.cc/2014/09/30/arduino-materia-101/
Experiências
Outros
• http://www.instructables.com/id/Arduino-Projects/
• http://hacknmod.com/topics/arduino/
• http://www.nudatech.com/blog/20-arduino-projects-of-2012/
• http://www.nudatech.com/blog/20-arduino-projects-of-2013/
Primeiros Passos
A IDE
Fonte: Introdução à plataforma de desenvolvimento Arduino, Prof Marcelo Wendling
Primeiros Passos
Estrutura da linguagem
• void setup(){} – Função chamada
uma única vez no início da
execução do software. Usada para
configurar hardware e setar
variáveis.
• void loop(){} – Função principal,
chamada continuamente enquanto o
software é executado.
Primeiros Passos
Funções
• pinMode(pin,mode): configura um pino digital pino como entrada ou
saída de dados.
• digitalWrite(pin,value): envia um sinal de HIGH ou LOW para um
pino digital.
• digitalRead(pin): retorna o valor de um pino digital, podendo ser
HIGH ou LOW.
• analogWrite(pin, value): envia um valor analógico entre 0 e 255
para um pino na forma de uma onda PWM.
• analogRead(pin): retorna a leitura de um pino analógico. O Arduino
usa um conversor analógico/digital de 10 bits, mapeando voltagens
de 0 a 5V em inteiros entre 0 e 1023.
• delay(time): pausa o programa na quantidade de tempo
especificada, em milissegundos.
Primeiros Passos
Digital I/O
•pinMode()
•digitalWrite()
•digitalRead()
Analog I/O
•analogReference()
•analogRead()
•analogWrite() - PWM
Advanced I/O
•tone()
•noTone()
•shiftOut()
•shiftIn()
•pulseIn()
Time
•millis()
•micros()
•delay()
•delayMicroseconds()
Math
•min()
•max()
•abs()
•constrain()
•map()
•pow()
•sqrt()
Trigonometry
•sin()
•cos()
•tan()
Random Numbers
•randomSeed()
•random()
Referência: http://arduino.cc/en/Reference/HomePage
Primeiros Passos
PWM
• Pulse Width Modulation (Modulação por Largura de Pulso).
• Técnica para obter resultados analógicos a partir de saídas digitais.
• Uma onda quadrada simula voltagens entre 0V e 5V através da
quantidade de tempo que a saída permanece alta e baixa.
Primeiros Passos
PWM
• No Arduino Uno os pinos 3, 5,
6, 9, 10, e 11 tem função PWM.
• A função analogWrite pode ser
usada para criar PWM.
• Ela recebe como parâmetros o
número do pino e um valor
entre 0 (0%, ou saída em baixo
constante) e 255 (100%, ou
saída em alto constante).
• Frequência: 500Hz.
Primeiros Passos
Leitura de sensores analógicos
• Convertem grandezas físicas em
sinais elétricos mensuráveis
analogicamente.
• O Arduino usa um conversor
analógico/digital de 10 bits,
mapeando voltagens de 0 a 5V
em inteiros entre 0 e 1023.
• O Arduino Uno possui 6 pinos
analógicos.
Primeiros Passos
Grandezas mensuráveis e tipos de sensores mais comuns
• Luz - LDR
• Pressão – Piezoelétrico
• Temperatura – Transdutor de temperatura
• Umidade – Transdutor de umidade
• Movimento – PIR (Passive Infrared)
• Distância - Ultrassônico
• Campo magnético – Magnetômetro
• Aceleração linear - Acelerômetro
• Movimento de rotação – Giroscópio
Primeiros Passos
Leitura de sensor LDR
• Light Dependent Resistor.
• Examples > 01.Basics > ReadAnalogVoltage
• Função analogRead.
Primeiros Passos
Serial
• Serial.begin(speed): configura a taxa de transmissão de bits. O valor
normalmente usado é 9600.
• Serial.println(val, format): envia uma informação pela porta serial
seguida pelo caractere de nova linha.
• Serial.print(val,format): envia uma informação pela porta serial sem
caractere de nova linha.
• Serial.read(): lê dados da porta serial.
Referência: http://arduino.cc/en/Reference/HomePage
Prototipagem
Componentes disponíveis
• 5 Potenciômetros
• 12 LDRs
• 13 LEDs amarelos
• 10 LEDs vermelhos
• 9 LEDs verdes
• 1 LED RGB
• 1 Matriz de LEDs
• 8 Sensores Ultrassônicos
• 2 Sensores PIR
• 5 Discos Piezoelétricos
• 1 Buzzer
• 15 Botões
• 1 Chave liga/desliga
• 1 Display LCD
• 1 Motor de Passo
• 2 Servo Motor
• 1 Sensor de Temperatura
• 1 Transmissor/Receptor RF 433MHz
• 1 Sensor de Umidade
• 1 Sensor de Água
• 1 Leitor de RFID
• 1 Módulo RTC
• 1 Sensor de Efeito Hall
• 1 Matriz de botões
• 1 Joystick
• 1 Teclado Numérico
•
Prototipagem
Sugestões de projetos
• 01.Controle de acesso com senha.
Utiliza o teclado numérico e display de LCD como interface de acesso. O usuário
deve digitar a senha correta para ter acesso. Extra: pode utilizar um servo-motor
para simular uma trava de porta.
• 02.Sistema de segurança de detecção de presença com alarme.
Utiliza o PIR para detectar movimentos, soando um alarme pelo buzzer em caso
positivo. Um botão pode ser usado para ligar e desligar o alarme.
• 03.Semáforo interativo com botão para pedestre.
Utiliza LEDs vermelhos, verdes e amarelos para simular as cores de um
semáforo em um cruzamento e botões para simular o uso por pedestres.
• 04.Mood Lamp.
Lâmpada composta por um LED RGB varia continuamente sua cor. Pode variar
independentemente, por interação com potenciômetro, com botão ou por um
sensor.
• 05.Sonar direcional.
Instrumento que emite alertas sonoros quando objetos se aproximam. Utiliza o
sensor ultrassônico para medir distâncias e um buzzer para emitir sons em
frequências que aumentam quando a distância medida diminui.
Prototipagem
Sugestões de projetos
• 06.Teremim.
Instrumento que muda a frequência de sons de acordo com a proximidade das
mãos. Pode-se usar buzzers e sensores ultrassônicos.
• 07.Sistema de controle de estacionamento.
Indica quais vagas estão ocupadas e quais não estão usando LEDs e sensores
ultrassônicos. Pode-se adicionar botão e servo motor para simular acesso ao
estacionamento.
• 08.Sistema de transmissão de rádio.
Sistema que envia e recebe dados via rádio, utilizando um receptor e um
transmissor RF.
• 09.Controle de acesso com leitor de RFID.
Sistema que permite o acesso utilizando uma etiqueta RFID.
• 10.Sistema de monitoramento de estufa.
Monitora a temperatura e umidade e emite um alarme caso esteja fora dos valores
aceitáveis. Utiliza um sensor de temperatura umidade e um buzzer.
Prototipagem
Sugestões de projetos
• 11.Monitoramento de entrada e saída de estabelecimento.
Conta o número de pessoas que entraram em um local. Utiliza o sensor PIR.
• 12.Alimentador de animais.
Libera uma quantidade de ração nos horários programados. Pode ser feito com
servo motor e módulo RTC. Requer recipiente e abertura móvel.
• 13.Piano digital.
Usa um buzzer e teclas de papel alumínio como sensores capacitivos para gerar
diferentes frequências de sons.
• 14.Instrumento percussivo digital.
Usa sensores piezoelétricos para converterem batidas em sinais elétricos,
gerando frequências para o buzzer emitir sons.