1Manual do Program-ME... 6



Documentos relacionados
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

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

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

Eletrônica & Robótica open-source

Robótica com Arduino

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

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

Comunicação Serial com o AVR ATMEGA8

Manual de Instruções. Touchlight Smart

Minicurso de Arduino

Tutorial de Eletrônica Aplicações com 555 v

Como instalar uma impressora?

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

Minicurso de Arduino

Simulação de Circuitos Microcontrolados com o Proteus

Arduino. Wanderson Souza Professor de Robótica

Alarme Automotivo com mensagem para móvel utilizando Arduino

Cerne Tecnologia e Treinamento

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

Manual do Usuário Android Neocontrol

O Laboratório de Garagem

MANUAL ZEDIT 32 Índice:

Manual Equipamento ST10 Flasher Rev. 1

Leitor MaxProx-Lista-PC

Hacking Class Controlando tomadas da sua casa via Internet

Manual Técnico Módulo Ponte H Dupla

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

Cerne Tecnologia e Treinamento

ARDUINO UNO Guia de Instalação

Intel Galileo: Instalação e IDE Arduino

Acessando a Porta Paralela com o Delphi. Vitor Amadeu Souza. vitor@cerne-tec.com.br

Cerne Tecnologia e Treinamento

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

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

Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

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

Motorola Phone Tools. Início Rápido

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

Conhecendo o Proteus

UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista

Central de Alarme de Oito Zonas

Professor: Fernando Krein Pinheiro

Placa Acessório Modem Impacta

Hera Indústria de Equipamentos Eletrônicos LTDA Manual de Instalação e Operação DISCADORA VIA CELULAR. HERA HR Cel.

Hamtronix CONTROLE REMOTO DTMF. CRD200 - Manual de Instalação e Operação. Software V 2.0 Hardware Revisão B

Conheça o 4017 (ART062)

Manual de utilização do módulo NSE METH-8RL/Exp

RECONHECIMENTO DE VOZ UTILIZANDO ARDUINO

Arduino e Proteus (Tutorial)

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

Manual de instalação e configuração da Ferramenta Android SDK

Testando a Comunicação e Transferindo o Código de Máquina

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

Manual completo Programador PRG-8051-USB

SISTEMA DE MONITORAMENTO DIGITAL

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

Conteúdo deste Kit: E-6 uno

Sistema de Detecção de Vazamento de Gás

Programação em BASIC para o PIC Vitor Amadeu Souza

Proibida a reprodução total ou parcial. Todos os direitos reservados 1

Programação em BASIC para o PIC Projetos com Display Gráfico Vitor Amadeu Souza

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

TUTORIAL Arduino Nano

Manual de Instalação EDIÇÃO 1.0

Controle universal para motor de passo

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza

1. Introdução Instalação Baixando o arquivo Instalando Enviando SMS Configurando o Itcell sms massa...

UPLOAD NO ARDUINO MEGA

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

Identificando o Buddy VS/XP Lite e Premium

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE: SÃO CAETANO DO SUL - SP - CEP

CONTROLE DE ACESSO Modelo PP-360/N

Introdução ao Processamento de Imagens com o IRIS Por Rodolfo Barros

1. CAPÍTULO COMPUTADORES

OMNI-3MD. Placa Controladora de 3 Motores. Disponível Biblioteca para Arduino. Manual de Hardware. Outubro de 2013

TCI S5-USB. Cabo de Programação STEP5 - USB. Manual de Instalação

KVM CPU Switch 4 Portas Manual do Usuário

Guia do Usuário Placa de Desenvolvimento McLab1

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

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

Geral: Manual de Utilização do Software de Teste Gradual Windows

Minicurso Arduino JACEE 2012

A licença é vinculada ao HD (Hard Disk) da máquina, esta não podendo ser substituída em caso de formatação ou perda de qualquer espécie do hardware.

CERTIFICADO DIGITAL CONECTIVIDADE DIGITAL ICP GUIA PLANCON DE INSTRUÇÕES PARA A PROCURAÇÃO ELETRÔNICA

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.

Manual de utilização. Aplicativo que substitua o controle remoto da TV e Home Theater da marca LG.

