Diseño de una embarcación autopilotada


Mucho antes que aparecieran los coches autónomos , por su simplicidad  destacar que ya existían múltiples soluciones para embarcaciones autónomas  que no dependen del ser humano para moverse por el mundo

Leo Megliola, estudiante de 8 grado  invirtió un año construyendo una embarcación  autónoma    con ayuda de la academia de  Berwick Academia y su mentor Jeff gum

El  kayak era la octava tentativa  de conseguir una embarcación autónoma así que buscaba  desapoderadamente una idea innovadora  para conseguir el objetivo de construir una embarcación autónoma

La  idea de usar el kayak vino en de forma accidental de un paseo con su padre donde miraban  a un isla que estaban  a unas seis millas de distancia de  ellos ,  y el padre le preguntó si tuviese que enviar algo a  esa isla como lo haría . En principio Leo  pensó en  un cohete de globo o  incluso un avión de ala fija, pero decidió que la manera  más eficiente sería por barco, así que decidió  intentar nuevamente si proyecto esta vez centrándose en usar un  kayak que debería viajar todo el camino a Shoals totalmente sin ayuda.

El autor eligió una trayectoria desde una boya en el mar  cerca Portsmouth a otro justo en frente de Appledore Island  constituyendo un viaje de poco más de  cinco millas

TRAVESIA

El diseño de piezas  utiliza la fusión  en una impresora 3d para crear un prototipo , probando cada subsistema individualmente para aprender cómo cada pieza trabaja antes de intentar instalarlos en ambos sistemas principales

Usa   obviamente electrónica tanto para el control  de dirección como para  la  propulsión ,  y la verdad que en el vídeo vemos como va adelante rápidamente dirigiéndose  a  su destino así que todos esos  tres sistemas son buenos y probados

Nos  cuenta que la primera vez que probó el  sistema  pudo  ver un controlador de motor paso a paso   lleno de humo , pero como llevaban  un Arduino de repuesto  realizó  la primera prueba sin dirección.

Después corregido el problema hizo más pruebas en  la paya pudiendo  navegar incluso con corriente y  viento, pero lamentablemente  empezaron los  problemas de  filtraciones de  agua  y lentamente se  llenaba  de agua peligrando  la electrónica

Corregidas  las filtraciones el siguiente intento  conseguir llegar alrededor de la  mitad del itinerario , pero el kayak funcionaba perfectamente ,aunque confundió  algunas cosas en el  código que ejecuta el arduino

Los componentes del kayak  son lo siguientes:

  • El sistema de propulsión del kayak lo  constituye    un motor eléctrico de tipo trolling del que  hemos hablado  en numerosas veces es este blogyilon
  • Usa  tambien una batería  marina AGM    de ciclo profundo proporcionando la energía  necesaria tanto a la electrónica como al sistema de propulsión51AO+9H+NTL
  • Un Arduino Uno
  • Un modulo  GPS
  • Dos controladores de motor paso a paso(*)
  • Dos relés de potencia consecutivos(**)

 

(*)  En principio pare el timon  al  llevar dos cables el autor ha debido usar  un motor conectado solidariaemnte a cada uno de ellos

(**) Debido a la potencia del motor probablemente el autor ha optado por conectar dos reles en paralelo en lugar de un único relé

Como era de esperar  , Arduino es  responsable de dirigir el barco y encender y apagar el motor, así como navegar  en función de las señales  NMEA  que proporciona el escudo GPS

Cuenta con dos motores paso a paso que van girando en un sentido o en otro  para mover el timón de la embarcación . El autor ha optado  para no estropear la embarcación, situando  los  motores para  controlar la  dirección a una distancia  adecuada para por medio de dos cables de acero  tirar  de cada extremo del timón  hacia estribor o babor y no dirigir la dirección del barco entero pues el uso de la palanca  ayuda  a minimizar el consumo del motor de dirección

En la electrónica,  el GPS es responsable para decirle al kayak qué dirección está viajando calculando el  por medio del microcontrolador Arduino  las ordenes a dar  al motor  PaP  en en función de  las  señales que está recibiendo   dado que  no cuenta con brújula electrónica

El algoritmo inicial  tenia   en cuenta donde estaba hace unos segundos y donde está en el momento actual de modo que podía  calcular  de que manera  se había movido  sabiendo qué camino estába viajando bien, así que fruto  de la experimentación  consiguió escribir  el  programa adecuado para ir corrigiendo constantemente el rumbo para llegar al destino

