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 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 Operating Voltage ATmega328 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins Analog Input Pins 6 DC Current per I/O Pin DC Current for 3.3V Pin Flash Memory SRAM EEPROM Clock Speed 14 (of which 6 provide PWM output) 40 ma 50 ma 32 KB (ATmega328) of which 0.5 KB used by bootloader 2 KB (ATmega328) 1 KB (ATmega328) 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 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 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 afnunez@gmail.com Obrigado! Perguntas?!