SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Iniciação à Robótica
Formadores:
André Almeida, Bruno Serras, Tarquínio Mota e Guilherme Martins
O que é o Arduino?
Iniciação à Robótica
Plataforma de computação física 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 muitas outras.
Placas de expansão, também conhecidas como “shields” que servem de
interface a diversos sensores e actuadores.
Motoruino 2
Baseado no layout original do Arduino
Power and Signal Bus
Iniciação à Robótica
Motoruino 2
Iniciação à Robótica
Ligações
Ao lado dos pins do Arduino, podemos observar que
se entram 3 filas adiccionais.
A Verde temos pins macho que são partilhados com
os pins femea do arduino.
A Vermelho existe uma fila de 5v, onde está
assinalado a roxo quer dizer que são pins com PWM.
Este pin de alimentação pode ser comutado entre 5v
ou a voltagem que vem do exterior Vin.
Esta comutação é feita através do PWM selector.
O mesmo acontece no Motor Pwr Selector, este
comuta a alimentação dos motores entre 5v e Vin.
Motoruino 2
Iniciação à Robótica
O Motoruino 2 está equipado com alguns sensores e
actuadores tal como a imagem ilustra.
1. Interface para 2 motores DC + encoders
2. Saída de potência (mosfet)
3. Ligação USB
4. Socket XBEE (wifi, bluetooth, radio)
5. IMU (giroscópio, acelerómetro, bússola)
6. Alimentação externa e carregador LIPO 1S
7. Alimentação externa 6v a 12v
8. Microfone
9. Altifalante
10. Microcontrolador Principal (Arduino Leonardo)
11. Microcontrolador Secundário (Arduino UNO)
1
2
3
4
5
6
7
8
9
10
11
Motoruino 2
Iniciação à Robótica
2 microcontroladores, um Arduino UNO e um Arduino
Leonardo.
Microcontrolador Principal - main uC1
O Arduino Leonardo é o microcontrolador ao qual o
utilizador acede quando liga o cabo USB. Este
microcontrolador encontra-se completamente disponível
e tem o layout original do Arduino para poder suportar
shields.
Microcontrolador Secondário - uC2
O Arduino UNO encontra-se abstraido do utilizador, este
µC está dedicado a processar informação do
Acelerómetro, Giroscópio, encoders dos motores e actua
também directamente sobre estes. Vamos ver mais à
frente como aceder a estes dispositivos.
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
Vê o slide seguinte.
Arduino IDE
Iniciação à Robótica
Como estamos a utilizar o Motoruino2, vamos ter que
seleccionar o Arduino Leonardo
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 2
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
Actuadores (Outputs)
Digitais Analógicos
Iniciação à Robótica
https://www.arduino.cc/en/Tutorial/PWM
Controlar um actuador digitalmente significa que
só temos dois estados, ligado ou desligado.
Um LED ou um Motor podem ser controlados
analógicamente. Apesar de o Arduino não ter a capacidade de
gerar um sinal analógico puro, tem a capacidade de emular
uma saída analógica utilizando PWM.
Sensores (Inputs)
Digitais Analógicos
0
0
0
0
1
1
1
0
0
0
240
246
258
263
272
280
276
270
268
259
https://learn.sparkfun.com/tutorials/switch-basics
Iniciação à Robótica
https://www.arduino.cc/en/Tutorial/AnalogReadSerial
Sensores (Inputs)Iniciação à Robótica
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
Gyro
SENSORES
. Sensores de distância esquerdo e direito
. Gyroscópio e Acelerómetro
. Sensores de Linha
. Sensor RGB
. Microfone
. Odometria (Motor Encoders)
ACTUADORES
. Leds RGB
. Motores DC
. Buzzer
INTERFACES
. Bateria de Li-Po integrada
. Micro USB para programar e carregar bateria
. Carregador integrado (por USB carga lenta ou Alimentação Externa carga
rápida)
. Módulo Bluetooth (“Communications Module”, pode posteriormente ser
trocado por WIFI, RF ou outro com o formato XBee)
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
Gyro
Sensores
Para além de Acelerómetro, Giroscópio e Microfone que estão
incluidos na placa Motoruino2, o Gyro tem mais sensores:
● 2 sensores frontais
Estes sensores podem medir distância, luminosidade, cor e gesto.
Iniciação à Robótica
Gyro
Sensores
Por baixo encontram-se 3 outros sensores. O central é igual aos de
cima, este estando virado para baixo serve para o seguimento de
linha e detectar cores. Os dois laterais são sensores de linha.
● 3 sensores de linha
● 1 sensor RGB
Iniciação à Robótica
Gyro
A seguinte modificação consiste em passar os sensores frontais
para baixo aumentando assim a resolução no seguimento de linha.
PCB Bumper
A PCB Bumper tem um Arduino Uno, que comunica através de SPI
com o Motoruino2.
Nesta PCB estão ligados os sensores frontais e de linha.
Iniciação à Robótica
Gyro
Nota que a PCB Bumper está ligada ao Motoruino2
através das seguintes ligações.
O cabo da esquerda, está ligado ao Motoruino2 através
das ligações GND, 5v, 3v3 e rst.
O cabo da direita está ligado ao GND, ,sda e scl.
Gyro
Bibliotecas necessárias para usar o Gyro.
Descarregar o ZIP e colocar os conteúdos do mesmo dentro da pasta ‘libraries’ que se encontra dentro da pasta Arduino,
esta deverá estar localizada nos My Documents.
https://github.com/artica/gyro
Iniciação à Robótica
Gyro
Funções de actuação:
Actuar nos motores:
gyro.motoruino2.setSpeedPWM ( leftSpeed , rightSpeed ); // leftSpeed e rightSpeed recebe valores PWM, de 0 a 255
Andar determinada distância definindo a velocidade:
gyro.motoruino2.moveToDistance(100, 200) // distancia em mm, velocidade PWM
Rodar para determinado ângulo com a velocidade e rotação prédefinidos :
gyro.motoruino2.reachEncoderAngle(90 * PI / 180, -200, 200) // ângulo, velocidade e rotação do motor esquerdo e direito
Acender os LEDs brancos que se encontram baixo:
gyro.bumpers.setCenterLED(255); // controle do LED do sensor RGB que se encontra em baixo e ao centro do Gyro
Iniciação à Robótica
Gyro
Funções dos sensores:
Acelerómetro:
Serial.print(gyro.motoruino2.getAccelAvgX());
Serial.print(",");
Serial.print(gyro.motoruino2.getAccelAvgY());
Serial.print(",");
Serial.print(gyro.motoruino2.getAccelAvgZ());
Serial.print(",");
Giroscópio:
Serial.print(gyro.motoruino2.getGyroHeading());
Serial.print(",");
Serial.print(gyro.motoruino2.getGyroPitch());
Serial.print(",");
Serial.print(gyro.motoruino2.getGyroRoll());
Iniciação à Robótica
Gyro
Funções dos sensores:
Sensores de proximidade:
unsigned short leftProx, rightProx;
void loop(){
gyro.bumpers.getLeftProximity((unsigned short *) &leftProx);
Serial.print(leftProx); Serial.print('t');
gyro.bumpers.getRightProximity((unsigned short *) &rightProx);
Serial.print(rightProx); Serial.print('t');
}
Iniciação à Robótica
Gyro
Funções dos sensores:
Sensores de linha:
unsigned short leftLine, centerAmbient, rightLine;
void loop(){
gyro.bumpers.getLeftLine((unsigned short *) &leftLine);
Serial.print(leftLine); Serial.print('t');
gyro.bumpers.getCenterAmbient((unsigned short *) &centerAmbient);
Serial.print(centerAmbient); Serial.print('t');
gyro.bumpers.getRightLine((unsigned short *) &rightLine);
Serial.print(rightLine); Serial.print('t');
}
Iniciação à Robótica
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 envia um email para:
info@artica.cc http://artica.cc

