SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante a 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
 

Semelhante a Workshop iniciação à robótica - Farrusco (20)

Palestra arduino
Palestra arduinoPalestra arduino
Palestra arduino
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao 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
 

Mais de 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
 

Último

OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdfOFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
AndriaNascimento27
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
rarakey779
 
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdfAS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
ssuserbb4ac2
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
rarakey779
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
edjailmax
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
rarakey779
 

Último (20)

04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
 
ATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptx
 
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdfOFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - Falamansa
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadess
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na Igreja
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
 
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdfAS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
 
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfCurso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdf
 
Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)Administração (Conceitos e Teorias sobre a Administração)
Administração (Conceitos e Teorias sobre a Administração)
 
Os Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco LeiteOs Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco Leite
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdfmanual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
 
América Latina: Da Independência à Consolidação dos Estados Nacionais
América Latina: Da Independência à Consolidação dos Estados NacionaisAmérica Latina: Da Independência à Consolidação dos Estados Nacionais
América Latina: Da Independência à Consolidação dos Estados Nacionais
 
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptxSão Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantil
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é preciso
 

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