Robótica com Arduino

Documentos relacionados
Robótica com Arduino

Robótica com Arduino Professor: Paulo Marcos Trentin

Robótica com Arduino

Caderno de Atividades 1

Vetores, Matrizes e String

Entrada de dados com botões

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

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

Oficina de Programação utilizando a plataforma Arduino

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

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

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

Projeto No. 12 Display de Led de 7 Segmentos

Arduino - Primeiros Passos

Kit controle remoto IR acionando 3 Led com Arduino

Mundo Arduino: Vamos começar a programar?

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 31/08/2015

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

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

Projeto No. 15 Sensor Óptico Reflexivo

Programação em Linguagem C

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

introdução Olá, Após alimentar você deve enviar comandos AT para verificar que o modulo está funcionando e comunicando via serial.

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

Atividade de laboratório 004. Prof: Carlos Eduardo de Brito Novaes 6 de maio de Alunos RA Nome Curso Semestre

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

Por Fernando Koyanagi 1

Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial

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

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

Missão: Arduino. 3 de Março. Organização

Acendendo o Led com Arduino.

Introdução à Lógica de Programação

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

LINGUAGEM C: COMANDOS DE REPETIÇÃO

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

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

MANUALDEGUSTAÇÃO ARDUINO KIT INICIANTE V4.0

KIT INICIANTE V7 PARA ARDUINO

Por Fernando Koyanagi 1

Projeto No. 11 Display de Leds de 7 Segmentos

Algoritmos e Programação

Curso introdutório de microcontroladores - Plataforma Arduino

Oficina de Programação utilizando a plataforma Arduino

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

Arduino: primeiros passos para aprender e configurar.

Introdução. O que é o Arduino?

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

Projeto No. 17 Infravermelho

Minicurso de Arduino

OFICINA Uso da plataforma Arduino no Ensino de Ciências

Plano de Aula. 1 o semestre. Aula número 012 Periféricos Comunicação Serial. Conhecer os princípios de comunicação serial

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes

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

Atividade de laboratório 007. Prof: Carlos Eduardo de Brito Novaes 10 de junho de Alunos RA Nome Curso Semestre

Atividade de laboratório 001. Prof: Carlos Eduardo de Brito Novaes 18 de março de Alunos RA Nome Curso Semestre

Ficha 3. Exercícios de preparação da actividade 3

INOVAÇÃO TECNOLÓGICA E LÓGICA E ARDUINO EMPREENDEDORISMO. Prof. Dr. Daniel Caetano

Curso de Arduino. Quais seus principais componentes?

Exercícios Repetição

Capítulo 6: Arquivos

BEC- Bafômetro Embutido em Carros

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Oficina de Programação utilizando a plataforma Arduino

Arduino. Gilmar Aquino

Hacking Class Controlando tomadas da sua casa via Internet

LP II Estrutura de Dados

ESTRUTURA DE DADOS LAÇOS E VETORES

Linguagem de Programação. Linguagem C com Arduino

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

Por Fernando Koyanagi

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Servo Motores. Jener Toscano Lins e Silva

Funciona como uma matriz unidimensional, mas tem mais de um índice. Sintaxe:

ALGORITMOS, ARQUITETURA E ARDUINO

Over the Air OTA. Por Fernando Koyanagi

Por Fernando Koyanagi

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

Disparando eventos com o Asterisk. Fernando Mercês

#include <SoftwareSerial.h> SoftwareSerial myserial(2, 3); // RX, TX

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Projeto No. 2 Potenciômetro

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

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

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

Internet das Coisas Ferramentas Para Prototipação. João Bosco Teixeira Junior >

Oficina de Programação utilizando a plataforma Arduino

Manual Versão IP Extreme Tecnologia LTDA

Por Fernando Koyanagi 1

Tutorial Proteus 02. Como simular o Arduino no Proteus ISIS utilizando a biblioteca "Emulater" por João Vitor

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Introdução ao Arduino

Laços de repetição for, while, do-while

Programação Básica em Arduino Aula 5

Python 3.x Estrutura de Repetição while

Transcrição:

Robótica com Arduino Hoje vamos desenvolver um projeto de sinalização com Código Morse, criar funções e entender suas aplicações Professor: Paulo Marcos Trentin Escola CDI de Videira

Fonte: Wikipedia Código Morse Criado em 1835 por Samuel Morse "Código morse é o único modo de modulação feito para ser facilmente compreendido por humanos sem ajuda de um computador" Consiste em enviar ao receptor pontos e traços, com espaços definidos.

Código Morse padrão Internacional Sua definição é baseada em saber: Sinal curto, ponto ou 'dit' ( ) Sinal longo, traço ou 'dah' (-) Intervalo entre caracteres (entre pontos e traços) Intervalo curto (entre letras) Intervalo médio (entre palavras) Intervalo longo (entre frases)

Tabela de letras e números

Sinalização do ponto (.) ou dit Para sinalizar um ponto, iremos ligar o LED por 300 milisegundos e desligá-lo por 100 milisegundos Exemplo do código fonte: digitalwrite(pinoled, HIGH); delay(300); deigitalwrite(pinoled, LOW); delay(100);

Sinalização do traço (-) ou dah Para sinalizar um traço, iremos ligar o LED por 900 milisegundos (o tempo de 3 pontos) e desligá-lo por 100 milisegundos Exemplo do código fonte: digitalwrite(pinoled, HIGH); delay(900); deigitalwrite(pinoled, LOW); delay(100);

Sinal de socorro SOS O que significa SOS? Comumente associado a: Save Our Seamen - Salve nossos marinheiros Save Our Souls - Salve nossas almas Save Our Ship - Salve nosso Navio

