|
|
(78 revisões intermediárias por 3 usuários não estão sendo mostradas) |
Linha 3: |
Linha 3: |
| ==Objetivo== | | ==Objetivo== |
| O objetivo do projeto de '''Robótica''' é preparar equipes de alunos para participar das competições da '''Olimpíada de Robótica do IFPR'''. | | O objetivo do projeto de '''Robótica''' é preparar equipes de alunos para participar das competições da '''Olimpíada de Robótica do IFPR'''. |
|
| |
| ;Modalidades: No Edital 01/2018 PROEPI a Olimpíada de Robótica do IFPR terá as seguintes modalidades:
| |
| *'''Seguidor de linha Junior''' (Lego)
| |
| *'''Seguidor de linha Pro''' (Arduíno)
| |
| *'''Resgate OBR''' (Lego e Arduíno)
| |
| *'''Sumô 1 kg''' (Lego)
| |
| *'''Mini Sumô 500 g''' (Arduíno)
| |
|
| |
| ===Seletivas Etapa I 2018===
| |
| *13/Abr - '''Seguidor de Linha'''
| |
|
| |
|
| [[Arquivo:Robotica2018-1.jpg|200px]] | | [[Arquivo:Robotica2018-1.jpg|200px]] |
| [[Arquivo:Robotica2018-2.jpg|200px]] | | [[Arquivo:Robotica2018-2.jpg|200px]] |
|
| |
|
| Resultados Primeira Etapa da Olimpíada de Robótica
| | ;Modalidades: |
| | *Seguidor de linha Junior (Lego) |
| | *Seguidor de linha Pro (Arduíno) |
| | *Resgate OBR(Lego e Arduíno) |
| | *Sumô 1 kg (Lego) |
| | *Mini Sumô 500 g''' (Arduíno) |
|
| |
|
| {| border="1" cellpadding="2" style="text-align: center;"
| | ==[[Oficina_de_Robotica|Oficina de Robótica com Arduíno]]== |
| !Equipes
| |
| !Tempo(segundos)
| |
| !Integrantes
| |
| |-
| |
| | MechCats RED || 14,777 || Joshua Binotto <br> Luiz H.Rodrigues <br> Rodrigo Leal <br> Vitor Müller
| |
| |-
| |
| | Qua || 17h45 <br> 19h15 || Evandro <br> Rafhael <br> Leo <br> Tiago
| |
| |-
| |
| | Sex || 17h45 <br> 19h15 || Daniela <br> Leo <br> Tiago
| |
| |-
| |
| | Sab || 9h00 <br> 12h00 || Evandro <br> Daniela <br> Leo <br> Tiago
| |
| |-
| |
| |}
| |
|
| |
|
| | Nesta oficina são desenvolvidos os conhecimentos básicos sobre o '''[[Arduino|Arduíno]]''', assim como o uso de sensores de linha e controle de motores, necessários para a montagem de '''Robôs Seguidores de Linha'''. |
|
| |
|
| *08/Mai - '''Resgate'''
| | ===Materiais sobre robótica com Arduíno=== |
| *29/Mai - '''Sumô''' | | ;Sensores: |
| | *[[Mídia:RoboticaSensores.pdf|Sensores e atuadores utilizados nos robôs]] |
|
| |
|
| ===Equipes e Orientadores===
| | ;Baterias: |
| ;Professores orientadores 2018: | | *[[Mídia:RoboticaBaterias.pdf|Baterias utilizados nos robôs]] |
| *[[Usuário:Evandro.cantu|Evandro Cantú]] (Coordenador) | | *[https://www.youtube.com/watch?v=_fT_W3AwIT8 Como recuperar baterias baixas] |
| *Jesus Segantine (Vice coordenador) | |
| *Charles Busarello (Colaborador)
| |
| *Donovan Zanone (Técnico)
| |
|
| |
|
| ====Equipes Lego 2018==== | | ==Seguidor de Linha com controle PID== |
| ;Equipe 1 (MechCats RED):
| |
| :Joshua Binotto <br/> Luiz Henrique Rodrigues <br/> Rodrigo Leal <br/> Vitor Müller
| |
|
| |
|
| ;Equipe 2 (MechCats WHITE): | | ;[[Seguidor de Linha com controle PID]]: Página Wiki com resumo da '''Teoria de Controle PID''' e de uma forma de implementação deste tipo de controle em um '''Robô Seguidor de Linha'''. |
| :Matheus Brustolin <br/> Pedro Henrique Fagundes <br/> Pedro Henrique Zucco <br/> Yan Diogo Marafon
| |
| | |
| ;Equipe 3 (MechCats BLUE):
| |
| :Gabriel Felipe <br/> Guilherme Franchin <br/> Henrique Amaral
| |
| | |
| ;Equipe 4 (MechCats YELLOW):
| |
| :Marcela Kashima <br/> Gabriela Martins <br/> Luan Kelvin <br/>
| |
| | |
| ;Equipe 5 (MechCats PURPLE):
| |
| :Diogenes Matrakas <br/> Ricardo Torrez <br/> Wesley Pinto
| |
| | |
| ====Equipes Arduíno 2018====
| |
| ;Equipe 1:
| |
| :Micheli Trindade Moura <br/> Ana Carolina Freitas <br/> Deborah da Silva Rezende <br/> Hanna Caroline de Oliveira Schu <br/> Juliana de Souza Pereira
| |
| | |
| ;Equipe 2:
| |
| :Fernando Apolinário <br/> João Victor Oliveira <br/> Rafhael Pereira Zrenner
| |
|
| |
|
| ==Robótica com Lego Mindstorms== | | ==Robótica com Lego Mindstorms== |
| O '''[http://www.lego.com/en-us/mindstorms/ 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. | | O '''[http://www.lego.com/en-us/mindstorms/ 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'''.
| | ;Projetos para Lego NXT 2.0: |
| | |
| ;Sites com projetos para NXT:
| |
| *[http://www.nxtprograms.com/projects2.html Projetos com Lego Mindstorms] | | *[http://www.nxtprograms.com/projects2.html Projetos com Lego Mindstorms] |
|
| |
|
| ;Software para módulo Lego NXT: O '''Lego NXT''' usa software proprietário que roda sobre a plataforma '''Windows''' da '''MicroSoft'''. | | ;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:
| | *O '''[[Enchanting e LeJOS|Enchanting]]''' (descontinuado) era 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''). |
| :*[[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)
| |
| *[[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== |