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

Uma Introdução ao ARDUINO e suas Aplicações na Robóticaadenilsonpaiva.com/biblioteca/hardware/arduino/SACOMP2012-29_05-4... · O que é Arduino? “Arduino é uma plataforma

  • Upload
    others

  • View
    27

  • Download
    1

Embed Size (px)

Citation preview

Uma Introdução ao ARDUINO

e suas Aplicações na Robótica

André F. Núñez

O que é Arduino?

“Arduino é uma plataforma open-source de protótipos eletrônicos baseados em hardware e software flexível e fácil de usar. É destinado a artistas, designers, hobbyistas, e qualquer pessoa interessada em criar objetos ou ambientes interativos.”

O que é Arduino?

“O Arduino pode sentir o ambiente recebendo entradas de uma variedade de sensores e pode modificar seu arredor controlando luzes, motores e outros atuadores.”

O que é Arduino?

• Linguagem de programação própria;

• Ambiente de desenvolvimento próprio;

• Fabricado manualmente ou comprado;

A origem do Arduino

• Cidade de Ivrea, Itália;

– 2005;

• Interagir em projetos escolares de forma a ter um orçamento menor que outros sistemas de prototipagem disponíveis naquela época;

Criadores do Arduino

• Time de suporte Arduino:

– Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis.

Sucesso rápido

• Menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica (Prêmio de Artes Eletrônicas);

• 50.000 placas vendidas até outubro de 2008;

Colaboradores Arduino

• Créditos

– Ambiente;

– Linguagem;

– Compilador;

– Pessoas de várias partes do mundo;

Comunidade (suporte)

• Forum:

– http://www.arduino.cc/forum/

• Wiki:

– http://www.arduino.cc/playground/

• Blog:

– http://arduino.cc/blog/

Comunidade (suporte)

• Twitter:

– http://twitter.com/arduinoteam

• Laboratório:

– http://labs.arduino.cc/

Por que Arduino?

• Cafeteira avisar através do Twitter que o café está pronto?

• Robô que brinca com o cachorro?

• Monitor de frequência cardíaca que grava o log em um cartão SD?

• Receber SMS no celular ao receber um e-mail?

• Fantasia que interage através de som e luzes?

Solução: ARDUINO

Por que Arduino?

• Descomplicado

– não foi feito por Engenheiros para Engenheiros;

• IDE roda em Windows, Mac e Linux;

• Drivers rodam em Windows, Mac e Linux;

Por que Arduino?

• Bibliotecas

– coisas simples;

– coisas complexas;

Por que Arduino?

• Compilador conhecido e bem testado

– execução leve e rápida ;

– código pequeno;

• Cobre 90%+ dos sensores do mercado

• Não é produzido por um fabricante de microcontroladores;

Por que Arduino?

• Possui os requisitos mínimos

– mas funcionalidades podem ser adicionadas;

BeagleBoard Arm-cm3 Board

Por que Arduino?

• Baixo custo;

• Open-source;

– Freeduino;

– Seeeduino;

– Pinguino;

– Paperduino;

Paperduino

HARDWARE Portas Digitais

Portas Analógicas

Alimentação

Conexão p/

Fonte Externa Conexão USB

uC Atmel

Hardware básico Portas Digitais (E/S)

• 14 portas digitais;

• 0 ~ 5V

– LOW e HIGH;

Hardware básico Portas Analógicas

• 6 portas analógicas;

• Leitura de 0 ~ 5V

– 10 bits de conversão (2^10);

– saída de 0 a 1023;

Hardware básico Portas PWM

• Pulse Width Modulation

– Modulação por Largura de Pulso;

• 6 portas PWM;

• “Simula” uma tensão de saída

Hardware básico Portas PWM

Hardware básico Comunicação

• Canal de comunicação serial

– RX (pino 0);

– TX (pino 1);

• Conexão SPI

– System Peripheral Interface;

Hardware básico Comunicação

• Conexão I²C

– Inter-Integrated Circuit;

• Pinos ICSP

– In-Circuit Serial Programming;

Placas Oficiais Arduino Arduino Uno

• 1.0 - Versão oficial de lançamento

– Diecimila;

– Duemilanove;

Placas Oficiais Arduino Arduino Uno

Microcontroller ATmega328

Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM output)

Analog Input Pins 6

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

Clock Speed 16 MHz

Placas Oficiais Arduino Arduino Mega 2560

• 54 portas E/S

– 14 PWM;

• 16 entradas analógicas;

• 4 UARTS

Placas Oficiais Arduino Arduino Mega ADK

• Mesmas funcionalidades do Mega 2560;

• Conexão USB especial para comunicação com Android;

Placas Oficiais Arduino Arduino Ethernet

• Funcionalidades do Arduino Uno;

• Conexão RJ-45

– Reduz alguns pinos;

• Leitor de cartões microSD;

Placas Oficiais Arduino Arduino BT

• Funcionalidades do Arduino UNO;

• Placa de comunicação Bluetooth embutida

– Bluegiga WT11

– Permite gravar gravar o microcontrolador

Placas Oficiais Arduino Arduino Leonardo

• 20 pinos E/S;

– 7 PWMs;

• 12 entradas analógicas;

• USB embutida no chip;

Placas Oficiais Arduino Arduino LilyPad

• Versões de baixo consumo dos controladores padrão

– ATmega168V e ATmega328V;

• Feito para ser costurado;

Placas Oficiais Arduino Arduino LilyPad

Placas Oficiais Arduino Arduino LilyPad

Placas Oficiais Arduino Arduino LilyPad

Placas Oficiais Arduino Arduino LilyPad

Placas Oficiais Arduino Arduino Fio

• Microcontrolador SMD;

• 3.3V;

• Funcionalidades Arduino UNO;

• Conexão para placa Xbee;

Placas Oficiais Arduino Arduino Nano

• Layout diferenciado;

• Compatível com

protoboard;

• Mini-B USB;

Placas Oficiais Arduino Arduino Mini e PRO Mini

• Funcionalidades Arduino UNO;

• Placa muito pequena;

• Sem headers;

• Geralmente usados no produto final;

Shields

• Shields são placas que podem ser conectados em cima do PCB Arduino estendendo as suas capacidades.

• Os Shields seguem a mesma filosofia Arduino:

– são fáceis de montar e baratos de produzir;

Shields

Shields Arduino Proto Shield

• Testar circuitos rapidamente;

• Acoplar protoboard pequena;

• Botão de reset;

• Área p/ CI

– SMD

– Through Hole

Shields Wireless SD Shield

• Socket para Xbee;

• Leitor de cartões microSD;

• Área de prototipagem;

Shields Arduino Motor Shield

• Ponte-H L298 embutido;

• Controlar velocidade e direção de motores DC;

• Leitura da corrente;

Shields Criando seu próprio Shield • Respeitar o layout do Arduino

• Respeitar as particularidades de cada pino;

• Compensa?

Shields Shield Braço Robótico

Shields Shield Braço Robótico

Shields

• Arduino Shield List:

– http://shieldlist.org/

Color LCD Shield GSM Shield Joystick Shield

Bricks

• São como blocos que possuem dispositivos de entrada e saída prontos para serem utilizados;

– Sensores;

– Atuadores;

• Conectam-se aos shields;

• Conexão padrão;

• Não há bricks oficiais;

Bricks

Bricks

Bricks

• Excelentes para iniciantes;

– compensa fabricar seus próprios bricks?

R$ 24,00 R$ 8,00

SOFTWARE

Ambiente de Desenvolvimento Integrado - IDE

• Open-source;

• Windows, Mac e Linux;

Ambiente de Desenvolvimento Integrado - IDE

• Escrito em Java e baseado em:

– Processing (interface gráfica);

– avr-gcc (compilador);

– outros softwares de código aberto;

Ambiente de Desenvolvimento Integrado - IDE

• Facilita a programação;

• Muitos exemplos, para todas as bibliotecas padrão;

Ambiente de Desenvolvimento Integrado - IDE

• Permite gravar o código no microcontrolador;

• Permite a comunicação com o Arduino através da porta serial;

– monitor da serial para troca de mensagens;

– facilita debug de hardware;

Ambiente de Desenvolvimento Integrado - IDE

Serial Monitor

Compilar / Verificar

Gravar

Área de

Programação

Área de Informações

Modelo e Porta

Serial

Ambiente de Desenvolvimento Integrado - IDE

SETUP

• Configurações iniciais;

• O código é executado

uma única vez.

LOOP

• Equivale ao Main do C;

• while infinito;

Ambiente de Desenvolvimento Integrado - IDE

Ambiente de Desenvolvimento Integrado - IDE

• http://arduino.cc/en/Reference/HomePage

Bibliotecas

Bibliotecas do

usuário

Bibliotecas

• http://arduino.cc/en/Reference/Libraries

Bibliotecas Criando Bibliotecas

• Criar arquivo .h

– Definição da classe criada;

– Definição dos métodos da classe;

• Criar arquivo .cpp

– Implementação dos métodos

Bibliotecas Criando Bibliotecas

• Adicionar na pasta “libraries”;

• Pode ser adicionado “keywords.txt”

– Definição das keywords da biblioteca para facilitar a visualização na IDE;

• Compilação acontece automaticamente quando a IDE é iniciada;

Bibliotecas Criando Bibliotecas

Bibliotecas Criando Bibliotecas

• Ainda é possível adicionar uma pasta “examples” com exemplos de uso para a biblioteca criada;

• Os exemplos ficarão disponíveis na aba de Examples na IDE do Arduino;

O Arduino e a Robótica

PERCEBER CONTROLAR AGIR

Sensores Atuadores

Ambiente

O Arduino e a Robótica

• Arduino fornece todos os requisitos básicos;

• Robôs simples;

– Arduino possui restrições quanto ao processamento de imagens, por exemplo;

O Arduino e a Robótica

• Comunicação também é facilitada;

– Robôs geralmente precisam se comunicar, receber comandos ou enviar informações para outros robôs ou estações remotas de supervisão e controle;

Arduino, Robótica e Automação

Alguns vídeos e exemplos de aplicação:

• Robô manipulador:

– Controlado por Joystick;

– Utilizando cinemática inversa e resolvendo o problema das Torres de Hanoi;

Arduino, Robótica e Automação

• Sistema separador de frutas automatizado;

• Medidor de Velocidade;

• Controle remoto para apresentação na 17ª SACOMP;

Exemplo de Aplicação Controle Remoto para PC

• Hardware necessário:

Exemplo de Aplicação Controle Remoto para PC

Incluir as bibliotecas

Atribuir um pino e

criar o objeto receptor

Configurar a Serial

e ativar a recepção

pelo IR

Escrever o valor

na Serial

Exemplo de Aplicação Controle Remoto para PC

• Software auxiliar PC Remote Control

– recepção dos comandos através da porta serial;

– Mapeamento para funções diversas;

• Mouse;

• Teclado;

• Controle de volume;

• Execução de programa;

Exemplo de Aplicação Controle Remoto para PC

Exemplo de Aplicação Braço Robótico com Joystick

• Construído modelo

do braço;

• Joystick

– Montagem e teste;

Exemplo de Aplicação Braço Robótico com Joystick

• 7 servo-motores:

– apresentam movimento proporcional a um comando;

– não giram livremente sem um controle mais efetivo de posição;

– são dispositivos de malha fechada;

Exemplo de Aplicação Braço Robótico com Joystick

• Conexões compatíveis com Shields;

• Biblioteca padrão Arduino;

– basta informar o ângulo desejado;

Exemplo de Aplicação Braço Robótico com Joystick

Estrutura mecânica

Arduino e Shield