Mais conteúdo relacionado

Mais procurados

Arduino - Hardware Livre e Robótica
Arduino -  Hardware Livre e RobóticaArduino -  Hardware Livre e Robótica
Arduino - Hardware Livre e RobóticaMarinho Brandão
 
Sestinfo 2013 - Arduino
Sestinfo 2013 - ArduinoSestinfo 2013 - Arduino
Sestinfo 2013 - ArduinoRafael Sakurai
 
Curso de Arduino Completo
Curso de Arduino CompletoCurso de Arduino Completo
Curso de Arduino CompletoTiago Barros
 
Aula básica Arduino
Aula básica Arduino Aula básica Arduino
Aula básica Arduino Edgley Xavier
 
Introdução ao arduino palestra
Introdução ao arduino palestraIntrodução ao arduino palestra
Introdução ao arduino palestraVitor Ferreira
 
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 SheepSetSaymon Cristian Alves Oliveira
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Palestra: Robótica com Arduino
Palestra: Robótica com ArduinoPalestra: Robótica com Arduino
Palestra: Robótica com ArduinoFelipe Martins
 
Palestra arduino
Palestra arduinoPalestra arduino
Palestra arduinoWalter Coan
 
Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Ana Carneirinho
 
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 arduinoJuan Manoel
 
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 ArduinoTiago Barros
 
Arduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesArduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesCarlos Delfino
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao ArduinoPeslPinguim
 

Mais procurados (20)

Arduino - Hardware Livre e Robótica
Arduino -  Hardware Livre e RobóticaArduino -  Hardware Livre e Robótica
Arduino - Hardware Livre e Robótica
 
Sestinfo 2013 - Arduino
Sestinfo 2013 - ArduinoSestinfo 2013 - Arduino
Sestinfo 2013 - Arduino
 
Curso de Arduino Completo
Curso de Arduino CompletoCurso de Arduino Completo
Curso de Arduino Completo
 
Aula básica Arduino
Aula básica Arduino Aula básica Arduino
Aula básica Arduino
 
Introdução ao arduino palestra
Introdução ao arduino palestraIntrodução ao arduino palestra
Introdução ao arduino palestra
 
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
 
Introdução a plataforma arduino
Introdução a plataforma arduinoIntrodução a plataforma arduino
Introdução a plataforma arduino
 
Arduino Básico
Arduino BásicoArduino Básico
Arduino Básico
 
Mini curso arduino
Mini curso arduinoMini curso arduino
Mini curso arduino
 
MiniCursoDeArduino
MiniCursoDeArduinoMiniCursoDeArduino
MiniCursoDeArduino
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Palestra: Robótica com Arduino
Palestra: Robótica com ArduinoPalestra: Robótica com Arduino
Palestra: Robótica com Arduino
 
Palestra arduino
Palestra arduinoPalestra arduino
Palestra arduino
 
Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602
 
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
 
Arduino Hack Day Corumbá
Arduino Hack Day CorumbáArduino Hack Day Corumbá
Arduino Hack Day Corumbá
 
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
 
Arduino
ArduinoArduino
Arduino
 
Arduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesArduino- Conceitos e Aplicações
Arduino- Conceitos e Aplicações
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 

Semelhante a Workshop iniciação à robótica - Gyro

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.pdfLuizFernandoKruger1
 
Ufes erus minicurso arduino
Ufes erus minicurso arduinoUfes erus minicurso arduino
Ufes erus minicurso arduinotamarasalvatori
 
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 MicrocontroladoresCarlos Eduardo Pantoja
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceRicardo Rufino
 
Mini curso arduino básico pet v2
Mini curso arduino   básico pet v2Mini curso arduino   básico pet v2
Mini curso arduino básico pet v2Felipe Meganha
 
Robô seguidor de linha
Robô seguidor de linhaRobô seguidor de linha
Robô seguidor de linhaIsvaldo Souza
 
Oficina Arduino - Jornada de Tecnologia 2014 (E-poti) - Part II
Oficina Arduino - Jornada de Tecnologia 2014 (E-poti) - Part IIOficina Arduino - Jornada de Tecnologia 2014 (E-poti) - Part II
Oficina Arduino - Jornada de Tecnologia 2014 (E-poti) - Part IICarlos Carvalho
 
Aprendendo a programar em arduino
Aprendendo a programar em arduinoAprendendo a programar em arduino
Aprendendo a programar em arduinoinfo_cimol
 
Sindpd introducao arduinodomotica
Sindpd introducao arduinodomoticaSindpd introducao arduinodomotica
Sindpd introducao arduinodomoticaDesiree Santos
 
Arduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerArduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerGlobalcode
 
Prova de aptidão tecnológica
Prova de aptidão tecnológicaProva de aptidão tecnológica
Prova de aptidão tecnológicaokashi24
 
Apostila arduino
Apostila arduinoApostila arduino
Apostila arduinoEdson Paz
 

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

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
 
Erus minicurso arduino
Erus minicurso arduinoErus minicurso arduino
Erus minicurso arduino
 
Ufes erus minicurso arduino
Ufes erus minicurso arduinoUfes erus minicurso arduino
Ufes erus minicurso arduino
 
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
 
Introdução ao arduino
Introdução ao arduinoIntrodução ao arduino
Introdução ao arduino
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDevice
 
Arduino001 110911083100-phpapp02
Arduino001 110911083100-phpapp02Arduino001 110911083100-phpapp02
Arduino001 110911083100-phpapp02
 
Mini curso arduino básico pet v2
Mini curso arduino   básico pet v2Mini curso arduino   básico pet v2
Mini curso arduino básico pet v2
 
Robô seguidor de linha
Robô seguidor de linhaRobô seguidor de linha
Robô seguidor de linha
 
Oficina Arduino
Oficina ArduinoOficina Arduino
Oficina Arduino
 
