go_away

Author Topic: PROYECT VIDEO TEST AND PROGRAM HELP NEEDED  (Read 774 times)

0 Members and 1 Guest are viewing this topic.

Offline aventgpsTopic starter

  • Jr. Member
  • **
  • Posts: 21
  • Helpful? 0
PROYECT VIDEO TEST AND PROGRAM HELP NEEDED
« on: October 18, 2009, 08:00:44 PM »
[youtube]-VyTQuTkU20[/youtube]

I NEED HELP WITH IT, I WANT IT TO STOP WHEN AN OBJECT IS SEEN, THEN TURN PING)) TO SENSE AND CHOOSE THE BEST WAY TO GO
CODE...

Quote
#include <Servo.h>

int pin6 = 6;
int pin7 = 7;
int pin13 = 13;
int pin2 = 2; // PIN DE SEŅAL PARA EL PARALLAX
int valor = 0;
int pin2Value = 0;
int timecount = 0; // Echo counter
Servo myservo1;
Servo myservo2;
Servo myservo3;
int bumperisquierdo = 0;
int bumperderecho = 0;
int val = 0;


void setup() {

  // crea objetos y los asigna a mines
  myservo1.attach(9);
  myservo2.attach(10);
  myservo3.attach(11);
  pinMode(pin6, INPUT);
  pinMode(pin7, INPUT);
  digitalWrite(pin6,HIGH);
  digitalWrite(pin7,HIGH);


}
void loop()
// comienza a moverse el robot hacia adelante

  myservo1.write(100);
  myservo2.write(80);
  myservo3.write(90);
  digitalWrite(pin13, LOW);

  parallax(); //arranca el parallax dentro del loop

  //////////////////////////////////////////////////////////////////////////////////////////////////////

  if(timecount < 400)  //lee el parallax mientras avanza, si baja de 400
  {
    miraalaizquierda();   // mira a la izquierda y opera sefun funcion
  }
  else (timecount >400);
  {
    myservo1.write(100);
    myservo2.write(70);
  }
  ////////////////////////////////////////////////////////////////////////////////////////////////////
  //////bumpers//////


    {
      val = digitalRead(pin6);
    if (val == LOW)
    
      parader();
    }   
    
    {
      val = digitalRead(pin7);
    if (val == LOW)
    
      paraiz();
    }





}





void parallax()
{
  timecount = 0;
  valor = 0;
  pinMode(pin2, OUTPUT); // PONE AL pin2 COMO OUTPUT

  /* Send low-high-low pulse to activate the trigger pulse of the sensor
   * -------------------------------------------------------------------
   */

  digitalWrite(pin2, LOW); // Send low pulse
  delayMicroseconds(2); // Wait for 2 microseconds
  digitalWrite(pin2, HIGH); // Send high pulse
  delayMicroseconds(5); // Wait for 5 microseconds
  digitalWrite(pin2, LOW); // Holdoff
  pinMode(pin2, INPUT); // Switch signalpin to input
  valor = digitalRead(pin2); // Append signal value to val
  while(valor == LOW) { // Loop until pin reads a high value
    valor = digitalRead(pin2);
  }
  while(valor == HIGH) { // Loop until pin reads a high value
    valor = digitalRead(pin2);
    timecount = timecount +1;      // Count echo pulse time
  }
  pin2Value = timecount; 
  {
    delay(100);
  }
}



void miraalaizquierda()
{


  do
  {
    myservo3.write(10);
    parallax(); 
    myservo1.write(20);
  }
  while(timecount < 400);

  {

    //   do
    //  {
    //    miraaladerecha();   // mira a la derecha y opera sefun funcion
    //  }
    //  while(timecount < 400); // si al voltear a la izquierda no ve obstaculo sale de esta condicional
    // 
  }




}


void miraaladerecha()
{
  myservo3.write(170);
  {
    parallax();

    myservo2.write(140);

  }
}  

void parader()

{
  myservo2.write(170);
  delay(2000);
}





void paraiz()

{
  myservo1.write(80);
  delay(2000);
}

















 


Get Your Ad Here