palestra: robótica com arduino

78
2014 Robótica com Arduino Felipe Nascimento Martins

Upload: felipe-martins

Post on 03-Jun-2015

5.329 views

Category:

Technology


6 download

DESCRIPTION

Palestra: Robótica com Arduino Apresentada no Workshop de Robótica Educacional realizado durante a RoboCup, em 23 de julho de 2014. Apresentada pela primeira vez no VII Encontro Técnico Estudantil organizado pela ISA-ES, em 13 de agosto de 2011. Autor: Felipe Nascimento Martins

TRANSCRIPT

Page 1: Palestra: Robótica com Arduino

2014

Robóticacom Arduino

Felipe Nascimento Martins

Page 2: Palestra: Robótica com Arduino

Contato:

facebook.com/[email protected]

Page 3: Palestra: Robótica com Arduino

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

Page 4: Palestra: Robótica com Arduino

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!

Page 5: Palestra: Robótica com Arduino

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

Page 6: Palestra: Robótica com Arduino

LASER

Ultrassom

Encoder

Câmera

Acelerômetro

Bússola

GPS

Felipe Nascimento Martins

Sensores

Page 7: Palestra: Robótica com Arduino

Felipe Nascimento Martins

E o cérebro?

Page 8: Palestra: Robótica com Arduino
Page 9: Palestra: Robótica com Arduino

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

Page 10: Palestra: Robótica com Arduino

Arduino – hardware

Felipe Nascimento Martins

Page 11: Palestra: Robótica com Arduino

Arduino – hardware

Felipe Nascimento Martins

Page 12: Palestra: Robótica com Arduino

Arduino – hardware

Felipe Nascimento Martins

Page 13: Palestra: Robótica com Arduino

Arduino – software

Page 14: Palestra: Robótica com Arduino

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

Page 15: Palestra: Robótica com Arduino
Page 16: Palestra: Robótica com Arduino

Arduino é Open Source!

Felipe Nascimento Martins

Page 17: Palestra: Robótica com Arduino

Arduino é Open Source!

Felipe Nascimento Martins

Page 18: Palestra: Robótica com Arduino

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

Page 19: Palestra: Robótica com Arduino

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

Page 20: Palestra: Robótica com Arduino

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

Page 21: Palestra: Robótica com Arduino

Clones do Arduino

• Freeduino

Felipe Nascimento Martins

Page 22: Palestra: Robótica com Arduino

Clones do Arduino

• Seeduino

Felipe Nascimento Martins

Page 23: Palestra: Robótica com Arduino

Clones do Arduino

• Brasuíno

Felipe Nascimento Martins

Page 24: Palestra: Robótica com Arduino

Clones do Arduino

• Severino

Felipe Nascimento Martins

Page 25: Palestra: Robótica com Arduino

Similares ao Arduino

• chipKIT Uno32 - PIC32MX320F128 (32 bits,

80MHz, 128kB Flash, 16kB SRAM)

Felipe Nascimento Martins

Page 26: Palestra: Robótica com Arduino

Similares ao Arduino

• Olimexino – STM32F103RBT6 (núcleo ARM Cortex

M3, 32 bits, 128kB, 72MHz)

Felipe Nascimento Martins

Page 27: Palestra: Robótica com Arduino

Similares ao Arduino

• Adafruit Trinket – ATtiny85

Felipe Nascimento Martins

Page 28: Palestra: Robótica com Arduino

Similares ao Arduino

• TI LaunchPad:

MSP430

Felipe Nascimento Martins

Page 29: Palestra: Robótica com Arduino

Similares ao Arduino

• LaunchPad:

ARM Cortex M4

Felipe Nascimento Martins

Page 30: Palestra: Robótica com Arduino

Compatível com Arduino

Felipe Nascimento Martins

Page 31: Palestra: Robótica com Arduino

Felipe Nascimento Martins

Características de Hardware

Page 32: Palestra: Robótica com Arduino

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

Page 33: Palestra: Robótica com Arduino

Felipe Nascimento Martins

Page 34: Palestra: Robótica com Arduino

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

Page 35: Palestra: Robótica com Arduino

Felipe Nascimento Martins

Page 36: Palestra: Robótica com Arduino

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

Page 37: Palestra: Robótica com Arduino

Felipe Nascimento Martins

Arduino Mega 2560

Page 38: Palestra: Robótica com Arduino

Felipe Nascimento Martins

Microcontrolador

Page 39: Palestra: Robótica com Arduino

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

Page 40: Palestra: Robótica com Arduino

Componentes de um Microcontrolador

ConversorD/A

ConversorA/D

PWM

CPU

EEPROM

RAM

PortaSerial

PortaParalela

Temporizadores

Microcontrolador

Felipe Nascimento Martins

Page 41: Palestra: Robótica com Arduino

Felipe Nascimento Martins