Oficina Arduino - Jornada de Tecnologia 2014 (E-poti) - Part II
Oficina Arduino - Jornada de Tecnologia 2014 (E-poti) - Part IIOficina Arduino - Jornada de Tecnologia 2014 (E-poti) - Part II
Oficina Arduino - Jornada de Tecnologia 2014 (E-poti) - Part II
 
Aprendendo a programar em arduino
Aprendendo a programar em arduinoAprendendo a programar em arduino
Aprendendo a programar em arduino
 
Arduino como programar
Arduino como programarArduino como programar
Arduino como programar
 
Sindpd introducao arduinodomotica
Sindpd introducao arduinodomoticaSindpd introducao arduinodomotica
Sindpd introducao arduinodomotica
 
Arduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius SengerArduino Hack Day por Vinicius Senger
Arduino Hack Day por Vinicius Senger
 
Mini curso Arduíno
Mini curso ArduínoMini curso Arduíno
Mini curso Arduíno
 
Prova de aptidão tecnológica
Prova de aptidão tecnológicaProva de aptidão tecnológica
Prova de aptidão tecnológica
 
Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
 
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
 
Apostila arduino
Apostila arduinoApostila arduino
Apostila arduino
 

Mais de Articacc, Lda

ArticaCC 2018 Presentation Summer Edition
ArticaCC 2018 Presentation Summer EditionArticaCC 2018 Presentation Summer Edition
ArticaCC 2018 Presentation Summer EditionArticacc, Lda
 
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 DesignArticacc, Lda
 
Motoruino 1 Assembly Instructions
Motoruino 1 Assembly InstructionsMotoruino 1 Assembly Instructions
Motoruino 1 Assembly InstructionsArticacc, Lda
 
Workshop video 2014_metamorfoseii_culturgest
Workshop video 2014_metamorfoseii_culturgestWorkshop video 2014_metamorfoseii_culturgest
Workshop video 2014_metamorfoseii_culturgestArticacc, Lda
 
