Ferramentas do usuário

Ferramentas do site


cursos:introrobotica:2019-1:grupo04:codigo_tp1
// Programa : Manipulador robótico
#include <math.h>
#include <LiquidCrystal.h>
#include <Adafruit_MotorShield.h>
 
// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
 
Adafruit_DCMotor *motor1 = AFMS.getMotor(1);
Adafruit_DCMotor *motor2 = AFMS.getMotor(2);
 
 
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
 
int vel = 0;
 
void setup()   
{  
  lcd.begin(16, 2);  
  lcd.setCursor(0,0);  
  lcd.print("Bora Time, Foco!");  
  lcd.setCursor(0,1);  
  lcd.print("            ");    
  AFMS.begin();
  motor1->setSpeed(240);
  motor2->setSpeed(80);
 
}
 
void ufmg(){
  motor1->setSpeed(110);
  motor2->setSpeed(70);
//------------------------------ U -------------------------------------
 
  // desce
  motor2->run(BACKWARD);
  motor1->run(RELEASE);
  delay (2500);
 
  motor2->run(RELEASE);
  delay (500);
 
  // direita
  motor2->run(RELEASE);
  motor1->run(FORWARD);
  delay (2500);
 
  // para
  motor1->run(RELEASE);
  delay (500);
 
  // cima
  motor2->run(FORWARD);
  motor1->run(RELEASE);
  delay (2500);
 
  motor2->run(RELEASE);
  delay (500);
 
  // desce
  motor2->run(BACKWARD);
  motor1->run(RELEASE);
 
  delay (2500);
 
  // para
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay (500);
//---------------------------------------------------------
  // direita
  motor2->run(RELEASE);
  motor1->run(FORWARD);
  delay (800);
//--------------------------- F ------------------------------
 
  // cima
  motor1->run(RELEASE);
  motor2->run(FORWARD);
  delay (1200);
 
  // direita
  motor2->run(RELEASE);
  motor1->run(FORWARD);
  delay (1800);
 
  // para
  motor1->run(RELEASE);
  delay(500);
 
  //esquerda
  motor2->run(RELEASE);
  motor1->run(BACKWARD);
  delay (2200);
 
  // para
  motor1->run(RELEASE);
  delay(1000);
 
  // cima
  motor1->run(RELEASE);
  motor2->run(FORWARD);
  delay (1300);
 
  // direita + espaço
  motor2->run(RELEASE);
  motor1->run(FORWARD);
  delay (3000);
 
//----------------------------- M --------------------------------------------
  // PARA
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(1000);
 
  // desce
  motor2->run(BACKWARD);
  motor1->run(RELEASE);
  delay (2500);
 
  // PARA
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(500);
 
  // Cima
  motor2->run(FORWARD);
  motor1->run(RELEASE);
  delay (2500);
 
  // PARA
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(500);
 
  // desce e direita
  motor2->run(BACKWARD);
  motor1->run(FORWARD);
  delay (1500);
 
  // PARA
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(500);
 
  // Cima e direita
  motor2->run(FORWARD);
  motor1->run(FORWARD);
  delay (1500);
 
  // PARA
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(500);
 
  // desce
  motor2->run(BACKWARD);
  motor1->run(RELEASE);
 
  delay (2500);
 
  // PARA
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(500);
 
//------------------------------------ G -------------------------------------
  // direita (espaço)
  motor2->run(RELEASE);
  motor1->run(FORWARD);
  delay (500);
 
  // Cima
  motor2->run(FORWARD);
  motor1->run(RELEASE);
  delay (2500);
 
  // direita
  motor2->run(RELEASE);
  motor1->run(FORWARD);
  delay (2000);
 
  // PARA
  motor1->run(RELEASE);
  delay(1000);
 
  // Esquerda
  motor2->run(RELEASE);
  motor1->run(BACKWARD);
  delay (2100);
 
  // Para
  motor1->run(RELEASE);
  delay (500);
 
  // Desce 
  motor2->run(BACKWARD);
  motor1->run(RELEASE);
  delay(2500);
 
  // direita
  motor2->run(RELEASE);
  motor1->run(FORWARD);
  delay (2500);
 
  // Cima
  motor2->run(FORWARD);
  motor1->run(RELEASE);
  delay (1200);
 
  // Esquerda
  motor2->run(RELEASE);
  motor1->run(BACKWARD);
  delay (1200);
 
//----------------------------------------------------------------------------
 
  // Para 
  motor2->run(RELEASE);
  motor1->run(RELEASE);
 
}
 
 
 
 
 
 
 
 
void circulo2(){
 
  int vy=20;
  int vx= 200;
 
  motor1->setSpeed(vx);
  motor2->setSpeed(vy);
 
  for (int i = 0;i<10;i++){
    motor1->run(FORWARD);
    motor2->run(FORWARD);
    delay(100);
    vx= vx - 2;
    vy= vy + 5;
    motor1->setSpeed(vx);
    motor2->setSpeed(vy);
  }
 
  for (int i = 0;i<10;i++){
    motor1->run(BACKWARD);
    motor2->run(FORWARD);
    delay(100);
    vx= vx + 2;
    vy= vy - 4;
    motor1->setSpeed(vx);
    motor2->setSpeed(vy);
  }
 
 
  for (int i = 0;i<10;i++){
    motor1->run(BACKWARD);
    motor2->run(BACKWARD);
    delay(100);
    vx= vx - 2;
    vy= vy + 4;
    motor1->setSpeed(vx);
    motor2->setSpeed(vy);
  }
  for (int i = 0;i<10;i++){
    motor1->run(FORWARD);
    motor2->run(BACKWARD);
    delay(100);
    vx= vx + 2;
    vy= vy - 4;
    motor1->setSpeed(vx);
    motor2->setSpeed(vy);
  }
 
  motor1->run(RELEASE);
  motor2->run(RELEASE);
 
}
 
