Slide 1

Slide 1 text

1.3 Arduino 101 O!cina para principiantes

Slide 2

Slide 2 text

Agenda • O que dá para fazer com Arduinos? • Primeiro circuito: Blink • Coding Dojo com Arduino • ABCdE: ABC da Eletrônica • Circuito semáforo • Fechamento 2 ☈ ☈ ☈

Slide 3

Slide 3 text

Logística • Tags: #arduino101 @ramalhoorg • Workshop: 14 a 18h • Localização dos banheiros • Café, água etc. • Intervalo ≃ 16h 3

Slide 4

Slide 4 text

Apresentações 4

Slide 5

Slide 5 text

Luciano Ramalho • Instrutor e palestrante internacional especializado na linguagem Python 5

Slide 6

Slide 6 text

Luciano Ramalho • Programador auto-didata desde 1978 • BASIC, ASM Z-80, Pascal, C, C++, Smalltalk, Perl, Java, Python, Ruby... • Formado em Biblioteconomia na ECA/USP • O!cina de Programação e Arte (PSI-2615) na Poli/USP com Etienne Delacroix 6

Slide 7

Slide 7 text

Luciano Ramalho • Dono e professor nas Oficinas Turing, escola virtual de computação • Sócio-fundador do Garoa Hacker Clube Turing.com.br oficinas 7

Slide 8

Slide 8 text

Apresentem-se • Descubra o nome, pro!ssão e hobbies de cada pessoa perto de você • Pergunte e conte para seus vizinhos: • porque se interessou pelo Arduino? • já tem algum projeto em mente? 5 minutos 8

Slide 9

Slide 9 text

Censo • Quem entende bem de eletrônica? • Quem sabe um pouco de eletrônica? • Quem entende bem de programação? • Quem sabe um pouco de programação? 9

Slide 10

Slide 10 text

Censo nada pouco muito 3 2 2 0 2 3 0 1 0 LR Eletrônica Programação nada pouco muito 10

Slide 11

Slide 11 text

O que dá para fazer com Arduinos? 11

Slide 12

Slide 12 text

RepRap 3D printer Open hardware Self-replicating!

Slide 13

Slide 13 text

Open hardware • Open hardware: esquemas e software livres, componentes “de prateleira” ou fabricáveis em casa • Arduino é open hardware: copiar é legal • Uso da marca Arduino: sob licença

Slide 14

Slide 14 text

Pisca-pisca biker Arduino Lilypad

Slide 15

Slide 15 text

• Microfone-bafômetro www.instructables.com/id/Breathalyzer-Microphone/ • Pedal de guitarra www.instructables.com/id/Lo-!-Arduino-Guitar-Pedal/ • Robô equilibrista (inspirado no Segway) hacknmod.com/hack/make-a-mini-segway-using-the-arduino/ • Fotogra!a de alta velocidade hacknmod.com/hack/high-speed-photography-how-to-trigger- using-arduino/ • Automação residencial www.makeuseof.com/tag/how-to-build-home-automation-system- raspberry-pi-and-arduino/ Projetos simples 15

Slide 16

Slide 16 text

16 Não por acaso, o logo é ∞

Slide 17

Slide 17 text

Componentes 17

Slide 18

Slide 18 text

Um kit para começar 12! LEDs 5mm, 2 de cada cor ! (verde, vermelho, amarelo, ! laranja, azul e branco) 2! Relés 5v 1! Display 7 segmentos 3 dígitos 1! Micro-servo 9g SG90 TowerPro 1! Buzzer contínuo 1! Placa compatível com Arduino UNO R3 1! Cabo USB AB Controlador 1! Breadboard 830 pontos 1! Placa wire-wrap 5x7 cm 65! Jumpers macho/macho 3! Cabos 3 vias Dupont 20! Resistores 1kΩ 6! Diodos 1N4006 10! Push-button 6x6 mm 2! Potenciômetro 100kΩ 2! Sensores ópticos reflexivos 1! Sensor de luminosidade LDR 3mm 1! Sensor de temperatura LM35 Componentes básicos Componentes de saída Componentes de entrada 18