Botões para rotação

Joystick para controle

Exemplo de Aplicação Braço Robótico com Joystick

Exemplo de Aplicação Braço Robótico – Torre de Hanoi

Exemplo de Aplicação Braço Robótico – Torre de Hanoi

Exemplo de Aplicação Sistema Separador de Frutas

• Controlar fluxo;

• Separar:

– Frutas;

– Não frutas;

(descarte)

• Encaixotar

• Jogar no lixo;

Exemplo de Aplicação Sistema Separador de Frutas

Exemplo de Aplicação Sistema Separador de Frutas

Exemplo de Aplicação Medidor de Velocidade

• Velocímetro para:

– carrinhos de Autorama;

– dispositivo de chute dos robôs FURGBOL;

Exemplo de Aplicação Medidor de Velocidade

Como iniciar no Arduino e na Robótica

• Escolher o modelo adequado

– Arduino Uno R3;

– http://arduino.cc/en/Main/Buy

– Google, mercadolivre.com;

Como iniciar no Arduino e na Robótica

• Ferramentas adequadas;

– Ferro de solda;

– Multímetro;

– Alicates;

• Componentes eletrônicos de bancada;

• Kit de desenvolvimento;

Kits de Desenvolvimento Arduino

• Não há kit oficial Arduino;

• Kits incluem (geralmente):

– Algum modelo Arduino (Uno);

– Shields;

• Sensor shield;

– Bricks;

• Botões, LEDs, sensores em geral;

Kits de Desenvolvimento Arduino

• Kits incluem (geralmente):

– Servo-motores;

– Protoboard;

– Cabos para conexão na protoboard;

– Componentes eletrônicos em geral;

Kits de Desenvolvimento Arduino

Kits de Desenvolvimento Arduino

• Internacionais:

– variam entre $40,00 e $130,00;

• Nacionais:

–entre R$110,00 e R$165,00;

Kits de Desenvolvimento Arduino

• Vale a pena pesquisar um pouco sobre o assunto e montar seu próprio Kit;

• É possível encontrar pacotes com componentes usados em lojas especializadas;

• Deve-se evitar o frete nas compras pela Internet;

Kits de Desenvolvimento Arduino

Valor: R$ 218,00

Kits de Desenvolvimento Arduino

R$40,00 + Arduino <= R$150,00

Kit montado:

• 6 metros de cabos

coloridos;

• Protoboard;

• Placa virgem;

• Potenciômetro;

• Buzzer;

•Sensor de temperatura;

• 10 LEDs coloridos;

• 200+ resistores

diversos;

• Conectores macho e

femea p/ protoboard;

Kits de Desenvolvimento Arduino

Dicas, Sites e Livros

• http://arduino.cc/

• http://www.arduinobooks.com/

– Livros Pagos;

–PDF grátis:

• http://www.arduinobooks.com/category/free-arduino-pdfs/

Dicas, Sites e Livros

• Inglês, praticamente todas as boas fontes;

• Sites de componentes isentos de taxa de importação e frete grátis;

–http://www.dealextreme.com/

–http://www.aliexpress.com/

Softwares Auxiliares

• Simulator for Arduino

– Simulação e teste de código;

– Shareware, mas possui versão de testes (com limitações de uso);

Softwares Auxiliares

• Processing

– Base da interface gráfica da IDE Arduino;

– Como OpenGL ou Allegro, permite criar interface gráfica para seus próprios programas no Arduino;

Softwares Auxiliares

• Fritzing

–Desenho de projetos (não faz simulações)

• Protoboard;

• Esquemático;

• PCI layout;

Softwares Auxiliares

–Permite imprimir desenhos para processo de confecção das placas;

–Possui uma vasta biblioteca de componentes eletrônicos, shields (oficiais e de outras marcas), CIs, entre outros;

Uma Introdução ao ARDUINO e suas Aplicações na Robótica

André F. Núñez

[email protected]

Obrigado!

Perguntas?!