void terceiro(){
  motor1->setSpeed(120);
  motor2->setSpeed(80);
  //------ sobe e direita -----------
 
  motor2->run(FORWARD);
  motor1->run(FORWARD);
  delay (2500);
 
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(1000);
 
//-------- Desce e direita-----------------
 
  motor2->run(BACKWARD); //desce
  motor1->run(FORWARD); //direita
  delay (2700);
 
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(1000);
//-------------- Cima e esquerda------------------
  //motor1->setSpeed(150);
  motor1->setSpeed(140);
  motor2->setSpeed(40);
  //motor1->setSpeed(240);
 
  motor2->run(FORWARD);
  motor1->run(BACKWARD);
  delay (6000);
 
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  delay(1000);
 
//------------- Direita -----------------------
 
  motor2->run(RELEASE);
  motor1->run(FORWARD);
  delay (6500);
 
//------------- Desce e Esquerda -----------------
 
  motor2->run(BACKWARD);
  motor1->run(BACKWARD);
  delay (5500);
 
  motor2->run(RELEASE);
  motor1->run(RELEASE);
  //delay(1000);
 
 
}
 
void loop()  
{  
  int botao;  
  botao = analogRead (0);  //Leitura do valor da porta analógica A0
  //lcd.setCursor(12,1);
  //lcd.print (100+vel);  
 
  if (botao < 100) {  
    //lcd.print ("Direita ");
    ufmg();  
  }  
  else if (botao < 200) {  
    terceiro();
  }  
  else if (botao < 400){  
    delay (300);
  }  
  else if (botao < 600){  
    circulo2 (); 
  }  
  else if (botao < 800){  
    //lcd.print ("Select   ");
    motor1->run(RELEASE);  
  }  
}
cursos/introrobotica/2019-1/grupo04/codigo_tp1.txt · Última modificação: por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki