workshop arduino seti 2014

48
Introdução ao Arduino

Upload: lucas-cabral

Post on 18-Dec-2014

80 views

Category:

Technology


2 download

DESCRIPTION

Workshop ministrado durante a IV Semana de Engenharia de Teleinformática da Universidade Federal do Ceará.

TRANSCRIPT

Page 1: Workshop Arduino SETi 2014

Introdução ao Arduino

Page 2: Workshop Arduino SETi 2014

Lucas Cabral• Graduando em Engenharia de

Teleinformática.• Bolsista CNPq ITI: Fabricação Digital.• https://www.behance.net/robluch• [email protected]

Reno Beserra• Graduando em Sistemas e Mídias

Digitais.• Monitor de Projeto de Graduação:

Interfaces Alternativas de Sistemas Multimídias.

[email protected]

Facilitadores

Page 3: Workshop Arduino SETi 2014

Facilitadores

Com o que nós trabalhamos?

http://www.ledufc.org/

Page 4: Workshop Arduino SETi 2014

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.

Sobre o Workshop

Page 5: Workshop Arduino SETi 2014

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.

Page 6: Workshop Arduino SETi 2014

O que é o Arduino?

Computação FísicaArduino 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.

Page 7: Workshop Arduino SETi 2014

O que é o Arduino?

Computação Física• Sensores e atuadores.

Page 8: Workshop Arduino SETi 2014

O que é o Arduino?

Computação Física• Comunicação com software.

Page 9: Workshop Arduino SETi 2014

O que é o Arduino?

Referências: http://hacknmod.com/hack/top-40-arduino-projects-of-the-web/

Page 10: Workshop Arduino SETi 2014

O que é o Arduino?

O que contém na placa?

Page 11: Workshop Arduino SETi 2014

O que é o Arduino?O microcontrolador do Arduino: ATmega328

Page 12: Workshop Arduino SETi 2014

O que é o Arduino?

O microcontrolador do Arduino: ATmega328

Page 13: Workshop Arduino SETi 2014

O que é o Arduino?As placas podem ser montadas à mão ou compradas

pré-montadas.

Page 14: Workshop Arduino SETi 2014

O que é o Arduino?

Tipos de placas

http://arduino.cc/en/Main/Products

Page 15: Workshop Arduino SETi 2014

O que é o Arduino?

Shields

http://arduino.cc/en/Main/Products

Page 16: Workshop Arduino SETi 2014

OrigemInteraction 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.

Page 17: Workshop Arduino SETi 2014

O jeito ArduinoPrototipagem• 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.

Page 18: Workshop Arduino SETi 2014

O jeito ArduinoPrototipagem• “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

Page 19: Workshop Arduino SETi 2014

O jeito ArduinoExperimentaçã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.

Page 20: Workshop Arduino SETi 2014

O jeito ArduinoColaboração• Comunidade de usuários.• Movimento Maker.• Código aberto.

Page 21: Workshop Arduino SETi 2014

O jeito Arduino

Colaboração• http:// www.arduino.cc • http:// www.arduino.cc/playground • http://www.instructables.com• http://makezine.com/category/electronics/arduino/• http://hacknmod.com/topics/arduino/• http:// www.labdegaragem.org/• http://arduino-ce.blogspot.com.br/

Page 22: Workshop Arduino SETi 2014

ExperiênciasPinokio• 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/

Page 23: Workshop Arduino SETi 2014

ExperiênciasEye Writer• Sistema de rastreamento ocular open source de baixo custo

que permite pacientes com ELA desenhar usando apenas os olhos.

http://www.eyewriter.org/

Page 24: Workshop Arduino SETi 2014

ExperiênciasEye 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/

Page 25: Workshop Arduino SETi 2014

ExperiênciasConscious 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

Page 26: Workshop Arduino SETi 2014

ExperiênciasTweet-a-Pot• Cafeteira controlada remotamente pelo Twitter.

http://www.instructables.com/id/Tweet-a-Pot-Twitter-Enabled-Coffee-Pot/

Page 27: Workshop Arduino SETi 2014

ExperiênciasArduino Materia 101• Impressora 3D Open Source de baixo custo.

http://blog.arduino.cc/2014/09/30/arduino-materia-101/

Page 28: Workshop Arduino SETi 2014

ExperiênciasOutros• 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/

Page 29: Workshop Arduino SETi 2014

Primeiros PassosA IDE

Fonte: Introdução à plataforma de desenvolvimento Arduino, Prof Marcelo Wendling

Page 30: Workshop Arduino SETi 2014

Primeiros Passos

Hello World: LED pisca-pisca• Examples > 01.Basics > Blink

Page 31: Workshop Arduino SETi 2014

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.

Page 32: Workshop Arduino SETi 2014

Primeiros PassosFunçõ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.

Page 33: Workshop Arduino SETi 2014

Primeiros Passos

Digital I/O•pinMode()•digitalWrite()•digitalRead()Analog I/O•analogReference()•analogRead()•analogWrite() - PWMAdvanced 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

Page 34: Workshop Arduino SETi 2014

Primeiros PassosPWM• 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.

Page 35: Workshop Arduino SETi 2014

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.

Page 36: Workshop Arduino SETi 2014

Primeiros Passos

Controle de LED por PWM• Examples > 01.Basics > Fade

Page 37: Workshop Arduino SETi 2014

Primeiros Passos

Controle de LED por PWM e um botão• Função digitalRead.

Page 38: Workshop Arduino SETi 2014

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.

Page 39: Workshop Arduino SETi 2014

Primeiros PassosGrandezas 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

Page 40: Workshop Arduino SETi 2014

Primeiros PassosSensores mais comuns

Page 41: Workshop Arduino SETi 2014

Primeiros Passos

Leitura de sensor LDR• Light Dependent Resistor.• Examples > 01.Basics > ReadAnalogVoltage• Função analogRead.

Page 42: Workshop Arduino SETi 2014

Primeiros PassosSerial• 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

Page 43: Workshop Arduino SETi 2014

Primeiros PassosLED controlado por LDR e PWM

Page 44: Workshop Arduino SETi 2014

PrototipagemComponentes 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

Page 45: Workshop Arduino SETi 2014

PrototipagemSugestõ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.

Page 46: Workshop Arduino SETi 2014

PrototipagemSugestõ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.

Page 47: Workshop Arduino SETi 2014

PrototipagemSugestõ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.

Page 48: Workshop Arduino SETi 2014