SlideShare a Scribd company logo
1 of 25
Download to read offline
Iniciação à Robótica
Formadores:
Guilherme Martins e André Almeida
Objectivos:
Iniciação à Robótica
Adquirir conhecimentos básicos em:
● Pensamento Algorítmico
● Resolução de Problemas
● Computação Física
● Linguagens de Programação
● Microcontroladores
● Electrónica
● Robótica
● Interacção Homem-Máquina (HCI, HRI)
O que é o Arduino?
Plataforma de prototipagem open-source baseada em Hardware e
Software simples de utilizar.
Adoptado massivamente nos meios académicos, científicos e hobbyistas.
Assume diversas formas, desde dimensões muito reduzidas a comandos,
robots, adaptações para texteis, entre muitras outras.
Diversas placas de expansão, também conhecidas como “shields” que
servem de interface a diversos sensores e actuadores.
Iniciação à Robótica
Motoruino 1
1
2
3 4
5
14
15
17
12
13
109
8
6
7
11
16
0
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Power selector - USB or EXTernal Power
FTDI USB connection
External power connections
PWM pins power selector - VIN or +5v
Digital IO
Rx Tx LEDs
LED 13
Power LED
Microcontroller Atmega 328
+5v GND Vin pins
Analog Inputs
7805 voltage regulator
MotorB Inputs
MotorA Inputs
MotorB Outputs
MotorA Outputs
L293D Power Selector - VIN or +5v
L293D Double H-Bridge Motor Driver
Reset Button
18
Iniciação à Robótica
Motoruino 1
PWM selector connects the power pin to VIN or +5v
Motor Power Selector connects the Motor Driver
(L293D) to Vin or +5v
Iniciação à Robótica
Motoruino 1
Baseado no layout original do Arduino
Interface para Motores DC
Power and Signal Bus
Iniciação à Robótica
Arduino IDE
O IDE do Arduino é bastante simples.
Iniciação à Robótica
Image source: learn.sparkfun.com
Antes de enviarmos o nosso programa para o Arduino
precisamos de fazer 2 coisas:
1. Seleccionar a placa correcta
2. Seleccionar a porta de comunicação
Arduino IDE
Iniciação à Robótica
Como estamos a utilizar o Motoruino1, vamos ter que
seleccionar o Arduino Duemilenova ou Diecimila
Em Windows as portas de comunicação aparecem com o
nome COM seguido de um número.
Em MAC as portas de comunicação aparecem com a
designação /dev/tty/usbmodem……...
Programação em Arduino
A programação em Arduino baseia-se em linguagem C.
Todos os programas do Arduino têm duas funções distintas,
setup() e loop().
A função setup() corre apenas uma vez, esta serve para declarar
se os dispositivos que estão ligados são INPUTS ou OUTPUTS,
serve também para declarar outros eventos pontuais e que só
necessitam de se fazer uma única vez..
A função loop() corre infinitamente, e é aqui que vai estar o
programa.
Iniciação à Robótica
Motoruino 1
Hello World - Led Blink
Todos os Arduinos têm um LED ligado fisicamente ao pin 13.
Além deste LED ser utilizado frequentemente para Debug, serve
também para os iniciantes experimentarem os primeiros
comandos do Arduino:
pinMode (nº do pin, OUTPUT);
O comando pinMode() é utilizado dentro da função setup(), serve
para dizermos ao Arduino se os pins (onde estão ligados
dispositivos) são entradas ou saídas de voltagem.
digitalWrite(nº do pin, HIGH);
digitalWrite(nº do pin, LOW);
O comando digitalWrite() activa o pin correspondente se tiver o
parâmetro HIGH, ou desactiva o mesmo se tiver o parâmetro a
LOW .
Iniciação à Robótica
Motoruino 1
Sensores Digitais
Retornam 2 estados - 0 ou 1 - HIGH ou LOW
Exemplo:
● Botões
● Sensores de colisão do Farrusco
https://www.arduino.cc/en/Tutorial/Buttonhttps://www.arduino.cc/en/Tutorial/InputPullupSerial
PullDown
O sinal do botão quando não está pressionado
é puxado para baixo, para o Ground.
Iniciação à Robótica
PullUp
O sinal do botão quando não está pressionado o
sinal é puxado para cima, ou seja para os 5v.
este vai ser o método utilizado no Farrusco
Motoruino 1
Sensores Analógicos
Retornam um valor entre 0 e 1023.
Repara que dentro da função setup()
está o comando
Serial.begin(9600);
Isto faz com que seja aberta a
comunicação com o computador.
Depois de ter feito upload para o
Arduino, experimenta abrir o Terminal,
que se encontra no canto superior
direito do IDE.
https://www.arduino.cc/en/Tutorial/AnalogInput
LDR (resistência fotosensível)
Sensor IR medidor de proximidade
Potenciómetro
Iniciação à Robótica
Motoruino 1
Motores DC (direct current)
O motor DC tem dois pólos, de maneira que precisamos sempre
de usar dois pins no Arduino.
Activar ou desactivar estes pólos vai determinar a direcção de
rotação do motor.
Controle digital do motor Controle analógico do motor
Esta maneira de controlar o motor
requer dois pins digitais.
Esta maneira de controlar o motor
requer dois pins PWM, como é o caso
dos pins 3 e 5.
Iniciação à Robótica
Motoruino 1
Motores DC (direct current)
Existe uma outra possibilidade de controlar um motor DC com o
Motoruino, que consiste em utilizar dois pins digitais e o pin
ENABLE da ponte H.
Com os pins digitais definimos a direcção de rotação do motor,
neste caso estão a ser utilizados o 3 e o 4.
Com o pin Enable definimos a velocidade de rotação, para isto
precisamos de o ligar a um pin PWM, neste caso está ligado ao
pin 6.
Iniciação à Robótica
Motoruino 1
Servos
Motores de rotação limitada, normalmente 180º.
Utilizando a biblioteca Servo.h, podemos fazer rodar o servo
para o ângulo desejado.
https://www.arduino.cc/en/Reference/Servo
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(10);
}
void loop() {
myservo.write(90);
}
Iniciação à Robótica
NOTA: quando se importa a biblioteca Servo.h, os pins 9 e 10 ficam incapacitados de fazer PWM
Uma biblioteca é uma porção de código feito para abstrair a complexidade
do programador. O programador só precisa de importar a biblioteca,
instanciar a mesma e utilizar as funções disponíveis.
CPU Sensores Actuadores
Iniciação à Robótica
Roda Omnidireccional Chassis
IR sensorServo Motor
Sensores de Colisão
Motores DC Rodas
CPU Motoruino 1
Componentes do Farrusco
Sensores de Luminosidade
LED Multicor
Iniciação à Robótica
Componentes do Farrusco
Iniciação à Robótica
Differential Drive
Um sistema robótico diferencial consiste em duas rodas motrizes
com dois motores independentes.
A sua locomoção baseia-se na acção de cada um dos motores,
que em conjunto lhe proporcionam um amplo leque de
possibilidades.
Iniciação à Robótica
Navegação autónoma
Com sensores de colisão
Os sensores de colisão, representados a verde, sempre que
detectam uma colisão despoletam uma acção no programa para
o robô andar para trás e virar na direcção oposta da colisão.
Andar em frente
Há colisão?
Não.
Volta a andar em frente.
Sim.
Lado esquerdo ou direito?
Iniciação à Robótica
Navegação autónoma
Com sensor IR e Motor Servo
O motor Servo faz um varrimento num leque de 160º e a
distância é analisada.
Se a distância for inferior a um valor estipulado, o robô vira para
a direcção oposta para a qual o servo está a apontar.
A distância segura é representada pela transição da cor verde
para a cor azul. Se um obstáculo se interpor na cor azul é
despoletada mudança de direcção.
Iniciação à Robótica
Motoruino 1
2 Leds Blink
Então e se quizermos ter 2 LEDs a piscar individualmente?
Não podemos utilizar o delay(), pois este comando paraliza todo o
programa. Até agora temos visto exemplos de programação que
corre sequencialmente, isto impede de termos processos a correr
em paralelo.
É aqui que entra a biblioteca Metro
http://playground.arduino.cc/Code/Metro
Esta biblioteca permite definir vários temporizadores independentes,
e sempre que um temporizador “chega ao fim” activa uma ordem, ou
uma função.
// importamos a biblioteca utilizando o #include
#include <Metro.h>
// no caso da biblioteca Metro instanciamos a mesma e declaramos //
um valor para o temporizador
// o valor 500, significa que de 500 em 500 milisegundos, vai ser
// executado um comando
Metro metro0 = Metro(500);
// esta condição verifica o temporizador, e sempre que este “dá a
// volta” executa o comando que estiver dentro das chavetas
if (metro0.check() == 1)
{
// colocar o(s) comando(s) aqui
}
Iniciação à Robótica
Desafio:
Remover a função delay() dos programas
desenvolvidos anteriormente.
Exemplos de programação
https://github.com/artica/Workshop-Farrusco
Iniciação à Robótica
No seguinte endereço do github é possível
descarregar uma série de exemplos de
programação destinados ao Farrusco.
Outras referências:
Arduino
http://arduino.cc
Lista de comandos e funções do Arduino
https://www.arduino.cc/en/Reference/HomePage
Arduino programming Notebook
http://playground.arduino.cc/uploads/Main/arduino_notebook_v1-1.pdf
Processing:
http://processing.org
Fritzing
http://fritzing.org
Iniciação à Robótica
Obrigado!
Esta apresentação encontra-se em constante actualização.
Para questões e sugestões basta enviar um email para:
gmartins@artica.cc http://artica.cc

