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