Sail Boat: Limpiapiscina

by cgaule in Outside > Boats

2273 Views, 5 Favorites, 0 Comments

Sail Boat: Limpiapiscina

El Prototipo.png
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

Montado De Base

IMG_0159.JPG
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.

Montado De Motor Y Timon

IMG_0158.JPG
IMG_0157.JPG
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.

Programar Arduino

arduino2.jpg
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);
             
}

Montar Componentes En La Caja Estanca

la foto.JPG
la foto2.JPG
la foto4.JPG
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

Montar Servo Control Del Timon

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