Introdução ao Arduino

Documentos relacionados
Arduino. Gilmar Aquino

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

Arduino. Introdução aos Componentes Básicos. Leonardo Mauro P. Moraes. Universidade Federal de Mato Grosso do Sul - UFMS.

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

Disciplina: Laboratório de Fis26

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

MINICURSO ARDUINO BÁSICO

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

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

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

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

Introdução à Plataforma ARDUINO

Curso introdutório de microcontroladores - Plataforma Arduino

Robótica com Arduino Professor: Paulo Marcos Trentin

Curso de Básico Arduino! Ministrado por: Wellington Cássio Faria Contato:

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

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

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

MINICURSO - PLATAFORMA ARDUINO Eixo de Informação e Comunicação Gil Eduardo de Andrade

Arquitetura do Microcontrolador Atmega 328

O ARDUINO. Plataforma de prototipagem eletrônica; Open Source; Formada por duas partes básicas: hardware e software.

Sistemas Digitais EDUARDO ELIAS ALVES PEREIRA

MINICURSO ARDUINO AVANÇADO

Curso de Arduino. Quais seus principais componentes?

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

- Tarefas Práticas de Programação usando Arduino - Imagem do Robô com Legendas

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

Arduino. Prof. Maurício Dias

Introdução à robótica

OFICINA Uso da plataforma Arduino no Ensino de Ciências

ARDUINO. Profº. Engº. Robson Dias Ramalho

Arduino como ferramenta de aquisição de Dados

Por Sergio Genilson Pfleger PLATAFORMA ROBÓTICA GENÉRICA BASEADA EM ARDUINO.

Entrada de dados com botões

Projeto No. 2 Potenciômetro

Microcontrolador Arduino: Aplicação em controle PI

Curso: Tecnologias educacionais de baixo custo. Conector Ciência:

O que você pode fazer com o Arduino

INTRODUÇÃO A PLATAFORMA ARDUINO. TÁSSIO JOSÉ GONÇALVES GOMES

Programação Básica em Arduino

Programação em Linguagem C

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.

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

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

Projeto No. 15 Sensor Óptico Reflexivo

Mundo Arduino: Vamos começar a programar?

Plataforma Arduino, um universo de possibilidades

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO PROJETO SCATMAN S DIMMER

Comunicação Serial 1

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

A protoboard ou Matriz de contatos é utilizada para fazer montagens provisórias e/ou teste de projetos. É constituída por uma base plástica, contendo

Minicurso de Arduino. Laboratório de Inovação em Sistemas em chip npiti - UFRN

Conhecendo o ARDUINO LEGENDA

Curso de robótica 2. Novos conceitos de programação

Introdução. O que é o Arduino?

INFORMAÇÕES GERAIS DO TRABALHO

Programação Básica em Arduino Aula 1

Anatomia do Arduino Bootloader

Arduino Básico: As versatilidades desta plataforma na prática

PUCRS CURSO DE ENGENHARIA ELÉTRICA

- Clique aqui e veja o video deste curso - Clique aqui para ver as imagens deste curso

Discentes: Weverton Lima e Juliete Souza Disciplina: Sistemas Embarcados Professor Orientador: Ilton Barbacena

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

Hardware Livre Arduino. Givanaldo Rocha de Souza

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

- Trabalho Prático de Algoritmos e Programação usando Robô Arduino -

Por Fernando Koyanagi 1

Oficina de Programação utilizando a plataforma Arduino

Open Hardware & Arduino

Introdução a Arduino e Raspberry Pi

Introdução ao Arduino ESCOLA DE ARTES VISUAIS DO PARQUE LAGE. Núcleo de Arte e Tecnologia. julio lucio martin. Aula 07

Arduino - Primeiros Passos

Kit controle remoto IR acionando 3 Led com Arduino

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

CURSO DE ROBÓTICA PARA ENSINO MÉDIO

ROBÓTICA 1 INTRODUÇÃO A PROGRAMAÇÃO NO ARDUINO

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

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

Plano de Aula. 1 o semestre. Aula número 011 Periféricos Display LCD, Conversor AD e conversor DA (PWM)

Programação Básica em Arduino Aula 2

ARDUÍNO PROCEDIMENTOS BÁSICOS

A placa descrita pode receber alimentação pela conexão USB ou por uma fonte de alimentação externa.

Guia da Placa de desenvolvimento PD Mega16 N1

Ricardo Ribeiro dos Santos - ricardo@facom.ufms.br Faculdade de Computação - UFMS

Projeto No. 12 Display de Led de 7 Segmentos

Projeto No. 11 Display de Leds de 7 Segmentos

Oficina de Programação utilizando a plataforma Arduino

