Robótica com Arduino



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

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

Arduino e Processing. Professor: Paulo Marcos Trentin Escola CDI Videira

Programação Básica em Arduino Aula 2

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

Suporte ao Desenvolvedor: STK (Start Kit DARUMA)

BEC- Bafômetro Embutido em Carros

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

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

Prá$cas Arduino. Manoel Neto

Programação em Arduino

Arduino Aula 4 SHIELDS: BLUETOOTH, ETHERNET E EMG

Projeto No. 11 Display de Leds de 7 Segmentos

Parte I Tutorial Wi Fi 2.0 Arduino Exemplo usado: Webserver

WiFiShield. Introdução

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

Arquitetura de Computadores. Tipos de Instruções

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

Minicurso de Arduino

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

Resumo da Matéria de Linguagem de Programação. Linguagem C

Guia de consulta rápida

O Laboratório de Garagem

Pontifícia Universidade Católica do Paraná. Claudio Roberto Ferretto Junior. Éric Guimarães Zeni. Jub Gomes da Costa WINDOWS X.

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

Roteiro do Programa e Entrada/Saída

SENSOR DE LUMINOSIDADE Com indicador de intervalo

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

Projeto No. 12 Display de Led de 7 Segmentos

Oficina de Programação utilizando a plataforma Arduino

Professor: Fernando Krein Pinheiro

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

PARANÁ GOVERNO DO ESTADO

Seja Bem-vindo(a)! Neste módulo vamos trabalhar os principais conceitos de informática.

GERTEC Manual de Operação e Instalação MTi-760 Versão 1.0

KVM CPU Switch 4 Portas Manual do Usuário

Manual de Instalação. GPRS Universal

Application Note FBEE Comunicação Serial Wireless REV Rev01

Organização de Computadores Hardware

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

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

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

Vetores, Matrizes e String

Introdução SUMÁRIO. 1. Introdução Sobre este manual Componentes INSTALAÇÃO Funcionalidade... 9

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

Robótica com Arduino Professor: Paulo Marcos Trentin

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

Resolvendo problemas de conexão de rede wireless no pregão 83/2008

Manual para instalação e utilização do Headcargo

COMO REDUZIR O CUSTO NA COMUNICAÇÃO USANDO A INTERNET

Intel Galileo: Instalação e IDE Arduino

Motorola Phone Tools. Início Rápido

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

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

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

STK (Start Kit DARUMA) Procedimento de Instalação do Min200E Conexão USB

INSTALAÇÃO MICROTERMINAL FIT BASIC BEMATECH

Criando seu primeiro programa: Ao abrir o software, ele já está pronto para começar a programar:

Minicurso de Arduino

A senha 001 de fábrica é

Controle Patrimonial WEB

GUIA DE INSTALAÇÃO Modem 4G

Manual de Instalação e Configuração do Primeiro Backup Versão PRO

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

STK (Start Kit DARUMA) Primeiro contato com a Impressora Fiscal, a ECF chegou e agora?

PAINEL DE SENHAS RBSG4JE. Imagem ilustrativa do painel. Operação/Configuração Painel Eletrônico de Senhas / Guichê com jornal de mensagens.

Arduino e Proteus (Tutorial)

Serial Paralela USB FireWire(IEEE1394)

UDPcast Clonagem de HDs via rede utilizando

Comunicação Serial com o AVR ATMEGA8

ZTC Dual SIM CARD

Como instalar uma impressora?

TUTORIAL DE UTILIZAÇÃO DE CERTIFICADOR DE CABEAMENTO

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

GUIA RÁPIDO DE INSTALÇÃO

Cerne Tecnologia e Treinamento

Disparando eventos com o Asterisk. Fernando Mercês

Dispositivos de Entrada e Saída

Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

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

Cerne Tecnologia e Treinamento

CURSO OPERACIONAL TOPOLOGIA SISTEMA SIGMA 485-E

Guia de Instalação de Software

Secretaria da Educação do Estado do Rio Grande do Sul. Manual: Sistema de Controle Patrimonial Inventário

Guia de utilização do software. universal GPRS M-300.

OFICINA Uso da plataforma Arduino no Ensino de Ciências

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Projecto Final de Curso 2004/2005 RESPIFE. Reengenharia de Sistema Produtivo Integrado para Fins Educacionais. Guia do Robot