El autor tubo algunos  problema a la hora sobre todo de escribir el código principalmente  por  tres  motivos principales:

  • Primero el autor  falló en  simulación de scratch donde tuvo la pequeño barco y la isla y nosotros fundamentalmente los rudimentos de la código que escribimos en Arduino idioma y se movió mucho y luego terminó simplemente haciendo un círculo  una y otra vez para que ese total  falló y terminamos arreglando que reescribió completamente el código y tomó enfoque diferente  SCARTACH1.PNG
  • El segundo fracaso vino  que trataron de navegar en el coche  usando la misma electrónica pero a la que añadieron  cuatro LEDs que indicaba  de qué manera había que dar la vuelta si el circuito sabe de alguna corrección GPS , así como si se estaba dentro del rango para detener o no . Por el resultado comprobado empíricamente, el algoritmo estaba mal ,pues indicaba  que estaba completamente fuera de la distancia cuando en realidad  estában a unos cien metros de distancia  y  dijo que está en algún lugar en el rango de cinco mil metros de distancia..
  • El tercer fallo vino con una  de las revisiones de código cuando íba hacia el norte pues en el código estaba dividiendo por cero y perdía el control .Arreglo eso también tomando una nuevo enfoque completamente nuevo de modo que finalmente  consiguio solucionar  el problema   incluso en una corriente cruzada como  se  puede ver en el vídeo .

 

El autor ha utilizado componentes y tutoriales principalmente de Adafruit, incluyendo un Arduino, un sensor GPS, un relé y un controlador de motor paso a paso y para programarlo ha usado Scratch

De momento aquí os dejamos un vídeo en el que nos enseña su proyecto  aunque  lamentablemente no ha compartido el código de Arduino .

 

 

 

 

Nos  consta  que has seguido intentando mejorar  su proyecto  como demuestra el siguiente vídeo  donde el kayak de Leo adquiere y encuentra una boya de mar a 1,5 km de distancia (prueba de mar abierto)  siendo el rumbo inicial  de 120 grados respecto al objetivo.

 

 

Diagnosis de su coche con Raspberry Pi


OBD-II PID ( Diagnóstico a bordo de parámetros IDs ) son códigos utilizados para solicitar datos de un vehículo, que se utiliza como herramienta de diagnóstico  que tradicionalmente se ha reservado a los  técnicos automotrices que usan PID con una herramienta de análisis conectado al conector OBD-II del vehículo.

  • El técnico entra en el PID
  • La herramienta de análisis lo envía al del vehículo red controlador-área (CAN) la parada de microbus, VPW, PWM, ISO, KWP . (Después de 2008, sólo CAN)
  • Un dispositivo en el bus reconoce el PID como uno es responsable de, y reporta el valor para ese PID al bus
  • La herramienta de análisis lee la respuesta, y lo muestra al técnico

Un  adaptador   OBD-II  funciona  en cierta manera  como el USB de un ratón que usamos con el ordenador, ya que se conecta a la centralita del coche y convierte los datos que lee en información que podemos procesar desde nuestro móvil.

Estos adaptadores se puede encontrar  fácilmente en internet y a precios que empiezan en los 6 euros y van subiendo hasta los varios cientos, dependiendo de la calidad y cantidad de opciones que necesitemos. Pero para un uso completamente ‘amateur‘, tenemos suficiente con los más económicos. Eso sí, antes de comprarlo debe   compruebe que la centralita de su coche tiene la conexión de 16 pines del estándar y es compatible  con dicho  interfaz.

 

 

Adaptadores ODB2 bluetooth

elm37

Algunas centralitas de vehículos puede soportar más o menos funciones que otros.,pero en todo caso  no olvide  que la aplicación necesita un adaptador Bluetooth OBD2 para trabajar.

Estos  adaptadores  son  pequeños y se conectan a la toma de diagnóstico en el coche que le da a su acceso a los teléfonos.Uno de los adaptadores mas usados  es el modelo el ELM327 OBD2 el cual funciona igual de bien que otros aparatos similares de tamaño mucho mayor y   aún precio bastante menor (como por ejemplo el  adaptador Scantool.net, el adaptador de OBDKey y PLX Kiwi ).

El modelo ELM 327  es el clásico lector de parámetros del motor y de códigos de error OBD II mini, en carcasa de plástico transparente  de  reducido tamaño(otros modelos mayores  estorban en la zona de los pedales)   que es capaz de enviar los datos vía Bluetooth   y que se puede adquirir  a muy buen precio.

Para usarlo, hay que enchufar el dispositivo  al conector que suelen traer casi todos los coches modernos  junto a la fusiblera principal que suele estar  debajo del volante.

Después hay que instalar  la aplicación  Torque en su smartphone   ( en su versión gratuita o de pago )  y automáticamente al ejecutarla  debería empezar a ver en la app  una cantidad ingente  de información sobre el funcionamiento de su vehículo.