Volte ao Menu Principal e escolha a opção Acesso Manual

Cerne Tecnologia e Treinamento

Tutorial MSN Messenger

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto

Configuração do Linux Educacional 5 para melhor uso do MonitorINFO-V4

Manual. Controle de motores via Bluetooth. William Trevine

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

Módulo de Desenvolvimento PIC16F877A

Parte I Tutorial Wi Fi 2.0 Arduino Exemplo usado: Webserver

Transcrição:

1Manual do Program-ME... 6 1.1Componentes para Program-ME / Arduino... 6 1.2Aplicações práticas... 7 1.3O que é Arduino... 8 1.3.1Características técnicas do Arduino/Program-ME... 8 1.3.2Program-ME v1.0 vs. Arduino... 9 1.3.3Program-ME v2.0 vs. Arduino... 10 1.3.4Shields... 11 1.3.5Tipos de Arduino... 11 1.3.6Arduino em protoboard... 12 1.3.7Arduino para executar ou para desenvolver?... 12 1.3.8Arduino em papel... 12 1.3.9Portas digitais, analógicas e PWM... 13 1.4Configurando seu Program-ME... 14 1.4.1Cuidados Especiais... 14 1.4.2Alimentando seu Program-ME / Arduino... 15 1.4.3Mapa de portas dos componentes Program-ME v1.0... 16 1.4.4Mapa de portas dos componentes Program-ME v2.0... 17 1.5Seus primeiros programas com o Program-ME... 18 1.5.1Instalando os softwares necessários... 18 1.5.2Conhecendo o editor Arduino... 18 1.5.3Escrevendo código do primeiro programa... 20 1.6Laboratório Program-ME: Testando sua placa... 27

Copyright 2009 Globalcode The Developers Company, todos os direitos reservados. Ver. 1.1 3

CAPÍTULO 1 Manual do Program-ME Arquitetura do Program-ME Preparando o ambiente e instalando softwares Arduino e Processing Exemplos práticos de uso

5

1 Manual do Program-ME Program-ME é um computador de pequeno porte, baseado em uma plataforma de prototipagem eletrônica open-souce chamada Arduino. Sendo um computador de pequeno porte ele utiliza um microcontrolador (computador completo em um chip) e não um microprocessador tradicional que precisa de memórias e demais recursos externos para funcionar. Pode ser utilizado para controlar diversos tipos de componentes eletrônicos digitais e analógicos permitindo a criação, prototipação e até mesmo produção de hardwares e projetos eletrônicos e invenções em geral. Vejamos um comparativo entre um computador tradicional (PC Intel, Apple, RISC) e uma placa com microcontrolador programável (Program-ME, Arduino, etc.): Computador Tradicional (PC Intel, Apple, RISC) Placa microcontrolada pequeno porte Alto consumo de energia Baixo consumo de energia (muito baixo!) Muita memória Pouca memória (muito pouca!) Caro Muito barato Complexo Simples Utiliza um sistema operacional Não utiliza um sistema operacional (bare metal) Vários programas ao mesmo tempo Um programa por vez Pseudo tempo real Tempo real (hard real-time) Conexão de hardware por USB / fire-wire Conexão de hardware via portas digitais e analógicas Saída de vídeo padrão Sem saída de vídeo padrão *Considerando uso de microcontroladores de pequeno porte. Em termos de aplicações práticas, não queremos um computador de alto consumo de energia, que roda vários aplicativos ao mesmo tempo, para controlar um portão de garagem com acionamento remoto. 100% das soluções de controle de abertura de portões utilizam placas com microcontroladores com características similares ao que utilizamos no Program-ME / Arduino. Vale lembrar que existem também microcontrolador bem mais poderosos chamados de ARM, estes são microcontroladores mais avançados e de médio até grande porte que podem sim rodar sistemas operacionais e se comportar como um computador tradicional baseado em microprocessador. Telefones celulares como iphone e baseados em Android são clássicas aplicações do ARM. 1.1 Componentes para Program-ME / Arduino Diversos componentes podem ser ligados no Program-ME / Arduino: 6