VEJA O QUE VOCÊ PRECISA ANTES DE INSTALAR

Sistema Click Principais Comandos

Servo Motores. Jener Toscano Lins e Silva

20 Caracteres - Tipo char

Hacking Class Controlando tomadas da sua casa via Internet

Como configurar a Central de Alarme AMT 2018 E/AMT 2018 EG para enviar os eventos para apenas um sistema de monitoramento através de GPRS.

Transcrição:

Robótica com Arduino Nesta apresentação veremos conceitos sobre contadores, estrutura de condição if, e trabalharemos com a comunicação Serial entre o Arduino e o Computador. Professor: Paulo Marcos Trentin Escola CDI de Videira

Problema envolvendo contador Vamos supor que desejamos fazer um LED piscar por 10 vezes e não mais. O que precisa ser alterado no código fonte abaixo? // Cria variável global contendo o tempo de atraso int led = 3; void setup() { // define o pino 2 como sendo de saida pinmode(led, OUTPUT); void loop() { // Liga o LED digitalwrite(led, HIGH); // Aguarda 200 milisegundos delay(200); // Desliga o LED digitalwrite(led, LOW); // Aguarda 200 milisegundos delay(200);

Conceito do Contador Nosso cérebro faz isso automaticamente, porém o computador precisa ser programado para fazer uma contagem. Para permitir o Arduino contar, basta criarmos uma variável que armazene valores inteiros: int contador = 0;

