Finalistas en robots siguelineas de Euskobot


.




.


El robot subacuático BlueRov es un ROV (Vehículo Operado Remotamente) unido mediante un umbilical a los pilotos que están en la superficie. Uno de sus puntos débiles es su falta de sensores subacuáticos, esto es debido a que es una plataforma nueva, con filosofía abierta y de bajo coste. Por ese motivo este curso nos hemos marcado como uno de los objetivos, el análisis, montaje y configuración de distintos sensores en distintos tipos de drones acuáticos.
.

.
Al adquirir el ROV vino con ciertos sensores internos como un giroscopio y acelerómetro de la propia Pixhawk. También tiene un sensor de presión en la parte externa del tubo de electrónica. Para poder medir la presión del agua y por consiguiente calcular a la profundidad que está el Rov. Como extra, vino con un sensor que detecta la entrada de agua en el tubo de electrónica.
.

.
Está vez hemos añadido un sensor de temperatura del agua que funciona mediante I2C. Al BlueRov se le puede conectar dispositivos mediante la comunicación I2C a través de un conector I2C que tiene la Pixhawk. Al estár conectado el sensor de fuga de agua a este conector en la Pixhawk, ha habido que añadirle un Hub de I2C para poder tener 2 sensores (fuga de agua y temperatura) en el bus de comunicaciones I2C.
Uno de los sensores subacuáticos más demandados en el que ayuda a posicionar el ROV bajo el agua, es algo similar a un GPS. Además del elevado coste, uno de los problemas es que la instalación en el Rov requiere conectar un sensor externo mediante un pasamuros al cilindro de electrónica. El proceso aunque no es complejo requiere mantener el sellado de agua en el cilindro de electrónica.
.

.
Pero el proceso más complicado y que mayores problemas nos ha dado ha sido en superficie. El GPS está compuesto de un sensor en el Rov y 4 sensores en la superficies unidos en una placa electrónica. Todo el sistema es muy robusto, fácil de manejar, muy bien acabado y protegido contra el agua.
.

.
Para conectar el Rov al PC hace falta una pequeña electrónica, pero al añadirle el GPS hay que añadirle más equipos electrónicos a los existentes. La unión de los equipos de superficie no es muy robusta y nos ha dado muchos problemas de conexión, pérdidas de señales… dicho de otra manera pérdida de tiempo y frustración.. El propio desarrollador del BlueRov no da una solución muy buena, en su página web muestra el diagrama de conexiones y comenta que recomiendan integrarlo en una caja para proteger las conexiones.
.

Por ese motivo adquirimos con una caja para que la conexión fuera más sencilla y estuviera más protegida. Pero no cumplio las espectativas, principalmente porque la caja no era robusta y las conexiones mediante los conectores RJ45 no eran seguras.
.

.
Ante los problemas detectados, rediseñamos la caja de conexión inspirados en la solución que habían diseñado los de Water Linked con su GPS. Mediante la solución se ha conseguido
• Un sistema protegido contra el agua, tanto la caja como los conectores.
• Conectores robustos que pueden conectarse/desconectarse rápido.
• Se puede usar con el sistema de GPS o sin él.
• Se puede alimentar externamente, desde el maletín del GPS o desde una batería.
• Posibilita intercambiar la batería con la que lleva el propio BlueRov.
.

.

.

.


.



.



Plaka ondo eginda dagoela zihurtatu ondoren, hautatutako konponenteak plakan soldatzen jarri ginen, kontuan hartzen bakoitzaren posizioa eta bakoitzaren kokalekua. Hau egiteko dexente denbora tardatu genuen, plakan soldatzeko eremuak ez baitziren guztiz guk esperotakoak, baino lortu genuen ongi soldatzea.

