• Nenhum resultado encontrado

Arduino MS. Sobre esta Oficina. Oriunda do Arduino Hack Day Organizado pelos Coordenadores do ArduinoMS Agradecimentos ao apoio do SENAC

N/A
N/A
Protected

Academic year: 2021

Share "Arduino MS. Sobre esta Oficina. Oriunda do Arduino Hack Day Organizado pelos Coordenadores do ArduinoMS Agradecimentos ao apoio do SENAC"

Copied!
39
0
0

Texto

(1)
(2)

Sobre esta Oficina

• Oriunda do Arduino Hack Day…

• Organizado pelos Coordenadores do ArduinoMS • Agradecimentos ao apoio do SENAC

(3)

O que veremos

• Introdução a Arduino • Código Pisca LED

• Acionamento de LED com Botão • Pisca Led com Sensor LDR

Obs: Serão ao decorrer da oficina serão tratados assuntos sobre eletrônica e eletricidade basica.

(4)

Introdução ao Arduino

• Plataforma baseada em Atmel da AVR (ATMega168);

• Oferece um IDE e bibliotecas de programação de alto nível; • Open-source hardware e software

• Ampla comunidade

• Programado em C/C++ • Transferência de firmware via USB

• MCU com bootloader

(5)

Histórico do Arduino

• Projeto criado na Itália pelo Mássimo Banzi no Interaction Design Institute Ivrea;

• Nasceu para complementar o aprendizado de programação, computação física e gráfica;

• Nasceu do Processing e Wiring;

– Processing é um ambiente e linguagem de programação para criar imagens, animação e interação;

(6)

Simplicidade no circuito:

(7)

Muitas aplicações práticas

• Robôs

• Roupas eletrônicas

• Máquinas de corte e modelagem 3D de baixo custo; • Segway open-source

• Desenvolvimento de celulares customizados • Instrumentos musicais

• Paredes interativas

• Instrumentação humana • Circuit bending

(8)

Vários tipos, vários fabricantes...

• Mega • Lilypad • Nano • Uno • Pro • Arduino BT • Freeduino • Severino • Program-ME

Arduino MS

(9)

Atmega168 / Atmega328: coração

• Características do ATmega 168: • RISC

• 20 MIPS (20 Milhões de instruções por segundo) • 16Kb Flash / 512 b EEPROM / 1Kb RAM Estática • 10.000 ciclos na Flash e 100.000 na EEPROM • 2 contadores / temporizadores de 8bits

• 1 contador / temporizador de 16bits

• 1 temporizador de tempo real com clock a parte • 14 portas digitais

• 6 portas analógicas

(10)

Características técnicas

• 6 canais PWM

• 6 conversores analógico/digital de 10 bits • 1 serial programável (USART)

• 1 interface SPI (Serial Peripheral Interface) • 1 interface serial a 2 fios (I2C)

• 1 watch dog timer programável • 1 comparador analógico no chip

• Interrupção ou wake-up na alteração de estado dos pinos

(11)

Resumo das conexões da placa

(12)

Conector USB

Alimentação externa: Até 12 volts

Regular 7085:

Recebe até 12 volts e regula para 5 volts

FT232RL

Conversor USB-Serial

(13)

ICSP

Para gravar bootloader ou programas/firmware

AtMega328 /168/8 Botão de reset

(14)

Portas digitais 0 a 13

0 RX 1 TX = usada durante

transferência de sketch e comunicação serial com placa 2,4,7,8,12,13 = portas digitais convêncionais 3,5,6,9,10,11 = portas PWM GND AREF Referência analógica Padrão 5 volts

Arduino MS

(15)

Portas analógicas de 0 a 5

Podem funcionar como digitais de 14 a 19

VIN

Alimentação de entrada sem regulagem GND

5 volts 3.3 volts

Portas analógicas 4 e 5

São as portas utilizadas para conexões via I2C / TWI.

(16)

Shields: arquitetura modular inteligente

• Arduino estabeleceu um padrão de pinagem que é respeitado por diversas placas shield:

(17)

Por dentro do MCU

(18)

Porta Digital Vs. Analógica

• Digital: trabalha com 0 e 1 na lógica binária.

