Robotica: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
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)
Arduíno
Wiki Foz
Sites com materiais de apoio para controle dos motores

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.

Referências