More Related Content

What's hot

C.E.S.A.R Introducao ao Arduino
C.E.S.A.R Introducao ao ArduinoC.E.S.A.R Introducao ao Arduino
C.E.S.A.R Introducao ao Arduino
Tiago Barros
 

What's hot (20)

Introdução à plataforma Arduino
Introdução à plataforma ArduinoIntrodução à plataforma Arduino
Introdução à plataforma Arduino
 
Apostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSetApostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSet
 
Slides minicurso Arduino - Arduino Day 2015
Slides minicurso Arduino - Arduino Day 2015Slides minicurso Arduino - Arduino Day 2015
Slides minicurso Arduino - Arduino Day 2015
 
Arduino - Hardware Livre e Robótica
Arduino -  Hardware Livre e RobóticaArduino -  Hardware Livre e Robótica
Arduino - Hardware Livre e Robótica
 
Slides minicurso Arduino - Controle de Motores DC
Slides minicurso Arduino - Controle de Motores DC Slides minicurso Arduino - Controle de Motores DC
Slides minicurso Arduino - Controle de Motores DC
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robótica
 
Arduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerArduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius Senger
 
Aula básica Arduino
Aula básica Arduino Aula básica Arduino
Aula básica Arduino
 
Introdução a plataforma arduino
Introdução a plataforma arduinoIntrodução a plataforma arduino
Introdução a plataforma arduino
 
