Robotica: mudanças entre as edições
Sem resumo de edição |
|||
Linha 52: | Linha 52: | ||
:*[[Scratch]]: Linguagem de programação gráfica, baseada em blocos construtivos que lembra o brinquedo '''Lego'''. | :*[[Scratch]]: Linguagem de programação gráfica, baseada em blocos construtivos que lembra o brinquedo '''Lego'''. | ||
:*[[Enchanting e LeJOS]]: O '''Enchanting''' é uma adaptação da linguagem '''Scratch''', voltada para a programação dos módulos '''Lego NXT''', através da substituição do ''firmware'' original pelo sistema '''LeJOS''' (''Lego Java Operating System''). | :*[[Enchanting e LeJOS]]: O '''Enchanting''' é uma adaptação da linguagem '''Scratch''', voltada para a programação dos módulos '''Lego NXT''', através da substituição do ''firmware'' original pelo sistema '''LeJOS''' (''Lego Java Operating System''). | ||
==Robótica Livre com Arduíno== | |||
A modalidade '''Robótica Livre''' permite que os robôs sejam construídos com materiais e componentes diversos e programados por qualquer sistema de microcontroladores, incluindo o Arduíno. | |||
;Materiais disponibilizados no Curso de Capacitação em Robótica organizado pelo IFPR: Ministrado pelo professor Marcos Dinís Lavarda (Campus Campo Largo) | |||
*[[Mídia:RoboticaRegras.pdf|Regras das Competições de Robótica]] | |||
*[[Mídia:RoboticaBaterias.pdf|Baterias utilizados nos robôs]] | |||
*[[Mídia:RoboticaSensores.pdf|Sensores e atuadores utilizados nos robôs]] | |||
;[[Arduíno]]: Wiki Foz | |||
;Sites com materiais de apoio para controle dos motores: | |||
*[http://www.dfrobot.com/wiki/index.php?title=Arduino_Motor_Shield_%28L298N%29_%28SKU:DRI0009%29 Wiki Arduino Motor Shield DFrobot] | |||
*[https://cdn-learn.adafruit.com/downloads/pdf/adafruit-motor-shield.pdf Manual Arduino Motor Shield ADAfruit] | |||
*[http://blog.filipeflop.com/motores-e-servos/controle-motor-dc-arduino-motor-shield.html Exemplos de uso do Arduino Motor Shield ADAfruit] | |||
*[https://www.arduino.cc/en/Reference/Servo Arduino Reference Servo] | |||
*[https://www.arduino.cc/en/Reference/Stepper Arduino Reference Steeper] | |||
===Programas de teste dos sensores e motores=== | |||
;Teste do sensor Infra Vermelho | |||
<source lang="c"> | |||
//Arduino Sensor Infra Red | |||
int sensor = 0; | |||
int leitura = 0; | |||
void setup() | |||
{ | |||
pinMode(sensor, INPUT); | |||
Serial.begin(9600); | |||
} | |||
void loop() | |||
{ | |||
leitura1 = analogRead(sensor); | |||
Serial.print("Leitura: "); | |||
Serial.println(leitura); | |||
Serial.println(); | |||
delay(1000); | |||
} | |||
</source> | |||
;Teste do Motor Shield DFrobotic | |||
<source lang="c"> | |||
//Arduino Shield DFrobotic | |||
//PWM Speed Control | |||
int E1 = 5; | |||
int M1 = 4; | |||
int E2 = 6; | |||
int M2 = 7; | |||
void setup() | |||
{ | |||
pinMode(M1, OUTPUT); | |||
pinMode(M2, OUTPUT); | |||
} | |||
void loop() | |||
{ | |||
int value; | |||
for(value = 150 ; value <= 250; value+=10) | |||
{ | |||
digitalWrite(M1,HIGH); | |||
digitalWrite(M2, HIGH); | |||
analogWrite(E1, value); //PWM Speed Control | |||
analogWrite(E2, value); //PWM Speed Control | |||
delay(30); | |||
} | |||
} | |||
</source> | |||
;Teste do Motor Shield DKelectronics | |||
<source lang="c"> | |||
//Programa : Teste de motor DC12V com motor shield ponte H | |||
//Autor : Equipe FILIPEFLOP | |||
#include <AFMotor.h> | |||
AF_DCMotor motor1(1); //Seleciona o motor 1 | |||
AF_DCMotor motor2(2); //Seleciona o motor 2 | |||
void setup() | |||
{} | |||
void loop() | |||
{ | |||
motor1.setSpeed(255); //Define a velocidade maxima | |||
motor2.setSpeed(255); //Define a velocidade maxima | |||
motor1.run(FORWARD); //Gira o motor sentido horario | |||
motor2.run(FORWARD); //Gira o motor sentido horario | |||
delay(5000); | |||
motor1.setSpeed(0); | |||
motor2.setSpeed(0); | |||
motor1.run(RELEASE); //Desliga o motor | |||
motor2.run(RELEASE); //Desliga o motor | |||
delay(5000); | |||
motor1.setSpeed(150); //Define velocidade baixa | |||
motor2.setSpeed(150); //Define velocidade baixa | |||
motor1.run(BACKWARD); //Gira o motor sentido anti-horario | |||
motor2.run(BACKWARD); //Gira o motor sentido anti-horario | |||
delay(5000); | |||
motor1.setSpeed(0); | |||
motor2.setSpeed(0); | |||
motor1.run(RELEASE); //Desliga o motor | |||
motor2.run(RELEASE); //Desliga o motor | |||
delay(5000); //Aguarda 5 segundos e repete o processo | |||
} | |||
</source> | |||
;Programa exemplo seguidor de linha | |||
<source lang="c"> | |||
//Componentes: Motor Shield DKelectronics e sensor InfraRed | |||
//Adaptaçao: Evandro Cantu | |||
#include <AFMotor.h> | |||
AF_DCMotor leftMotor(2); //Seleciona o motor 2 | |||
AF_DCMotor rigthMotor(1); //Seleciona o motor 1 | |||
int leftSensor, lineSensor, rigthSensor; | |||
//velocidade inicial e deslocamento de rotacao | |||
int startSpeed = 150, medSpeed = 200, maxSpeed = 250; | |||
//limiar do sensor | |||
int limiar = 500; | |||
void setup() | |||
{ | |||
} | |||
void loop() | |||
{ | |||
//le os sensores | |||
leftSensor = analogRead(5); | |||
lineSensor = analogRead(4); | |||
rigthSensor = analogRead(3); | |||
if (lineSensor > limiar) | |||
{ | |||
leftMotor.setSpeed(maxSpeed); | |||
leftMotor.run(FORWARD); | |||
rigthMotor.setSpeed(maxSpeed); | |||
rigthMotor.run(FORWARD); | |||
} | |||
//Se rightSensor acha fita vire para a direita | |||
if (rigthSensor > limiar) | |||
{ | |||
leftMotor.setSpeed(medSpeed); | |||
leftMotor.run(FORWARD); | |||
rigthMotor.run(RELEASE); | |||
} | |||
//Se leftSensor acha fita vire para a esquerda | |||
if (leftSensor > limiar) | |||
{ | |||
rigthMotor.setSpeed(medSpeed); | |||
rigthMotor.run(FORWARD); | |||
leftMotor.run(RELEASE); | |||
} | |||
} | |||
</source> | |||
===Módulo Julieta=== | |||
O módulo Julieta é uma solução completa para criação de robôs móveis de pequeno porte que possui todos os componentes necessários para movimentar seu robô em uma única e compacta placa <ref>https://www.robocore.net/loja/produtos/julieta.html</ref> | |||
Detalhes do '''hardware''' do módulo e exemplos de '''programas''' podem ser visualizados no site [https://www.robocore.net/loja/produtos/julieta.html '''Robocore/Julieta''']. | |||
==Referências== | ==Referências== |
Edição das 18h20min de 21 de março de 2018
Robótica
Objetivo
O objetivo do projeto de Robótica é preparar equipes de alunos para participar das competições das Olimpíadas de Robótica do IFPR.
- Modalidades
- No Edital 01/2018 PROEPI as Olimpíadas de Robótica do IFPR terão as seguintes modalidades:
- Seguidor de linha Junior (Lego)
- Seguidor de linha Pro (Arduíno)
- Resgate OBR (Lego e Arduíno)
- Sumô 1kg (Lego)
- Mini Sumô 500 g (Arduíno)
- Professores orientadores 2018
- Evandro Cantú (Coordenador)
- Jesus Segantine (Vice coordenador)
- Charles Busarello (Colaborador)
Equipes de Robótica Lego Mindstorms 2018
- Equipe 1 (MechCats RED)
- Joshua Binotto
Luiz Henrique Rodrigues
Rodrigo Leal
Vitor Müller
- Equipe 2 (MechCats WHITE)
- Matheus Brustolin
Pedro Henrique Fagundes
Pedro Henrique Zucco
Yan Diogo Marafon
- Equipe 3 (MechCats BLUE)
- Fares Solibi
Gabriel Felipe
Guilherme Franchin
Henrique Amaral
- Equipe 4 (MechCats YELLOW)
- Marcela Kashima
Gabriela Martins
Luan Kelvin
Samuel Hipolito
- Equipe 5 (MechCats PURPLE)
- Diogenes Matrakas
Ricardo Torrez
Wesley Pinto
Equipes de Robótica Livre com Arduíno 2018
- Equipe 1
- Micheli Trindade Moura
- Equipe 2
- Fernando Apolinário
João Victor Oliveira
Rafhael Pereira Zrenner
Robótica com Lego Mindstorms
O Lego Mindstorms é uma linha do brinquedo LEGO, voltada para a educação tecnológica. É constituído por um conjunto de peças de montar da linha tradicional LEGO e peças especiais integradas com motores, eixos, engrenagens, polias e correntes, acrescido de sensores de toque, de intensidade luminosa e de temperatura, controlados por um processador programável.
Neste projeto utilizaremos o módulo Lego NXT 2.0.
- Sites com projetos para NXT
- Software para módulo Lego NXT
- O Lego NXT usa software proprietário que roda sobre a plataforma Windows da MicroSoft.
- Softwares Alternativos para Lego Mindstorms
-
- Scratch: Linguagem de programação gráfica, baseada em blocos construtivos que lembra o brinquedo Lego.
- Enchanting e LeJOS: O Enchanting é uma adaptação da linguagem Scratch, voltada para a programação dos módulos Lego NXT, através da substituição do firmware original pelo sistema LeJOS (Lego Java Operating System).
Robótica Livre com Arduíno
A modalidade Robótica Livre permite que os robôs sejam construídos com materiais e componentes diversos e programados por qualquer sistema de microcontroladores, incluindo o Arduíno.
- Materiais disponibilizados no Curso de Capacitação em Robótica organizado pelo IFPR
- Ministrado pelo professor Marcos Dinís Lavarda (Campus Campo Largo)
- Regras das Competições de Robótica
- Baterias utilizados nos robôs
- Sensores e atuadores utilizados nos robôs
- Arduíno
- Wiki Foz
- Sites com materiais de apoio para controle dos motores
- Wiki Arduino Motor Shield DFrobot
- Manual Arduino Motor Shield ADAfruit
- Exemplos de uso do Arduino Motor Shield ADAfruit
- Arduino Reference Servo
- Arduino Reference Steeper
Programas de teste dos sensores e motores
- Teste do sensor Infra Vermelho
//Arduino Sensor Infra Red
int sensor = 0;
int leitura = 0;
void setup()
{
pinMode(sensor, INPUT);
Serial.begin(9600);
}
void loop()
{
leitura1 = analogRead(sensor);
Serial.print("Leitura: ");
Serial.println(leitura);
Serial.println();
delay(1000);
}
- Teste do Motor Shield DFrobotic
//Arduino Shield DFrobotic
//PWM Speed Control
int E1 = 5;
int M1 = 4;
int E2 = 6;
int M2 = 7;
void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}
void loop()
{
int value;
for(value = 150 ; value <= 250; value+=10)
{
digitalWrite(M1,HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, value); //PWM Speed Control
analogWrite(E2, value); //PWM Speed Control
delay(30);
}
}
- Teste do Motor Shield DKelectronics
//Programa : Teste de motor DC12V com motor shield ponte H
//Autor : Equipe FILIPEFLOP
#include <AFMotor.h>
AF_DCMotor motor1(1); //Seleciona o motor 1
AF_DCMotor motor2(2); //Seleciona o motor 2
void setup()
{}
void loop()
{
motor1.setSpeed(255); //Define a velocidade maxima
motor2.setSpeed(255); //Define a velocidade maxima
motor1.run(FORWARD); //Gira o motor sentido horario
motor2.run(FORWARD); //Gira o motor sentido horario
delay(5000);
motor1.setSpeed(0);
motor2.setSpeed(0);
motor1.run(RELEASE); //Desliga o motor
motor2.run(RELEASE); //Desliga o motor
delay(5000);
motor1.setSpeed(150); //Define velocidade baixa
motor2.setSpeed(150); //Define velocidade baixa
motor1.run(BACKWARD); //Gira o motor sentido anti-horario
motor2.run(BACKWARD); //Gira o motor sentido anti-horario
delay(5000);
motor1.setSpeed(0);
motor2.setSpeed(0);
motor1.run(RELEASE); //Desliga o motor
motor2.run(RELEASE); //Desliga o motor
delay(5000); //Aguarda 5 segundos e repete o processo
}
- Programa exemplo seguidor de linha
//Componentes: Motor Shield DKelectronics e sensor InfraRed
//Adaptaçao: Evandro Cantu
#include <AFMotor.h>
AF_DCMotor leftMotor(2); //Seleciona o motor 2
AF_DCMotor rigthMotor(1); //Seleciona o motor 1
int leftSensor, lineSensor, rigthSensor;
//velocidade inicial e deslocamento de rotacao
int startSpeed = 150, medSpeed = 200, maxSpeed = 250;
//limiar do sensor
int limiar = 500;
void setup()
{
}
void loop()
{
//le os sensores
leftSensor = analogRead(5);
lineSensor = analogRead(4);
rigthSensor = analogRead(3);
if (lineSensor > limiar)
{
leftMotor.setSpeed(maxSpeed);
leftMotor.run(FORWARD);
rigthMotor.setSpeed(maxSpeed);
rigthMotor.run(FORWARD);
}
//Se rightSensor acha fita vire para a direita
if (rigthSensor > limiar)
{
leftMotor.setSpeed(medSpeed);
leftMotor.run(FORWARD);
rigthMotor.run(RELEASE);
}
//Se leftSensor acha fita vire para a esquerda
if (leftSensor > limiar)
{
rigthMotor.setSpeed(medSpeed);
rigthMotor.run(FORWARD);
leftMotor.run(RELEASE);
}
}
Módulo Julieta
O módulo Julieta é uma solução completa para criação de robôs móveis de pequeno porte que possui todos os componentes necessários para movimentar seu robô em uma única e compacta placa [1]
Detalhes do hardware do módulo e exemplos de programas podem ser visualizados no site Robocore/Julieta.