Slide 19

Slide 19 text

Arduino Uno R3 • Placa com microcontrolador ATmega328 e circuitos auxiliares • interface USB (cliente) • regulador de voltagem aceita 7-12V (recomendação) 19

Slide 20

Slide 20 text

Arduino: alimentação • Externas: • USB: 5V • adaptador DC de 7 a 12V (não incluído) • Vin e GND : 7 a 12V DC 5V via USB 7 a 12V DC GND, Vin 20

Slide 21

Slide 21 text

Arduino: alimentação Pinos de alimentação • Internas: • 3.3 V e 5 V (+) • GND: terra (-) • Vin: direto da fonte externa 7 a 12 V (+) 21

Slide 22

Slide 22 text

Pinos de entrada ou saída 14 pinos de entrada e saída digital: 0 a 13 6 pinos de entrada analógica: A0 a A5 6 deles com Pulse Width Modulation: PWM ʙ 22

Slide 23

Slide 23 text

Entradas × saídas 12! LEDs 5mm, 2 de cada cor ! (verde, vermelho, amarelo, ! laranja, azul e branco) 2! Relés 5v 1! Display 7 segmentos 3 dígitos 1! Micro-servo 9g SG90 TowerPro 1! Buzzer contínuo 10! Push-button 6x6 mm 2! Potenciômetro 100kΩ 2! Sensores ópticos reflexivos 1! Sensor de luminosidade LDR 3mm 1! Sensor de temperatura LM35 Componentes de saída Componentes de entrada • Entradas: chaves, sensores etc. • Saídas: luzes, motores, mostradores, etc. 23

Slide 24

Slide 24 text

Breadboard • Conhecido no Brasil como “protoboard” • No kit: breadboard de 830 furos na foto: 400 furos 24

Slide 25

Slide 25 text

Esquema elétrico de um breadboard comum linhas de alimentação colunas numeradas 25

Slide 26

Slide 26 text

26

Slide 27

Slide 27 text

Note: cada componente se liga a duas ou mais colunas diferentes ...ou conecta uma coluna a uma linha de alimentação

Slide 28

Slide 28 text

Teste: posso ligar assim? exemplos ao vivo... 28

Slide 29

Slide 29 text

LED: light-emitting diode • Diodo emissor de luz • Componente polarizado: tem direção certa para conectar 29

Slide 30

Slide 30 text

LED: light-emitting diode • Pino + (mais longo) ligado na fonte • Pino - ligado no terra • Ligar com resistor em série para proteção chanfro 30

Slide 31

Slide 31 text

LED: circuito básico Resistor para limitar a corrente conforme especificação do LED 31

Slide 32

Slide 32 text

LED RGB • 3 LEDs (vermelho, verde, azul) em um único componente não incluído no kit 32

Slide 33

Slide 33 text

Resistores • Kit: 20 × 1K Ω 33

Slide 34

Slide 34 text

O que é um resistor • Reduz a corrente • Sem polaridade: pode ser montado em qualquer direção • Valor em Ohms (Ω) • Símbolos em esquemas: 34

Slide 35

Slide 35 text

Pequeno desvio para entender o resistor... 35

Slide 36

Slide 36 text

Tensão, corrente & resistência 36

Slide 37

Slide 37 text

Sentindo na pele Cap. 1, p. 5 37

Slide 38

Slide 38 text

Tensão • Medida: Volt (V) • Símbolo em fórmulas: V 9 V 38

Slide 39

Slide 39 text

Resistência • Medida: Ohm (Ω) • Símbolo em fórmulas: R 7mm de língua ≈ 330 Ω 39

Slide 40

Slide 40 text

Corrente • Medida: Ampère (A) • Símbolo em fórmulas: I • 6.241 × 1018 elétrons por segundo 9 V ÷ 330 Ω ≈ 0.027 A 27 mA 40

Slide 41

Slide 41 text