Introdução ao arduino palestra
Introdução ao arduino palestraIntrodução ao arduino palestra
Introdução ao arduino palestra
 
Arduino Básico
Arduino BásicoArduino Básico
Arduino Básico
 
Sestinfo 2013 - Arduino
Sestinfo 2013 - ArduinoSestinfo 2013 - Arduino
Sestinfo 2013 - Arduino
 
Arduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesArduino- Conceitos e Aplicações
Arduino- Conceitos e Aplicações
 
Mini curso arduino
Mini curso arduinoMini curso arduino
Mini curso arduino
 
Oficina Arduino
Oficina ArduinoOficina Arduino
Oficina Arduino
 
Arduino: Soluções para o mundo moderno
Arduino: Soluções para o mundo modernoArduino: Soluções para o mundo moderno
Arduino: Soluções para o mundo moderno
 
MiniCursoDeArduino
MiniCursoDeArduinoMiniCursoDeArduino
MiniCursoDeArduino
 
Palestra sobre Arduino e Raspberry Pi (Totvs)
Palestra sobre Arduino e Raspberry Pi (Totvs)Palestra sobre Arduino e Raspberry Pi (Totvs)
Palestra sobre Arduino e Raspberry Pi (Totvs)
 
C.E.S.A.R Introducao ao Arduino
C.E.S.A.R Introducao ao ArduinoC.E.S.A.R Introducao ao Arduino
C.E.S.A.R Introducao ao Arduino
 
Introdução à eletronica e robótica com arduino
Introdução à eletronica e robótica com arduinoIntrodução à eletronica e robótica com arduino
Introdução à eletronica e robótica com arduino
 

Similar to Workshop iniciação à robótica - Farrusco

Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
engelrfs
 