Los usuarios  se abruman   del  impresionante volumen de datos aportado pues aplicación es 100% configurable para mostrar los parámetros que prefiera. De hecho los datos ofrecidos son prácticamente similares a una maquina de diagnosis de cualquier taller en sus manos, aportando ademas de un sinfin de parámetros informativos sobre el estado de motor, consumos, temperaturas, posibles averías etc

Resumidamente  estas son algunas de las utilidades  de la combinación  del adaptador  ELM327 OBD2 junto con el programa  Torque:

  • Leer los códigos diagnóstico, genéricos y específicos del fabricante, y mostrar su significado (sobre 3000 definiciones genéricas del código en la base de datos).
  • Borrar los códigos de problemas y apagar el MIL (“Check Engine” de luz)
  • Mostrar los datos actuales del sensor

Según el modelo de coche podrá ver más o menos datos, pues eso no depende de este aparato  en su .De hecho ,hay usuarios que no han conseguido hacerlos funcionar con determinados modelos de vehículos, pero en cambio en otros modelos  funciona perfectamente:

 

Por cierto ,esta versión  del  ELM327  se puede comprar por menos de 6€  con gastos de envió incluidos  aqui (Amazon.es)

Adaptadores ODB2 USB

Hay muchos ejemplos de entusiastas que  están usando estos adaptadores ODB2 no solo desde dispositivos Android sino incluso desde PC standard ,pero ¿ y si se pudiera usar desde otros dispositivos  como por ejemplo desde una Raspbery Pi?

Pues en  efecto desde pistonheads.com  nos demuestra como es posible desde una RPi de  leer datos de su moto a través de un lector USB OBD-II  usando  como registrador de datos para una moto gracias  a que cabe perfectamente  debajo del asiento

Para ello , se usa un   cable USB -> OBD2 , el cual  soporta muchas versiones diferentes del puerto estándar OBD2

La RPi toma la  alimentación  una conexión micro del USB que se alimenta a su vez  de la batería (lo ideal es desde luego hacerlo desde  la llave de encendido / apagado, pero esto llevar mucho más trabajo y se corre el peligro de  dañar el cableado de la moto) así que el usuario opto  por compro un interruptor y un fusible  que  termina en un puerto USB hembra lo cual permite  apagar la RPpi al final de un viaje

Lo siguiente es  el código, basado en  la  librería python  desarrolla en 2009 llamado pyobd. Esta fue  la  base para lo que quería hacer, encontrando algunos errores en el código pues , en general, estaba escrito para ser utilizado por una aplicación  grafica GUI que venía con ella. Como el autor no quería una aplicación GUI, obviamente, bajo su asiento se bajo su repositorio y comenzó a trabajar en hacerlo más parecido a un datalogger

El trabajo esta en su  repositorio : https://github.com/roflson/pyobd

 

Gracias al trabajo excelente de Salgar , Martin quiso ir mas lejos  conectando ademas una cámara ,    utilizando  los datos OBD para superponer mph, rpm, temperatura y la posición del acelerador sobre el vídeo tomado con la placa de la cámara construyendo realmente un dispositivo bastante interesante

Resumidamente  el  proceso de desarrollo de  la nueva herramienta fue muy similar a la anterior adaptación de Salgar , basándose también en un  adaptador  USB al cable de interfaz de OBD2 del tipo ELM 327 1.5V USB CAN-BUS Scanner ELM327 , por cerca de £ 10 disponibles en  amazon.com o amazon.co.uk .( en España un no esta )

Otro elemento importante es conectar la cámara a su Raspberry Pi 2 usando el conector propietario especifico

Un modelo asequible compatible con la Raspberry Pi2   es el Módulo de cámara Raspberry Pi de SainSmart  que cuesta unos 14€ 

 

Luego  una vez adquirido el hardware , descargo el  software de salgar de su repositorio github, https://github.com/roflson/pyobd , como base para el nuevo programa (el software de salgar es una bifurcación de un proyecto llamado pyobd, https://github.com/peterh/pyobd , que es una aplicación basada en GUI para leer datos OBD-II).

Utilizo el autor  este  nuevo software  como base para un programa que se conectaría a través de la interfaz OBD-II, interrogando al coche qué sensores soportaba y luego leyendo los sensores de datos en un bucle cada 0,5 segundos  escribiéndolos en la pantalla de modo que la RP2 no solo registra el video , también registra  los  datos dinámicos superponiendolos al video cumpliendo pues una doble función

Descargar y ejecutar

El autor   finalmente  ha puesto a la disposición de todos los usuarios su  sw  de modo que puede descargar el código directamente desde github  en ,https://github.com/martinohanlon/pyobd ,

 

Resumidamente estas son las instrucciones de instalación:

 

Si le «pica»la curiosidad en el vídeo podemos ver la Rp2 con el sw en acción