SlideShare uma empresa Scribd logo
introdução ao arduino Tiago Barros|tiago.barros@cesar.org.br Inovação é a gente!
conteúdo computação física conceitos básicos de eletricidade conceitos básicos de eletrônica plataforma arduino sinais analógicos e digitais sensores e atuadores comunicação serial
computação física
computação física uso de computação e eletrônica [sensores e atuadores] na prototipação de objetos físicos para interação com seres humanos comportamento implementado por software utilização de microcontroladores
computação física o objetivo é  interligar  o mundo físico com o mundo virtual usar a computação e a interação com a tecnologia para o desenvolvimento das suas atividades meio para  comunicação  e  interação  entre  pessoas
computação física como vemos os computadores?
computação física teclado mouse monitor CPU caixas de som como vemos os computadores?
computação física como os computadores nos veem?
computação física dedos  [teclado/mouse] olho  [monitor] duas orelhas  [caixas de som] reflexo das entradas e saídas do computador como os computadores nos veem?
computação física “ mudar a forma que os computadores nos veem mudará como eles interagem conosco” Tom Igoe – Physical Computing
conceitos básicos de eletricidade
eletricidade eletricidade - interação entre partículas atômicas universo formado de átomos partículas atômicas: prótons: cargas positivas elétrons: cargas negativas
eletricidade Atomos com  mais   elétrons  que prótons estão carregados  negativamente  (íon negativo) Atomos com  menos   elétrons  que prótons estão carregados  positivamente  (íon positivo) “ buraco” “ elétron extra”
eletricidade cargas iguais se repelem cargas opostas se atraem cargas em movimento  geram campo magnético campo magnético em movimento  gera corrente elétrica N S
eletricidade – condutores e isolantes isolante – evita a passagem de elétrons condutor – permite o fluxo de elétrons
eletricidade – diferença de potencial (v) cargas negativas quanto maior a tensão, mais “força” teem os elétrons  diferença de potencial  ou tensão. cargas positivas V
eletricidade – corrente elétrica (i) quanto maior a corrente,  maior a “quantidade” de elétrons  fluxo de elétrons em um condutor
eletricidade – tipos de corrente elétrica corrente contínua corrente alternada
eletricidade – tipos de corrente elétrica inversão de polaridade no tempo mesma polaridade no tempo (sentido continuo)
eletricidade – resistência elétrica (r) propriedade do material condutor em reduzir  a passagem dos elétrons elétrons “se acumulam e batem”  no condutor, “dissipando” sua energia (gerando calor)
eletricidade – lei de ohm V = R x I a diferença de potencial (V) entre dois pontos de um  condutor é proporcional à corrente elétrica (I) que o  percorre e à sua resistência (R) V R I R = V/I I = V/R
eletricidade – circuito elétrico + – V i R gerador [fonte] condutor [caminho] carga [consumidor]
e agora, computação...
sistemas computacionais reativos
sistemas computacionais reativos  percepção do ambiente, recebendo estímulos atavés de sensores; e reação aos estímulos, de acordo com o seu comportamento (software), através de atuadores.
plataforma Arduino
plataforma arduino microcontrolador Atmel programação usando Wiring (subconjunto de processing, baseado em C/C++) open-source: evolução da plataforma através de contribuições dos usuários
plataforma arduino - hardware Duemilanove mini lilypad boarduino paperduino mega pro
plataforma arduino - hardware portas 14 entradas/saídas digitais  6 entradas analógicas memória RAM: 1K Flash (programa): 16k – 2k (bootloader) velocidade de processamento: 16MHz
plataforma arduino – hardware
plataforma arduino - instalação driver  windows: FTDI Serial USB linux: não precisa instalar nada :-) software  é só descompactar e executar
plataforma arduino - instalação Selecionando a placa e a porta serial
plataforma arduino – ambiente área de código área de status e saída serial compilar  (verif. programa) parar execução novo abrir salvar enviar programa para placa exibir serial
plataforma arduino – ciclo de vida escrever compilar enviar para placa verificar execução corrigir erros corrigir erros
atuadores
plataforma arduino – estrutura do sketch
plataforma arduino – linguagem linguagem baseada em C (mas bem mais fácil) comandos básicos pinMode() – define um pino com entrada ou saída digitalWrite() – liga ou desliga uma saída digital delay() – “espera” um determinado tempo
plataforma arduino – linguagem Exemplos pinMode(num_do_pino, OUTPUT); digitalWrite(num_do_pino, valor);  valor é LOW ou HIGH (0 ou 1, 0V ou 5V) delay(milisegundos);
plataforma arduino – linguagem constantes LOW | HIGH  – indica nível baixo (0V) e alto (5V) nos pinos INPUT | OUTPUT  – define se um pino vai ser pino de entrada ou de saída
atividade prática!
prática fazer o programa hello arduino, que pisca um led use o pino 13 de saída digital, a placa já possui um led ligado a ele :-)
plataforma arduino – hello arduino
Perguntas
plataforma arduino – linguagem comandos básicos analogWrite() – escreve um valor analógico no pino analogWrite(num_pino, valor);   valor entre 0 e 255
eletrônica – modulação PWM a função analogWrite() escreve “pulsos” muito rápidos no pino digital (só funciona nos pinos marcados com PWM). o valor a ser escrito representa o tempo que o pulso fica em nível alto e varia de 0 a 255. quanto mais tempo o pulto permanecer em nível alto, maior é a “tensão média” da saída
plataforma arduino - linguagem variáveis Espaço reservado na memória para armazenamento de valores  Variáveis são declaradas de acordo com o tipo de dado a ser armazenado (int, long, char, etc…) tipo nome = valor; Exemplo: int x = 10; int y = 20; int resultado; char vogal = ‘a’; Resultado = x + y;
plataforma arduino – linguagem for for (inicialização; condição; incremento) {  //comando(s);  } for (int i=0; i <= 255; i++){  analogWrite(PWMpin, i);  delay(10);  }
mais prática!
eletrônica – protoboard antes disso:  Protoboard
eletrônica – protoboard jumpers
antes disso mais um pouco de eletrônica...
eletrônica – resistores  oferecem resistência à passagem da corrente elétrica transformam energia elétrica em energia térmica [pode ser usado como atuador] tipos: carvão [carbono] filme fio resistência: fixo variável
eletrônica – resistores  valores expressos em ohms o corpo dos resistores possui um código de cores para identificar o valor
agora sim, prática!
prática modificar o programa hello arduino para acender o led com efeito de “fading” (acender gradativamente) dica: use analogWrite() em vez de digitalWrite(), variando os valores escritos, de 0 a 255
prática circuito Figura retirada de http://arduino.cc/
prática esquemático Figura retirada de http://arduino.cc/
prática protoboard Figura retirada de  http://www.multilogica-shop.com/Aprendendo/Exemplos/Fading
prática Mãos à obra! modificar o programa hello arduino para acender o led com efeito de “fading” (acender gradativamente) dica: use analogWrite() em vez de digitalWrite(), variando os valores escritos, de 0 a 255
Perguntas
sensores
sensores – chave (switch/button)  interrompe a passagem da corrente elétrica liga/desliga o circuito sensor de toque esquemático
plataforma arduino – linguagem Comandos digitalRead() – le um pino de entrada Exemplo: int chave = 0; chave = digitalRead(num_do_pino);
plataforma arduino – linguagem if if (variavel == 0) {  // faça alguma coisa  }   if … else if (variavel == 1){  // acao A  } else {  // acao B  }
sensores arduino lê tensões de  entrada (e não valores 0 e 1)   5 volts == HIGH (1) 0 volts == LOW (0) sem conexão em um pino, a entrada flutua entre 0 e 5 volts  (HIGH e LOW) este resistor é necessário para que o pino seja levado para 0 quando não estiver conectado (chave aberta)
atividade prática!
sensores - prática fazer o circuito e o programa para acender o led 13 de acordo com sinal de entrada do pino 2
sensores - prática esquemático Figura retirada de http://arduino.cc/
sensores - prática protoboard Figura retirada de http://arduino.cc/
sensores - prática
atividade prática!
sensores - prática chave no pino 2 seleciona a saída do LED – “fade” ou “blink”
Perguntas
voltando à eletrônica...
eletrônica – sinais analógicos e digitais  sinal com variação contínua no tempo sinal com variação discreta (valores pré-definidos)
eletrônica – conversão de sinais valor é lido em intervalos regulares de tempo e transformado em um número digital
eletrônica – conversão de sinais vários valores, não só HIGH e LOW. quantiade de valores é a resolução.
eletrônica – conversão de sinais resolução de  8 bits = 256 valores resolução de  16 bits = 65536 valores
eletrônica - resistores Como funciona  um resistor variável? no arduino, o valor da tensão é transformado em um valor digital entre 0 e 1023
atividade prática!
sensores analógicos – prática  ler o valor do resistor variável e ligar um LED se esse valor passar de um determinado limite.
sensores analógicos – prática  esquemático Figura retirada de http://arduino.cc/
sensores analógicos – prática  circuito Figura retirada de http://arduino.cc/
entrada analógica – prática
protocolos de comunicação
comunicação serial – RS232 chip ATMEGA 168 só tem interface serial, não tem USB nossa placa arduino possui um chip que converte Serial para USB usamos o mesmo cabo USB pra enviar dados pro PC via serial
comunicação serial – RS232 o arduino possui uma biblioteca que implementa comunicação serial Serial.begin(); Serial.print(); Serial.read();
comunicação serial – RS232 Leds TX: dados enviados para o PC RX: dados recebidos do PC
atividade prática!
comunicação serial - prática “ Hello Arduino” via serial
comunicação serial - prática
eletrônica – resistores LDR resistor variável sensível à luz
eletrônica – resistores LDR resistor variável sensível à luz circuito para arduino porque o resistor de 1k? - para limitar a corrente se o LDR assumir valores  muito baixos
atividade prática!
comunicação serial - prática ler valores do LDR e enviar via serial
atividade prática!
entrada analógica – prática  fazer uma “escala de leds” que acendem de acordo com o aumento do valor lido do LDR na entrada analógica.
Perguntas
sensores sonoros microfones transformam ondas sonoras em ondas elétricas a variação de tensão é bem pequena em um microfone de eletreto precisa de circuito para amplificar o sinal e seu valor poder ser lido pelo arduino
sensores sonoros circuito para amplificar o sinal do microfone para o arduino
sensores sonoros já temos o circuito pronto!
atividade prática!
sensores sonoros - prática detectar comandos sonoros e acender leds correspondentes dica: medir a tensão de saída do circuito para calibrar o microfone (lembrando que a saída “segura” o valor por 0,5 segundo).
Perguntas
atuadores sonoros Buzzer piezoelétrico formado por cerâmica piezoelétrica e disco metálico ao receber uma tensão o cristal se expande, quando removemos a tensão ele volta
atuadores sonoros Buzzer piezoelétrico 2 fios: preto é negativo e vermelho é positivo aplicando uma tensão variável produz vibração que é traduzida em som
atividade prática!
atuadores sonoros - prática programar o arduino para emitir som como ligar o buzzer: fio preto no GND e vermelho no pino de saída desejado podemos ligar um resistor em série para diminuir o volume
atuadores sonoros como programar o arduino para tocar uma nota musical? uma nota musical é um som em uma determinada frequência a frequência de uma nota significa quantas vezes o atuador sonoro vibra em 1 segundo
atuadores sonoros para fazer o atuador vibrar, escrevemos no pino uma sequência de valores HIGH e LOW, tantas vezes por segundo quanto for a frequência da nota o tempo de cada variação HIGH e LOW é chamada de período e é o inverso da frequência baixa frequência alta frequência período período 1 segundo
plataforma arduino - linguagem funções tipoRetorno nome(tipo parametro1, tipo parametro2)  { //corpo da fução return variavel_do_mesmo_tipo_de_retorno;  } Exemplo: int funcaoSoma(int a, int b)  { int resultado = a + b; return resultado;  }
plataforma arduino - linguagem arrays conjunto (sequencia) de variáveis do mesmo tipo seus valores são acessados através do índice  tipo nome[tamanho] = {lista de valores separados por virgula}; Exemplo: int valores[4] = {100, 200, 300, 400}; char vogais [5] = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’}; int num = valores[2]; int y = 3; int x = valores[y]; char vogal = vogais[y];
atuadores sonoros como programar o arduino para para tocar uma nota musical? timeHigh = periodo / 2 = 1 / (2 * frequência) * nota    frequência  periodo  tempo em nivel alto * c (dó)   261 Hz    3830  1915    * d (ré)   294 Hz    3400  1700    * e (mi)   329 Hz    3038  1519    * f (fá)   349 Hz    2864  1432    * g (sol)  392 Hz    2550  1275    * a (lá)   440 Hz    2272  1136    * b (si)   493 Hz    2028 1014   * C  (dó)   523 Hz   1912  956 char notes[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };  int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
atividade prática!
atuadores sonoros - prática programar o arduino para tocar uma nota musical void playTone(int period, int duration)  {  for (long i = 0; i < duration * 1000L; i += period * 2)  {  digitalWrite(speakerPin, HIGH);  delayMicroseconds(period);  digitalWrite(speakerPin, LOW);  delayMicroseconds(period);  } }
atividade prática!
atuadores sonoros - prática tocar uma melodia, baseado na escala de notas abaixo: cdef ff cdcd dd cgfe ee cdef ff
Perguntas
displays
eletrônica – displays de LEDs (7 seg) conjunto de leds organizados de forma a representar numeros e caracteres ligando os leds corretos, representamos numeros catodo comum ou anodo comum
atividade prática!
displays de LEDs - prática temporizador digital
displays de LEDs - prática temporizador digital - protoboard
Perguntas
prática final de hoje – luzes e sons montar um “dispositivo” interativo que utilize luz e som como entradas e/ou saídas.
arduino - referencias  Lista dos comandos da linguagem em:  http://arduino.cc/en/Reference/HomePage Lista dos tutoriais em:  http://www.arduino.cc/en/Tutorial/HomePage

Mais conteúdo relacionado

PPT
Introdução ao arduino palestra
PPTX
Aula básica Arduino
PPT
Curso de Arduino Completo
PDF
Mini curso arduino
PPTX
Palestra sobre Arduino e Raspberry Pi (Totvs)
PPTX
Introdução a arduino, oficina para iniciantes
ODP
Arduino- Conceitos e Aplicações
PPTX
Mini curso arduino básico pet v2
Introdução ao arduino palestra
Aula básica Arduino
Curso de Arduino Completo
Mini curso arduino
Palestra sobre Arduino e Raspberry Pi (Totvs)
Introdução a arduino, oficina para iniciantes
Arduino- Conceitos e Aplicações
Mini curso arduino básico pet v2

Mais procurados (20)

PDF
Minicurso de Arduino Básico
PPTX
1 aula do curso de automação - Arduino
PDF
Slides minicurso Arduino - Arduino Day 2015
PPTX
Arduino Hack Day Corumbá
PDF
Mini-curso de Introdução a Eletrônica com Arduino
PDF
Computação física com arduino
PDF
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
PPTX
Introdução à eletronica e robótica com arduino
PPTX
Arduino day-2015-v1
ODP
Arduino: Soluções para o mundo moderno
PPTX
MiniCursoDeArduino
PDF
Slides minicurso Arduino - Controle de Motores DC
PDF
Sestinfo 2013 - Arduino
PPTX
3 aula do curso de automação - Arduino
PPT
V2 - Microcontroladores: a revolucao do arduino
ODP
Introdução - Arduino - Renan Martins
PDF
Curso de arduino
PDF
Programação em-arduino-módulo-básico
PDF
CESAR School - Prototipação Eletrônica com Arduino
PPT
Técnicas de Prototipação II - LEGO Aula 02
Minicurso de Arduino Básico
1 aula do curso de automação - Arduino
Slides minicurso Arduino - Arduino Day 2015
Arduino Hack Day Corumbá
Mini-curso de Introdução a Eletrônica com Arduino
Computação física com arduino
Minicurso introducao a plataforma arduino nathecia cunha e alcimar medeiros -...
Introdução à eletronica e robótica com arduino
Arduino day-2015-v1
Arduino: Soluções para o mundo moderno
MiniCursoDeArduino
Slides minicurso Arduino - Controle de Motores DC
Sestinfo 2013 - Arduino
3 aula do curso de automação - Arduino
V2 - Microcontroladores: a revolucao do arduino
Introdução - Arduino - Renan Martins
Curso de arduino
Programação em-arduino-módulo-básico
CESAR School - Prototipação Eletrônica com Arduino
Técnicas de Prototipação II - LEGO Aula 02
Anúncio

Destaque (20)

PDF
Apostila para Programar Arduino
PDF
Introdução a Internet das Coisas
PDF
Introdução a Sistemas Embarcados com Arduino - mini-curso
PDF
Arduino - Dicas & Truques
PDF
Palestra: Robótica com Arduino
PDF
Arduino Day 2014 - Construindo um Medidor de Consumo de Energia Conectado à N...
PDF
Programação em C para Arduino
PDF
Android e Arduino para automação residencial
PPT
Práticas de Desenvolvimento de Software
PPT
Interfaces fisicas para dispositivos moveis
PPT
Técnicas de Prototipação II - Physical Computing - Aula 02
PDF
O que falta na internet para as coisas?
PPT
Engenharia de Requisitos
PPT
Engenharia de Requisitos - Aula 2
PDF
Introdução à plataforma Arduino
PDF
Programação em-arduino-módulo-básico
PDF
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
PDF
Introdução ao Arduino
PDF
Apostila Arduino - FBS Eletrônica
PPTX
Robótica e PHP com Arduino - PHPn' Rio 2011
Apostila para Programar Arduino
Introdução a Internet das Coisas
Introdução a Sistemas Embarcados com Arduino - mini-curso
Arduino - Dicas & Truques
Palestra: Robótica com Arduino
Arduino Day 2014 - Construindo um Medidor de Consumo de Energia Conectado à N...
Programação em C para Arduino
Android e Arduino para automação residencial
Práticas de Desenvolvimento de Software
Interfaces fisicas para dispositivos moveis
Técnicas de Prototipação II - Physical Computing - Aula 02
O que falta na internet para as coisas?
Engenharia de Requisitos
Engenharia de Requisitos - Aula 2
Introdução à plataforma Arduino
Programação em-arduino-módulo-básico
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
Introdução ao Arduino
Apostila Arduino - FBS Eletrônica
Robótica e PHP com Arduino - PHPn' Rio 2011
Anúncio

Semelhante a C.E.S.A.R Introducao ao Arduino (20)

PPT
Técnicas de Prototipação II - Physical Computing - Aula 01
ODP
Oficina de Arduino Beta - Matehackers.org
PPT
Arduino Hack Day por Vinicius Senger
PDF
Oficina Arduino
PPTX
Workshop arduino EAD
PPT
Arduino na engenharia civil introdução.ppt
PDF
Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira
PDF
Iniciação à Robótica e Computação Física
PPTX
PPTX
Guia AC mod 5
PPTX
Palestra arduino
PPT
Técnicas de Prototipação II - Physical Computing - Aula 03
PDF
Arduino - Hardware Livre e Robótica
PDF
Arduino - Parte 1.pdf
PPT
Perlduino - Interfaceando sua aplicação com o mundo real!
PDF
Workshop iniciação à robótica - Farrusco
PDF
Arduino001 110911083100-phpapp02
PPTX
PDF
Apostila de-introdução-ao-arduino11
PDF
Arduino para iniciantes
Técnicas de Prototipação II - Physical Computing - Aula 01
Oficina de Arduino Beta - Matehackers.org
Arduino Hack Day por Vinicius Senger
Oficina Arduino
Workshop arduino EAD
Arduino na engenharia civil introdução.ppt
Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Iniciação à Robótica e Computação Física
Guia AC mod 5
Palestra arduino
Técnicas de Prototipação II - Physical Computing - Aula 03
Arduino - Hardware Livre e Robótica
Arduino - Parte 1.pdf
Perlduino - Interfaceando sua aplicação com o mundo real!
Workshop iniciação à robótica - Farrusco
Arduino001 110911083100-phpapp02
Apostila de-introdução-ao-arduino11
Arduino para iniciantes

Mais de Tiago Barros (12)

PDF
Introdução a Internet das Coisas
PDF
REC'n'Play 2019 - Aplicações industriais de internet das coisas: nem tudo é o...
PDF
KNoT - a framework for iot interoperability
PDF
Providing Infrastructure to Enable IoT Solutions
PDF
IEEE IoT Open Standards Committee
PDF
KNoT Manifesto
PDF
KNoT - Uma plataforma de IoT interoperável para o Brasil
PPT
C.E.S.A.R - Prototipación Electronica en Diseño
PPT
Técnicas de Prototipação II - LEGO Aula 05
PPT
Técnicas de Prototipação II - LEGO Aula 04
PPT
Técnicas de Prototipação II - LEGO Aula 01
PPT
Técnicas de Prototipação II - LEGO Aula 03
Introdução a Internet das Coisas
REC'n'Play 2019 - Aplicações industriais de internet das coisas: nem tudo é o...
KNoT - a framework for iot interoperability
Providing Infrastructure to Enable IoT Solutions
IEEE IoT Open Standards Committee
KNoT Manifesto
KNoT - Uma plataforma de IoT interoperável para o Brasil
C.E.S.A.R - Prototipación Electronica en Diseño
Técnicas de Prototipação II - LEGO Aula 05
Técnicas de Prototipação II - LEGO Aula 04
Técnicas de Prototipação II - LEGO Aula 01
Técnicas de Prototipação II - LEGO Aula 03

Último (20)

PPTX
Aula 13 - Tópico Frasal - Argumentação.pptx
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PPTX
Trabalho Cidades sustentáveis ou Utopia.pptx
PDF
Organizador Curricular da Educação em Tempo Integral.pdf
PDF
Uma Introdução às Ciências do Alcorão (Islam)
PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
PPTX
biossegurança e segurança no trabalho (6).pptx
PPTX
brasilcolnia2-101027184359-phpapp02.pptx
PDF
A Revolução Francesa de 1789 slides história
PPTX
disciplulado curso preparatorio para novos
PPT
História e Evolução dos Computadores domésticos
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PPTX
Revolução Industrial - Aula Expositiva - 3U4.pptx
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PDF
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PPTX
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
Aula 13 - Tópico Frasal - Argumentação.pptx
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
Trabalho Cidades sustentáveis ou Utopia.pptx
Organizador Curricular da Educação em Tempo Integral.pdf
Uma Introdução às Ciências do Alcorão (Islam)
GUERRAFRIA.pptdddddddddddddddddddddddddx
INDÚSTRIA_ Histórico da industrialização.pptx
biossegurança e segurança no trabalho (6).pptx
brasilcolnia2-101027184359-phpapp02.pptx
A Revolução Francesa de 1789 slides história
disciplulado curso preparatorio para novos
História e Evolução dos Computadores domésticos
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
Revolução Industrial - Aula Expositiva - 3U4.pptx
saeb_documentos_de_referencia_versao_1.0.pdf
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf

C.E.S.A.R Introducao ao Arduino

  • 1. introdução ao arduino Tiago Barros|tiago.barros@cesar.org.br Inovação é a gente!
  • 2. conteúdo computação física conceitos básicos de eletricidade conceitos básicos de eletrônica plataforma arduino sinais analógicos e digitais sensores e atuadores comunicação serial
  • 4. computação física uso de computação e eletrônica [sensores e atuadores] na prototipação de objetos físicos para interação com seres humanos comportamento implementado por software utilização de microcontroladores
  • 5. computação física o objetivo é interligar o mundo físico com o mundo virtual usar a computação e a interação com a tecnologia para o desenvolvimento das suas atividades meio para comunicação e interação entre pessoas
  • 6. computação física como vemos os computadores?
  • 7. computação física teclado mouse monitor CPU caixas de som como vemos os computadores?
  • 8. computação física como os computadores nos veem?
  • 9. computação física dedos [teclado/mouse] olho [monitor] duas orelhas [caixas de som] reflexo das entradas e saídas do computador como os computadores nos veem?
  • 10. computação física “ mudar a forma que os computadores nos veem mudará como eles interagem conosco” Tom Igoe – Physical Computing
  • 11. conceitos básicos de eletricidade
  • 12. eletricidade eletricidade - interação entre partículas atômicas universo formado de átomos partículas atômicas: prótons: cargas positivas elétrons: cargas negativas
  • 13. eletricidade Atomos com mais elétrons que prótons estão carregados negativamente (íon negativo) Atomos com menos elétrons que prótons estão carregados positivamente (íon positivo) “ buraco” “ elétron extra”
  • 14. eletricidade cargas iguais se repelem cargas opostas se atraem cargas em movimento geram campo magnético campo magnético em movimento gera corrente elétrica N S
  • 15. eletricidade – condutores e isolantes isolante – evita a passagem de elétrons condutor – permite o fluxo de elétrons
  • 16. eletricidade – diferença de potencial (v) cargas negativas quanto maior a tensão, mais “força” teem os elétrons diferença de potencial ou tensão. cargas positivas V
  • 17. eletricidade – corrente elétrica (i) quanto maior a corrente, maior a “quantidade” de elétrons fluxo de elétrons em um condutor
  • 18. eletricidade – tipos de corrente elétrica corrente contínua corrente alternada
  • 19. eletricidade – tipos de corrente elétrica inversão de polaridade no tempo mesma polaridade no tempo (sentido continuo)
  • 20. eletricidade – resistência elétrica (r) propriedade do material condutor em reduzir a passagem dos elétrons elétrons “se acumulam e batem” no condutor, “dissipando” sua energia (gerando calor)
  • 21. eletricidade – lei de ohm V = R x I a diferença de potencial (V) entre dois pontos de um condutor é proporcional à corrente elétrica (I) que o percorre e à sua resistência (R) V R I R = V/I I = V/R
  • 22. eletricidade – circuito elétrico + – V i R gerador [fonte] condutor [caminho] carga [consumidor]
  • 25. sistemas computacionais reativos percepção do ambiente, recebendo estímulos atavés de sensores; e reação aos estímulos, de acordo com o seu comportamento (software), através de atuadores.
  • 27. plataforma arduino microcontrolador Atmel programação usando Wiring (subconjunto de processing, baseado em C/C++) open-source: evolução da plataforma através de contribuições dos usuários
  • 28. plataforma arduino - hardware Duemilanove mini lilypad boarduino paperduino mega pro
  • 29. plataforma arduino - hardware portas 14 entradas/saídas digitais 6 entradas analógicas memória RAM: 1K Flash (programa): 16k – 2k (bootloader) velocidade de processamento: 16MHz
  • 31. plataforma arduino - instalação driver windows: FTDI Serial USB linux: não precisa instalar nada :-) software é só descompactar e executar
  • 32. plataforma arduino - instalação Selecionando a placa e a porta serial
  • 33. plataforma arduino – ambiente área de código área de status e saída serial compilar (verif. programa) parar execução novo abrir salvar enviar programa para placa exibir serial
  • 34. plataforma arduino – ciclo de vida escrever compilar enviar para placa verificar execução corrigir erros corrigir erros
  • 36. plataforma arduino – estrutura do sketch
  • 37. plataforma arduino – linguagem linguagem baseada em C (mas bem mais fácil) comandos básicos pinMode() – define um pino com entrada ou saída digitalWrite() – liga ou desliga uma saída digital delay() – “espera” um determinado tempo
  • 38. plataforma arduino – linguagem Exemplos pinMode(num_do_pino, OUTPUT); digitalWrite(num_do_pino, valor); valor é LOW ou HIGH (0 ou 1, 0V ou 5V) delay(milisegundos);
  • 39. plataforma arduino – linguagem constantes LOW | HIGH – indica nível baixo (0V) e alto (5V) nos pinos INPUT | OUTPUT – define se um pino vai ser pino de entrada ou de saída
  • 41. prática fazer o programa hello arduino, que pisca um led use o pino 13 de saída digital, a placa já possui um led ligado a ele :-)
  • 42. plataforma arduino – hello arduino
  • 44. plataforma arduino – linguagem comandos básicos analogWrite() – escreve um valor analógico no pino analogWrite(num_pino, valor); valor entre 0 e 255
  • 45. eletrônica – modulação PWM a função analogWrite() escreve “pulsos” muito rápidos no pino digital (só funciona nos pinos marcados com PWM). o valor a ser escrito representa o tempo que o pulso fica em nível alto e varia de 0 a 255. quanto mais tempo o pulto permanecer em nível alto, maior é a “tensão média” da saída
  • 46. plataforma arduino - linguagem variáveis Espaço reservado na memória para armazenamento de valores Variáveis são declaradas de acordo com o tipo de dado a ser armazenado (int, long, char, etc…) tipo nome = valor; Exemplo: int x = 10; int y = 20; int resultado; char vogal = ‘a’; Resultado = x + y;
  • 47. plataforma arduino – linguagem for for (inicialização; condição; incremento) { //comando(s); } for (int i=0; i <= 255; i++){ analogWrite(PWMpin, i); delay(10); }
  • 49. eletrônica – protoboard antes disso: Protoboard
  • 51. antes disso mais um pouco de eletrônica...
  • 52. eletrônica – resistores oferecem resistência à passagem da corrente elétrica transformam energia elétrica em energia térmica [pode ser usado como atuador] tipos: carvão [carbono] filme fio resistência: fixo variável
  • 53. eletrônica – resistores valores expressos em ohms o corpo dos resistores possui um código de cores para identificar o valor
  • 55. prática modificar o programa hello arduino para acender o led com efeito de “fading” (acender gradativamente) dica: use analogWrite() em vez de digitalWrite(), variando os valores escritos, de 0 a 255
  • 56. prática circuito Figura retirada de http://arduino.cc/
  • 57. prática esquemático Figura retirada de http://arduino.cc/
  • 58. prática protoboard Figura retirada de http://www.multilogica-shop.com/Aprendendo/Exemplos/Fading
  • 59. prática Mãos à obra! modificar o programa hello arduino para acender o led com efeito de “fading” (acender gradativamente) dica: use analogWrite() em vez de digitalWrite(), variando os valores escritos, de 0 a 255
  • 62. sensores – chave (switch/button) interrompe a passagem da corrente elétrica liga/desliga o circuito sensor de toque esquemático
  • 63. plataforma arduino – linguagem Comandos digitalRead() – le um pino de entrada Exemplo: int chave = 0; chave = digitalRead(num_do_pino);
  • 64. plataforma arduino – linguagem if if (variavel == 0) { // faça alguma coisa } if … else if (variavel == 1){ // acao A } else { // acao B }
  • 65. sensores arduino lê tensões de entrada (e não valores 0 e 1) 5 volts == HIGH (1) 0 volts == LOW (0) sem conexão em um pino, a entrada flutua entre 0 e 5 volts (HIGH e LOW) este resistor é necessário para que o pino seja levado para 0 quando não estiver conectado (chave aberta)
  • 67. sensores - prática fazer o circuito e o programa para acender o led 13 de acordo com sinal de entrada do pino 2
  • 68. sensores - prática esquemático Figura retirada de http://arduino.cc/
  • 69. sensores - prática protoboard Figura retirada de http://arduino.cc/
  • 72. sensores - prática chave no pino 2 seleciona a saída do LED – “fade” ou “blink”
  • 75. eletrônica – sinais analógicos e digitais sinal com variação contínua no tempo sinal com variação discreta (valores pré-definidos)
  • 76. eletrônica – conversão de sinais valor é lido em intervalos regulares de tempo e transformado em um número digital
  • 77. eletrônica – conversão de sinais vários valores, não só HIGH e LOW. quantiade de valores é a resolução.
  • 78. eletrônica – conversão de sinais resolução de 8 bits = 256 valores resolução de 16 bits = 65536 valores
  • 79. eletrônica - resistores Como funciona um resistor variável? no arduino, o valor da tensão é transformado em um valor digital entre 0 e 1023
  • 81. sensores analógicos – prática ler o valor do resistor variável e ligar um LED se esse valor passar de um determinado limite.
  • 82. sensores analógicos – prática esquemático Figura retirada de http://arduino.cc/
  • 83. sensores analógicos – prática circuito Figura retirada de http://arduino.cc/
  • 86. comunicação serial – RS232 chip ATMEGA 168 só tem interface serial, não tem USB nossa placa arduino possui um chip que converte Serial para USB usamos o mesmo cabo USB pra enviar dados pro PC via serial
  • 87. comunicação serial – RS232 o arduino possui uma biblioteca que implementa comunicação serial Serial.begin(); Serial.print(); Serial.read();
  • 88. comunicação serial – RS232 Leds TX: dados enviados para o PC RX: dados recebidos do PC
  • 90. comunicação serial - prática “ Hello Arduino” via serial
  • 92. eletrônica – resistores LDR resistor variável sensível à luz
  • 93. eletrônica – resistores LDR resistor variável sensível à luz circuito para arduino porque o resistor de 1k? - para limitar a corrente se o LDR assumir valores muito baixos
  • 95. comunicação serial - prática ler valores do LDR e enviar via serial
  • 97. entrada analógica – prática fazer uma “escala de leds” que acendem de acordo com o aumento do valor lido do LDR na entrada analógica.
  • 99. sensores sonoros microfones transformam ondas sonoras em ondas elétricas a variação de tensão é bem pequena em um microfone de eletreto precisa de circuito para amplificar o sinal e seu valor poder ser lido pelo arduino
  • 100. sensores sonoros circuito para amplificar o sinal do microfone para o arduino
  • 101. sensores sonoros já temos o circuito pronto!
  • 103. sensores sonoros - prática detectar comandos sonoros e acender leds correspondentes dica: medir a tensão de saída do circuito para calibrar o microfone (lembrando que a saída “segura” o valor por 0,5 segundo).
  • 105. atuadores sonoros Buzzer piezoelétrico formado por cerâmica piezoelétrica e disco metálico ao receber uma tensão o cristal se expande, quando removemos a tensão ele volta
  • 106. atuadores sonoros Buzzer piezoelétrico 2 fios: preto é negativo e vermelho é positivo aplicando uma tensão variável produz vibração que é traduzida em som
  • 108. atuadores sonoros - prática programar o arduino para emitir som como ligar o buzzer: fio preto no GND e vermelho no pino de saída desejado podemos ligar um resistor em série para diminuir o volume
  • 109. atuadores sonoros como programar o arduino para tocar uma nota musical? uma nota musical é um som em uma determinada frequência a frequência de uma nota significa quantas vezes o atuador sonoro vibra em 1 segundo
  • 110. atuadores sonoros para fazer o atuador vibrar, escrevemos no pino uma sequência de valores HIGH e LOW, tantas vezes por segundo quanto for a frequência da nota o tempo de cada variação HIGH e LOW é chamada de período e é o inverso da frequência baixa frequência alta frequência período período 1 segundo
  • 111. plataforma arduino - linguagem funções tipoRetorno nome(tipo parametro1, tipo parametro2) { //corpo da fução return variavel_do_mesmo_tipo_de_retorno; } Exemplo: int funcaoSoma(int a, int b) { int resultado = a + b; return resultado; }
  • 112. plataforma arduino - linguagem arrays conjunto (sequencia) de variáveis do mesmo tipo seus valores são acessados através do índice tipo nome[tamanho] = {lista de valores separados por virgula}; Exemplo: int valores[4] = {100, 200, 300, 400}; char vogais [5] = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’}; int num = valores[2]; int y = 3; int x = valores[y]; char vogal = vogais[y];
  • 113. atuadores sonoros como programar o arduino para para tocar uma nota musical? timeHigh = periodo / 2 = 1 / (2 * frequência) * nota frequência periodo tempo em nivel alto * c (dó) 261 Hz 3830 1915 * d (ré) 294 Hz 3400 1700 * e (mi) 329 Hz 3038 1519 * f (fá) 349 Hz 2864 1432 * g (sol) 392 Hz 2550 1275 * a (lá) 440 Hz 2272 1136 * b (si) 493 Hz 2028 1014 * C (dó) 523 Hz 1912 956 char notes[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
  • 115. atuadores sonoros - prática programar o arduino para tocar uma nota musical void playTone(int period, int duration) { for (long i = 0; i < duration * 1000L; i += period * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(period); digitalWrite(speakerPin, LOW); delayMicroseconds(period); } }
  • 117. atuadores sonoros - prática tocar uma melodia, baseado na escala de notas abaixo: cdef ff cdcd dd cgfe ee cdef ff
  • 120. eletrônica – displays de LEDs (7 seg) conjunto de leds organizados de forma a representar numeros e caracteres ligando os leds corretos, representamos numeros catodo comum ou anodo comum
  • 122. displays de LEDs - prática temporizador digital
  • 123. displays de LEDs - prática temporizador digital - protoboard
  • 125. prática final de hoje – luzes e sons montar um “dispositivo” interativo que utilize luz e som como entradas e/ou saídas.
  • 126. arduino - referencias Lista dos comandos da linguagem em: http://arduino.cc/en/Reference/HomePage Lista dos tutoriais em: http://www.arduino.cc/en/Tutorial/HomePage