– Digital do Arduino segue padrão TTL onde: • 0 a 0,8 volts = 0

• 2 a 5 volts = 1

• Analógica: valor lido é análogo a tensão.

– Referência de analogia é 5 volts • 0 volts = 0

• 2.5 volts= 512 • 5 volts = 1023

– Conversor A/D de 10 bits: 0 a 1023

(19)

Porta Digital Vs. Analógica

• Portas analógicas expressam valores de 0 a 1023 mas não são utilizadas para transferência de informações precisas • As portas digitais permitem que dados sejam tranferidos

em sequencia através de uma lógica ou protocolo binário • Portas digitais não conseguem comandar potência

(20)

Porta PWM

• Uma porta híbrida: digital porém com modularização de

zeros e uns de forma que consegue

expressar uma idéia de potência;

(21)

Na prática

• Ligamos componentes em portas digitais comuns, pwm ou analógica

• Fazemos leitura e escrita nestas portas afim de obter um dado ou um determinado comportamento

• Processamos os dados no microcontrolador • Alguns exemplos de componentes...

(22)

Ping – Sensor de distância ultrasonico

(23)

LCD Touch

Shield LCD Touch screen

(24)

SIM Reader

SIM Reader

(25)

Lojas de componentes

www.parallax.com

www.sparkfun.com

• www.makershed.com

• www.liquidware.com

• www.ladyada.net

• www.adafruit.com

Arduino MS

(26)

Programando para Arduino

• IDE pode ser baixada de www.arduino.cc

• A IDE foi desenvolvida com Java, portanto precisaremos de um máquina virtual 1.5 ou 1.6 instalada

• Funciona em Windows. Mac OS X e Linux (em alguns windows e mac pode ser necessário colocar driver) • Utiliza GCC + GCC Avr para compilação

(você pode também programar diretamente com GCC!) • A transferência para a placa é feita via USB pelo IDE; (mas também pode ser feita com gravadores ICSP!)

(27)

Partes básicas do programa Arduino

• Temos que obrigatoriamente programar dois métodos:

void setup() { }

void loop() { }

• O setup é executado uma só vez assim que a placa for ligada e o loop terá o código de execução infinita

(28)

Portas digitais e analógicas

• Na prática ligamos componentes em portas digitais e

analógicas e através do código Arduino, manipulamos as portas:

– pinMode(<porta>, <modo>): configura uma porta digital para ser lida ou para enviarmos dados;

– digitalWrite(<porta>, 0 ou 1): envia 0 ou 1 para porta digital – digitalRead(<porta>): retorna um 0 ou 1 lido da porta

– analogRead(<porta>): retorna de 0 a 1023 com o valor da porta analógica

– analogWrite(<porta>, <valor>): escreve em uma porta PWM um valor de 0 a 255

(29)

Exemplo “pisca led” com Arduino

Esta conexão é bem simples somente para efeito de teste para piscar o led.

O correto é ligar um resistor usando uma protoboard.

(30)

Exemplo “pisca led”

void setup() {

pinMode(13, OUTPUT); //porta 13 em output }

void loop() {

digitalWrite(13, HIGH); //HIGH = 1 = TRUE delay(500);

digitalWrite(13, LOW); //LOW = 0 = FALSE delay(500);

}

(31)

Primeiro contato com Arduino

• Ligar sua placa no cabo USB e no PC

• Verificar o jumper de alimentação configurando para USB se necessário

• Digitar o código acima no Arduino IDE

• Clicar no botão de transferência de sketch

(32)

Protoboard ou Matriz de contato

É um dispositivo usado

para construir circuitos sem a necessidade de solda. Na parte central de todos os pinos alinhados sob um número estiver conectado, enquanto os nas bordas superior e inferior -

normalmente marcado com linhas pretas e vermelhas - são conectados na

horizontal.

(33)

Entrada Digital: A leitura de um botão

• Os pinos do Arduino são extremamente sensíveis, que podem ler o ruído elétrico do ambiente. teste o seguinte

código com apenas um fio no pino 7 para inserir HIGH/LOW para leituras. Em projetos de utilização de dados de

digitalRead a leitura do pino deve ser mantida elevada para medir a mudança para BAIXO (LOW).

• Conecte três fios à placa Arduino. O primeiro de uma perna do botão através de um resistor de pull-up (aqui 10K Ω) para o fornecimento de 5 volts. A segunda vai da perna correspondente do botão ao chão. O terceiro se conecta a um pino digital i / o (pino 7) que lê o estado do botão

(34)

Montando o Circuito

(35)

Código Aciona LED com botão

int ledPin = 13; // porta 13 em output para o LED

int inPin = 7; // porta 7 em input (para o push button) int val = 0; // variável para ler o status do pino

void setup() {

pinMode(ledPin, OUTPUT); // declare LED como output pinMode(inPin, INPUT); // declare pushbutton como input }

void loop(){

val = digitalRead(inPin); // ler a entrada de valor

if (val == HIGH) {// verificar se a entrada é alta digitalWrite(ledPin, LOW); // LED OFF

} else {

digitalWrite(ledPin, HIGH); // LED ON }

}

(36)

Tempo entre acende e apaga LED usando sensor LDR

• Use o mesmo circuito como antes, mudando o botão com o sensor de luz e trocando a ligação do pino digital 7 para o pino analógico 2.

• A função permite enviar um valor numérico para o

computador. Variando números digitais no intervalo de 0-1024 (resolução de 1 Bit).

• Nesta função usamos a comunicação serial, com isso abra o monitor serial para ler dados do sensor.

(37)

Montando o Circuito

(38)

Código

int potPin = 2; // seleciona o pino de entrada para o potenciômetro int ledPin = 13; // seleciona o pino para o LED

int val = 0; // variável para armazenar o valor vindo do sensor void setup() {

pinMode(ledPin, OUTPUT); // declara o ledPin como uma saída Serial.begin(9600); // usar a porta serial para comunicação

}

void loop() {

val = analogRead(potPin); // lê o valor do sensor

Serial.println(val); // imprime o valor para a porta serial digitalWrite(ledPin, HIGH); // ligar o LED

delay(val); // parar o programa por algum tempo digitalWrite(ledPin, LOW); // desligar o LED

delay(val); // tempo antes do proximo ciclo }

(39)

Resumindo...

• Arduino é um projeto simples, popular e acessível • Eletrônica e programação embarcada alto nível

• Na prática ligamos componentes nas portas analógicas e digitais e escrevemos programas que usam as portas

• Existem diversas bibliotecas que encapsulam a lógica de comunicação digital ou analógica: servo, motor de passo, Android, display LCD

• Ter portas digitais analógicas e pmw é um grande valor do microcontrolador utilizado

• A transfêrencia via USB e a ferramenta / IDE para programação funcionam em múltiplas plataformas • Open-source Hardware e Open-source software

Referências

Documentos relacionados

Objetivo: O objetivo deste estudo foi calcular o valor da biotipagem na determinação da sensibilidade à eritromicina de múltiplos isola­ dos de Staphylococcus aureus

No Grupo 2, um paciente se apresentava sem nenhuma reação inflamatória ou edema de córnea já no primeiro dia PO, enquanto que dois apresentavam sinais leves e

Avaliou-se a idade, sexo, queixa apresentada, causa do mau posicionamento dos cílios, pálpe­ bra acometida, tratamento efetuado (número de disparos efetuados em cada sessão) e

Toxicidade aguda: Baseado em informações disponíveis, os critérios de classificação não foram cumpridos.

II - os docentes efetivos, com regime de trabalho de 20 (vinte) horas semanais, terão sua carga horária alocada, preferencialmente, para ministrar aulas, sendo o mínimo de 8 (oito)

Deste modo a educação é vista como um campo de conhecimento de pleno direito, com objectivos, objectos e métodos muito diferentes dos da Matemática, mas igualmente legítimos

3 Caliente aceite en un wok o una sartén, ponga en él la carne y dórela a fuego vivo unos 2 minutos sin dejar de remover.Añada la pasta de curry y mézclela bien; incorpore luego

No setor de processamento, todas as lâminas deverão ser registradas em um livro de registro específico, com as seguintes informações: número de regis- tro do laboratório, unidade