Acelerômetro, bússola, GPS; Comunicação sem fio: rádio-frequência, infra-vermelho, Bluetooth, RFID (Radio-Frequency IDentification); Displays LCD; Sensores de luz, temperatura, toque, umidade, presença; Motores: DC, motor de passo e servo-motor; Circuitos integrados em geral; Leds e painéis de leds; Detector de cor; Leitor de impressão digital; 1.2 Aplicações práticas Criação de robôs e invenções; Máquinas de corte CNC; Desenvolvimento de sistemas de localização e identificação automática com RFID; Automação residencial: controle de tomadas / relês, dimmer, sensores de presença; Arte tecnológica e entretenimento Hacking de hardware: integração com iphone, telas de Nokia, GPS da Garmin, controle remoto, Sun Spot; Ensino / Educação: pode ser utilizado em cursos de graduação e técnicos em geral para ensinar programação, eletrônica, robótica e computação física. 7

1.3 O que é Arduino Arduino foi criado na Itália por Máximo Banzi com o objetivo de fomentar a computação física, cujo conceito é aumentar as formas de interação física entre nós e os computadores. Por se tratar de um padrão com especificações livres de patentes e softwares open-source, temos vários fabricantes independentes de Arduino ao redor do mundo, incluindo o Brasil que oferece as marcas: Severino, Tatuino, Modelixino e agora o Program-ME da Globalcode. Arduino é simples, fácil de programar e barato. Motivos mais que suficientes para fazer uma comunidade crescente no mundo todo. Características técnicas do Arduino/Program-ME Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega 8 (8K), ATMega 168 (16K) ou ATMega 328 (32K) Clock 16 MHz 512 bytes de EEPROM 1 serial UART 1 interface I2C 20 milhões de instruções por segundo 14 portas digitais 6 analógicas 5v com regulador para trabalhar com alimentação externa de até 12v 8

Program-ME v1.0 vs. Arduino O Program-ME é 100% compatível com Arduino versão 2009, porém o Program-ME inclui componentes on-board para você ingressar facilmente no mundo da eletrônica, computação física, programação e robótica. O Program-ME já inclui os seguintes componentes on-board: 9

Program-ME v2.0 vs. Arduino 10

Shields Outra interessante característica do Program-ME / Arduino é a possibilidade dele receber inúmeros shields em camadas. Shields são placas com componentes adicionais que podem ser encaixadas em cima do Arduino / Program-ME. Alguns tipos de shields também permitem que outro shield seja empilhado, formando diferentes camadas de componentes. Essa arquitetura facilita o acoplamento, reuso e manutenção de shields específicos que podem ser compartilhados por diferentes projetos. Tipos de Arduino Na imagem a seguir podemos ver o Arduino convencional que tipicamente utiliza ATMega 168 ou ATMega328: Existem também diferentes tipos de Arduino além do convencional para atender a projetos mais específicos: Arduino Mega Arduino Nano + portas e maior capacidade Lilypad Arduino Para pequeno devices Program-ME v1.0 + portas e maior capacidade Dispositivo didático 11

Arduino em protoboard Como o projeto eletrônico do Arduino é muito simples, é fácil construir um utilizando protoboard, papel ou corroendo uma placa de face simples. Veja o Arduino em protoboard: 2 Capacitores eletrolíticos de 100 microfarads por 25V 2 Leds 1 cristal de 16MHz (para o clock) 1 protoboard 1 resistor de 1k 1 resistor de 330R 2 capacitores cerâmicos (22) 1 ATMega 168 ou 328 Arduino para executar ou para desenvolver? Podemos fazer com baixo custo um Arduino em protoboard com um mínino de componentes. Mas nesse caso teremos um Arduino suficiente apenas para execução de programas. Como podemos observar, não temos nenhum tipo de circuito que permita a transferência de novos programas para o chip ATMega 168. Por esse motivo é que o projeto original conta com um circuito que permite conectarmos o Arduino via USB no PC - o FT232-RL, que representa um tipo de ponte de comunicação serial RS-232 via USB. Vale lembrar que o custo deste circuito USB (FT232-RL) pode representar o maior custo do projeto! Arduino em papel É possível também fazer Arduinos em papel, ou seja, imprimimos em um papel o esquema do circuito, colocamos os componentes por cima e em baixo do papel e soldamos a fiação: 12