Ufes erus minicurso arduino
Ufes erus minicurso arduinoUfes erus minicurso arduino
Ufes erus minicurso arduino
tamarasalvatori
 
Prática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energiaPrática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energia
Heitor Galvão
 

Similar to Workshop iniciação à robótica - Farrusco (20)

Palestra arduino
Palestra arduinoPalestra arduino
Palestra arduino
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
 
Erus minicurso arduino
Erus minicurso arduinoErus minicurso arduino
Erus minicurso arduino
 
3 aula do curso de automação - Arduino
3 aula do curso de automação - Arduino3 aula do curso de automação - Arduino
3 aula do curso de automação - Arduino
 
Ufes erus minicurso arduino
Ufes erus minicurso arduinoUfes erus minicurso arduino
Ufes erus minicurso arduino
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduino
 
Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDevice
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básico
 
manual arduino (1)Primeiros passos arduino.pdf
manual arduino (1)Primeiros passos arduino.pdfmanual arduino (1)Primeiros passos arduino.pdf
manual arduino (1)Primeiros passos arduino.pdf
 
Robótica e Sistemas interativos utilizando Arduino
Robótica e Sistemas interativos utilizando ArduinoRobótica e Sistemas interativos utilizando Arduino
Robótica e Sistemas interativos utilizando Arduino
 
Cartilhado arduino ed1
Cartilhado arduino ed1Cartilhado arduino ed1
Cartilhado arduino ed1
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básico
 
Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básico
 
Guia AC mod 5
Guia AC mod 5Guia AC mod 5
Guia AC mod 5
 
Introdução ao Arduino: Fundamentos e Aplicações de Microcontroladores
Introdução ao Arduino: Fundamentos e Aplicações de MicrocontroladoresIntrodução ao Arduino: Fundamentos e Aplicações de Microcontroladores
Introdução ao Arduino: Fundamentos e Aplicações de Microcontroladores
 
Prática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energiaPrática da disciplina de laboratório de conversão de energia
Prática da disciplina de laboratório de conversão de energia
 
Treinamento arduino (1).pptx
Treinamento arduino (1).pptxTreinamento arduino (1).pptx
Treinamento arduino (1).pptx
 

More from Articacc, Lda (7)

ArticaCC 2018 Presentation Summer Edition
ArticaCC 2018 Presentation Summer EditionArticaCC 2018 Presentation Summer Edition
ArticaCC 2018 Presentation Summer Edition
 
Artica Presentation - Physical Computing and Interaction Design
Artica Presentation - Physical Computing and Interaction DesignArtica Presentation - Physical Computing and Interaction Design
Artica Presentation - Physical Computing and Interaction Design
 
Motoruino 1 Assembly Instructions
Motoruino 1 Assembly InstructionsMotoruino 1 Assembly Instructions
Motoruino 1 Assembly Instructions
 
Workshop video 2014_metamorfoseii_culturgest
Workshop video 2014_metamorfoseii_culturgestWorkshop video 2014_metamorfoseii_culturgest
Workshop video 2014_metamorfoseii_culturgest
 
Artica ' 2014
Artica ' 2014Artica ' 2014
Artica ' 2014
 
Artica @ Arduino Day 2014
Artica @ Arduino Day 2014Artica @ Arduino Day 2014
Artica @ Arduino Day 2014
 
Introdução às Linguagens de Programação com Processing
Introdução às Linguagens de Programação com ProcessingIntrodução às Linguagens de Programação com Processing
Introdução às Linguagens de Programação com Processing
 

Recently uploaded

O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
RogrioGonalves41
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Recently uploaded (20)

E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 