PSI2662 Projeto em Sistemas Eletrônicos Embarcados: Sensores e Atuadores. Apresentação do Kit Freescale Freedom FDRM-KL25Z e Portas de Entrada e Saída

Arduino. Wanderson Souza Professor de Robótica

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

Disciplina : Microcontroladores AVR

GUIA RÁPIDO DE PLACAS ARDUINO

Transcrição:

Introdução ao Arduino Cassio Trindade Batista Iago Souza de Sousa Universidade Federal do Pará Instituto de Tecnologia Faculdade de Engenharia da Computação e Telecomunicações III Semana Acadêmica da Faculdade de Ciência da Computação Orientador: Nelson Cruz Sampaio Neto 5 à 9 de outubro de 2015

Cronograma Introdução Experiências Shields Apêndice Introdução Arduino Overview Vantagens Diferentes plataformas Especificações µcontrolador µprocessador Pinos de alimentação Microcontrolador ATmega328p Programação Background info Experiências Cassio Batista, Iago Souza Curso Básico de Arduino 2/39

Overview Introdução Experiências Shields Apêndice Introdução Baseado em Introduction to Arduino, de Alan G. Smith O que é Arduino? O Hardware; O ambiente de desenvolvimento; A comunidade (https://www.arduino.cc) Arduino é a placa de desenvolvimento construída sobre o microcontrolador ATmega, da fabricante Atmel, contendo uma IDE para programação e um fórum/comunidade para discussão. Open-source prototyping platform based on easy-to-use hardware and software Cassio Batista, Iago Souza Curso Básico de Arduino 3/39

Vantagens Introdução Experiências Shields Apêndice Introdução Barato: U$ 50.00, em média Cross-Platform: Windows, OSX, Linux. Ambiente de programação: IDE easy-to-use para iniciantes Open-source software: Pode ser expandido através do C++ Open-source hardware: Designers de circuito podem fazer sua própria versão Cassio Batista, Iago Souza Curso Básico de Arduino 4/39

Arduino: Diferentes Plataformas Introdução Uno, Mega, Nano, Duemilanove, Diecimila, Leonardo... Cassio Batista, Iago Souza Curso Básico de Arduino 5/39

Arduino UNO Introdução Cassio Batista, Iago Souza Curso Básico de Arduino 6/39

Arduino UNO Especificações Introdução Microcontrolador: ATmega328P 14 pinos digitais de I/O (6 de PWM) 6 pinos analógicos 32 KB de memória Flash (armazenamento de sketch) 2 KB de memória SRAM (criação e manipulação de variáveis) 1 KB de memória EEPROM 16 MHz de Clock Cassio Batista, Iago Souza Curso Básico de Arduino 7/39

Introdução MicroControlador MicroProcessador Ambos realizam operações de busca, decodificação e execução; Microprocessador: CI responsável pelo processamento de dados, como uma ULA, mas precisa receber ordens externas e ter outros componentes externos para funcionar; Microcontrolador: Contém µprocessador, RAM, ROM, timers, I/Os... tudo em um único CI; O Arduino é o quê, afinal? Arduino é a PCB criada para funcionar sobre o microcontrolador ATmega, da Atmel. Cassio Batista, Iago Souza Curso Básico de Arduino 8/39

Arduino x ATmega328p Introdução Pinos do Arduino são diferentes dos pinos do ATmega328p Cassio Batista, Iago Souza Curso Básico de Arduino 9/39

Pinos de Alimentação Introdução V in : Entrada de alimentação da placa quando utilizada uma fonte externa. 5V: Fonte de alimentação para o microcontrolador e outros componentes da placa. 3V3: Alimentação de 3,3 V fornecida pelo controlador USB. GND (ground): Pino terra. Cassio Batista, Iago Souza Curso Básico de Arduino 10/39

Programação Introdução Experiências Shields Apêndice Introdução A linguagem utilizada no Arduino tem como referência C++. setup(): função utilizada para inicializar valores assim que a placa é ligada. loop(): função executada várias vezes até que haja alguma interferência. pinmode(): Inicializa um pino como entrada (INPUT) ou saída (OUTPUT). pinmode(2, INPUT); //Setando o pino 2 como entrada pinmode(13, OUTPUT); //Setando o pino 13 como saída Cassio Batista, Iago Souza Curso Básico de Arduino 11/39

Programação Introdução Experiências Shields Apêndice Introdução digitalwrite(): Escreve uma informação digital, ou seja, 0 (LOW, 0V) ou 1 (HIGH, 5V) em um pino de saída. digitalwrite(13, HIGH); //tens~ao alta no pino 13 digitalwrite(13, LOW); //tens~ao baixa no pino 13 digitalread(): Lê uma informação digital, ou seja, 0 (0V) ou 1 (5V) em um pino de entrada. int valor = digitalread(2); //L^e pino 2 analogwrite(): Escreve uma informação analógica, ou seja, um valor inteiro de 8 bits de 0 à 255 em um pino de saída analogwrite(13, 250); //tens~ao [0V--5V] [0--255] pino 13 analogread(): Lê uma informação analógica, geralmente de sensores int valor = analogread(a0); //L^e pino analógico 0 Cassio Batista, Iago Souza Curso Básico de Arduino 12/39

IDE de Programação Introdução Cassio Batista, Iago Souza Curso Básico de Arduino 13/39

Serial Monitor Introdução GUI para comunicação serial entre o PC e o Arduino Cassio Batista, Iago Souza Curso Básico de Arduino 14/39

BG Eletrônica: Protoboard Ligação em série: A e D: horizontal B e C: vertical Cassio Batista, Iago Souza Curso Básico de Arduino 15/39

BG Eletrônica: LED Cassio Batista, Iago Souza Curso Básico de Arduino 16/39

BG Eletrônica: LED Sobre o ground (GND): Fecha o circuito e permite circulação de corrente elétrica Cassio Batista, Iago Souza Curso Básico de Arduino 17/39

BG Programação: Tricks Case sensitive, assim como no C++: digitalwrite(pino, HIGH); //correto digitalwrite(pino, high); //errado DigitalwriTe(PINO, HIGH); //errado Comentários: /* Isto é um comentário */ // Eles n~ao fazem diferença no código Cassio Batista, Iago Souza Curso Básico de Arduino 18/39

Parte Prática Introdução Experiências Shields Apêndice Parte Prática: Experiências Cassio Batista, Iago Souza Curso Básico de Arduino 19/39

Exp. 1: Semáforo Objetivo: Fazer a sinalização de duas vias que se cruzam Materiais: 6 LEDs (ou 2 LEDs RGB). Cassio Batista, Iago Souza Curso Básico de Arduino 20/39

Exp. 1: Semáforo Funcionamento Via 1 Via 2 1 Fechado Aberto 2 Fechado Atenção 3 Fechado Fechado 4 Aberto Fechado 5 Atenção Fechado 6 Fechado Fechado 1 Fechado Aberto Cassio Batista, Iago Souza Curso Básico de Arduino 21/39

Exp. 1: Semáforo Código (1/2) #define LED_R1 7 //R vermelho #define LED_Y1 8 //Y amarelo #define LED_G1 9 //B verde 5 #define LED_R2 10 #define LED_Y2 11 #define LED_G2 12 void setup() { 10 Serial.begin(9600); //baud rate for serial monitor /* LEDs para o primeiro semaforo */ pinmode(led_r1, OUTPUT); pinmode(led_y1, OUTPUT); 15 pinmode(led_g1, OUTPUT); /* LEDs para o segundo semaforo */ pinmode(led_r2, OUTPUT); pinmode(led_y2, OUTPUT); 20 pinmode(led_g2, OUTPUT); }//fecha setup() Cassio Batista, Iago Souza Curso Básico de Arduino 22/39

Exp. 1: Semáforo Código (2/2) void loop() { // #1 fechado na primeira via e aberto na segunda digitalwrite(led_r1, HIGH); digitalwrite(led_y1, LOW); 5 digitalwrite(led_g1, LOW); //- digitalwrite(led_r2, LOW); digitalwrite(led_y2, LOW); digitalwrite(led_g2, HIGH); delay(2000); //2 seconds 10 // #2 fechado na primeira via e atencao na segunda digitalwrite(led_r1, HIGH); digitalwrite(led_y1, LOW); digitalwrite(led_g1, LOW); //- 15 digitalwrite(led_r2, LOW); digitalwrite(led_y2, HIGH); digitalwrite(led_g2, LOW); delay(2000); //2 seconds... Cassio Batista, Iago Souza Curso Básico de Arduino 23/39

Desafio 1: Semáforo e Botão Objetivo: Acionar um semáforo utilizando um botão Materiais: 3 LEDs (ou 1 LED RGB) e 1 botão Background: Experiência 1 Cassio Batista, Iago Souza Curso Básico de Arduino 24/39

Desafio 1: Semáforo e Botão Objetivo: Acionar um semáforo utilizando um botão Materiais: 3 LEDs (ou 1 LED RGB) e 1 botão Background: Experiência 1 Sugestão: int estado = digitalread(pinoanalógico); Cassio Batista, Iago Souza Curso Básico de Arduino 25/39

Exp. 2: Entrada e Saída Serial (Monitor) Objetivo: Ler uma string do serial monitor e imprimí-la também no serial monitor Materiais: Biblioteca Serial Begin() Read() Print() Cassio Batista, Iago Souza Curso Básico de Arduino 26/39

Exp. 2: Entrada e Saída Serial Código char str[30] = ""; // minha string void setup() { Serial.begin(9600); //baud rate 5 Serial.println("Escreva uma mensagem acima"); } void loop() { int i = 0; //iterator 10 if(serial.available() > 0) { while(serial.available()) { str[i++] = (char) Serial.read(); // le char por char } for(i=0; i<30; i++) { 15 Serial.print(str[i]); } Serial.println(""); } } Cassio Batista, Iago Souza Curso Básico de Arduino 27/39

Exp. 3: Sensor de Luminosidade Objetivo: Simular o controle de luz do ambiente Definir faixas de luminosidade baseadas no feedback do sensor Claro: T sensor > 80.0 Dois LEDs apagados; Escuro: T sensor < 20.0 Dois LEDs acesos; Ideal: Um LED aceso e outro apagado; Materiais: 2 LEDs, 1 sensor de luz, 1 resistor de 10 kω Cassio Batista, Iago Souza Curso Básico de Arduino 28/39

Exp. 3: Sensor de Luminosidade Esquemático Cassio Batista, Iago Souza Curso Básico de Arduino 29/39

Exp. 3: Sensor de Luminosidade Código (1/2) void setup() { Serial.begin(9600); //baud rate /* define os pinos de sa~ada (LEDs) */ 5 pinmode(12, OUTPUT); pinmode(13, OUTPUT); } Cassio Batista, Iago Souza Curso Básico de Arduino 30/39

Exp. 3: Sensor de Luminosidade Código (2/2) void loop() { float T_sensor = 100.0*analogRead(A0)/1024.0; Serial.print("Sensor: "); Serial.println(T_sensor); 5 if(t_sensor > 80.0) { Serial.println(" TA CLARO! "); digitalwrite(12, LOW); digitalwrite(13, LOW); 10 } else if(t_sensor < 20.0) { Serial.println(" TA ESCURO! "); digitalwrite(12, HIGH); digitalwrite(13, HIGH); } else { 15 Serial.println(" TA OTIMO! "); digitalwrite(12, HIGH); digitalwrite(13, LOW); } delay(800); //1 second 20 } Cassio Batista, Iago Souza Curso Básico de Arduino 31/39

Exp. 4: Brincando com Potenciômetro Objetivo: Acender somente um LED de acordo com uma faixa específica de tensão, a qual será varia de acordo com a resistência do potenciômetro. À medida que o giramos o potenciômetro, a fila de LEDs acesos anda. Materiais: 1 potênciômetro e 5 LEDs Cassio Batista, Iago Souza Curso Básico de Arduino 32/39

Exp. 4: Brincando com Potenciômetro Cassio Batista, Iago Souza Curso Básico de Arduino 33/39

Exp. 4: Potenciômetro Código (1/2) void setup() { Serial.begin(9600); pinmode(8, OUTPUT); 5 pinmode(9, OUTPUT); pinmode(10, OUTPUT); pinmode(11, OUTPUT); pinmode(12, OUTPUT); } Cassio Batista, Iago Souza Curso Básico de Arduino 34/39

Exp. 4: Potenciômetro Código (2/2) void loop() { /* tensao: [0--5V] */ float tensao = 5.0*analogRead(A0)/1024.0; acender((int)(tensao+8.0)); 5 delay(300); } void acender(int pin) { digitalwrite(8, LOW); 10 digitalwrite(9, LOW); digitalwrite(10, LOW); digitalwrite(11, LOW); digitalwrite(12, LOW); digitalwrite(pin, HIGH); 15 } Cassio Batista, Iago Souza Curso Básico de Arduino 35/39

Shields Placas de circuito que podem ser conectadas ao Arduino, expandindo sua capacidade. Podem conter displays de LCD, sensores, módulos de comunicação, relés, etc. Arduino Ethernet Shield R3 Especificado para conectar o Arduino a uma rede local. A maneira mais simples e mais barata de ligar o Arduino à internet. Bluetooth Low Energy (BLE) Shield for Arduino 2.0 Adiciona ao Arduino a capacidade de conversar com outros dispositivos Bluetooth. Cassio Batista, Iago Souza Curso Básico de Arduino 36/39

Shields Figura : Shield Ethernet Cassio Batista, Iago Souza Curso Básico de Arduino 37/39

Código dos Resistores

Obrigado! Introdução Experiências Shields Apêndice Resistor cassio.batista.13@gmail.com iagosousza@gmail.com Cassio Batista, Iago Souza Curso Básico de Arduino 39/39