Portas digitais, analógicas e PWM O Arduino disponibiliza diversas portas digitais e analógicas para ligarmos diferentes componentes eletrônicos (ex. leds, sensores, motores) e programar seu comportamento via software ou ler dados de sensores. Nas portas digitais, podemos ler ou gravar 0 / 1 ou HIGH / LOW. Um LED em uma porta digital no estado HIGH é um led aceso ; se passarmos o valor da porta para 0 ou LOW, o led será apagado. Nas portas analógicas de entrada podemos converter um sinal analógico, dentro da faixa de trabalho do Arduino, para números entre 0 e 1023 (quanto maior a amplitude da onda, maior o valor obtido). Potenciômetros e sensores de luz são exemplos de componentes que tipicamente são ligados nas portas analógicas de entrada. O Arduino também disponibiliza portas digitais PWM (Pulse With Modularization) que simulam um controle de potência em portas digitais. Podemos usar PWM para controlar a velocidade de rotação de um motor ou a intensidade de brilho de um LED. Cada componente do circuito é ligado em um porta digital convencional, PWM ou uma porta analógica. Além disso, o Arduino permite que uma porta analógica funcione como digital, mas não o contrário. 13

1.4 Configurando seu Program-ME Cuidados Especiais O Program-ME não é um dispositivo frágil, mas é importante ficarmos atentos em alguns detalhes quando trabalhamos com corrente elétrica: O primeiro cuidado é quanto à forma de alimentação: via USB ou fonte externa que deve ser escolhida e configurada com atenção (essa configuração será abordada a seguir). O segundo cuidado é quanto às partes do Program-ME (e Arduinos em geral) que conduzem corrente, sendo a parte mais perigosa o conector USB prateado que é aterrado e não deve encostar em componentes de um shield instalado. O terceiro cuidado é quanto a usar 110 ou 220 em relês, por exemplo, e estiver ligando isso no seu Program-ME. O Program-ME conta com um diodo para proteção do transistor, mas se um relê estiver ligado de forma errada pode ser fatal para a placa toda. Portanto, toda atenção é pouco. Dediquei este tópico ao primeiro Program-ME fabricado que explodiu em minha bancada quando esbarrei um fio com 110V no conector prateado USB!!! (Vinícius Senger). 14

Alimentando seu Program-ME / Arduino O Program-ME / Arduino pode ser alimentado com energia da porta USB ou receber uma fonte externa de alimentação. O uso da fonte externa é fortemente recomendado quando se usa componentes que consomem corrente totalizando 500mA, como é o caso de motores, relês e diversos outros. É muito importante que você tenha esses cuidados, pois você pode queimar sua porta USB ou até mesmo o seu Program-ME se usado de forma incorreta!!! Você deve configurar através de um jumper (JEXT / JUSB) qual é a forma pretendida de alimentação conforme apresentado na imagem a seguir. Se o Program-ME ficar sem o strap, ele não ligará!! Neste caso temos o Program-ME configurado para receber alimentação externa. O strap esta ligando os pinos 1 e 2. Para que os leds estejam Aqui temos o Program-ME habilitados, todos os straps sendo alimentado por USB precisam estar corretamente com o strap ligando os colocados nos jumpers. pinos 2 e 3. 15

Mapa de portas dos componentes Program-ME v1.0 Porta Componente Código Digital 0 Digital 1 Digital 2 Digital 3 Digital 4 Digital 5 Digital 6 Digital 7 Digital 8 Digital 9 Digital 10 Digital 11 Digital 12 Digital 13 Digital 14 Analógica 0 Analógica 1 Analógica 2 Analógica 3 Analógica 4 Analógica 5 Botão / Chave 1 Led 2 verde Led 3 verde Led 4 amarelo Led 5 amarelo Led 6 amarelo Led 7 vermelho Transistor Led 8 vermelho Transistor Servo 1 Servo 2 Speaker LEd 9 vermelho Led 1 verde É o mesmo que Digital 14 Potenciômetro 1 Potenciômetro 2 Transistor Transistor Sensor de Luz LDR Chv1 L2 L3 L4 (PWM) L5 L6 (PWM) L7 (PWM) Q3 L8 Q4 Servo-1 Servo-2 SP1 L9 L1 Led 1 verde L1 JP6 JP7 Q2 Q5 R16 O Program-ME / Arduino pode acessar as portas analógicas e tratá-las como digitais usando os números dos pinos em sequencia, ou seja, a porta analógica zero será tratada como digital quando for referenciada como pino 14 e assim por diante. Analógica 0 Analógica 1 Analógica 2 Analógica 3 Analógica 4 Analógica 5 Pino 14 ou Digital 14 Pino 15 ou Digital 15 Pino 16 ou Digital 16 Pino 17 ou Digital 18 Pino 18 ou Digital 18 Pino 19 ou Digital 19 16

Mapa de portas dos componentes Program-ME v2.0 Porta Componente Código Digital 0 Digital 1 Digital 2 Digital 3 Digital 4 Digital 5 Digital 6 Digital 7 Digital 8 Digital 9 Digital 10 Digital 11 Digital 12 Digital 13 Conector Bluetooth Conector Bluetooth Botão / Chave1 / Interrupção 0 Interrupção1 / Transistor Q3 Led 5 / Speaker Servo1 / Transistor Q2 Servo2 / Transistor Q4 Led 4 / Motor 1-A Led 3 / Motor 1-B Transistor Q5 Motor 1 PWM Motor 2 PWM Motor 2-A / Led2 Motor 2-B / Led1 JP14 JP14 Chave-1 / JP19 JP18 P5 JP4 Q2 JP5 Q4 P4 / X1 P3 / X1 Q5 X1 X1 X1 / P2 X1 / P1 Analógica 0 Analógica 1 Analógica 2 Analógica 3 Analógica 4 Analógica 5 Entrada 1 Entrada 2 Sensor Temperatura Sensor de Luz Conector I2C Conector I2C JP6 JP7 JP16 R16 JP3 JP3 Podemos perceber que nesta versão da placa alguns componentes foram colocados em paralelo, Quando usamos o sistema de controle de motores L293D (controle duplo de motores) os leds serão acionados em paralelo e viceversa. 17

1.5 Seus primeiros programas com o Program-ME Instalando os softwares necessários Para iniciar o desenvolvimento de programas para o Program-ME / Arduino, você deve fazer o download e instalar os seguintes softwares: Java SE JDK : O editor do Arduino foi feito em Java, portanto necessita da máquina virtual Java instalada para funcionar. Supondo que você ainda não tenha instalado o JDK, veja no capítulo anterior como fazer essa instalação e configuração. Arduino (0020 ou versão posterior): O download pode ser feito na url http://www.arduino.cc/. Esse software é a ferramenta (próximo a uma IDE) por meio da qual escrevemos, compilamos e efetuamos a transferência do programa para a placa do Program-ME. Depois de instalar o software necessário, basta localizar, no diretório de instalação do Arduino, um arquivo chamado arduino.exe (no Windows) ou arduino.sh (no Linux) e executar esse arquivo para inicializar o editor do Arduino. Agora é o momento certo de você colocar todos os straps nos jumpers conforme mostramos anteriormente. Quando terminar de ligar você já pode colocar o cabo USB no Program-ME e, em seguida, ligar em uma porta USB do seu computador. A primeira conexão tipicamente demora mais em função das configurações iniciais. Seu sistema operacional deve reconhecer as portas seriais como COMx:, por exemplo COM10:, COM11: ou até mesmo COM30: (pode acontecer)! Conhecendo o editor Arduino Usamos a ferramenta Arduino para editar, compilar e transferir programas para nosso Program-ME. Ela permite o desenvolvimento com C / C++ utilizando um GCC customizado para AVR / ATMel (família de microcontroladores do Arduino ATMEGa 168 / 328). A ferramenta é simples e funcional e nela temos uma área para edição de código, uma área (fundo preto) de resposta das operações com nosso Arduino e também menus e botões de atalho para as operações mais comuns. 18