Exemplos de corrente Aparelho auditivo 0.7 mA 0.0007 A Carregador celular simples 500 mA 0.5 A Carregador tablet 2.1 A 2.1 A Torradeira (120V) 16 A 16 A Motor de arranque 120 A 120 A 41

Slide 42

Slide 42 text

Lei de Ohm V = I × R I = V / R R = V / I I V R 42

Slide 43

Slide 43 text

Voltando ao resistor... 43

Slide 44

Slide 44 text

Resistor: código de cores 33 x 101 = 330 Ω 44

Slide 45

Slide 45 text

Resistor: código de cores 330Ω 5% de tolerância: de 313Ω a 346Ω 45

Slide 46

Slide 46 text

Resistor: valores padrão Série E12 da Norma IEC 60063 (para tolerância 10%) 46

Slide 47

Slide 47 text

Resistor: exemplos 330 Ω 1 kΩ 10 kΩ 1 MΩ 47

Slide 48

Slide 48 text

Escolher resistor para LED • Na prática: para proteger um LED comum, em uma instalação provisória, um resistor de 500Ω costuma ser mais que su!ciente • Para calcular o resistor ideal, use a lei de Ohm. Especi!camente: (tensao_fonte − tensao_led) R = corrente_led

Slide 49

Slide 49 text

Termos da fórmula • Tensão fonte: tensão no circuito, 5V no caso de porta digitais no Arduino UNO • Tensão LED: tensão típica entre os pinos do LED, especi!cada como “forward voltage”, “voltage drop” ou “forward supply” • Corrente LED: “forward current”, 20mA é um valor comum (20/1000 ou .02 na fórmula) (tensao_fonte − tensao_led) R = corrente_led

Slide 50

Slide 50 text

Exemplo 50 (3 − 2.2) R = = 40 20/1000 LED (green): fwd. voltage = 2.2V current = 20mA

Slide 51

Slide 51 text

LED RGB 5mm RadioShack • Tensão fonte Arduino UNO = 5V • Tensão LED vermelho: 2V • Corrente LED vermelho: 50mA • Resistor ideal: 60Ω • Resistor real: 68Ω 51 (5 − 2) R = = 60 50/1000

Slide 52

Slide 52 text

Primeiro circuito 52

Slide 53

Slide 53 text

Primeiro circuito: blink 53

Slide 54

Slide 54 text

Pino mais longo (+) Pino 13 Pino GND “terra” (-) Primeiro circuito: blink 54

Slide 55

Slide 55 text

Primeiro circuito: blink

Slide 56

Slide 56 text

56

Slide 57

Slide 57 text

Programação 57

Slide 58

Slide 58 text

Arduino IDE • Editor fácil, baseado no Processing, feito para artistas 58 arduino.cc/en/Main/Software

Slide 59

Slide 59 text

Linguagem • C++, com simpli!cações 59

Slide 60

Slide 60 text

Estrutura comentários 60

Slide 61

Slide 61 text

Estrutura comentários declaração de variável 61

Slide 62

Slide 62 text

Estrutura comentários declaração de variável 62 definições de funções

Slide 63

Slide 63 text

Estrutura comentários declaração de variável 63 definições de funções chamada de função

Slide 64

Slide 64 text

Sintaxe 64 blocos de instruções delimitadas por {...}

Slide 65

Slide 65 text

Sintaxe 65 editor assinala pares de chaves {...}

Slide 66

Slide 66 text

Sintaxe 66 editor marca código com cores para ajudar na leitura e revisão

Slide 67

Slide 67 text

Dicas de sintaxe para C++ • Cada vírgula conta, mas espaços não • Maiúscula ≠ minúscula • ex. Alfa ≠ alfa ≠ ALFA • Todo comando termina com ; • O editor assinala os pares de (), {} e [] 67

Slide 68

Slide 68 text

Lógica 68 Arduino executa a função setup() uma vez após resetar

Slide 69

Slide 69 text

Lógica 69 aqui o pino do led é configurado para saída

Slide 70

Slide 70 text

Lógica 70 Arduino executa a função loop() repetidamente

Slide 71

Slide 71 text