Workshop iniciação à robótica - Farrusco

  • 2. Objectivos: Iniciação à Robótica Adquirir conhecimentos básicos em: ● Pensamento Algorítmico ● Resolução de Problemas ● Computação Física ● Linguagens de Programação ● Microcontroladores ● Electrónica ● Robótica ● Interacção Homem-Máquina (HCI, HRI)
  • 3. O que é o Arduino? Plataforma de prototipagem open-source baseada em Hardware e Software simples de utilizar. Adoptado massivamente nos meios académicos, científicos e hobbyistas. Assume diversas formas, desde dimensões muito reduzidas a comandos, robots, adaptações para texteis, entre muitras outras. Diversas placas de expansão, também conhecidas como “shields” que servem de interface a diversos sensores e actuadores. Iniciação à Robótica
  • 4. Motoruino 1 1 2 3 4 5 14 15 17 12 13 109 8 6 7 11 16 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Power selector - USB or EXTernal Power FTDI USB connection External power connections PWM pins power selector - VIN or +5v Digital IO Rx Tx LEDs LED 13 Power LED Microcontroller Atmega 328 +5v GND Vin pins Analog Inputs 7805 voltage regulator MotorB Inputs MotorA Inputs MotorB Outputs MotorA Outputs L293D Power Selector - VIN or +5v L293D Double H-Bridge Motor Driver Reset Button 18 Iniciação à Robótica
  • 5. Motoruino 1 PWM selector connects the power pin to VIN or +5v Motor Power Selector connects the Motor Driver (L293D) to Vin or +5v Iniciação à Robótica
  • 6. Motoruino 1 Baseado no layout original do Arduino Interface para Motores DC Power and Signal Bus Iniciação à Robótica
  • 7. Arduino IDE O IDE do Arduino é bastante simples. Iniciação à Robótica Image source: learn.sparkfun.com Antes de enviarmos o nosso programa para o Arduino precisamos de fazer 2 coisas: 1. Seleccionar a placa correcta 2. Seleccionar a porta de comunicação
  • 8. Arduino IDE Iniciação à Robótica Como estamos a utilizar o Motoruino1, vamos ter que seleccionar o Arduino Duemilenova ou Diecimila Em Windows as portas de comunicação aparecem com o nome COM seguido de um número. Em MAC as portas de comunicação aparecem com a designação /dev/tty/usbmodem……...
  • 9. Programação em Arduino A programação em Arduino baseia-se em linguagem C. Todos os programas do Arduino têm duas funções distintas, setup() e loop(). A função setup() corre apenas uma vez, esta serve para declarar se os dispositivos que estão ligados são INPUTS ou OUTPUTS, serve também para declarar outros eventos pontuais e que só necessitam de se fazer uma única vez.. A função loop() corre infinitamente, e é aqui que vai estar o programa. Iniciação à Robótica
  • 10. Motoruino 1 Hello World - Led Blink Todos os Arduinos têm um LED ligado fisicamente ao pin 13. Além deste LED ser utilizado frequentemente para Debug, serve também para os iniciantes experimentarem os primeiros comandos do Arduino: pinMode (nº do pin, OUTPUT); O comando pinMode() é utilizado dentro da função setup(), serve para dizermos ao Arduino se os pins (onde estão ligados dispositivos) são entradas ou saídas de voltagem. digitalWrite(nº do pin, HIGH); digitalWrite(nº do pin, LOW); O comando digitalWrite() activa o pin correspondente se tiver o parâmetro HIGH, ou desactiva o mesmo se tiver o parâmetro a LOW . Iniciação à Robótica
  • 11. Motoruino 1 Sensores Digitais Retornam 2 estados - 0 ou 1 - HIGH ou LOW Exemplo: ● Botões ● Sensores de colisão do Farrusco https://www.arduino.cc/en/Tutorial/Buttonhttps://www.arduino.cc/en/Tutorial/InputPullupSerial PullDown O sinal do botão quando não está pressionado é puxado para baixo, para o Ground. Iniciação à Robótica PullUp O sinal do botão quando não está pressionado o sinal é puxado para cima, ou seja para os 5v. este vai ser o método utilizado no Farrusco
  • 12. Motoruino 1 Sensores Analógicos Retornam um valor entre 0 e 1023. Repara que dentro da função setup() está o comando Serial.begin(9600); Isto faz com que seja aberta a comunicação com o computador. Depois de ter feito upload para o Arduino, experimenta abrir o Terminal, que se encontra no canto superior direito do IDE. https://www.arduino.cc/en/Tutorial/AnalogInput LDR (resistência fotosensível) Sensor IR medidor de proximidade Potenciómetro Iniciação à Robótica
  • 13. Motoruino 1 Motores DC (direct current) O motor DC tem dois pólos, de maneira que precisamos sempre de usar dois pins no Arduino. Activar ou desactivar estes pólos vai determinar a direcção de rotação do motor. Controle digital do motor Controle analógico do motor Esta maneira de controlar o motor requer dois pins digitais. Esta maneira de controlar o motor requer dois pins PWM, como é o caso dos pins 3 e 5. Iniciação à Robótica
  • 14. Motoruino 1 Motores DC (direct current) Existe uma outra possibilidade de controlar um motor DC com o Motoruino, que consiste em utilizar dois pins digitais e o pin ENABLE da ponte H. Com os pins digitais definimos a direcção de rotação do motor, neste caso estão a ser utilizados o 3 e o 4. Com o pin Enable definimos a velocidade de rotação, para isto precisamos de o ligar a um pin PWM, neste caso está ligado ao pin 6. Iniciação à Robótica
  • 15. Motoruino 1 Servos Motores de rotação limitada, normalmente 180º. Utilizando a biblioteca Servo.h, podemos fazer rodar o servo para o ângulo desejado. https://www.arduino.cc/en/Reference/Servo #include <Servo.h> Servo myservo; void setup() { myservo.attach(10); } void loop() { myservo.write(90); } Iniciação à Robótica NOTA: quando se importa a biblioteca Servo.h, os pins 9 e 10 ficam incapacitados de fazer PWM Uma biblioteca é uma porção de código feito para abstrair a complexidade do programador. O programador só precisa de importar a biblioteca, instanciar a mesma e utilizar as funções disponíveis.
  • 17. Roda Omnidireccional Chassis IR sensorServo Motor Sensores de Colisão Motores DC Rodas CPU Motoruino 1 Componentes do Farrusco Sensores de Luminosidade LED Multicor Iniciação à Robótica
  • 19. Differential Drive Um sistema robótico diferencial consiste em duas rodas motrizes com dois motores independentes. A sua locomoção baseia-se na acção de cada um dos motores, que em conjunto lhe proporcionam um amplo leque de possibilidades. Iniciação à Robótica
  • 20. Navegação autónoma Com sensores de colisão Os sensores de colisão, representados a verde, sempre que detectam uma colisão despoletam uma acção no programa para o robô andar para trás e virar na direcção oposta da colisão. Andar em frente Há colisão? Não. Volta a andar em frente. Sim. Lado esquerdo ou direito? Iniciação à Robótica
  • 21. Navegação autónoma Com sensor IR e Motor Servo O motor Servo faz um varrimento num leque de 160º e a distância é analisada. Se a distância for inferior a um valor estipulado, o robô vira para a direcção oposta para a qual o servo está a apontar. A distância segura é representada pela transição da cor verde para a cor azul. Se um obstáculo se interpor na cor azul é despoletada mudança de direcção. Iniciação à Robótica
  • 22. Motoruino 1 2 Leds Blink Então e se quizermos ter 2 LEDs a piscar individualmente? Não podemos utilizar o delay(), pois este comando paraliza todo o programa. Até agora temos visto exemplos de programação que corre sequencialmente, isto impede de termos processos a correr em paralelo. É aqui que entra a biblioteca Metro http://playground.arduino.cc/Code/Metro Esta biblioteca permite definir vários temporizadores independentes, e sempre que um temporizador “chega ao fim” activa uma ordem, ou uma função. // importamos a biblioteca utilizando o #include #include <Metro.h> // no caso da biblioteca Metro instanciamos a mesma e declaramos // um valor para o temporizador // o valor 500, significa que de 500 em 500 milisegundos, vai ser // executado um comando Metro metro0 = Metro(500); // esta condição verifica o temporizador, e sempre que este “dá a // volta” executa o comando que estiver dentro das chavetas if (metro0.check() == 1) { // colocar o(s) comando(s) aqui } Iniciação à Robótica Desafio: Remover a função delay() dos programas desenvolvidos anteriormente.
  • 23. Exemplos de programação https://github.com/artica/Workshop-Farrusco Iniciação à Robótica No seguinte endereço do github é possível descarregar uma série de exemplos de programação destinados ao Farrusco.
  • 24. Outras referências: Arduino http://arduino.cc Lista de comandos e funções do Arduino https://www.arduino.cc/en/Reference/HomePage Arduino programming Notebook http://playground.arduino.cc/uploads/Main/arduino_notebook_v1-1.pdf Processing: http://processing.org Fritzing http://fritzing.org Iniciação à Robótica
  • 25. Obrigado! Esta apresentação encontra-se em constante actualização. Para questões e sugestões basta enviar um email para: gmartins@artica.cc http://artica.cc