Ferramentas do usuário

Ferramentas do site


cursos:introrobotica:2017-1:grupo04:tp1

TP1:Manipuladores ====

Neste primeiro trabalho prático nos foram dadas duas opções de atuação: O primeiro projeto que definia a criação de um robô manipulador que fosse capaz de seguir um caminho predefinido, o qual a região quadriculada é o local onde a base do robô se encontraria.

a2.pdf

Já no segundo projeto a ideia era utilizar um robô manipulador que escreveria UFMG em uma determinada seção da folha.

a4.pdf

Nos do grupo Robolfo escolhemos seguir o primeiro projeto(Movimento por pontos definidos).

Construção

Na montagem utilizamos o kit lego, dois motores DC, canetas, pilhas e o arduino MEGA 2560 além de dois Shields, um para os motores, outro que nos auxiliaria como um tela led. A equipe decidiu construir o robô com uma base fixa que iria rotacionar um braço com a caneta posicionada em sua extremidade em uma velocidade constante, seu braço iria ter uma esteira controlada por uma junta prismática. Como primeiro passo nós construímos uma caixa de redução para a base e construímos o braço, e após algumas mudanças conseguimos criar uma estrutura básica inicial do robô.

Programação

Na programação utilizamos uma biblioteca especifica do shield do arduino Adafruit_MotorShield.h e LiquidCrystal.h, nosso código na integra esta a baixo:

**esta versão não foi a usada no final


#include <LiquidCrystal.h>  
#include <Adafruit_MotorShield.h>
#include <Wire.h> 
#include "utility/Adafruit_MS_PWMServoDriver.h"
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
Adafruit_DCMotor *motor1 = AFMS.getMotor(3);
Adafruit_DCMotor *motor2 = AFMS.getMotor(4);
//Adafruit_DCMotor *motor2 = AFMSbot.getMotor(3);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 
int k=150;

void setup(){  
AFMS.begin();
lcd.begin(16, 2);  
lcd.setCursor(1,0);  
lcd.print("AlphaV.1");  
lcd.setCursor(0,1);  
lcd.print("Tecla: ");  
}  

void loop(){  
int botao;  
botao = analogRead (0);  //Leitura do valor da porta analógica A0

lcd.setCursor(6,1);  
if (botao < 100) {  
  lcd.print ("Start      ");
  
  //p1-p2
  
  motor1->setSpeed(250);
  motor1->run(BACKWARD);
  delay(6000);
   motor2->setSpeed(55);
  motor2->run(BACKWARD);
  delay(3000);
  motor2->setSpeed(0);
  delay(500);
   motor2->setSpeed(50);
  motor2->run(BACKWARD);
  delay(6750);
  motor1->setSpeed(0);
  motor2->setSpeed(0);
  delay(1000);
  //p2-p3
  motor1->setSpeed(250);
  motor1->run(BACKWARD);
  motor2->setSpeed(0);
  motor2->run(BACKWARD);
  delay(6050);
  motor2->setSpeed(50);
  
  delay(6800);
  motor1->setSpeed(0);
  motor2->setSpeed(0);
  delay(1000);
  //p3-p4
  motor1->setSpeed(250);
  motor1->run(BACKWARD);
  motor2->setSpeed(50);
  motor2->run(FORWARD);
  delay(6000);
  motor2->setSpeed(0);
  motor2->run(BACKWARD);
  delay(4000);
  motor2->setSpeed(60);
  delay(4050);
  motor1->setSpeed(0);
  delay(1000);
  
  /*
  //p4-p5
  motor1->setSpeed(250);
  motor1->run(FORWARD);
  delay(7050);
  motor1->setSpeed(0);
  delay(1000);
  
  //p5-p5/6
  motor1->setSpeed(250);
  motor1->run(BACKWARD);
  delay(7050);
  motor1->setSpeed(0);
  delay(1000);
  
  //p5/6-p6
  motor1->setSpeed(250);
  motor1->run(BACKWARD);
  delay(7050);
  motor1->setSpeed(0);
  delay(1000);
  //p6-p7
  motor1->setSpeed(250);
  motor1->run(BACKWARD);
  delay(7050);
  motor1->setSpeed(0);
  delay(1000);
  */
}  
else if (botao < 200) {  
  motor1->setSpeed(250);
  motor1->run(FORWARD);
}  
else if (botao < 400){  
  motor2->setSpeed(200);
  motor2->run(FORWARD);
  
}  
else if (botao < 600){  
  motor1->setSpeed(0);
  motor1->run(FORWARD);
  motor2->setSpeed(0);
  motor2->run(FORWARD);
}  
else if (botao < 800){
  motor1->setSpeed(200);
  motor1->run(BACKWARD);
  motor2->setSpeed(200);
  motor2->run(BACKWARD);
} 
  
 }

—-

cursos/introrobotica/2017-1/grupo04/tp1.txt · Última modificação: por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki