Viabilizado pela Organização do ERI MS; Apoiado pelo grupo ArduinoMS; Agradecimentos especiais ao do SENAC e UCDB.



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

Arduino Hack Day PROMOVA VOCÊ TAMBÉM UM ARDUINO HACK DAY!

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Arduino Hack Day PROMOVA VOCÊ TAMBÉM UM ARDUINO HACK DAY!

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Eletrônica & Robótica open-source

Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Manual Técnico Arduino Supervisório MODBUS & Conversor RS485

Manual Técnico Módulo Ponte H Dupla

Minicurso de Arduino

Minicurso de Arduino

Robótica com Arduino

Projeto No. 11 Display de Leds de 7 Segmentos

ARDUINO UNO Guia do Usuário

Arduíno. Adriano Cruz. 16 de setembro de Adriano Cruz () Arduíno 16 de setembro de / 51

Arduino. Wanderson Souza Professor de Robótica

Minicurso Arduino JACEE 2012

InteropMix Arduino e Internet das Coisas. Leandro Ramos Leonardo Toledo Robson Machado

Introdução do Arduino para aquisição de dados e controle de instrumentos

Robótica com Arduino CDI. Professor: Paulo Marcos Trentin

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

Programação Básica em Arduino Aula 2

Microcontrolador Arduino: Aplicação em controle PI

Manual do instalador Box Input Rev Figura 01 Apresentação do Box Input.

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

Manual do instalador Box Output DC Rev Figura 01 Apresentação do Box Output DC.

Hacking Class Controlando tomadas da sua casa via Internet

Arquitetura do Microcontrolador Atmega 328

Programação em Arduino

1Manual do Program-ME... 6

Introdução à Plataforma ARDUINO

Prá$cas Arduino. Manoel Neto

Placa Acessório Modem Impacta

Easy Lab. Manual do usuário Revisão /11/14. DMA Electronics 1

Comunicação Serial com o AVR ATMEGA8

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

Curso introdutório de microcontroladores - Plataforma Arduino

Robótica com Arduino. Resistores. Professor: Paulo Trentin

Manual do instalador Box Output AC Rev Figura 01 Apresentação do Box Output AC.

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

Cerne Tecnologia e Treinamento

Arduino. Gilmar Aquino

Introdução ao Arduino

Arduino. Conectores, Fonte, USB, LEDs. Compilador, Bibliotecas, Editor, Burner

O Laboratório de Garagem

Programação de Robótica: Modo Circuitos Programados - Avançado -

Professor: Fernando Krein Pinheiro

Parallel to Serial Shifting IN

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CÂMPUS CURITIBA CURSO DE ENGENHARIA DE COMPUTAÇÃO

TUTORIAL Arduino Nano

Hewerson Antonio Perdomo Jacquet Luana Loubet Borges Ricardo Espindola de Aguiar Riccieli Kendy Zan Minakawa Prof. Ricardo Ribeiro dos Santos

Projeto No. 12 Display de Led de 7 Segmentos

WiFiShield. Introdução

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

BEC- Bafômetro Embutido em Carros

Disciplina: Laboratório de Fis26

// Arduino {? } Mais o que é?..

Alarme Automotivo com mensagem para móvel utilizando Arduino

Conhecendo o ARDUINO LEGENDA

MINICURSO ARDUINO BÁSICO

Kit de desenvolvimento ACEPIC 40N

ARDUINO BÁSICO E T A P A 1 O QUE É ARDUINO? Prof. Amadeu Zanon Neto

Tutorial de Auxílio. figura 1.0 programa de gravação

2014 Lumikit Sistemas para Iluminação

1. INTRODUÇÃO COMPUTADOR

Arduino. Prof. Maurício Dias

Arduino e Proteus (Tutorial)

(21) (11) (21) Skype: cerne-tec MSN:

Cerne Tecnologia e Treinamento

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim

Sistemas de Aquisição de Dados Baseado em Microcontroladores

Prática 8: Comunicação SPI. 8.1 Introdução e objetivos. 8.2 Princípios básicos do protocolo SPI

Manual Técnico Arduino Programador Supervisório Gravador de Bootloader

Introdução. àeletrônica com Arduino. Felipe Nascimento Martins. VIII Jornada de Iniciação Científica, Desenvolvimento Tecnológico e Inovação do Ifes

RESULTAR EM "CHOQUE ELÉTRICO", FOGO, ENTRE OUTROS.

Disparando eventos com o Asterisk. Fernando Mercês

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) /

Intel Galileo: Instalação e IDE Arduino

Figura 01 Visão Geral da Placa

Multimedidores Inteligentes MGE G3 Modo de uso do software IBIS_BE_cnf. ABB Automação. Hartmann & Braun

Aula 1 Apresentação e Conceitos Iniciais. Wellington Cássio Faria fb.com/wellingtoncf

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

Projeto No. 10 Relógio com LCD

ÍNDICE 1. INTRODUÇÃO DESCRIÇÃO DO PICKIT Ligação da porta USB LEDs de estado Botão... 5

Programação do Arduino. Parte 1. IDE Wiring

Prof. Ivair Teixeira INTEGRAÇÃO ANDROID & ARDUINO

Manual completo Programador PRG-8051-USB

RECONHECIMENTO DE VOZ UTILIZANDO ARDUINO

Uma Introdução ao ARDUINO e suas Aplicações na Robótica. André F. Núñez

Projeto 01. Adriano Joaquim de Oliveira Cruz Instituto de Matemática UFRJ 2015 Adriano Cruz. 30 de agosto de 2015

Podem ser substituídos pelo módulo P7-Sensor de Luminosidade da GBK Robotics.

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008

Programação C para microcontroladores PIC

Atenção ainda não conecte a interface em seu computador, o software megadmx deve ser instalado antes, leia o capítulo 2.

Plataforma de desenvolvimento dspic - SIGMA128 -

Tutorial 1 Como Escolher meu Arduino

PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014

Transcrição:

Sobre este Minicurso Viabilizado pela Organização do ERI MS; Apoiado pelo grupo ArduinoMS; Agradecimentos especiais ao do SENAC e UCDB. Sobre o Ministrante: Samuel Cavalcante Engenheiro de Computação (UNIDERP)- CREA-MS: 12873D Pós Graduado em Eng. De Sistemas (ESAB) Analista em Educação profissional no SENAC/MS Professor UNIDERP e UNAES II Pai, Esposo, Professor, Empresário, Consultor, participante de comunidades, conselheiro entre outros.

O que veremos Introdução ao Arduino Código Pisca LED Configurando a IDE para transferir o Código Acionamento de LED com Botão Pisca Led com Sensor LDR Obs.: Ao decorrer da oficina serão tratados assuntos sobre eletrônica e eletricidade básica.

Microcontrolador X Microprocessadorr Qual a principal diferença entre eles?

Introdução ao Arduino Plataforma baseada em Atmel da AVR (ATMega168; ATMega 328); 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

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;

Simplicidade no circuito:

Muitas aplicações práticas Robôs Roupas eletrônicas Máquinas de corte e modelagem 3D de baixo custo; Desenvolvimento de celulares customizados Instrumentos musicais Paredes interativas Instrumentação humana

Vários tipos, vários fabricantes... Mega Lilypad Nano Uno Pro Arduino BT Freeduino Severino Program-ME

Atmega168 / Atmega328: coração Características do ATmega 168: RISC Reduced Instruction Set Computer 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

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

Resumo das conexões da placa

FT232RL Conversor USB-Serial Conector USB Regular 7085: Recebe até 12 volts e regula para 5 volts Alimentação externa: Até 12 volts

Botão de reset ICSP Para gravar bootloader ou programas/firmware AtMega328 /168/8

AREF Referência analógica Padrão 5 volts GND 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

Portas analógicas 4 e 5 São as portas utilizadas para conexões via I2C / TWI. GND Portas analógicas de 0 a 5 5 volts Podem funcionar como digitais de 14 a 19 3.3 volts VIN Alimentação de entrada sem regulagem

Shields: arquitetura modular inteligente Arduino estabeleceu um padrão de pinagem que é respeitado por diversas placas shield:

Por dentro do MCU

Porta Digital Vs. Analógica Digital: trabalha com lógica binária, 0 e 1. No 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 0000000001 2 = 1 10 = 0,005v 0000000010 2 = 2 10 = 0,010v 0000000011 2 = 2 10 = 0,015v 1000000000 2 = 512 10 = 2,50v...

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 Neste caso o dispositivo recebe um valor analógico de 0v à 5v, que será convertido em um número binário de 10 bits. Cada bits somado ao circuito equivale a 0,005v. Portas digitais permitem que dados sejam transferidos em sequencia através de uma lógica ou protocolo binário Portas digitais não conseguem comandar potência

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;

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

Ping Sensor de distância ultrasonico

LCD Touch Shield LCD Touch screen

SIM Reader

Lojas de componentes www.parallax.com www.sparkfun.com www.makershed.com www.liquidware.com www.ladyada.net www.adafruit.com www.rlrobotics.ind.br/ - BRASIL www.empretecnet.com.br/do/home - BRASIL

Programando para Arduino IDE pode ser baixada de www.arduino.cc A IDE foi desenvolvida com Java, portanto precisaremos de um máquina virtual 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!)

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

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

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.

Primeiro contato com Arduino Ligar sua placa no cabo USB e no PC Realizar a instalação do Driver com a ajuda do facilitador Verificar o jumper de alimentação configurando para USB se necessário Digitar o código, a ser passado, no Arduino IDE Selecionar no software a versão do Arduino e a porta serial de comunicação. Clicar no botão de transferência de sketch

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.

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);

Configurando a IDE para transferir o Código

Configurando a IDE para transferir o Código

Procurando erros no código

Fazendo o Upload do Código para o Arduino

Entrada Digital: Fazendo leitura de um botão Os pinos do Arduino são extremamente sensíveis, permitindo a leitura de ruído elétrico do ambiente. O próximo teste utilizaremos o pino 7 como leitura de dados externos, como é uma porta digital será lido HIGH ou LOW (1 ou 0). Essa leitura é realizada pelo comando digitalread(port). 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 GND. O terceiro se conecta a um pino digital I/O (pino 7) que lê o estado do botão.

Montando o Circuito

Código Aciona LED com botão int val = 0; // variável para ler o status do pino void setup() { pinmode(13, OUTPUT); // declare LED como output pinmode(7, INPUT); // declare pushbutton como input void loop(){ val = digitalread(7); // ler a entrada de valor if (val == HIGH) {// verificar se a entrada é alta digitalwrite(13, LOW); // LED OFF else { digitalwrite(13, HIGH); // LED ON

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. Após o código ser copiado no Arduino.

Montando o Circuito

Código int val = 0; // variável para armazenar o valor vindo do sensor void setup() { pinmode(13, OUTPUT); // declara o ledpin como uma saída Serial.begin(9600); // usar a porta serial para comunicação void loop() { val = analogread(2); // lê o valor do sensor Serial.println(val); // imprime o valor para a porta serial digitalwrite(13, HIGH); // ligar o LED delay(val); // parar o programa por algum tempo digitalwrite(13, LOW); // desligar o LED delay(val); // tempo antes do proximo ciclo

Vetor de LEDs Monte na matriz de contato 5 leds, cada perna maior do LED (VCC) será ligada a uma perna do resistor, a outra perna do resistor será ligada em cada um dos seguinte pinos Digital, 12, 11, 10, 9 e 8. A perna menor dos LEDs, no GND (0v). A atividade é fazer esses LEDs acenderem em sequencia, acendendo um LED de cada vez, com intervalos de 50 milisegundos por led, após todos acessos aguardar 1000 milisegundos e começar a apagar os leds, com o mesmo intervalor de tempo.

Vetor de LEDs Montando o circuito

Vetor de LEDs Código int i; void setup() { pinmode(13, OUTPUT); pinmode(12, OUTPUT); pinmode(11, OUTPUT); pinmode(10, OUTPUT); pinmode(9, OUTPUT); void loop() { for(i=13;i>=8;i--){ digitalwrite(i, HIGH); delay(50); delay(1000); for(i=8;i<=13;i++){ digitalwrite(i, LOW); delay(50); delay(1000);

Vetor de LEDs com potenciômetro

Vetor de LEDs com potenciômetro int i, port, potenc; float tensao=0; void setup() { pinmode(13, OUTPUT); pinmode(12, OUTPUT); pinmode(11, OUTPUT); pinmode(10, OUTPUT); pinmode(9, OUTPUT); Serial.begin(9600); void loop() { potenc=analogread(2); port=13; for(i=1;i<=5;i++){ if(potenc>((i*2-1)*100)){ digitalwrite(port, HIGH); else{ digitalwrite(port, LOW); port--; Serial.print("Valor decimal = "); Serial.print(potenc); tensao=potenc*0.004883; Serial.print(" - Tensao = "); Serial.print(tensao); Serial.println(" V"); delay(500);

Motor de Passo com controle de velocidade

P1 - Código - Motor de Passo com controle de velocidade // Motor de passo Controlado por botã o /* - Declarando cariaveis globais - */ int motorpin1 = 8; int motorpin2 = 9; int motorpin3 = 10; int motorpin4 = 11; int botaomotord = 2; //motor direita int botaomotore = 3; //motor esquerda int botaoveloca = 4; int botaovelocd = 5; int delaytime = 200; int movimentomotora[] = {1,0,0,0; int movimentomotor[] = {0,0,0,0; /* Configuracao dos pinos*/ void setup() { pinmode(motorpin1, OUTPUT); pinmode(motorpin2, OUTPUT); pinmode(motorpin3, OUTPUT); pinmode(motorpin4, OUTPUT); pinmode(botaomotord, INPUT); pinmode(botaomotore, INPUT); pinmode(botaoveloca, INPUT); pinmode(botaovelocd, INPUT); Serial.begin(9600); botaoesquerda(); void loop() { int i, motord, motore, veloca, velocd; motord = digitalread(botaomotord); //le o valor do pino2 motore = digitalread(botaomotore); //le o valor do pino3 veloca = digitalread(botaoveloca); //le o valor do pino4 velocd = digitalread(botaovelocd); //le o valor do pino5 if (motord==high){ botaodireita(); Serial.println(" - rotaciona - Direita"); if (motore==high){ botaoesquerda(); Serial.println(" - rotaciona - Esquerda"); //Teste para rotaciona por vetor automã tico

P2 - Código - Motor de Passo com controle de velocidade if (veloca==high){ if(delaytime<500) delaytime=delaytime+50; Serial.print("O time esta em: "); Serial.println(delayTime); if (velocd==high){ if(delaytime>50) delaytime=delaytime-50; Serial.print("O time esta em: "); Serial.println(delayTime); delay(delaytime); //-- Rotaciona motor para a Direita void botaodireita(){ int k; for (k=0;k<4;k++){ if(k<3) movimentomotor[k+1] = movimentomotora[k]; else movimentomotor[0] = movimentomotora[k]; for (k=0;k<4;k++){ movimentomotora[k] = movimentomotor[k]; digitalwrite(k+8, movimentomotor[k]); Serial.print(movimentoMotor[k]); //-- Rotaciona motor para a esquerda void botaoesquerda(){ int k; for (k=0;k<4;k++){ if(k>0) movimentomotor[k-1] = movimentomotora[k]; else movimentomotor[3] = movimentomotora[k]; //Transcreve o vetor para o Vertor de Apoio. imprime o resultado. for (k=0;k<4;k++){ movimentomotora[k] = movimentomotor[k]; digitalwrite(k+8, movimentomotor[k]); Serial.print(movimentoMotor[k]);

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

É isso ai pessoal, agora é só queimar alguns componentes. Contatos: samuel@ms.senac.br samuelmbc@gmail.com Twitter: @samuelmbc Sites: www.samuelcavalcante.com (blog Pessoal) www.ms.senac.br (onde trabalho) www.e-camisa.com (sócio)