.
.
4- Pic-aren programazioa:
.
Komentarioekin dator, eta hauek gazteleraz daude denek ulertzeko zer egiten duen programaren zati bakoitzak.
/*——————————————-*\
| proyecto del control de tractor: Iñigo Lazkano
el programa consiste en controlar un tractor desde el dispositivo android.
\*——————————————-*/
#include <16f87.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES PUT //Power Up Timer
//#FUSES MCLR //Master Clear pin enabled
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOFCMEN //Fail-safe clock monitor disabled
#FUSES NOIESO //Internal External Switch Over mode disabled
#use delay(clock=4000000)
#use RS232(baud=9600, xmit=PIN_B5, rcv=PIN_B2) //#use rs232(baud=9600,parity=N,xmit=PIN_A3,rcv=PIN_A2,bits=8)
#use i2c(Master,sda=PIN_B1,scl=PIN_B4)
int8 sekuentzia=’E’; //declaramos que para empzar esten los motores apagados
void serie(void);
/****************************************************************************
FUNCION PRINCIPAL
****************************************************************************/
void main(void)
{
int8 i;
setup_adc_ports(NO_ANALOGS); // para que los puertos sean digitales
set_tris_b(0b00000100);
// set_tris_a(0xff);
while(1)
{
serie(); //leer bluetooth
if(sekuentzia==’E’) //si esta detectando una E entra en este ciclo
{
while(sekuentzia==’E’)
{
output_low(PIN_B0),output_low(PIN_B3),output_low(PIN_B1),output_low(PIN_B4); //parar los motores
serie(); //lee la entrada del bloetooth
if(sekuentzia!=’E’) //si lo que lee es diferente a E
break; //sal del ciclo
}
}
else if(sekuentzia==’B’)
{
while(sekuentzia==’B’) //Si lee un B entra en este ciclo
{
output_low(PIN_B0),output_low(PIN_B3),output_high(PIN_B1),output_high(PIN_B4);//Motores hacia atras
serie(); //lee la entrada del bloetooth
if(sekuentzia!=’B’) //si canbia de valor la entrada
break; //sal del ciclo
}
}
else if(sekuentzia==’C’) //Si lee un C entra en este ciclo
{
while(sekuentzia==’C’)
{
output_high(PIN_B0),output_low(PIN_B3),output_low(PIN_B1),output_low(PIN_B4); //girar izquierda
serie(); //lee la entrada del bloetooth
if(sekuentzia!=’C’) //si canbia de valor la entrada
break; //sal del ciclo
}
} //fin else if sek C
else if(sekuentzia==’D’) //Si lee un D entra en este ciclo
{
while(sekuentzia==’D’)
{
output_low(PIN_B0),output_high(PIN_B3),output_low(PIN_B1),output_low(PIN_B4); //girar derecha
serie(); //lee la entrada del bloetooth
if(sekuentzia!=’D’) //si canbia de valor la entrada
break; //sal del ciclo
}
}
else if(sekuentzia==’A’) //Si lee un A entra en este ciclo
{
while(sekuentzia==’A’)
{
output_high(PIN_B0),output_high(PIN_B3),output_low(PIN_B1),output_low(PIN_B4);//Motores hacia delante
serie(); //lee la entrada del bloetooth
if(sekuentzia!=’A’) //si canbia de valor la entrada
break; //sal del ciclo
}
}
} //fin while 1
} //fin main
/****************************************************************************
FUNCION Serie
****************************************************************************/
void serie(void)
{
if(kbhit() !=0) //si canbia la entrada del bloetooth,
{
sekuentzia=getc(); //guarda lo que recibas en la variable llamado sekuentzia
}
}
5- Sekuentziak:
.
Hemen ikus daiteken moduan, pin bakoitza zein egoeratan egon behar den momentu bakoitzean adierazten digu.
Sekuentzia A: bi motoreak aurreraka.
Sekuentzia B: bi motoreak atzeraka.
Sekuentzia C: ezkerreko motorea martxan eta eskuinekoa geldirik.
Sekuentzia D: eskuineko motorea martxan eta ezkerrekoa geldirik.
Sekuentzia E: bi motoreak geldirik.

Edozein mugikorretan aplikazio hau instalatzean bluetooth-a kontrola dezakezu,baina mugikor batekin konektatuta dagoenean ezin da beste gailuren batekin konektatu. honekin, denbora errealean guk aplikatu nahieko sekuentzia aukeratzean datza.
7- -Prototipoa eraikitzea




8- -dena kableatzea:
.

-TT-motor (2)
Proiektua egiteko behar dituzuen artxiboak hemendik deskarga ditzakezue.