Características de Software

Page 42: Palestra: Robótica com Arduino

Arduino – Programação

Felipe Nascimento Martins

Page 43: Palestra: Robótica com Arduino

Arduino – Programação

Programa.HEXCompilador

Programador

IDE

Felipe Nascimento Martins

Page 44: Palestra: Robótica com Arduino

Arduino – Programa básico

Felipe Nascimento Martins

Page 45: Palestra: Robótica com Arduino

Arduino – Programa básico

Felipe Nascimento Martins

Page 46: Palestra: Robótica com Arduino

Arduino – Programa básico

Felipe Nascimento Martins

Page 47: Palestra: Robótica com Arduino

Arduino – Programa básico

Felipe Nascimento Martins

Page 48: Palestra: Robótica com Arduino

Arduino – Programa básico

Felipe Nascimento Martins

Page 49: Palestra: Robótica com Arduino

Arduino – Programa básico

Felipe Nascimento Martins

Page 50: Palestra: Robótica com Arduino

Felipe Nascimento Martins

Sensores Digitais

Page 51: Palestra: Robótica com Arduino

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

Page 52: Palestra: Robótica com Arduino

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).

Page 53: Palestra: Robótica com Arduino

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);

}

Page 54: Palestra: Robótica com Arduino

Felipe Nascimento Martins

http://123d.circuits.io/circuits/155968-pratica-4-leitura-de-sinal-digital/embed

Exemplo: Leitura de Sinal Digital

Page 55: Palestra: Robótica com Arduino

Felipe Nascimento Martins

Sensores Analógicos

Page 56: Palestra: Robótica com Arduino

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

Page 57: Palestra: Robótica com Arduino

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

Page 58: Palestra: Robótica com Arduino

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

Page 59: Palestra: Robótica com Arduino

Arduino

• A.

Page 60: Palestra: Robótica com Arduino

Exemplo: Medindo Temperatura

http://123d.circuits.io/circuits/155990-pratica-7-medindo-temperatura-sinal-analogico/embed

Felipe Nascimento Martins

Page 61: Palestra: Robótica com Arduino

Felipe Nascimento Martins

AcionandoMotores

Page 62: Palestra: Robótica com Arduino

“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

Page 63: Palestra: Robótica com Arduino

Tensão média de um sinal PWM

Felipe Nascimento Martins

Page 64: Palestra: Robótica com Arduino

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

Page 65: Palestra: Robótica com Arduino

Motor Shield

• Exemplo: controle de velocidade dos motores com o Shield Motor Control:

Felipe Nascimento Martins

Page 66: Palestra: Robótica com Arduino

• Pode acionar quatro

motores CC (46V, 4A) e

uma carga resistiva de até

30A.

Motor Shield 4 Power

Felipe Nascimento Martins

Page 67: Palestra: Robótica com Arduino

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

Page 68: Palestra: Robótica com Arduino

Detalhes: http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html

Felipe Nascimento Martins

Conexão Bluetooth

Page 69: Palestra: Robótica com Arduino

Conexão Bluetooth

Detalhes: http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html

Felipe Nascimento Martins

Page 70: Palestra: Robótica com Arduino

Conexão Bluetooth

Detalhes: http://nossosrobos.blogspot.com.br/2012/05/arduino-wireless-parte-ii-via-bluetooth.html

Felipe Nascimento Martins

Page 71: Palestra: Robótica com Arduino

Ethernet Shield

Felipe Nascimento Martins

Page 72: Palestra: Robótica com Arduino

Arduino com MATLAB

Detalhes: http://nossosrobos.blogspot.com.br/2011/10/arduino-com-matlab.html

Felipe Nascimento Martins

Page 73: Palestra: Robótica com Arduino

Arduino com LabVIEW

Detalhes: http://sine.ni.com/nips/cds/view/p/lang/pt/nid/209835

Felipe Nascimento Martins

Page 74: Palestra: Robótica com Arduino

Controle de um Robô

Detalhes: http://nossosrobos.blogspot.com.br/2012/09/monte-seu-robo-com-arduino.html

Felipe Nascimento Martins

Page 75: Palestra: Robótica com Arduino

Robôs baseados em Arduino

• DFRobotShop Rover - Arduino

Compatible Tracked Robot

Felipe Nascimento Martins

Page 76: Palestra: Robótica com Arduino

Robôs baseados em Arduino

• DFRobotShop Rover 2.0 – Arduino

Compatible Mecanum

Felipe Nascimento Martins

Page 77: Palestra: Robótica com Arduino

Robô Arduino oficial

• Arduino Robot

Felipe Nascimento Martins

Detalhes: http://nossosrobos.blogspot.com.br/2013/07/arduino-robot-o-primeiro-robo-arduino.html

Page 78: Palestra: Robótica com Arduino

Obrigado!