Introduction: Sail Boat: Limpiapiscina

Introducción:

SailBoat es un aparato de limpieza de piscinas autoconstruido con materiales sencillos y baratos

Materiales necesarios:

-6 botellas de 500 CC como balsas de flotación
-1 tabla de 40 x 30 (o a gusto), será la base para montar todos los componentes
-8 amarras de cable según el tamaño de la botella
-1 bisagra, actuará como articulador de timón
-1 placa metalica de 4x8 que actuará como timón
-1 liston de madera , que actua como alma de fijación central
-1 placa metalica que actua como pilar de sujección de la helice
-1 helice y motor electrico para propulsion
-1 bateria para el motor de la helice
-1 control y receptor futaba
-1 arduino
-1 sensor de temperatura
-1 sensor de distancia
-1 sensor de luminosidad
-1 caja plastica con tapa para contener las componentes electronicas

Step 1: Montado De Base

Usando un taladro perforar 16 orificios  en la placa base para montar las amarras de sujeción de las botellas, los orificios deben ser 2 columnas de 4 orificios por cada lado.

Luego montar el liston de madera como eje central y a  este fijar el pilar  para el montado del motor y el pilar para la bisagra del timón.

Para montar el liston y los pilares se recomienda pegar las componentes y luego utilizar tornillos o pernos para sujetar con mayor firmeza las piezas.

Mayor detaller revisar imagen.

Step 2: Montado De Motor Y Timon

Sobre el pilar principal se debe realizar 2 perforaciones y sujetar el motor con la helice mediante un par de tuercas y pernos que permitan fijar firmemente el dispositivo.

En el pilar del timon se debe montar la bisagra y sobre esta el timón.

Step 3: Programar Arduino

Para controlar el motor, el timon y el sensor de distancia se deben instalar los dispositivos en la placa arduino y usar el programa adjunto para controlar los dispositivos

#include <Servo.h>

Servo sonar;  // create servo object to control a servo
Servo timon;  // objeto control timon
Servo motor;
int configPin = 13;

void setup()
{
  sonar.attach(9);
  timon.attach(8);
  motor.attach(11);
 
  Serial.begin(9600);
  pinMode(configPin,OUTPUT);


   // inicializo motor
   int VelMin=60;
   int VelMax=100;
   for (int i=60; i<100;i++)
  {
    motor.write(i);
    delay(100);
   }
  
   //incializo timon
   int TimMin=0;
   int TimMax=90;
   for (int i=TimMin; i<TimMax;i++)
  {
    timon.write(i); 
    delay(10);
   }
  
  
   //inicializo sonar
   int SonarMin=0;
   int SonarMax=90;
   for (int i=SonarMin; i<SonarMax;i++)
  {
    sonar.write(i);
    delay(10);
   }  
 
}

////////////////
// Funciones //
//////////////

int Detecto_Objeto(int pos)

  //pongo servo en 0,90,180
  sonar.write(pos);
  delay(250);

  // mido la distancia
  digitalWrite(configPin,HIGH);    //raise the reset pin high
  delay(250);                      //start of calibration ring
  float sensorvalue = analogRead(5); //get analog sensor value from pin 5
  float cmvalue = (1.25*sensorvalue+3.75);
  //Serial.print("Distancia=");      //print inch text
  //Serial.println(cmvalue);        //print inch value
  delay(15);                      //optional delay 1 second
  digitalWrite(configPin,LOW);      //turn off Calibration ring and sensor
  /*Serial.print("Pos / Distancia =");
  Serial.print(pos);
  Serial.print("/");
  Serial.print(cmvalue);
  Serial.print("\n");*/
  return cmvalue;
}


// Funciones de movimiento

void Aceleracion(int vel)
{
int i=0;
Serial.print("Aceleracion ");
Serial.print(vel);
Serial.print("\n");
for (i=60; i<vel;i++)
  {
    motor.write(i);
    delay(100);
    //Serial.print("pos/vel ");
    //Serial.print(i);
    //Serial.print("/");
    //Serial.print(vel);
    //Serial.print("\n");
   }
   //delay(1000);
}

void VehiculoCTL(int pos)
{
  int Adelante=90;
  int Derecha=0;
  int Izquierda=180;
  int Vel;
 
  timon.write(pos);
  Aceleracion(70);
  //delay(150);
  Serial.print("pos/vel ");
  Serial.print(pos);
  Serial.print("/");
  Serial.print(Vel);
  Serial.print("\n");
  //delay(100);
}



/////////////////////////
// Programa Principal //
///////////////////////


void loop()
{

  //Detecto objeto

int pos=0;
int DistChoque=30;
int Adelante=90;
int Derecha=0;
int Izquierda=180;


if (Detecto_Objeto(Adelante) > DistChoque)
      VehiculoCTL(Adelante);
  else
    if (Detecto_Objeto(Derecha) > DistChoque)
      VehiculoCTL(Izquierda);
    else
      if (Detecto_Objeto(Izquierda) > DistChoque)
          VehiculoCTL(Derecha);
             
}

Step 4: Montar Componentes En La Caja Estanca

Sobre la viga principal se deben poner los componentes del arduino en una caja estanca ziploc, por seguridad la caja debe ser anclada a la viga, una vez puesta, dentro se ponen los componentes electronicos fijandolos con huincha aisladora a la posicion que le corresponde. una vez listo se debe cerrar y montar sobre la tapa el sensor de distancia asegurandolo para evitar que caiga al agua

Step 5: Montar Servo Control Del Timon

Se debe montar el servo control del timon sujeto al pilar del motor, para eso fijar con amarras de cable al pilar principal

Comments

author
1tri2god (author)2012-08-31

I know the world language is not defacto English, and am thankful for "instructors" with other languages...but is there a way to translate this? Isn't there a google function to do that...something?

author
CementTruck (author)2012-08-31

Este no es un sailboat porque no hay un "sail". Este es un "motorboat".

Tambien me gusta tu idea.

author
rimar2000 (author)2012-08-31

Aunque no me sobra el tiempo y no domino el inglés, te ofrezco mi ayuda para traducir esto, usando el Google Translator. Por ahí podría ofrecerse algún otro que lea esto y que sí domine el idioma. Me gustó la idea de tu proyecto.

About This Instructable

1,823views

5favorites

License:

More by cgaule:Sail Boat: Limpiapiscina
Add instructable to: