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 email? • 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
uC Atmel
Alimentação
Conexão USB
Conexão p/ Fonte Externa
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$ 8,00
R$ 24,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
Gravar Compilar / Verificar
Á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
Sensores
AGIR
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 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;
R$40,00 + Arduino <= R$150,00
Kits de Desenvolvimento Arduino
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 (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?!