Lógica 71 digitalWrite serve para mudar o estado de um pino digital

Slide 72

Slide 72 text

Lógica 72 Onde você mudaria o código para acionar um LED ligado ao pino 8?

Slide 73

Slide 73 text

Lógica 73 Onde você mudaria o código para mudar a frequência das piscadas?

Slide 74

Slide 74 text

Coding Dojo com Arduino Slides do Garoa Hacker Clube 74

Slide 75

Slide 75 text

Arduino & cia. 75

Slide 76

Slide 76 text

Família Arduino Lilypad Nano Uno Mega etc... 76

Slide 77

Slide 77 text

Microcontrolador do UNO: Atmel ATmega328 • família “AVR” • clock: 16 MHz • SRAM: 2 KB • EEPROM: 1 KB • Flash: 32 KB 77

Slide 78

Slide 78 text

Entradas e saídas no ATmega328 • 28 pinos • 23 pinos multi-funcionais 78 diagrama do datasheet

Slide 79

Slide 79 text

• Função dos pinos: padronizadas e simpli!cadas • Mais fácil de aprender • Mais fácil de expandir 79 Entradas e saídas no Arduino UNO

Slide 80

Slide 80 text

Shields 80 Arduino com dois shields empilhados • Placas de expansão • Alguns exemplos: • Ethernet, Wi-Fi, controle de motores, acelerômetro, GPS, tela LCD touch...

Slide 81

Slide 81 text

Shields 81 5 shields empilhados! • Mais exemplos: • GPRS, NFC/RFID, MIDI sequencer, MP3 decoder, controle de câmera fotográ!ca, XBee radio... • Imperdível: shieldlist.org

Slide 82

Slide 82 text

Clones e derivados • Alguns exemplos: • Severino • Garagino • Sanguino • Program-ME Severino

Slide 83

Slide 83 text

Clone de Arduino em breadboard 83

Slide 84

Slide 84 text

Clone de Arduino em breadboard Vídeo: http://www.youtube.com/watch?v=S4nIV99RMtg 84

Slide 85

Slide 85 text

Mais componentes 85

Slide 86

Slide 86 text

Potenciômetro • Resistor ajustável • Kit: 2 × 100 kΩ • Símbolo em esquemas: 86

Slide 87

Slide 87 text

Potenciômetro: como usar 87 Vout • Ligar pinos laterais na alimentação • Ligar pino central Vout em um pino de entrada analógico

Slide 88

Slide 88 text

LDR ou fotoresistor • Light Dependent Resistor • Kit: 1 × 3mm Ø • Usar com resistor para fazer um divisor de tensão 88

Slide 89

Slide 89 text

Circuito divisor de tensão 89 Vout

Slide 90

Slide 90 text

Ler LDR no Arduino • 5V no LDR • resistor 10k Ω em série • entre eles: Vout ligado a uma entrada analógica (ex. A0) 90

Slide 91

Slide 91 text

Circuito Semáforo 1 91

Slide 92

Slide 92 text

Circuito semáforo 1 • Componentes: • LEDs: verde, amarelo, vermelho • 4 resistores de 1k Ω • 1 potenciômetro de 100k Ω • Código: gist.github.com/ramalho/6202074 92

Slide 93

Slide 93 text

93 Circuito semáforo 1

Slide 94

Slide 94 text

Circuito semáforo 1 gist.github.com/ramalho/6202074 código:

Slide 95

Slide 95 text

gist.github.com/ramalho/6202074

Slide 96

Slide 96 text

gist.github.com/ramalho/6202074

Slide 97

Slide 97 text

Circuito Semáforo 2 97

Slide 98

Slide 98 text

Circuito semáforo 2 • Usar um LDR (sensor de luminosidade) em vez do potenciômetro • Para fazer funcionar, o potenciômetro tem que ser trocado por um divisor de tensão com LDR e resistor de 1k Ω 98 LDR

Slide 99

Slide 99 text

Circuito semáforo 2 • Componentes: • LEDs: verde, amarelo, vermelho • 4 resistores de 1k Ω • 1 potenciômetro de 100k Ω • 1 LDR • 1 resistor de 1k Ω 99 LDR

