workshop arduino seti 2014
DESCRIPTION
Workshop ministrado durante a IV Semana de Engenharia de Teleinformática da Universidade Federal do Ceará.TRANSCRIPT
Introdução ao Arduino
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.
Facilitadores
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
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í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.
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 que contém na placa?
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
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.
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.
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
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.
O jeito ArduinoColaboração• Comunidade de usuários.• Movimento Maker.• Código aberto.
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/
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/
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/
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/
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
ExperiênciasTweet-a-Pot• Cafeteira controlada remotamente pelo Twitter.
http://www.instructables.com/id/Tweet-a-Pot-Twitter-Enabled-Coffee-Pot/
ExperiênciasArduino Materia 101• Impressora 3D Open Source de baixo custo.
http://blog.arduino.cc/2014/09/30/arduino-materia-101/
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/
Primeiros PassosA IDE
Fonte: Introdução à plataforma de desenvolvimento Arduino, Prof Marcelo Wendling
Primeiros Passos
Hello World: LED pisca-pisca• Examples > 01.Basics > Blink
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 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.
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
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.
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
Controle de LED por PWM• Examples > 01.Basics > Fade
Primeiros Passos
Controle de LED por PWM e um botão• Função digitalRead.
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 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
Primeiros PassosSensores mais comuns
Primeiros Passos
Leitura de sensor LDR• Light Dependent Resistor.• Examples > 01.Basics > ReadAnalogVoltage• Função analogRead.
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
Primeiros PassosLED controlado por LDR e PWM
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
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.
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.
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.