Download - Palestra: Robótica com Arduino
2014
Robóticacom Arduino
Felipe Nascimento Martins
Contato:
facebook.com/[email protected]
Conteúdo
• O que um robô precisa:
• Sensores, Atuadores e... “Cérebro”!
• Microcontrolador;
• Arduino;
• Programação e aplicação.
• OBS.:
• Esta é uma palestra introdutória;
• Vamos ver algum conteúdo técnico.
Felipe Nascimento Martins
O que é um robô (móvel)?
• Veículo capaz de movimentação autônoma,
equipado com atuadores controlados por um
computador embarcado.
• Um robô móvel pode deslocar-se:
• no solo, através de rodas, esteiras, patas, etc.;
• no ar, como um helicóptero, avião ou balão;
• na água, como um navio ou submarino;
• ou no espaço!
Atuadores e Sensores
• Para deslocar-se de forma autônoma um
robô móvel precisa ter atuadores e
sensores, além de um computador.
• Atuadores: transformam sinais de controle
(de posição ou de velocidade) em
movimento – motor, haste hidráulica, etc.;
• Sensores: realizam a “percepção do
mundo”: encoder, acelerômetro, LASER,
bússola, ultrassom, câmera, etc.
Felipe Nascimento Martins
LASER
Ultrassom
Encoder
Câmera
Acelerômetro
Bússola
GPS
Felipe Nascimento Martins
Sensores
Felipe Nascimento Martins
E o cérebro?
O que é Arduino?
• Arduino é uma plataforma de prototipagem
eletrônica open-source, baseada nos princípios
de flexibilidade e facilidade de uso para hardware
e software.
• Consiste de uma placa com microcontrolador
programável preparada para receber sinais de
sensores e acionar atuadores.
• Sua linguagem de programação é baseada em
Wiring (baseado em C/C++).
• A placa pode funcionar em conjunto ou de forma
independente do computador.
Felipe Nascimento Martins
Arduino – hardware
Felipe Nascimento Martins
Arduino – hardware
Felipe Nascimento Martins
Arduino – hardware
Felipe Nascimento Martins
Arduino – software
Arduino é Open Source
• Desenvolvido por: Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino e David
Mellis, na Itália, em 2005;
• Todo o projeto é aberto: open source hardware
and software;
• 200 placas vendidas em 2005, 5.000 em 2006,
30.000 em 2007 e mais de 300.000 em 2011 e
cerca de 1 milhão até setembro de 2013!
• Site oficial: www.arduino.cc
Felipe Nascimento Martins
Arduino é Open Source!
Felipe Nascimento Martins
Arduino é Open Source!
Felipe Nascimento Martins
Arduino é Open Source!
• Todo o hardware é aberto e os projetos estão
disponíveis.
• Quem quiser, pode comprar os componentes e montar a
sua placa!
• O software de programação também é livre e está
disponível para download gratuitamente.
Felipe Nascimento Martins
Arduino é Open Source!
• Todo o hardware é aberto e os projetos estão
disponíveis.
• Quem quiser, pode comprar os componentes e montar a
sua placa!
• O software de programação também é livre e está
disponível para download gratuitamente.
• Mas...
Felipe Nascimento Martins
Arduino é Open Source!
• Todo o hardware é aberto e os projetos estão
disponíveis.
• Quem quiser, pode comprar os componentes e montar a
sua placa!
• O software de programação também é livre e está
disponível para download gratuitamente.
• Mas...
• O nome Arduino é marca registrada!
Felipe Nascimento Martins
Clones do Arduino
• Freeduino
Felipe Nascimento Martins
Clones do Arduino
• Seeduino
Felipe Nascimento Martins
Clones do Arduino
• Brasuíno
Felipe Nascimento Martins
Clones do Arduino
• Severino
Felipe Nascimento Martins
Similares ao Arduino
• chipKIT Uno32 - PIC32MX320F128 (32 bits,
80MHz, 128kB Flash, 16kB SRAM)
Felipe Nascimento Martins
Similares ao Arduino
• Olimexino – STM32F103RBT6 (núcleo ARM Cortex
M3, 32 bits, 128kB, 72MHz)
Felipe Nascimento Martins
Similares ao Arduino
• Adafruit Trinket – ATtiny85
Felipe Nascimento Martins
Similares ao Arduino
• TI LaunchPad:
MSP430
Felipe Nascimento Martins
Similares ao Arduino
• LaunchPad:
ARM Cortex M4
Felipe Nascimento Martins
Compatível com Arduino
Felipe Nascimento Martins
Felipe Nascimento Martins
Características de Hardware
Arduino Uno
• Microcontrolador: ATmega328;
• Tensão de operação: 5V;
• Tensão de entrada (recomendada): 7-12V;
• Pinos digitais de E/S:14 (6 podem ter sinal PWM);
• Pinos com entrada analógica: 6;
• Corrente máxima por pino de E/S: 40 mA;
• Hardware para comunicação: 1 porta serial (UART TTL),
I2C (TWI), SPI;
• Memória Flash (de programa): 32 kB, dos quais 0,5 kB
são usados pelo bootloader;
• Memória SRAM: 2 kB; EEPROM: 1 kB;
• Frequência de clock: 16 MHz.
Felipe Nascimento Martins
Felipe Nascimento Martins
Arduino Leonardo
• Microcontrolador: ATmega32u4;
• Tensão de operação: 5V;
• Tensão de entrada (recomendada): 7-12V;
• Pinos digitais de E/S: 20 (7 podem ter sinal PWM);
• Pinos com entrada analógica: 12;
• Corrente máxima por pino de E/S: 40 mA;
• Hardware para comunicação: 1 porta serial (UART TTL),
I2C (TWI), SPI, USB 2.0 (emula teclado ou mouse);
• Memória Flash (de programa): 32 kB, dos quais 4 kB são
usados pelo bootloader;
• Memória SRAM: 2,5 kB; EEPROM: 1 kB;
• Frequência de clock: 16 MHz.
Felipe Nascimento Martins
Felipe Nascimento Martins
Arduino Mega 2560
• Microcontrolador: ATmega2560;
• Tensão de operação: 5V;
• Tensão de entrada (recomendada): 7-12V;
• Pinos digitais de E/S: 54 (15 podem ter sinal PWM);
• Pinos com entrada analógica: 16;
• Corrente máxima por pino de E/S: 40 mA;
• Hardware para comunicação: 4 portas seriais (UART
TTL), I2C (TWI), SPI, USB 2.0 (emula teclado ou mouse);
• Memória Flash (de programa): 256 kB, dos quais 8 kB
são usados pelo bootloader;
• Memória SRAM: 8 kB; EEPROM: 4 kB;
• Frequência de clock: 16 MHz.
Felipe Nascimento Martins
Felipe Nascimento Martins
Arduino Mega 2560
Felipe Nascimento Martins
Microcontrolador
O que é um Microcontrolador?
– Chip;
– CPU de pequeno porte, capaz de executar
um conjunto de instruções;
– Ou seja, possui um microprocessador!
– Instruções simples e rápidas;
– Possui memória(s);
– Possui periféricos;
– Pode se comunicar com outros periféricos;
etc.
Felipe Nascimento Martins
Componentes de um Microcontrolador
ConversorD/A
ConversorA/D
PWM
CPU
EEPROM
RAM
PortaSerial
PortaParalela
Temporizadores
Microcontrolador
Felipe Nascimento Martins
Felipe Nascimento Martins
Características de Software
Arduino – Programação
Felipe Nascimento Martins
Arduino – Programação
Programa.HEXCompilador
Programador
IDE
Felipe Nascimento Martins
Arduino – Programa básico
Felipe Nascimento Martins
Arduino – Programa básico
Felipe Nascimento Martins
Arduino – Programa básico
Felipe Nascimento Martins
Arduino – Programa básico
Felipe Nascimento Martins
Arduino – Programa básico
Felipe Nascimento Martins
Arduino – Programa básico
Felipe Nascimento Martins
Felipe Nascimento Martins
Sensores Digitais
Sensores com Sinais Digitais
• Diversos sensores proveem informação através
de sinais digitais:
• Botão/bumper;
• Porta aberta/fechada;
• Andar de elevador;
• Fim-de-curso em máquinas industriais;
• Equipamento ligado/desligado;
• Nível de reservatório;
• Presença;
• Toque;
• Etc.
Felipe Nascimento Martins
Sensores com Sinais Digitais
• Do ponto de vista elétrico, comportam-se como
se fossem uma chave liga/desliga;
• No Arduino, a função utilizada para leitura de sinais digitais é digitalRead(pino); onde pino é o
número do pino em que o sensor está ligado;
• Para Vs = 5V, retorna 0 (Vpino < 2V) ou 1 (Vpino > 3V).
Exemplo: Sensores Digitaisint led_pin = 13;
int button_pin = 0;
int button_state = 0;
void setup() {
pinMode(led_pin, OUTPUT);
pinMode(button_pin, INPUT);
}
void loop() {
button_state = digitalRead(button_pin);
digitalWrite(led_pin, button_state);
delay(100);
}
Felipe Nascimento Martins
http://123d.circuits.io/circuits/155968-pratica-4-leitura-de-sinal-digital/embed
Exemplo: Leitura de Sinal Digital
Felipe Nascimento Martins
Sensores Analógicos
Sensores com Sinais Analógicos
• Diversos sensores proveem informação através
de sinais analógicos:
• Intensidade luminosa (LDR);
• Deslocamento (encoder);
• Força/Torque (SFR, strain gage);
• Proximidade;
• Aceleração;
• Inclinação;
• Temperatura;
• Etc.
Felipe Nascimento Martins
Exemplo: Medindo Temperatura
• Monte o circuito com o sensor de temperatura.
• Escreva um programa que mostre o valor da temperatura na tela do computador a cada 0,5s.
Felipe Nascimento Martins
Exemplo: Medindo Temperatura
• Exemplo de programa:
void setup() {
Serial.begin(9600);
}
void loop() {
int sensor = analogRead(A0);
Serial.println(sensor);
delay(500);
}
Felipe Nascimento Martins
Arduino
• A.
Exemplo: Medindo Temperatura
http://123d.circuits.io/circuits/155990-pratica-7-medindo-temperatura-sinal-analogico/embed
Felipe Nascimento Martins
Felipe Nascimento Martins
AcionandoMotores
“Simulando” uma tensão analógica
• PWM = Pulse Width Modulation;
• Razão cíclica (duty cycle): define a tensão
média aplicada:
T(PWM) T(PWM) T(PWM)
A1 A2 A3
Felipe Nascimento Martins
Tensão média de um sinal PWM
Felipe Nascimento Martins
Exemplo: Velocidade Ajustável
int velocidade = 0;
int sensor; // valor do LDR
void setup() {
pinMode(A2, INPUT); // sensor
pinMode(13, OUTPUT); / saida 13
Serial.begin(9600);
}
void loop() {
sensor = analogRead(A2);
velocidade = map(sensor, 0, 1023, 0, 255);
analogWrite(13, velocidade);
delay(100);
}
Felipe Nascimento Martins
Motor Shield
• Exemplo: controle de velocidade dos motores com o Shield Motor Control:
Felipe Nascimento Martins
• Pode acionar quatro
motores CC (46V, 4A) e
uma carga resistiva de até
30A.
Motor Shield 4 Power
Felipe Nascimento Martins
Arduino e NXT via RS-485 e I2C
Detalhes: http://nossosrobos.blogspot.com.br/2011/08/arduino-conversando-com-nxt-via-rs-485.html
http://nossosrobos.blogspot.com.br/2013/03/comunicacao-ic-entre-lego-nxt-e-arduino.html
Felipe Nascimento Martins
Detalhes: http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html
Felipe Nascimento Martins
Conexão Bluetooth
Conexão Bluetooth
Detalhes: http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html
Felipe Nascimento Martins
Conexão Bluetooth
Detalhes: http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html
Felipe Nascimento Martins
Ethernet Shield
Felipe Nascimento Martins
Arduino com MATLAB
Detalhes: http://nossosrobos.blogspot.com.br/2011/10/arduino-com-matlab.html
Felipe Nascimento Martins
Arduino com LabVIEW
Detalhes: http://sine.ni.com/nips/cds/view/p/lang/pt/nid/209835
Felipe Nascimento Martins
Controle de um Robô
Detalhes: http://nossosrobos.blogspot.com.br/2012/09/monte-seu-robo-com-arduino.html
Felipe Nascimento Martins
Robôs baseados em Arduino
• DFRobotShop Rover - Arduino
Compatible Tracked Robot
Felipe Nascimento Martins
Robôs baseados em Arduino
• DFRobotShop Rover 2.0 – Arduino
Compatible Mecanum
Felipe Nascimento Martins
Robô Arduino oficial
• Arduino Robot
Felipe Nascimento Martins
Detalhes: http://nossosrobos.blogspot.com.br/2013/07/arduino-robot-o-primeiro-robo-arduino.html
Obrigado!