Slide 100

Slide 100 text

gist.github.com/ramalho/6202074 código: Circuito semáforo 2

Slide 101

Slide 101 text

Ainda mais componentes do kit 101

Slide 102

Slide 102 text

Sensor óptico re&exivo • Detecta objetos até 25mm de distância • Emissor: LED infravermelho • Receptor: fototransistor protegido contra luz visível • Use divisor de tensão chanfro 102

Slide 103

Slide 103 text

Sensor óptico re&exivo divisor de tensão 103

Slide 104

Slide 104 text

104 sensor óptico reflexivo divisor de tensão

Slide 105

Slide 105 text

Display 7 segmentos • 3 dígitos • modelo: CPS03631AB • tipo: anodo comum • part number: CPS03631BR-11 foto: CPS3631AR 105

Slide 106

Slide 106 text

No content

Slide 107

Slide 107 text

Display 7 segmentos Esquema no datasheet CPS03631AB 107 anodo anodo anodo

Slide 108

Slide 108 text

Display 7 segmentos • anodo comum: todos os segmentos de cada dígito ligados ao mesmo anodo • para selecionar um dígito: 5V no anodo correspondente • para acender um segmento: GND no catodo correspondente 108

Slide 109

Slide 109 text

Display 7 segmentos • anodos: pinos 8, 9, 12 do display selecionam o dígito • demais pinos acionam os segmentos A...G e o ponto decimal (dp) 109

Slide 110

Slide 110 text

Display 7 segmentos gist.github.com/ramalho/6566651 código:

Slide 111

Slide 111 text

Servomotor • Movimentos controlados num arco de 180° • Programação fácil via biblioteca Servo no Arduino • exemplos incluídos na IDE 111

Slide 112

Slide 112 text

Servomotor 112 • Alguns servos só funcionam alimentados por fonte externa fonte externa deve se ligar ao GND do Arduino 5V DC

Slide 113

Slide 113 text

113 Servo TowerPro SG90 (9g) fonte DC externa 5V, 1A terra comum Arduino alimentado via USB

Slide 114

Slide 114 text

Fechamento 114

Slide 115

Slide 115 text

Referências • Site o!cial: arduino.cc • Arduino Experimentation Kit: oomlout.com/a/products/ardx • Laboratório de garagem labdegaragem.com • Web: blogs, vídeos, wikis, diagramas... 115

Slide 116

Slide 116 text

arduino.cc • Seções do site 116

Slide 117

Slide 117 text

Fritzing.org • Site com software para download e repositório de projetos 117

Slide 118

Slide 118 text

Alguns Livros • Arduino Básico, Novatec • Arduino Cookbook, O’Reilly • Make: Electronics, O’Reilly 118

Slide 119

Slide 119 text

Lojas físicas em Sampa • Multcomercial, R. dos Timbiras, 257 • Lojas nas travessas da Santa E!gênia, inclusive as lojas de sucata • Laboratório de Garagem, Rua Berta, 60 (metrô Vila Mariana) • Lojas de bairro, ex: Rua Butantã, 133 119

Slide 120

Slide 120 text

Lojas online • Laboratório de Garagem: labdegaragem.com • Farnell Newark: farnellnewark.com.br • Adafruit: adafruit.com • Sparkfun: sparkfun.com • Seeedstudio: seeedstudio.com • Vários: dx.com, ebay.com (muitos fornecedores) seeedstudio com 3 “e”! 120

Slide 121

Slide 121 text

Seeedstudio Shield Bot • Robô seguidor de linha • Vem montado • Basta encaixar o Arduino Uno US $ 69.90 121

Slide 122

Slide 122 text

Visite um hackerspace! garoa.net.br 122

Slide 123

Slide 123 text

Créditos • Conteúdo compilado, organizado e parcialmente criado por Luciano Ramalho (O!cinas Turing) • Licença de uso e reprodução: Creative Commons BY-SA Turing.com.br oficinas 123