Sinal de socorro SOS Como representar? Seguindo nosso alfabeto, a sigla SOS é representada por: Lê-se: dit dit dit dah dah dah dit dit dit

Brincando com Código Morse Exercício Conecte um LED externo ao Arduino e desenvolva um programa que sinalize o código SOS com esse LED.

Brincando com Código Morse - resposta - parte1 Na função setup temos: // Fora das funções, iniciamos as variáveis int pinoled = 2; int tempoespaco = 100; int tempoponto = 300; int tempotraco = 900; // Função setup void setup(){ pinmode(pinoled, OUTPUT); }

Brincando com Código Morse - resposta - parte2 Após iniciar o led como saída na função setup, temos dentro do loop: void loop(){ // código que cria 3 pontos digitalwrite(pinoled, HIGH); delay(tempoponto); digitalwrite(pinoled, LOW); delay(tempoespaco); digitalwrite(pinoled, HIGH); delay(tempoponto); digitalwrite(pinoled, LOW); delay(tempoespaco); digitalwrite(pinoled, HIGH); delay(tempoponto); digitalwrite(pinoled, LOW); delay(tempoespaco); delay(tempoespaco);

Brincando com Código Morse - resposta - parte3 Ainda dentro do loop, depois dos códigos que criam 3 pontos:... // código que cria 3 traços digitalwrite(pinoled, HIGH); delay(tempotraco); digitalwrite(pinoled, LOW); delay(tempoespaco); digitalwrite(pinoled, HIGH); delay(tempotraco); digitalwrite(pinoled, LOW); delay(tempoespaco); digitalwrite(pinoled, HIGH); delay(tempotraco); digitalwrite(pinoled, LOW); delay(tempoespaco); delay(tempoespaco);

Brincando com Código Morse - resposta - parte4 Por fim, ainda dentro do loop, depois do código que cria três traços:... // código que cria 3 pontos digitalwrite(pinoled, HIGH); delay(tempoponto); digitalwrite(pinoled, LOW); delay(tempoespaco); digitalwrite(pinoled, HIGH); delay(tempoponto); digitalwrite(pinoled, LOW); delay(tempoespaco); digitalwrite(pinoled, HIGH); delay(tempoponto); digitalwrite(pinoled, LOW); delay(tempoespaco); delay(tempoespaco);

Brincando com Código Morse - resposta - parte5 Por fim, no final do loop() precisamos criar um tempo de atraso para repetir o código. Vamos usar 5 segundos:... // Aguarda 5 segundos delay(5000); } // fim do loop

Redundância no código fonte Reparou a quantia de linhas iguais em seu código fonte? Por exemplo, para sinalizar os três primeiros pontos, precisamos ter: digitalwrite(pinoled, HIGH); delay(tempoponto); deigitalwrite(pinoled, LOW); delay(tempoespaco); digitalwrite(pinoled, HIGH); delay(tempoponto); deigitalwrite(pinoled, LOW); delay(tempoespaco); digitalwrite(pinoled, HIGH); delay(tempoponto); deigitalwrite(pinoled, LOW); delay(tempoespaco); delay(tempoespaco);

Quanto desenvolvemos um software, devemos sempre pensar na manutenção. Ao terminar de desenvolver um software, o custo de manutenção deve ser tão próximo à zero quanto possível. Qual é o problema da Redundância? Tempo no desenvolvimento maior Código menos legível - Código fonte feio Código menos manutenível - difícil de mudar e com alto custo

Como resolvemos o problema de código repetido? Usamos uma função! Exemplo da função que cria um ponto: // Função responsável por criar um ponto void dit() { digitalwrite(pinoled, HIGH); delay(tempoponto); digitalwrite(pinoled, LOW); delay(tempoespaco); }

Função dah - criação do traço A função dah. Crie uma outra função chamada dah como visto abaixo: // Função responsável por criar um traço void dah() { digitalwrite(pinoled, HIGH); delay(tempotraco); digitalwrite(pinoled, LOW); delay(tempoespaco); }

Agora a função loop() reformulada void loop(){ // Chama 3 vezes a função dit(), ou seja, cria 3 pontos dit(); dit(); dit(); delay(tempoespaco); // Espaço para nova letra // Chama 3 vezes a função dah(), criando 3 traços dah(); dah(); dah(); delay(tempoespaco); // Espaço para nova letra // Cria novamente 3 pontos dit(); dit(); dit(); delay(tempoespaco); // Espaço para nova letra // Aguarda 5 segundos para repetir delay(5000); }

Exercício com Código Morse Faça um programa que exiba via Código Morse os números de 0 à 9 na sequência. Exemplo de código para número 0: dah(); dah(); dah(); dah(); dah();

Exercício com Código Morse - parte2 Agora crie funções para cada número, por exemplo, a função do número zero poderia ser: // Função que cria o número 0 em código Morse void num0(){ dah(); dah(); dah(); dah(); dah(); delay(tempoespaco); // Espaço para nova letra }

Exercício com Código Morse - parte3 Crie um programa, que chamando as funções criadas anteriormente, exiba os números em sequência, via Código Morse: 0 1 2 3 4 5 6 7 8 9

Exercício com Código Morse - final Agora crie um programa que solicite e leia, via comunicação serial, o número qual o usuário deseja exibir em código Morse. Após ler o número, o programa deve executálo e solicitar qual é o novo número que o usuário deseja receber

Exercício com Código Morse - final Diga: Para ficar aguardando por um código serial use: while(serial.available() == 0) { } // Não faz nada, só aguarda O código acima, lê-se: Enquanto estiver 0 bytes disponíveis na serial, execute o código dentro do while, ou seja, não faça nada.