Uma Introdução ao
Uma Introdução ao
ARDUINO
ARDUINO
e suas Aplicações na
e suas Aplicações na
Robótica
Robótica
André F. Núñez André F. NúñezO que é A
O que é A
rduino?
rduino?
“Arduino é uma plataforma open
“Arduino é uma plataforma open-source-source
de protótipos eletrônicos baseados em
de protótipos eletrônicos baseados em
hardware e software flexível e fácil de
hardware e software flexível e fácil de
usar. É destinado a artistas, designers,
usar. É destinado a artistas, designers,
hobbyistas, e qualquer pessoa interessada
hobbyistas, e qualquer pessoa interessada
em criar objetos ou ambientes
em criar objetos ou ambientes
interativos.”
O que é A
O que é A
rduino?
rduino?
“O Arduino pode sentir o ambiente
“O Arduino pode sentir o ambiente
recebendo entradas de uma variedade
recebendo entradas de uma variedade
de sensores e pode modificar seu
de sensores e pode modificar seu
arredor controlando luzes, motores e
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
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
Colaboradores Arduino
• Créditos
– Ambiente; – Linguagem; – Compilador;
Comunidade (suporte)
Comunidade (suporte)
• • Forum:Forum: – – http://www.arduino.cc/forum/http://www.arduino.cc/forum/ • • Wiki:Wiki: – – http://www.arduino.cc/playground/http://www.arduino.cc/playground/ • • Blog:Blog: – – http://arduino.cc/blog/http://arduino.cc/blog/Comunidade (suporte)
Comunidade (suporte)
• • Twitter:Twitter: – – http://twitter.com/arduinoteamhttp://twitter.com/arduinoteam • • Laboratório:Laboratório: – – http://labs.arduino.cc/http://labs.arduino.cc/Por que Arduino?
Por que Arduino?
•• Cafeteira avisar através do Twitter que o caféCafeteira avisar através do Twitter que o café
está pronto?
está pronto?
•
• Robô que brinca com o Robô que brinca com o cachorro?cachorro? •
• Monitor de frequência cardíaca que grava oMonitor de frequência cardíaca que grava o
log em um cartão SD?
log em um cartão SD?
•
• Receber SMS no celular ao receber um e-Receber SMS no celular ao receber um
e-mail?
mail?
•
• Fantasia que interage através de som e luzes?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
Por que Arduino?
• Bibliotecas
– coisas simples;
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
Por que Arduino?
• Possui os requisitos mínimos
– mas funcionalidades podem ser
adicionadas;
Por que Arduino?
Por que Arduino?
•
• Baixo custo;Baixo custo;
•
• Open-source;Open-source;
–
– FreeFreeduinoduino;; –
– SeeeSeeeduinoduino;; –
– PingPinguinouino;; –
Paperduino
HARDWARE
HARDWARE
Portas Digitais
Portas Digitais Portas AnalógicasPortas Analógicas
Alimentação Alimentação Conexão p/ Conexão p/ Fonte Externa Fonte Externa Conexão USB Conexão USB uC Atmel uC Atmel
Hardware básico
Portas Digitais (E/S)
• 14 portas digitais; • 0 ~ 5V
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;
Hardware básico
Hardware básico
Comunicação
• Canal de comunicação serial
– RX (pino 0); – TX (pino 1);
• Conexão SPI
Hardware básico
Comunicação
• Conexão I²C
– Inter-Integrated Circuit ;
• Pinos ICSP
Placas Oficiais Arduino
Arduino Uno
• 1.0 - Versão oficial de lançamento
– Diecimila;
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)
Placas Oficiais Arduino
Arduino Mega 2560
• 54 portas E/S – 14 PWM; • 16 entradas analógicas; • 4 UARTSPlacas Oficiais Arduino
Arduino Mega ADK
• Mesmas funcionalidades do Mega
2560;
• Conexão USB especial para
Placas Oficiais Arduino
Arduino Ethernet
• Funcionalidades do Arduino Uno; • Conexão RJ-45
– Reduz alguns pinos;
Placas Oficiais Arduino
Arduino BT
• Funcionalidades do Arduino UNO; • Placa de comunicação Bluetooth
embutida
– Bluegiga WT11
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;
Placas Oficiais Arduino
Placas Oficiais Arduino
Placas Oficiais Arduino
Placas Oficiais Arduino
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;
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
Shields
Arduino Proto Shield
• Testar circuitos rapidamente;
• Acoplar protoboard pequena;
• Botão de reset;
• Área p/ CI – SMD
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;
Shields
Criando seu próprio Shield
• Respeitar o layout do Arduino
• Respeitar as particularidades de cada
pino;
Shields
Shields
Shields
• Arduino Shield List:
– http://shieldlist.org/
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;
Bricks
• Excelentes para iniciantes;
– compensa fabricar seus próprios bricks?
R$ 24,00 R$ 8,00
Ambiente de Desenvolvimento
Integrado - IDE
• Open-source;
Ambiente de Desenvolvimento
Integrado - IDE
• Escrito em Java e baseado em:
– Processing (interface gráfica); – avr-gcc (compilador);
Ambiente de Desenvolvimento
Integrado - IDE
• Facilita a programação;
• Muitos exemplos, para todas as
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 SerialAmbiente de Desenvolvimento
Integrado - IDE
SETUP
• Configurações iniciais; • O código é executado
uma única vez.
LOOP
• Equivale ao Main do C; • w h i l e infinito;
Ambiente de Desenvolvimento
Integrado - IDE
Ambiente de Desenvolvimento
Integrado - IDE
Bibliotecas
Bibliotecas do usuário
Bibliotecas
Bibliotecas
Criando Bibliotecas
• Criar arquivo .h
– Definição da classe criada;
– Definição dos métodos da classe;
• Criar arquivo .cpp
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
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
O Arduino e a Robótica
PERCEBER CONTROLAR AGIR
Sensores Atuadores
O Arduino e a Robótica
• Arduino fornece todos os requisitos
básicos;
• Robôs simples;
– Arduino possui restrições quanto ao
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
Arduino, Robótica e Automação
• Sistema separador de frutas
automatizado;
• Medidor de Velocidade;
• Controle remoto para apresentação na
Exemplo de Aplicação
Controle Remoto para PC
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
Exemplo de Aplicação
Braço Robótico com Joystick
• Construído modelo
do braço;
• Joystick
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;
Exemplo de Aplicação
Braço Robótico com Joystick
• Conexões compatíveis com Shields; • Biblioteca padrão Arduino;
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
Exemplo de Aplicação
Exemplo de Aplicação
Exemplo de Aplicação
Sistema Separador de Frutas
• Controlar fluxo; • Separar: – Frutas; – Não frutas; (descarte) • Encaixotar • Jogar no lixo;
Exemplo de Aplicação
Exemplo de Aplicação
Exemplo de Aplicação
Medidor de Velocidade
• Velocímetro para:
– carrinhos de Autorama;
Exemplo de Aplicação
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;
Kits de Desenvolvimento Arduino
• Não há kit oficial Arduino; • Kits incluem (geralmente):
– Algum modelo Arduino (Uno); – Shields;
• Sensor shield; – Bricks;
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
• Internacionais:
– variam entre $40,00 e $130,00; • Nacionais:
Kits de Desenvolvimento Arduino
• Vale a pena pesquisar um pouco sobre oassunto e montar seu próprio Kit;
• É possível encontrar pacotes com
componentes usados em lojas especializadas;
• Deve-se evitar o frete nas compras pela
Kits de Desenvolvimento Arduino
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;Dicas, Sites e Livros
• http://arduino.cc/ • http://www.arduinobooks.com/ – Livros Pagos; – PDF grátis: • http://www.arduinobooks.com/cat egory/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
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;