A figura a seguir descreve as funções principais do Editor Arduino. Serial monitor: usado para ler informação do Arduino para o PC Upload: transfere o prog. para o Arduino Save: salvar seu projeto Open: abrir um projeto New: iniciar um novo projeto Stop: parar a compilação Compile: compilar o código Devemos escolher no menu Tools Board o modelo correto de microcontrolador que estamos utilizando. No caso do Program-ME é o Atmega328 conforme apresentamos na imagem abaixo. Depois devemos escolher a porta serial que representa nosso Arduino, conforme mostrado abaixo. Pronto! Podemos agora escrever o código do programa e transferir para nosso dispositivo. 19

Escrevendo código do primeiro programa Vamos apresentar aqui alguns exemplos de programas simples e práticos com o Program-ME. É importante lembrar que os straps pretos devem estar colocados nos jumpers para ligar os componentes do Program-ME. OBS: Não se preocupe, neste momento, em entender as instruções do programa. Vamos apenas verificar o funcionamento do Program-ME e o processo de desenvolvimento. Você vai notar que no Program-ME, o programa fonte é divido em três partes: 1) Área de Declarações: onde são definidas variáveis e constantes globais1 que utilizaremos no programa. 2) Função de setup: trecho de código executado apenas uma vez onde fazemos a inicialização de portas e variáveis. 3) Função de loop: trecho de código principal do Arduino que contém o programa que ficará sendo executado infinitamente (em loop dentro do dispositivo). Lembre-se que os textos após o símbolo // não representam instruções do programa, são apenas documentação a respeito do que está sendo programado na instrução seguinte. 1 Os termos variáveis e constantes globais serão definidos mais adiante. 20

1.5.3.1 Led Pisca Pisca Program-ME v1.0 O programa abaixo faz com que o Led Verde, na porta digital 14, receba valores HIGH e LOW de forma que ele fique acendendo e apagando constantemente. PiscaPisca // Associando o nome LED_1 com a porta digital 14 #define LED_1 14 void setup() { //Definindo a porta digital 14 como uma porta de saída de dados (acenderemos o led) pinmode(led_1, OUTPUT); void loop() { //Gravamos 1 na porta digital 14, acendendo o led verde digitalwrite(led_1, HIGH); //Comando para aguardar 1 segundo (1000 milissegundos) para a próxima instrução delay(1000); // Gravamos 0 na porta digital 14, apagando o led verde digitalwrite(led_1, LOW); //Comando para aguardar 1 segundo (1000 milissegundos) para a próxima instrução delay(1000); 21

1.5.3.2 Led Pisca Pisca Program-ME v2.0 O programa abaixo faz com que o Led digital 13, receba valores HIGH e LOW de forma que ele fique acendendo e apagando constantemente. PiscaPisca //Program-ME v2 // Associando o nome LED_1 com a porta digital 13 #define LED_1 13 void setup() { //Definindo a porta digital 14 como uma porta de saída de dados (acenderemos o led) pinmode(led_1, OUTPUT); void loop() { //Gravamos 1 na porta digital 14, acendendo o led verde digitalwrite(led_1, HIGH); //Comando para aguardar 1 segundo (1000 milissegundos) para a próxima instrução delay(1000); // Gravamos 0 na porta digital 14, apagando o led verde digitalwrite(led_1, LOW); //Comando para aguardar 1 segundo (1000 milissegundos) para a próxima instrução delay(1000); Depois de digitar esse código no editor do Arduino (não é necessário incluir os comentários) e salvar, clique em compilar para verificar se tudo foi escrito corretamente. Caso o Arduino não aponte nenhum erro no seu código, clique no botão de Upload e transfira o programa para o Arduino. DICA: Não é necessário compilar antes de fazer o upload pois todas operações de upload compilam implicitamente seu código! Porém, é necessário salvar o seu projeto antes de colocar em execução. 22

1.5.3.3 Leds com luminosidade variável Vamos agora aprimorar nosso programa para quanto menos luz, mais leds são acesos. LuminosidadeVariavel // Associamos o nome LDR à porta analógica 5 #define LDR 5 int led[] = {14,1,2,3,4,5,8,6,13; int luminosidade; void setup() { // Definimos as portas digitais como portas de saída for(int x=0;x<9;x++) { pinmode(led[x], OUTPUT); void loop() { //Obtemos o valor da luminosidade via sensor da placa luminosidade = analogread(ldr); //Calculamos quantos leds devem ser ligados int ledsparaligar = map(luminosidade, 0, 750, 0, 9); // Acendemos os leds a serem ligados com pequeno intervalo de tempo entre eles for(int x=0;x<ledsparaligar;x++) { digitalwrite(led[x], HIGH); delay(100); // Apagamos os leds a serem ligados com pequeno intervalo de tempo entre eles for(int x=0;x<ledsparaligar;x++) { digitalwrite(led[x], LOW); delay(100); 23

1.5.3.4 Leds com luminosidade variável Program-ME v2.0 Vamos agora aprimorar nosso programa para quanto menos luz, mais leds são acesos. LuminosidadeVariavel #define LDR 3 int led [] = { 13, 12, 8, 7, 4; int luminosidade; void setup() { for(int x=0;x<5;x++) { pinmode(led[x], OUTPUT); void loop() { //Obtemos o valor da luminosidade via sensor da placa luminosidade = analogread(ldr); //Calculamos quantos leds devem ser ligados int ledsparaligar = map(luminosidade, 300, 750, 0, 4); for(int x=0;x<=ledsparaligar;x++) { digitalwrite(leds[x], HIGH); delay(100); for(int x=ledsparaligar;x>-1;x--) { digitalwrite(leds[x], LOW); delay(100); 24

1.5.3.5 Recebendo dados computador do Program-ME / Arduino no O Program-ME / Arduino pode enviar dados para seu computador desde que esteja com o cabo USB ligado. Por meio de uma ponte para interface serial, um programa Arduino pode abrir uma comunicação serial com o computador e enviar dados diversos. Isso é muito importante principalmente para podermos depurar e verificar possíveis erros no nosso programa. Para ver os dados enviados pela placa é necessário configurar o monitor serial na interface do Arduino. ComunicaçãoSerial // Associamos o nome LDR à porta analógica 5 (Program-ME 1.0) #define LDR 5 // Associamos o nome LDR à porta analógica 5 (Program-ME 2.0) #define LDR 3 int luminosidade; void setup() { //Instrução para iniciar a comunicação serial com o computador Serial.begin(9600); void loop() { //Obtemos o valor da luminosidade via sensor da placa luminosidade = analogread(ldr); //Instrução para enviar um dado para o computador Serial.println(luminosidade); delay(500); 25

Ligação de componentes off-board Apesar do Program-ME já incluir alguns componentes on-board, como leds, speaker e transistores, muitas vezes queremos ligar componentes diferenciados, como por exemplo um ultrasom para medir distância (muito útil para robôs controlados pelo Program-ME desviarem de obstáculos). Na imagem a seguir, podemos ver um ultra-som da Parallax (ping) ligado no Program-ME através de uma protoboard (placa branca com furos). Podemos observar três fios: 1. Sinal digital para o Arduino 2. Terra / gnd 3. 5v Cada componente que ligamos no Arduino demanda um esquema específico de fiação, para isso temos que ter em mãos o datasheet do componente que pretendemos usar. Caso você esteja utilizando um componente on-board do Program-ME, como seus leds, speaker, transistor, não é necessário ligar nenhum fio e nem mesmo usar a protoboard. Adicionalmente o Program-ME pode receber diretamente servo-motores, motores DC, step-motor unipolar e potenciômetros sem a necessidade de protoboards. 26

1.6 Laboratório Testando sua placa Program-ME: Objetivo: Criar o primeiro programa com Program-ME / Arduino. LABORATÓRIO Tabela de atividades: Atividade OK 1. Abra o editor Arduino conforme instruções e escolha um dos três programas exemplo para digitar. 2. Digite o programa com atenção em relação às letras maiúsculas e minúsculas. 3. Clique no botão de compilação para ver se o código está com a sintaxa correta. 4. Plug seu Program-ME no computador via USB, faça a configuração da board e da porta de comunicação. Depois clique no botão de transferência do programa para a placa. 5. Parabéns! Seu primeiro software de baixo nível escrito com Program-ME / Arduino! 27