Já estamos somando! Uma vez criada a variável, precisamos incrementá-la a cada vez que o LED piscar. int led= 3; int contador = 0;... void loop() { // Liga o LED digitalwrite(led, HIGH); // Aguarda 200 milisegundos delay(200); // Desliga o LED digitalwrite(led, LOW); // Aguarda 200 milisegundos delay(200); // Incrementa contador contador = contador + 1;

Outras formas de somar ou subtrair Podemos somar da forma tradicional: contador = contador + 1; Incremento rápido: contador++ ; Neste modo, a variável contador recebe mais 1. Poderíamos decrementar também: contador-- ; Incremento por atalho: contador += 1; A vantagem deste método é que podemos usar um atalho para incrementar de dois em dois e assim por diante: contador += 2;

Operador de condição if Agora, tudo que precisamos é verificar, a cada execução do loop, se o valor da variável contador já chegou à 9 (menor que 10). void loop() { // Lê-se: Se o valor da variável contador for menor que, ou igual à 10, então entra dentro do "if" if (contador < 10){ // Liga o LED digitalwrite(led, HIGH); // Aguarda 200 milisegundos delay(200); // Desliga o LED digitalwrite(led, LOW); // Aguarda 200 milisegundos delay(200); // Incrementa contador. Lê-se: variável contador recebe o valor da variável contador + 1 contador = contador + 1;

Operadores de comparação Muitas vezes precisamos analisar valores, como no exemplo do código anterior. Temos os seguintes operadores (pg 6 da apostila) de comparação: == (igual a)!= (diferente de) < (menor que) > (maior que) <= (menor que ou igual) >= (maior que ou igual)

Muito teórico! Não acredito! Como vou confiar que o contador está mesmo sendo incrementado? Como ter certeza disso? Como ver em tempo real o contador sendo incrementado?

Solução: Comunicação Serial! Permite comunicações de longas distâncias (o limite é a capaciância dos cabos, 80 metros em alguns casos funciona normalmente) Muito estável USB é o Universal Serial Bus Com Arduino, velocidades de até 115.200 baud são aceitas

Limite de velocidade O Arduino Duemilanove utiliza o chip FT232R para comunicar-se com o computador. Esse chip, segundo datasheet do fabricante ft232r (pg 27), suporta transferências até 1M baud. O console serial da IDE do Arduino, por usa vez, suporta até 115200 baud por segundo.

E seu precisar mais velocidade? A solução então é usar um chip que já venha de fábrica com suporte à USB, exemplo disso é o projeto Teensy:

Qual é a velocidade do Teensy A comunicação entre o computador e o Teensy ocorre à 12Mbps. Para maiores detalhes sobre a diferença de tempo de transmissão do Arduino padrão e o projeto Teensy, acesse este link: http://www.pjrc.com/teensy/td_serial.html

void setup() { // Inicia comunicação serial a 9600 baud Serial.begin(9600); void loop() { // Envia dados para a serial Serial.println("Executou o loop"); // Aguarda 1 segundo delay(1000); Como começar a trabalhar com a USB Serial do Arduino? Veja como é simples enviar dados do Arduino para o computador:

Entendendo o Serial.begin(9600); Serial é um objeto interno do Arduino. Ele tem um método, chamado begin, ou seja, começar. Aqui definimos que vamos usar a Serial do Arduino, e que a velocidade de transmissão é 9600 baud.

Entendendo o Serial.print(); Serial é um objeto interno do Arduino. Ele tem um outro método, chamado print, ou seja, imprimir. Esse método, envia para a serial o conteúdo passado como parâmetro.

Qual a diferença de print() e println()? O método print() apenas envia o conteúdo para a serial. Já println() além de enviar o conteúdo, também imprime uma quebra de linha após o envio. Mais informações sobre Serial.print() aqui: http://arduino.cc/en/serial/print

Exercício 1 Faça um programa que utilize o método print() e println() do objeto Serial O print deve imprimir a mensagem: "imprimi algo sem quebra de linha" O println() deve imprimir a mensagem: "imprimi algo com quebra de linha"

Exercício1 - resposta void setup() { // Inicia comunicação serial a 9600 baud Serial.begin(9600); void loop() { // Envia dados para a serial Serial.print("imprimi algo sem quebra de linha"); // Envia dados para a serial Serial.println("imprimi algo com quebra de linha"); // Aguarda 5 segundos delay(5000);

Enviando valores de variáveis Verifique o valor da variável contador: int contador = 0; void setup() { // Inicia comunicação serial a 9600 baud Serial.begin(9600); // Envia dados para a serial Serial.print("Valor da variavel contador: "); Serial.println(contador); void loop() {

Exercício 2 - voltando ao contador Crie um novo programa com um contador Ao iniciar o programa deve enviar na serial: "Iniciando programa contador..." Este contador deve ser incrementado com + 2 a cada loop no intervalo de 1 segundo A cada loop, deve ser enviado para a serial o valor atual do contador

Recebendo dados do computador Podemos facilmente enviar dados do computador para o Arduino Para isso usaremos o "Serial Monitor" da IDE

Recebendo dados do computador - código fonte char byterecebido; void setup() { // Inicia comunicação serial a 9600 baud Serial.begin(9600); Serial.println("Digite algo e pressione Enter"); void loop() { // Verifica se chegou algo pela serial if (Serial.available() > 0){ // Lê a serial e coloca o valor na variável byterecebido byterecebido = Serial.read(); Serial.print("Eu recebi: "); // Imprime na Serial o valor recebido Serial.println(byteRecebido);

Entendendo o Serial.available(); Serial é um objeto interno do Arduino. Ele tem um método, chamado available, ou seja, disponível. Se houver alguma informação para ser lida na Serial, retorna o número de bytes a serem lidos, do contrário, retorna 0.

Entendendo o Serial.read(); O método read, lê da serial um byte e o retorna para ser usado. Quando usamos: byterecebido = Serial.read(); Estamos dizendo para ler a Serial, e inserir o valor lido na variável byterecebido

Como verificar se uma letra foi digitada? char byterecebido; void setup() { // Inicia comunicação serial a 9600 baud Serial.begin(9600); // Exibe mensagem de boas vindas Serial.println("Insira alguma letra e pressione Enter"); void loop() { // Verifica se chegou algo pela serial if (Serial.available() > 0){ // Lê a serial e coloca o valor na variável byterecebido byterecebido = Serial.read(); Serial.print("Eu recebi: "); // Imprime na Serial o valor recebido Serial.println(byteRecebido); // Verifica se a letra a foi digitada if (byterecebido == 'a'){ Serial.println("Voce digitou a tecla a");

Exercício 2 Faça um programa que receba do computador, via serial, comandos do usuário Quando o usuário digitar a tecla L, seu programa deve ligar todos os LEDs da protoboard Quando o usuário digitar D, então todos os LEDs devem ser desligados