Palestra: Robótica com Arduino

Preview:

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

Citation preview

2014

Robóticacom Arduino

Felipe Nascimento Martins

Contato:

facebook.com/felipenmfelipe.n.martins@gmail.com

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!

Recommended