Artica @ Arduino Day 2014
Artica @ Arduino Day 2014Artica @ Arduino Day 2014
Artica @ Arduino Day 2014Articacc, Lda
 
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 ProcessingArticacc, Lda
 

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

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Último (6)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Workshop iniciação à robótica - Gyro

  • 1. Iniciação à Robótica Formadores: André Almeida, Bruno Serras, Tarquínio Mota e Guilherme Martins
  • 2. O que é o Arduino? Iniciação à Robótica Plataforma de computação física 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 muitas outras. Placas de expansão, também conhecidas como “shields” que servem de interface a diversos sensores e actuadores.
  • 3. Motoruino 2 Baseado no layout original do Arduino Power and Signal Bus Iniciação à Robótica
  • 4. Motoruino 2 Iniciação à Robótica Ligações Ao lado dos pins do Arduino, podemos observar que se entram 3 filas adiccionais. A Verde temos pins macho que são partilhados com os pins femea do arduino. A Vermelho existe uma fila de 5v, onde está assinalado a roxo quer dizer que são pins com PWM. Este pin de alimentação pode ser comutado entre 5v ou a voltagem que vem do exterior Vin. Esta comutação é feita através do PWM selector. O mesmo acontece no Motor Pwr Selector, este comuta a alimentação dos motores entre 5v e Vin.
  • 5. Motoruino 2 Iniciação à Robótica O Motoruino 2 está equipado com alguns sensores e actuadores tal como a imagem ilustra. 1. Interface para 2 motores DC + encoders 2. Saída de potência (mosfet) 3. Ligação USB 4. Socket XBEE (wifi, bluetooth, radio) 5. IMU (giroscópio, acelerómetro, bússola) 6. Alimentação externa e carregador LIPO 1S 7. Alimentação externa 6v a 12v 8. Microfone 9. Altifalante 10. Microcontrolador Principal (Arduino Leonardo) 11. Microcontrolador Secundário (Arduino UNO) 1 2 3 4 5 6 7 8 9 10 11
  • 6. Motoruino 2 Iniciação à Robótica 2 microcontroladores, um Arduino UNO e um Arduino Leonardo. Microcontrolador Principal - main uC1 O Arduino Leonardo é o microcontrolador ao qual o utilizador acede quando liga o cabo USB. Este microcontrolador encontra-se completamente disponível e tem o layout original do Arduino para poder suportar shields. Microcontrolador Secondário - uC2 O Arduino UNO encontra-se abstraido do utilizador, este µC está dedicado a processar informação do Acelerómetro, Giroscópio, encoders dos motores e actua também directamente sobre estes. Vamos ver mais à frente como aceder a estes dispositivos.
  • 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 Vê o slide seguinte.
  • 8. Arduino IDE Iniciação à Robótica Como estamos a utilizar o Motoruino2, vamos ter que seleccionar o Arduino Leonardo 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 2 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. Actuadores (Outputs) Digitais Analógicos Iniciação à Robótica https://www.arduino.cc/en/Tutorial/PWM Controlar um actuador digitalmente significa que só temos dois estados, ligado ou desligado. Um LED ou um Motor podem ser controlados analógicamente. Apesar de o Arduino não ter a capacidade de gerar um sinal analógico puro, tem a capacidade de emular uma saída analógica utilizando PWM.
  • 13. Sensores (Inputs)Iniciação à Robótica 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
  • 14. Gyro SENSORES . Sensores de distância esquerdo e direito . Gyroscópio e Acelerómetro . Sensores de Linha . Sensor RGB . Microfone . Odometria (Motor Encoders) ACTUADORES . Leds RGB . Motores DC . Buzzer INTERFACES . Bateria de Li-Po integrada . Micro USB para programar e carregar bateria . Carregador integrado (por USB carga lenta ou Alimentação Externa carga rápida) . Módulo Bluetooth (“Communications Module”, pode posteriormente ser trocado por WIFI, RF ou outro com o formato XBee) Iniciação à Robótica
  • 15. 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 Gyro
  • 16. Sensores Para além de Acelerómetro, Giroscópio e Microfone que estão incluidos na placa Motoruino2, o Gyro tem mais sensores: ● 2 sensores frontais Estes sensores podem medir distância, luminosidade, cor e gesto. Iniciação à Robótica Gyro
  • 17. Sensores Por baixo encontram-se 3 outros sensores. O central é igual aos de cima, este estando virado para baixo serve para o seguimento de linha e detectar cores. Os dois laterais são sensores de linha. ● 3 sensores de linha ● 1 sensor RGB Iniciação à Robótica Gyro A seguinte modificação consiste em passar os sensores frontais para baixo aumentando assim a resolução no seguimento de linha.
  • 18. PCB Bumper A PCB Bumper tem um Arduino Uno, que comunica através de SPI com o Motoruino2. Nesta PCB estão ligados os sensores frontais e de linha. Iniciação à Robótica Gyro Nota que a PCB Bumper está ligada ao Motoruino2 através das seguintes ligações. O cabo da esquerda, está ligado ao Motoruino2 através das ligações GND, 5v, 3v3 e rst. O cabo da direita está ligado ao GND, ,sda e scl.
  • 19. Gyro Bibliotecas necessárias para usar o Gyro. Descarregar o ZIP e colocar os conteúdos do mesmo dentro da pasta ‘libraries’ que se encontra dentro da pasta Arduino, esta deverá estar localizada nos My Documents. https://github.com/artica/gyro Iniciação à Robótica
  • 20. Gyro Funções de actuação: Actuar nos motores: gyro.motoruino2.setSpeedPWM ( leftSpeed , rightSpeed ); // leftSpeed e rightSpeed recebe valores PWM, de 0 a 255 Andar determinada distância definindo a velocidade: gyro.motoruino2.moveToDistance(100, 200) // distancia em mm, velocidade PWM Rodar para determinado ângulo com a velocidade e rotação prédefinidos : gyro.motoruino2.reachEncoderAngle(90 * PI / 180, -200, 200) // ângulo, velocidade e rotação do motor esquerdo e direito Acender os LEDs brancos que se encontram baixo: gyro.bumpers.setCenterLED(255); // controle do LED do sensor RGB que se encontra em baixo e ao centro do Gyro Iniciação à Robótica
  • 22. Gyro Funções dos sensores: Sensores de proximidade: unsigned short leftProx, rightProx; void loop(){ gyro.bumpers.getLeftProximity((unsigned short *) &leftProx); Serial.print(leftProx); Serial.print('t'); gyro.bumpers.getRightProximity((unsigned short *) &rightProx); Serial.print(rightProx); Serial.print('t'); } Iniciação à Robótica
  • 23. Gyro Funções dos sensores: Sensores de linha: unsigned short leftLine, centerAmbient, rightLine; void loop(){ gyro.bumpers.getLeftLine((unsigned short *) &leftLine); Serial.print(leftLine); Serial.print('t'); gyro.bumpers.getCenterAmbient((unsigned short *) &centerAmbient); Serial.print(centerAmbient); Serial.print('t'); gyro.bumpers.getRightLine((unsigned short *) &rightLine); Serial.print(rightLine); Serial.print('t'); } Iniciação à Robótica
  • 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 envia um email para: info@artica.cc http://artica.cc