Cámara trasera inteligente con Raspberry Pi. Parte 2


Añadiendo reconocimiento de imágenes

 

En los tutoriales de instalación de OpenCV  se  recomienda compilar desde la fuente; sin embargo, en el último año ha sido posible instalar OpenCV a través de pip, el propio administrador de paquetes de Python. Si bien la instalación desde la fuente le dará el mayor control sobre su configuración de OpenCV, también es la más difícil y la que más tiempo consume. Si está buscando la manera más rápida posible de instalar OpenCV en su sistema, querrá  usar pip para instalar OpenCV, pero hay algunas cosas que pueden hacer que se tropiece en el camino, así que asegúrese de leer el resto de este  post. 

Script  en Python

Ahora  este script    puede  ser nombrado  como  car_detector.py  y lanzarlo desde  la consola  .

Ojo no basta con lanzarlo F5 desde el propio Python pues dará probablemente error a l ahora de importar al libreria cv2, pero no se preocupe situarse en la ruta del scrript  en prython  y   ejecutar

sudo python car_detector.py

IMG_20181113_224935[1].jpg

A partir desde ahí debería funcionar la detección de imágenes  con lo que capte la imagen de  la Raspberry Pi

En el siguiente vídeo podemos ver el script en acción

 

 

Como vemos en elvideo en pequeña escala, lo hizo bastante bien detectando un montón de objetos innecesarios, ( aunque  a veces detecta las sombras como objetos.)En un escenario del mundo real, los resultados fueron sorprendentemente precisos ,pero si es  cerca de las condiciones perfectas, Tenga en cuenta que el código es  básico actualmente y necesitaria muchas más pruebas y depuración)

De los dos métodos,este  método , pero el primer método  es más confiable en múltiples situaciones. Así que si usted fuera a hacer esto para su coche, iría con el método  inicial ( el que usa overlay).

 

 

Conexión hacia la Raspberry Pi via vnc

Ya que se ha conectado exitósamente a la consola de comandos por ssh , seguro que le interesa también poderse conectar tambien  al interfaz gráfico por lo que ahora nos toca instalar y configurar el servidor de VNC sobre Raspberry Pi  en su tablet/smartphone.

Para instalar y configurar el VNC viewer en su tablet/smartphon en  android  siga los siguientes pasos:

  • Descargue la app Vnc Viewwer desde Google Play desde la url  oficial https://play.google.com/store/apps/details?id=com.realvnc.viewer.android
  • Al ejecutar la   app por primera vez le pedira una cuenta de  vnc, de modo qeu si no la tiene tendra que creala desde la propia aplicacion introduciendo una cuenta de correo, un nombre , apellido,pais   y un catcha,
  • En nuestro correo electrónico recibiremos un email que debemos validar para confirmar que  cuenta nos pertenece
  • Una vez que haya confirmado los datos puede intentar volver a entrar en la app VNV Viewer ingresando las credenciales que introdujo
  •  Ahora  siga el procedimiento similar al del ssh
    • Haga clic en el el Boton del signo más en la parte inferior izquierda de la pantalla y seleccione la opción Nuevo Host.
    • Entrar los siguientes datos:

    Alias: cualquier nombre es aceptable como por ejemplo Raspberry Pi 

    Username: pi

    Nombre de host: la  dirección Ip  obatnida con el comando ifconfig

    Contraseña: la pwd que haya puesto

    Los demás campos se pueden dejar espacios en blanco, luego toque la marca de verificación en la derecha superior. Después de eso, haga clic en una Conectar cuando se le preguntó ” Si desea conectar el dispositivo

  • Para  conectarse  a  su Raspberry Pi , dado que ya ha creado la conexión, pulse  sobre el icono nuevo que aparece en la pantalla de inicio
  • Enseguida deberían aparecer   las credenciales de acceso  y probablemente el pwd en blanco que deberemos completar  .
  • Finalmente progresar la conexión  pulsando en CONTINUE
  • Una vez dado el botón de conectar debería aparecer la pantalla principal de Raspbian que ahora podremos controlar desde nuestro smartphone
  • Podemos ver la imagen de la cámara  ahora desde el propio teléfono

Screenshot_2018-11-13-22-55-52-301_com.realvnc.viewer.android[1]

 

Mas información en :https://www.hackster.io/tinkernut/raspberry-pi-smart-car-8641ca

 

Anuncios

Cámara trasera inteligente con Raspberry Pi. Parte 1


El término “Coche inteligente” puede tener miles de significados diferentes dependiendo a quién le preguntemos., así que empecemos con una definición   modesta  de algunos componentes que podemos añadir :

  • Información básica sobre el coche, como la marcha engranada, eficiencia de combustible, horas de conducción ,etc.
  • Ayudas a la conducción de tipo ADAS , siendo   los mas comunes la puesta en marcha del  coche delantero, acceso involuntario a línea de separación de carril o aviso de colisión por vehículo delantero que circula  muy próximo
  • Cámara trasera inteligente que avise si un objeto está demasiado cercano
  • etc

Del primer punto lo hemos comentado en diferentes post , explicando que para automóviles de unos 10 años, es decir que cuentan con interfaz ODB2,  es relativamente simple añadir un HUD con toda esta información  con  un HUD conectado por ODB2

Resumidamente los sistemas ADAS  de ayuda  a  la conducción  mas usuales son las siguientes:

  • FCWS   del ingles  Forward Colission Warning Sytem (advertencia de colisión delantera) ayuda al conductor a mantenerse a una distancia segura del vehículo delantero y alerta a los conductores de una colisión inminente con advertencias visuales y audibles.Este sistema permite al dispositivo detectar cuando no se mantiene una distancia segura entre su vehículo y el vehículo delante de usted. El dispositivo determinará la velocidad de su vehículo calculando una distancia estimada de siguiente segura basada en su velocidad.Normalmente para que esta  función pueda estar habilitada se  debe estar  viajando a más de 48KM/H ( a una velocidad de menos de 32 KM/H, se suele  desactivar la función). Precisamente por esta limitacion el FCWS no puede detectar los vehículos que están  alejados más de 40m  o más cerca de 5m.

fcw.png

  • LDWS  del inglés Lane Departure Warning  System  ( SISTEMA DE  ADVERTENCIA DE SALIDA DE CARRIL) monitorea las marcas del carril y avisa al conductor con advertencias visuales y audibles cuando ocurre una salida involuntaria del carril sin la notificación de la señal de giro.Es un mecanismo diseñado para advertir al conductor cuando el vehículo empieza a moverse fuera de su carril (salvo que una señal de la vuelta en esa dirección) en las autopistas y carreteras de la zona. Este sistema está diseñado para minimizar los accidentes por abordar las principales causas de colisiones: error del conductor , distracción y somnolencia.

ldw

  • HMW( VIGILANCIA Y ADVERTENCIA DEL AVANCE DE PISTA)- Mide la distancia al vehículo que está por delante (“headway”) en segundos. Ayuda al conductor a mantener una distancia segura de conducción. Alerta al conductor al entrar en una zona predefinida de “avance peligroso”

.hmw.png

  • FVSA (ALARMA DE INICIO DEL VEHÍCULO DELANTERO ) Notifica al conductor si el vehículo delantero comienza a avanzar en el estado parado completo y el coche del conductor no se mueve en 2 segundos.

fvsa

Casi todas estas ayudas ADAS  están implementadas  en  numerosas cámaras  disponibles en el mercado como vismo en este post destacando por voz propia  el modelo Dash de Garmin

Respecto al ultimo punto de cámaras traseras  , hay muchos kits para  añadir una cámara  trasera a  nuestro vehículos usando una conexión analógica de video compuesto , lo cual se traduce en  que la mayoría de ellas requieren hacer modificaciones al coche  ,por  ejemplo para ubicar la cámara en el porta-matriculas  , o fijar la pantalla especifica   de modo que no siempre en sencilla su instalación .Además las cámaras traseras comentadas requieren una  fuente de alimentación externa alimentándose con los  cables de las luces de atrás de su coche para que automáticamente se enciendan cuando el coche está en marcha lo cual tampoco le  gusta a muchas personas .

Dado que el mercado no ofrece por  el momento soluciones mas avanzadas una idea es usar la Raspberry Pi pues es la plataforma perfecta  porque básicamente es un mini ordenador con un montón de entradas y salidas.

Al conectar una cámara a la Pi, se puede utilizar prácticamente cualquier webcam USB genérica, o  por supuesto  mejor puede usar una  Cámara Pi conectada al conector DSI pues estas ofrecen una mayor calidad , versatilidad y  no  requiere una fuente de alimentación separada (pero asegúrese de tener un montón de cable para ir a la parte posterior del coche)

Solución con Raspberry Pi

Gracias a una Raspberry Pi  por medio del procesamiento de imágenes en efecto  podemos  hacer más inteligente nuestro vehículo y añadir  nuevas funcionalidades

Para esta idea  podemos  usar  los siguientes componentes:

 

Conexión del módulo de cámara

El modulo de cámara de Pi  tiene un mayor rendimiento que una cámara USB  por lo que lo ideal es usar una cámara del tipo compatibles con Raspberry Pi  (se puede comprar por unos 15€ en Amazon) 

No es  problema  la distancia pues con un cable plano  de 200 cm suele ser suficiente para llevar la cámara  hasta la  posición de conducción (puede comprarlo   aqui en Amazon por unos 7,29€ )

Se puede pues llevar el cable plano al l frente del coche y luego conectado a una pantalla de táctil de 7″ de modo que  la Pi y la pantalla táctil pueden ser alimentados por el adaptador USB en el coche.

Estos  son los pasos para instalar la cámara especifica para su uso , con la Raspberry Pi 

    • Localice el puerto de la cámara y conecte la cámara:Connect the camera
    • Poner en marcha la Raspberry Pi 
    • Abra la Herramienta de configuración de frambuesa Pi desde el menú principal:Raspberry Pi Configuration Tool
    • Asegúrese de que está activado el software de la cámara:Camera software enabled
    • Si no está activado, habilítelo y reinicie su Pi para comenzar. Asimismo si va utilizar una pantalla táctil también necesitara activar I2C  y SPI

Es decir resumidamente;  con la Raspberry Pi apagada, debe conectar el módulo de la cámara al puerto de la cámara de la Raspberry Pi,ahora encienda el Pi  y asegúrese de que se activa el software.

Conexión de un pantalla táctil(opcional)

Existen pantallas TFT para Raspberry Pi con  resolución de 320×240 (16-bits) que además son táctiles con una pantalla resistiva. Se entregan montadas y suelen ser  compatible con los modelos Raspberry Pi Model A+, B+ y Pi 2  disponiendo  además de de un conector de 40 pines para los GPIO.

La pantalla y el digitalizador   utilizan los pines I2C (SDA y SCL), SPI (SCK, MOSI, MISO, CE0) y los pines GPIO #24 y #25. Todos los demás pines GPIO no se utilizan así que podrá conectar más cosas como sensores, LEDs etc. Algunos modelos disponen deposiciones para pulsadores miniatura (no incluidos) por si quiere hacer algún otro tipo de interfaz de usuario.

Puede utilizarla utilizar la librería PyGame u otra librería SDL para dibujar directamente en el frame buffer y hacer interfaces propios.

Tenga en cuenta que para que funcione debe tener activado el I2C en tu Pi o se quedará en blanco. Si utiliza la imagen de Adafruit funcionará sin problema, sino puedes ver su tutorial para ver cómo hacerla funcionar.

La conexión de este tipo de pantallas suele ser por el  propio conector de 25 pines  y por hdmi con un adaptador

Respecto al sw, estos son los pasos  que puede  seguir;

!Ojo el conector plano de la pantalla pues es MUY frágil y debe manejarse con cuidado.!

Montaje final

Una vez montada  la pantalla y la cámara , encender el coche, la Pi y la pantalla . Para ver la camara   de la Pi, abra el terminal y ejecute simplemente  el  siguiente  script:

raspivid -t 0

o

raspivid -t 0 --mode 7

Después de entrar esto ,   la imagen captada por la cámara debería aparecer  en pantalla  completa , pero  !ojo !  no lo veremos  si estamos conectado via VNC!, es decir ,solo si estamos conectados a la propia  Raspberry Pi .

Lo bueno de a Raspberry Pi  es que se puede mejorar  esta forma básica , y tal vez incluso establecer un sistema de alerta si un objeto esta   demasiado cerca , así que, ! vamos a trabajar en ese lado!

 

DETECCIÓN DE OBJETOS

Cuando se trata de aplicaciones de  cámaras de seguridad comerciales, generalmente hay al menos dos versiones  .La primera utiliza una superposición de una imagen estática con gamas de color para que visualmente puede determinarse cuánto de  cerca está un objeto. El segundo método utilizara una cámara junto con sw  que puede detectar un objeto qué tan cerca esta al coche y luego avisa cuando algo está demasiado cerca
Veamos en este post en primer lugar le método de overlay, el cual por cierto es el mas usado en los implementaciones de cámaras traseras de coches actuales.

 

 

Instalación sencilla de un display avanzado en un coche


Los HUD (Head-Up Display) básicamente son  displays orientados a la seguridad,  pues la idea fundamental de este tipo de dispositivos es que el conductor mantenga su mirada en dirección al frente  sin perder de vista la carretera mostrando a  la vez superpuesta esta información relevante  por tanto sin obligar al conductor a girar la cabeza cada vez que quiera comprobar algo. Actualmente  gracias a la fusión de estos displays  HUD  de nueva tecnología  con  la información proporcionada por el puerto de diagnóstico o OBDII de su vehículo , podemos proyectar la información útil de conducción  en su parabrisas  de modo que  no tenga que apartar la vista de la carretera para dirigirla  al cuadro de instrumentos por ejemplo  para saber a la velocidad  a la que se circula  o  las revoluciones del motor .

Una novedad ademas de los nuevos HUDs es que gracias a la evolución de la información  del OBDII   se  puede suministrar incluso mas información que el propio vehículo podía ofrecer por defecto  como por ejemplo  temperatura del agua ,varias  alarmas (voltaje,posición de la válvula de mariposa, ángulo de avance de encendido, tiempo de 100 km aceleración), consumo de combustible, kilometraje, aviso de   poco combustible, detalle de fallo del motor, indicación de marcha incorrecta, optimización de consumo, recordatorio de parada para el conductor, etc.

En esta ocasión vamos  a ver el modelo VGEBY Universal HUD  que  cuenta con una pantalla gigante de 5,5″  y se conecta al ODB 2  mediante  un cable especial que en un extremo cuenta con mini-usb ( para conectar al HUD)  y por otro un conector ODBII  para conectar al vehículo

Por cierto ,este cable suele ser muy fino para que pase desapercibido,por lo que  debe tenerse cuidado con el,  pues puede partirse fácilmente si hacemos mucha presión sobre el para disimularlo.Si llegase a romper el cable, no se alarme pues el cable es standard para este tipo de diplay: es decir conexión micro-usb por un lado y un conector ODB2 por el otro.

 

Aunque  podamos ver este  HUD    bajo diferentes marcas   y acabados , en realidad casi todos  se basan en el mismo modelo , con ligeras variaciones lo cual se traduce en diferentes calidades  o precios, pero todos pueden adaptarse automáticamente al tipo de vehículo que está en línea con OBDII o EUOBD (Sistema de diagnóstico a bordo).

La información ofrecida por  el   modelo VGEBY Universal HUD    es mucho mas rica que la mostrada por otros modelos anteriores  pues es concreto es la siguiente:

  • Velocidad en km/h
  • Revoluciones por minuto del motor
  • Consumo de combustible
  • Tiempo en marcha
  • Temperatura del radiador
  • Indicador del numero de  marcha engranada
  • Avisos de fallos del motor
  • Tensión de la batería
  • Presiones del sistema de admisión
  • Recordatorio de descanso
  • Tiempo de aceleración en 100 km
  • Alarmas , etc

El modo  de visualización puede ser seleccionado  por el propio conductor  , el cual puede elegir el modo de visualización normal, alta velocidad modo de visualización y modo de visualización automática.

Mediante la función de visualización se pueden mostrar : Velocidad de conducción, velocidad del motor(RPM)  , temperatura del agua, voltaje de la batería, consumo de combustible, conmutación libre entre kilómetro y milla, conmutación libre entre C y F.

En cuanto las alarmas  cuenta con las siguientes:  Alarma de sobre velocidad, alarma de alta temperatura, alarma de baja tensión, alarma de falla del motor y posibilidad de  eliminación del código de fallo, etc

Una peculiaridad  necesaria   es tenerlo configurado por defecto en   Km y no en  millas, función que viene configurada  normalmente en Europa (como otros parámetros)

Es interesante destacar que estos modelos incluyen un  sistema para  apagarse automáticamente   y por supuesto  para iniciarse   cuando el vehículo se ha arrancado (es  decir implementa la función  de   AUTO ENCENDIDO / APAGADO) , apagándose pues  cuando  el vehículo se  haya detenido  para proteger la batería del vehículo.

Por otra parte, aunque debería manipularse  lo mínimo posible , se pueden cambiar  las funciones  con una sola  mano para controlar el HUD, aunque no hace falta decir que debería hacerse con el vehículo parado.

Asimismo,  buscando la máxima comodidad  es muy útil el  modo de ajuste automático  del brillo de la pantalla  , aunque también en casi  todos los HUID  , este ajuste  se puede realizar  manualmente.

En cuanto   a la información que puede proporcionar  modelo VGEBY Universal HUD  es la siguiente:

 

Es muy importe destacar  que este tipo de dispositivos están  disponibles para coches con una interfaz OBD2 / EUOBD que en la mayoría de vehículos  de 8 a 10 años esta presente aunque no son compatible con Blade Electric Vehicle pero si en muchos modelos hibridos  ,y como vamos a  ver ,  son  muy fáciles de instalar , tanto es así  que podríamos decir que es “plug and play”.

Veamos en este breve video el  modelo VGEBY Universal HUD   en funcionamiento;

ATENCION:  Por favor, revise las reglas y regulaciones locales para el uso de este  tipo de dispositivos en  carretera   verificando que las regulaciones locales  autorizan  este tipo de instalaciones y es conforme  que  la posición del indicador esté dentro de distancias fijas del tablero para algunas ubicaciones.

Instalación del HUD

  • Antes de nada casi todos los vehículos modernos cuentan  con una interfaz OBD2 / EUOBD.  Para conocer si su  vehículo  lo es  puede abrir el capó del motor y debería encontrar una pegatina, si la etiqueta tiene la letra “OBDII CERTIFIED”, significa que puede instalar el HUD.   No obstante , aunque el vehículo no cuente con esta pegatina, lo normal es que si es un vehículo del 2010  en adelante , esta característica la soporte. 
ond2.PNG
  • Deberíamos ahora  comprobar  que disponemos del cable usb-odb2, el display  , el adhesivo para fijarlo  y la lamina translucida( en caso de que vayamos a ponerla)

  • Para verificar el conector de diagnóstico del vehículo debajo del volante, puede encontrar la  toma de 16 pins del vehículo.
figura2 IMG_20180120_162125[1].jpg
Una vez localizado  conecte el extremo del cable  suministrado en el conector del vehículos
IMG_20180120_162216[1].jpg
  • Haga pasar el cable por el borde de la puerta
IMG_20180120_162249[1].jpg
  • Ahora bordee  el parabrisas  con  el cable hasta llegar a su la posición  donde coloque  el  aparato
IMG_20180120_162352[1].jpg
  • Ahora ya conducido el cable  debe poner el circular antideslizante en posición plana delante sobre el  HUD  .Puede ajustar  ángulo del  HUD de modo qeu la imagen  reflejada en el parabrisas este  nivelada.
IMG_20180120_163331[1].jpg
  •  Pegar OPCIONALMENTE  la película reflectante sobre el parabrisas pues realmente eliminara el doble reflejo del display , aunque personalmente prefiero no pegar nada en el parabrisas pues de este modo no obstaculiza en absoluto la visión a través de este . Si se decide pegarlo , algunos consejos para pegar la película antirreflectante:
    • Puede rociar uniformemente agua sobre el parabrisas.
    • Rasgue la capa protectora de la película y rocíe un poco de agua para ambos lados, luego pégalo en el lugar que quiera.
    • Nivelar el agua debajo de la película con un objeto liso hasta que no haya agua y burbuja dentro.
    • Cuando el agua se evapore, puede limpiar el agua y el polvo alrededor del película.
  •  Para probar el dispositivo , debe encender el host de HUD y debería ver el voltaje de la batería del vehículo, y luego entrará  en el estado de investigación de
    la versión del ordenador de a bordo del vehículo reconociendo este con un pitido indicando con esto de que esta listo. 
  • Después de estos simples pasos podemos decir que HUD está instalado exitosamente.   

 

Ajustes   

Este display tiene una rueda en unlateral qeu cuenta con tres posiciones: izquierda , derecha y central

Una vez encendido puedem pulsar el botón  de control a  la izquierdo  para alternar la visualización de : 

  • reloj,
  • temperatura del agua,
  • presión de admisión
  • RPM del motor
  • angulo de aceleración
  • tiempo de acelaracion  para 100sg

Una pulsación, por cierto larga de 5 segundos, hacia el lado derecho conmuta entre sonidos activos  o no del HUD

Una vez encendido ,también puede pulsar el botón  de control a  la derecha  para alternar la visualización de : 

  • consumo de combustible
  • posición del throttle

Si pulsa el botón central  con una pulsación corta entra en el menú de configuración de un menú de 0 a 23 opciones  que vamos a  ver  a continuación (  una pulsación corta incrementa el menú)

Estas son las diferentes opciones del menú con sus valores por defecto , su función y el rango de valores posibles::

 

 

 

IMPORTANTE ; Observe especialmente   el menú nº 23 (Factory Reset)   , pues si se ajusta a la izquierda al valor 1, y luego con una pulsación larga  en el botón central por 5 segundos para salvar y salir  , llevara al modelo VGEBY Universal HUD a la  configuración de fábrica.

 

Borrar   Códigos de fallo

Es sin duda   una gran  utilidad  del modelo VGEBY Universal HUD  muy interesante y que incluso , si es  fortuita , nos puede ahorrar bastante  dinero en desplazamiento   y  taller   que sin duda amortizaran  la compara de este dispositivo .

El modo de borrar los codigos de  error de la centralita  de  nuestro vehículo es muy sencillo en este modelo VGEBY Universal HUD :cuando tenemos conectado el display al coche por el ODB2 , no arrancar al motor   pasando a ON , y esperar que se vaya a OFF el display . Ahora entonces  pulse el botón derecho  por 5 segundos  : el HUD   producirá un sonido   y finalmente el HUD borrara el código de error

 

 

Por cierto , si le interesa el HUD descrito  en este post  (modelo VGEBY Universal HUD)  , puede comprarlo en Amazon por unos 42€  en este enlace

Raspberry Pi como centro de entretenimiento al volante


El proyecto, desarrollado por Michal Szwaj, plantea un sistema para un vehículo  en el que es posible controlar la reproducción multimedia   o acceder a los mapas de Google, aunque de momento no  ofrece funciones como la navegación GPS, pero la versatilidad de la Raspberry Pi   con el soporte Bluetooth ,hace que esa opción no parezca difícil de implementar.

OpenAuto,  es un proyecto que con una Raspberry Pi 3 y una pantalla táctil nos da acceso a unas funciones muy similares a las que ofrece Android Auto, basándose en la  biblioteca  aasdk y librerías Qt siendo el objetivo principal  ejecutar esta aplicación en una placa  de RaspberryPI 3 sin problemas. El proyecto se basa en la instalación de una distribución Linux, Raspbian Stretch, a la que luego se le añaden librerías como las célebres Qt para poder ejecutar las aplicaciones orientadas a ser utilizadas en el coche.

A la Raspberry Pi 3 se le conecta una pantalla táctil (480p, 720p o 1080p)  pues  este es recomendable para la interacción con el sistema. Completar el proceso es relativamente sencillo, y tanto el código fuente como las instrucciones de instalación están disponibles públicamente en GitHub .

Las funcionalidades soportadas  son las siguientes:

  • 480p, 720p y 1080p con 30 o 60 FPS.
  • Aceleración de hardware de RaspberryPI 3 soporte para decodificar la secuencia de vídeo (hasta [email protected]).
  • Reproducción de audio de todos los canales de audio (los medios de comunicación, sistema y discurso).
  • Entrada de audio para comandos de voz.
  • Pantalla táctil y soporte de  botones de entrada.
  • Bluetooth.
  • Lanzamiento automático después de dispositivo hotplug.
  • Detección automática de dispositivos Android conectados.
  • Modo inalámbrico (WiFi) mediante servidor de unidad principal (debe estar habilitado en configuración desarrollador ocultos).
  • Configuración fácil de usar.

 

Electrónica necesaria

Sin duda , aparte de la propia Rasberry Pi  3 , el display  táctil es un componte  fundamental en este proyecto. Con una resolución de 800×480 el modulo oficial de display +sensor se conecta a la Raspberry Pi  3 a través de una placa  adaptadora que se encarga de controlar la alimentación y la señal de vídeo.

Solo se necesitan dos conexiones de la Raspberry Pi 3 : la  alimentación desde el conector GPIO y el cable plano al conector DSI, presentes en todas las Raspberry.

El kit incluye:

  • Pantalla 7″ multitáctil 10 puntos
  • Placa conversara
  • Cable plano DSI
  • 4x tornillos para ajustar la Raspberry a la pantalla
  • 4x cables para conectar la pantalla a la Raspberry

En el siguiente video se puede ver el proceso de  montaje de este kit.

El controlador táctil ofrece 10 puntos de presión, por lo que el usar teclados en pantalla como el integrado en Raspbian lo hacen realmente sencillo.

Este kit convierte pues  una Raspberry en una tableta multitáctil, sistema de información o dispositivo independiente.Es realmente interactivo  pues la ultima version de Raspbian soporta teclado virtual en pantalla, así que no se necesita conectar un teclado y un ratón físicos ni por supuesto una pantalla externa.

Como podemos ver Android Auto se ejecuta en una Raspberry Pi 3 con la pantalla táctil oficial de 7 pulgadas anteriormente citada.  Estos son los componentes esenciales para implementar  este proyecto:

 

 

 

Raspvid

raspivid es la herramienta de línea de comandos para capturar vídeo con el módulo de cámara nativo de Raspberry. Con el modulo de cámara conectado y activado, se puede grabar un vídeo utilizando el siguiente comando:

raspivid -o vid.h264

Recuerde que debe utilizar y para voltear la imagen si es necesario, como con raspistill-hf-vf (esto guardara un archivo de vídeo 5 segundo en el camino dado aquí como (longitud por defecto de tiempo).vid.h264)

Para especificar la longitud del vídeo tomado, pase en la bandera con un número de milisegundos. Por ejemplo:-t raspivid -o video.h264 -t 10000  (Esto graba 10 segundos de video.)

Para una lista completa de las opciones posibles, ejecutar sin argumentos, o este comando a través de y desplácese a través de la pipa:raspividless

raspivid 2>&1 | less

Utilice las teclas de flecha para desplazarse y el tipo de salida.q

Para ver la cámara trasera ejecutar raspvid seguido de los  parámetros  , como por ejemplo:

raspvid  -t 5000

raspvid -t 0

raspvid -t  -vh

raspvid -t 0 -vf ( invierte la imagen)

raspvid -t 0 -hf -vf

 

 Instalar aasdk en Raspberri PI 3

  1. Instalar el software necesario

 sudo apt-get install -y libboost-all-dev libusb-1.0.0-dev libssl-dev cmake libprotobuf-dev protobuf-c-compiler protobuf-compiler

  1. Repositorio de aasdk clon

$ cd

$ git clone -b master https://github.com/f1xpl/aasdk.git

  1. Crear el directorio aasdk_build en el mismo nivel que aasdk dir

$ mkdir aasdk_build

$ cd aasdk_build

  1. Generar archivos de cmake

$ cmake-DCMAKE_BUILD_TYPE = lanzamiento… /AASDK

  1. Construir aasdk

$ make

Instalar el resto de sw en Raspberry PI 3

  1. Instalar el software necesario

$ sudo apt-get install -y libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtmultimedia5-dev libqt5bluetooth5 libqt5bluetooth5-bin qtconnectivity5-dev pulseaudio librtaudio-dev librtaudio5a

  1. Construir ilclient de frambuesa PI 3 firmware

$ cd /opt/vc/src/hello_pi/libs/ilclient

$ make

  1. Repositorio de Open clon

$ cd

$ git clone -b master https://github.com/f1xpl/openauto.git

  1. Crear el directorio openauto_build en el mismo nivel que Open dir

$ mkdir openauto_build

$ cd openauto_build

  1. Generar archivos de cmake

Nota: Si es necesario, ajustar los path  a su localización de directorios aasdk y aasdk_build.

$ cmake -DCMAKE_BUILD_TYPE=Release -DRPI3_BUILD=TRUE -DAASDK_INCLUDE_DIRS=”/home/pi/aasdk/include” -DAASDK_LIBRARIES=”/home/pi/aasdk/lib/libaasdk.so” -DAASDK_PROTO_INCLUDE_DIRS=”/home/pi/aasdk_build” -DAASDK_PROTO_LIBRARIES=”/home/pi/aasdk/lib/libaasdk_proto.so” ../openauto

  1. Construir OpenAuto

$ make

  1. Ejecutar Open

$ /home/pi/openauto/bin/autoapp

Añadir Open a autorun

  1. Archivo abrir autostart

$ sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

  1. Agregar debajo de línea al final del archivo autorun

@/ hogar/pi/Open/bin/autoapp

 

Apagar  Raspbery PI 3 cuando el teléfono se está desconectando

  1. Archivo abierto openauto.rules

$ sudo nano /etc/udev/rules.d/openauto.rules

  1. Añadir a continuación las líneas al final del archivo openauto.rules

SUBSISTEMA == “usb”, acción == “add”, ENV {ID_VENDOR_ID} == “18d 1”, ENV {ID_MODEL_ID} == “2d 00” RUN += “/ bin/sh – c ‘ / sbin/shutdown – c & & echo 0 > /sys/class/backlight/rpi_backlight/bl_power'”

SUBSISTEMA == “usb”, acción == “add”, ENV {ID_VENDOR_ID} == “18d 1”, ENV {ID_MODEL_ID} == “2d 01”, RUN += “/ bin/sh – c ‘ / sbin/shutdown – c & & echo 0 > /sys/class/backlight/rpi_backlight/bl_power'”

SUBSISTEMA == “usb”, acción == “remove”, ENV {ID_VENDOR_ID} == “18d 1”, ENV {ID_MODEL_ID} == “2d 00” RUN += “/ bin/sh – c ‘ / sbin/shutdown: apagado 1 & & echo 1 > /sys/class/backlight/rpi_backlight/bl_power'”

SUBSISTEMA == “usb”, acción == “remove”, ENV {ID_VENDOR_ID} == “18d 1”, ENV {ID_MODEL_ID} == “2d 01”, RUN += “/ bin/sh – c ‘ / sbin/shutdown: apagado 1 & & echo 1 > /sys/class/backlight/rpi_backlight/bl_power'”

Este  script va a hacer las siguientes acciones:

  1. Desactivar el apagado de pantalla y programar de forma  retrasada  por 1 minuto cuando el teléfono se está desconectando
  2. Encender la pantalla y cancelar el apagado cuando el teléfono se está conectando

Puede ajustarse el  retraso de 1 minuto para sus necesidades.

 

Reglas de udev (permisos de USB)

Para utilizar Open con sistema operativo basado en Linux (por ejemplo, Raspbian) con udev, debe crear una regla para permitir la comunicación con los dispositivos USB en modo de lectura/escritura.

La regla más simple parece debajo de uno:

SUBSISTEMA == “usb”, atributos {idVendor} == “*”, atributos {idProduct} == “*”, MODE = “0660”, grupo = “plugdev”

Para agregar esta regla de udev, hacer:

$ cd /etc/udev/rules.d

$ sudo touch openauto.rules

$ sudo nano openauto.rules

Aplique estas reglas, guarde el archivo y reinicie el dispositivo.

Tenga en cuenta que la regla anterior permite  abrir cualquier dispositivo USB en modo de lectura/escritura por cualquier aplicación instalada en el sistema. Considerar como insegura.

Configuración de PulseAudio

Paquetes audio de AndroidAuto se entregan en trozos muy pequeños. Debido a esto podrían necesitarse ajustes de configuración de PulseAudio para evitar problemas con el audio.

Añadir/anulación por debajo de las líneas en /etc/pulse/daemon.conf

resample-method = ffmpeg

En /etc/pulse/default.pa añadir tsched = 0 en la línea de ‘carga-módulo módulo-udev-detect’

load-module module-udev-detect tsched=0

Después de cambios de configuración debe reiniciar la instancia de pulseaudio. Puede hacerlo con  la ejecución del comando  pulseaudio -k .

 

Fuente https://github.com/f1xpl/openauto/wiki/Build-instructions

 

ELECTRÓNICA ADICIONAL

Para facilitar el manejo  de openAuto  y extender su funcionamiento  Everlanders ha conectado 4 pulsadores directos para activar la cámara, variar el brillo o despertar la placa

No deja de ser importante el  apartado de alimentación  pues en la Raspberry Pi 3 es de 5v DC 2amp y en un automóvil es de 12V  requiriéndose  un convertidor   dc-dc  .Obviamente en los tiempos que correen ,es mucho mas eficiente  un convertidor conmutado 12v-5v  que un regulador  7805

También ,por ultimo para detectar la marcha atrás ,es muy  interesante usar un opto-acoplador para aislar a la Raspberry Pi 3 de posibles problemas ele ctricos   en el automovil dado el aislamiento galvánico que nos ofrecen los optoaisladores.

El esquema final de este montaje completamente opcional es el siguiente:

esquema.PNG

Para manejar los pulsadores se requieren   los siguientes tres siguientes scripts escritos por el  Everlands:

LightMonitor.py

Este script en Python sirve  para atenuar la pantalla y cambiar a la cámara de retroceso. Recuerde, que es interesante usar un optoacoplador para detectar la marcha atrás con los la lógica se invierte … 0 = encendido 1 = apagado. Ademas, solo se debe ejecutar uno de estos scripts de “Monitor”, es decir  no puede estar ejecutando RearviewMonitor.py Y LightMonitor.py

CODIGO DE LIGTMONITOR.PY

#!/usr/bin/python

import RPi.GPIO as GPIO
import time
import subprocess, os
import signal
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
RearView_Switch = 14 # pin 18
Brightness_Switch = 15 # pin 16
#Extra_Switch = 1 # pin 3
GPIO.setup(RearView_Switch,GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(Brightness_Switch,GPIO.IN, pull_up_down=GPIO.PUD_UP)

print ” Press Ctrl & C to Quit”

try:

run = 0
bright = 0
while True :
time.sleep(0.25)

# esto restringe la secuencia de comandos para verificar las luces cada 1/4 de segundo. #No tiene sentido revisar 10.000 veces por segundo.

# Si se encienden las luces de marcha atrás, hacer esto:
if GPIO.input(RearView_Switch)==0 and run == 0:
print “Switching Rearview Camera On”
rpistr = “raspivid -t 0 -vf -h 480 -w 800”
p=subprocess.Popen(rpistr,shell=True, preexec_fn=os.setsid)
run = 1

Cuando las luces de marcha atrás se apagan, hacer esto:

if GPIO.input(RearView_Switch)==1 and run == 1:
os.killpg(p.pid, signal.SIGTERM)
print “Killing the reverse camera feed”
run = 0

# Estos dos bloques siguientes monitorean los faros o la luz del marcador y ajustan la #configuración de brillo de la pantalla.

if GPIO.input(Brightness_Switch)==0 and bright == 0:
print “Setting Brightness to 20” # 20 is about 10%
subprocess.call (“/usr/local/bin/backlight.sh 20”, shell=True)
bright = 1

if GPIO.input(Brightness_Switch)==1 and bright == 1:
print “Setting Brightness back to 255” #255 is 100%
subprocess.call (“/usr/local/bin/backlight.sh 255″, shell=True)
bright = 0

except KeyboardInterrupt:
print ” Quit”
GPIO.cleanup()

 

backlight.sh

Este script en cshell sirve par ajustar el nivel de luminosidad de la pantalla oficial qeu hemos conectado a la raspberry. Como es de esperar acepta  un parámetro que es precisamente un entero entre 0 y 255

CODIGO SCRIPT BACKLIGHT

#!/bin/bash

level=$1
#echo “level given is $level”

if [ $# != 1 ]; then
echo “USAGE: $0 brightness_level (0 to 255)”
exit 1
fi

if [[ $level -ge 0 && $level -le 255 ]]; then
#echo “level given is $level”
echo $level > /sys/class/backlight/rpi_backlight/brightness
echo “Screen brightness set to $level.”
exit 0
else
echo “Brightness level $level is out of range! (0 to 255 only)”
exit 1
fi

Para  probar el  script de retro-iluminación   ejecutar el script con el parámetro usando un valor entero menor que 255 ,por ejemplo  ./backlight.sh 128

 

ButtonMonitor.py

#!/usr/bin/python

import RPi.GPIO as GPIO
import time
import subprocess, os
import signal
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
RearView_Switch = 14 # pin 18
Brightness_Switch = 15 # pin 16
#Extra_Switch = 1 # pin 3
GPIO.setup(RearView_Switch,GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(Brightness_Switch,GPIO.IN, pull_up_down=GPIO.PUD_UP)

print ” Press Ctrl & C to Quit”

try:

run = 0
bright = 0
while True :
time.sleep(0.1)

#los siguientes cuatro bloques se utilizan para alternar entre las vistas de la cámara.

if GPIO.input(RearView_Switch)==0 and run == 0:
print ” Started Full Screen”
rpistr = “raspivid -t 0 -vf -h 480 -w 800”
p=subprocess.Popen(rpistr,shell=True, preexec_fn=os.setsid)
run = 1
while GPIO.input(RearView_Switch)==0:
time.sleep(0.1)

if GPIO.input(RearView_Switch)==0 and run == 1:
os.killpg(p.pid, signal.SIGTERM)
print ” Started Full Screen Transparent”
rpistr = “raspivid -t 0 -vf -op 128 -h 480 -w 800”
p=subprocess.Popen(rpistr,shell=True, preexec_fn=os.setsid)
run = 2
while GPIO.input(RearView_Switch)==0:
time.sleep(0.1)

if GPIO.input(RearView_Switch)==0 and run == 2:
os.killpg(p.pid, signal.SIGTERM)
print ” Started PIP Right side”
rpistr = “raspivid -t 0 -vf -p 350,1,480,320”
p=subprocess.Popen(rpistr,shell=True, preexec_fn=os.setsid)
run = 3
while GPIO.input(RearView_Switch)==0:
time.sleep(0.1)

if GPIO.input(RearView_Switch)==0 and run == 3:
print ” Stopped ”
run = 0
os.killpg(p.pid, signal.SIGTERM)
while GPIO.input(RearView_Switch)==0:
time.sleep(0.1)

# Estos tres bloques siguientes alternan entre las tres configuraciones de brillo.

if GPIO.input(Brightness_Switch)==0 and bright == 0:
print “Setting Brightness to 255”
subprocess.call (“/usr/local/bin/backlight.sh 255”, shell=True)
bright = 1
while GPIO.input(Brightness_Switch)==0:
time.sleep(0.1)

if GPIO.input(Brightness_Switch)==0 and bright == 1:
print “Setting Brightness to 128”
subprocess.call (“/usr/local/bin/backlight.sh 128”, shell=True)
bright = 2
while GPIO.input(Brightness_Switch)==0:
time.sleep(0.1)

if GPIO.input(Brightness_Switch)==0 and bright == 2:
print “Setting Brightness to 20”
subprocess.call (“/usr/local/bin/backlight.sh 20”, shell=True)
bright = 0
while GPIO.input(Brightness_Switch)==0:
time.sleep(0.1)

except KeyboardInterrupt:
print ” Quit”
GPIO.cleanup()

 

Respecto a la activación ,para probar la camara  ejecutar  ButtonMonitor.py.  Ahora una vez probado , tenemos que hacer  que se ejecute automáticamente . Para ello tenemos que editar el archivo /home/pi/.config/lxsession/LXDE-pi/autostart

En la ultima linea del script  añadir  /usr/local/bin/ButtonMonitor.py

autostart.PNG

 

IMPORTANTE : Deberemos copiar los tres  scripts  a la ruta /usr/local/bin  y conceder los permisos de ejecución  mediante el comando sudo chmod +x . La fuente original de los  scripts  es :https://gist.github.com/Everlanders

 

En el siguiente vídeo podemos ver todo el proceso de creación de un dispositivo basado en Raspberry PI  para uso exclusivo en un vehículo  usando  todos los componentes mencionados anteriormente.

 

Actualice su vehículo con funcionalidades avanzadas propias de la aviación


Los HUD (Head-Up Display) llevan años en  la ficción con nosotros  ,como por ejemplo en  interior  del casco de Iron Man (2008) los visores de los personajes del anime Bola de Dragón (1984) o la pantalla de Minority Report (2002), pero toda esta ideas  actualmente ya no son ciencia ficción  pues los primeros dispositivos  reales se diseñaron ya hace mas de dos  décadas  para la aviación, mostrando información en pantalla al piloto para que este pudiese girar la cabeza sin perder esos datos de velocidad, altitud o ángulos.

A la aviación  pronto le siguió el sector automovilístico  con  marcas  como Mazda, Citroën o Peugeot  que usan  pantallas traslúcidas de policarbonato y otros materiales sobre ellas, proyectando en estas distinta información, como la velocidad del vehículo, el límite de velocidad de la vía, e incluso breves instrucciones de navegación.

Incluso algunos fabricantes como BMW  quieren llegar mas lejos usando la propia luna del vehículo como HUD proyectando  es esta diferente información  útil  para el conductor, concepto que es el que implementan  la mayoría de las soluciones actuales

 

Por supuesto los motoristas mucho más expuestos que los conductores de otros vehículo también pueden disfrutar de  esta tecnologia  con el  llamado     HUD HMD (Helmet-Mounted Display o monitor instalado en casco)  que ayuda a conducir con mayor seguridad   destacando en este campo la marca Skully

 

Display  HUD avanzado

Como  vemos  los HUD  básicamente son  displays orientados a la seguridad,  pues la idea fundamental de este tipo de dispositivos es que el conductor mantenga su mirada en dirección al frente  sin perder de vista la carretera mostrando a  la vez superpuesta esta información relevante  por tanto sin obligar al conductor a girar la cabeza cada vez que quiera comprobar algo.

Un ejemplo de HUD sencillo son las apps   que reflejan información  a la altura del parabrisas con un simple soporte   tal y como ya hemos hablado en este blog en muchas ocasiones ,pero actualmente  gracias a la fusión de estos displays  HUD  de nueva tecnologia  y la información proporcionada por el puerto de diagnóstico o OBDII de su vehículo , podemos proyectar la información útil de conducción  en su parabrisas  de modo que  no tenga que apartar la vista de la carretera para dirigirla  al cuadro de instrumentos por ejemplo  para saber a la velocidad  a la que se circula  o  las revoluciones del motor .

 

Una novedad ademas de los nuevos HUDs es que gracias a la evolución de la información  del OBDII  pueden suministrar incluso mas información que el propio vehículo podía ofrecer

Como ejemplo , hasta hace poco un HUD conectado al OBDII  podía proporcionar información básica  como :

  •  Velocidad
  •  Las revoluciones del motor
  • Temperatura de agua
  •  Voltaje de la batería
  •  Alarmas  (  de bajo voltaje, alta temperatura, velocidad,etc)
  • etc  ( dependiente de cada modelo)

Actualmente la mayoría de los nuevos modelos pueden ofrecer información mucho mas rica que la proporcionada por modelos sencillos de HUD . Concretaemente  el modelo VGEBY ( uno de los mas vendidos  en l gama media )  puede ofrecer ademas de la información básica anterior , las siguientes alertas , informaciones y sugerencias mas avanzadas  propias de algunos ordenadores de a borde de coches de alta gama como puede ser :

  • El numero de marcha 
  • Alarma de RPM
  • Control de horas en marcha para sugerir al conductor descansar
  • Código de error del motor
  • Alarma de consumo   para mejorar la eficiencia en el consumo correlacionado   la velocidad de rotación del motor con el numero de marcha y la velocidad lineal,etc
  • Alarma de exceso de velocidad

Este modelo   cuenta con  una  pantalla  HUD de  5.5 pulgadas  y  puede mostrar muchos parámetros al mismo el tiempo ,  como  son la velocidad del vehículo, velocidad del motor, temperatura del agua ,varias  alarmas (voltaje,posición de la válvula de mariposa, ángulo de avance de encendido, tiempo de 100 km aceleración), consumo de combustible, kilometraje, aviso de   poco combustible, fallo del motor, etc.

Esta pantalla se conecta al ODB 2  mediante  un cable especial que en un extremo cuenta con mini-usb ( para conectar al HUD)  y por otro un conector ODBII  para conectar al vehículo.Por cierto ,este cable suele ser muy fino para que pase desapercibido,por lo que  debe tenerse cuidado con este,  pues puede partirse fácilmente si hacemos mucha presión sobre el para disimularlo.

Aunque  podamos ver este  HUD    bajo diferentes marcas   y acabados , en realidad casi todos  se basan en el mismo modelo , con ligeras variaciones lo cual se traduce en diferentes calidades  o precios, pero todos pueden adaptarse automáticamente al tipo de vehículo que está en línea con OBDII o EUOBD (Sistema de diagnóstico a bordo).

La información ofrecida por    este  HUD  es mucho mas rica que la mostrada por otros modelos pues es concreto es la siguinte:

  • Velocidad en km/h
  • Revoluciones por minuto del motor
  • Consumo de combustible
  • Tiempo en marcha
  • Temperatura del radiador
  • Indicador del numero de  marcha engranada
  • Avisos de fallos del motor
  • Tensión de la batería
  • Presiones del sistema de admisión
  • Recordatorio de descanso
  • Tiempo de aceleración en 100 km
  • Alarmas , etc

El modo  de visualización puede ser seleccionado  por el propio conductor  , el cual puede elegir el modo de visualización normal, alta velocidad modo de visualización y modo de visualización automática.

Mediante la función de visualización se pueden mostrar : Velocidad de conducción, velocidad del motor(RPM)  , temperatura del agua, voltaje de la batería, consumo de combustible, conmutación libre entre kilómetro y milla, conmutación libre entre C y F.

En cuanto las alarmas  cuenta con las siguientes:  Alarma de sobrevelocidad, alarma de alta temperatura, alarma de baja tensión, alarma de falla del motor y posibilidad de  eliminación del código de fallo, etc

Una peculiaridad  necesaria   es tenerlo configurado por defecto en   Km y no en  millas, función que viene configurada  normalmente en Europa (como otros parámetros  similares)

Es interesante destacar que estos modelos deben incluir  algún mecanismo para  apagarse automáticamente   y por supuesto  iniciarse   cuando el vehículo se ha arrancado (es  decir AUTO ENCENDIDO / APAGADO) , apagándose pues  cuando  el vehículo se  haya detenido  para proteger la batería del vehículo.

Por otra parte, aunque debería manipularse  lo mínimo posible , se pueden cambiar  las funciones  con una sola  mano para controlar el HUD, aunque no hace falta decir que debería hacerse con el vehículo parado.

Asimismo,  buscando la máxima comodidad  es muy útil el  modo de ajuste automático  del brillo de la pantalla  , aunque también en casi  todos los HUID  , este ajuste  se puede ajustar manualmente.

 

Es muy importe destacar  que este tipo de dispositivos están  disponibles para coches con una interfaz OBD2 / EUOBD .(No son compatible con Blade Electric Vehicle)  ,y como vamos a  ver ,  son  muy fáciles de instalar , tanto es asi  que podríamos decir que es “plug and play”.

 

Instalación del HUD

  • Antes de nada casi todos los vehículos modernos cuentan  con una interfaz OBD2 / EUOBD.  Para conocer si su  vehículo  lo es  puede abrir el capó del motor y debería encontrar una pegatina, si la etiqueta tiene la letra “OBDII CERTIFIED”, significa que puede instalar el HUD.   No obstante , aunque el vehículo no cuente con esta pegatina, lo normal es que si es un vehículo del 2010  en adelante , esta característica la soporte. 
ond2.PNG
  • Para verificar el conector de diagnóstico del vehículo debajo del volante, puede encontrar toma de 16 pins del vehículo.
figura2 IMG_20180120_162125[1].jpg
Una vez localizado  conecte el extremo del cable  suministrado en el conector del vehiculos
IMG_20180120_162216[1].jpg
  • Haga pasar el cable por el borde de la puerta
IMG_20180120_162249[1].jpg
  • Ahora bordee  el parabrisas  con  el cable hasta llegar a su la posición  donde coloque  el  aparato
IMG_20180120_162352[1].jpg
  • Ahora ya conducido el cable  debe poner el circular antideslizante en posición plana delante sobre el  HUD  .Puede ajustar  ángulo del  HUD de modo qeu la imagen  reflejada en el parabrisas este  nivelada.
IMG_20180120_163331[1].jpg
  •  Pegar OPCIONALMENTE  la película reflectante sobre el parabrisas . Algunos consejos para pegar la película antirreflectante:
         – Puede rociar uniformemente agua sobre el parabrisas.
          -Rasgue la capa protectora de la película y rocíe un poco de agua para ambos lados, luego pégalo en el lugar que quiera.
          -Nivelar el agua debajo de la película con un objeto liso hasta que no haya agua
    y burbuja dentro.
         -Cuando el agua se evapore, puede limpiar el agua y el polvo alrededor del
    película.
IMG_20180120_165205[1].jpg
  •  Para probar el dispositivo , debe encender el host de HUD y debería ver el
    voltaje de la batería del vehículo, y luego entrará  en el estado de investigación de
    la versión del ordenador de a bordo del vehículo reconociendo este con un pitido indicando con esto de que esta listo. 
  • Después de estos simples pasos podemos decir que HUD está instalado exitosamente.                                                                                                                                      

 

Por favor, revise las reglas y regulaciones locales para el uso de este  tipo de dispositivos en  carretera   verificando que las regulaciones locales  autorizan  este tipo de instalaciones y es conforme  que  la posición del indicador esté dentro de distancias fijas del tablero para algunas ubicaciones.

Cámara trasera con Raspberry PI para coche basada en Android


En efecto  simplemente podemos  usar una frambuesa Pi como retrovisor o cámara trasera  en conjunción con su smartphone o tablet gracias a la aplicación  RearPi.

Esta app disponible en Google Play  gratuita  y sin anuncios se conecta a su Raspberry  Pi a través de SSH y activa bien  una cámara usb  externa  o bien    la  cámara nativa para Raspberry Pi con interfaz CSI  un enlace de mayor ancho de banda que transporta los datos de píxeles de la cámara al procesador.  .

Disponiendo de la Rasberry con una cámara,   basta  con conectarse  a esta via ssh (nombre de IP-Adress/Login y contraseña), iniciar la cámara en el arranque de la aplicación o con el botón “Abrir” y  pulsar  el  modo de pantalla completa  para disponer de la visión trasera desde la app de un modo  muy nítido  . Al continuar el trayecto si ya no se requiere  basta cerrar la cámara con el botón “EXIT” para disponer nuestro smartphone  para reproducir nuestra lista de música favorita o que nos guié a través de alguna app  de navegación

 

Imagen

Razones para usar una Raspberry Pi como cámara trasera

RearPi es una sencilla aplicación para Android disponible gratuitamente   SIN PUBLICIDAD en en Google Play  que nos va a permitir  visualizar y grabar señales de vídeo transmitidas por una Raspberry Pi o similar   a través de WiFi , por lo que es utilizable para casi todos los coches para transmitir señales  de vídeo procedentes de una cámara frontal  o  de una cámara trasera hacia un terminal Android.

Puede que piense que existen en el mercado soluciones especificas de cámaras traseras para coche  a un precio  similar  a una Raspberry Pi   sobre todo si pensamos en que necesitamos adquirir el hardware especifico que vamos a describir, lo cual  ciertamente podría ser parcialmente cierto , pero  esta afirmación se desmorona si  podemos usar elementos que ya tengamos   pero  sobre todo  , si deseamos  usar  nuestro smartphone o incluso un  terminal obsoleto  que tengamos  para visualizar la señal , lo cual  es un punto a su favor de  esta solución  si lo comparamos con las pequeñísimas o antiestéticas  pantallas de visualización  que  ofrecen los kits de cámaras traseras  (piensese que  solemos llevar  siempre  un smartphone y ademas puede usarse para otras usos)

Incluso en otros vehículos (por ejemplo  para las caravanas)  pueden  usarse para ofrecer la visión delantera o trasera por  múltiples pantallas de  forma inalámbrica

Algunas características de esta aplicación:
  • Grabación cámara  (.. 15 min 30 min 45 min)
  • Bucle de grabación (.. 15 min 30 min 45 min)
  • Opción para establecer la calidad de grabación
  • Reproductor multimedia integrado para ver grabaciones
  • Modo de pantalla completa  y sin publicidad
  •  Documentación Integrada

En realidad  como podemos intuir , esta  app  se conecta a su Raspberry Pi ( o  cualquier placa basada en Linux  )  por ssh   mediante   IP-Dirección , login y contraseña mediante WIFI dentro de la misma red , y , una vez conectada se puede  iniciar la cámara en la   aplicación o con el botón “OPEN” ,pudiéndose   cerrar la cámara con el botón “SALIR”

Para utilizar su Frambuesa Pi con RearPi como cámara y esta aplicación  rearPi    tendremos   que seguir unos pocos sencillos   pasos en la Raspberry  PI, pero antes veamos  el hardware necesario

 

Hardware necesario

¿Qué necesita para obtener una señal de video?

  • Una Raspberry Pi o un dispositivo que ejecute una distribución de Linux con un sistema operativo preinstalado y una trabajando la conexión SSH.
  • Un dongle WiFi como el “Edimax EW-7811”
  • Una cámara USB o cámara web como Logitech C270
  • Un cable de carga micro USB
  • Un cargador de coche como el “Anker” PowerDrive2 ” Entrada: DC 12 / 24V Salida: 5V / 4.8A 2.4 A por puerto.Por favor, asegúrese de que su Raspberry  se pone suficiente potencia y el voltaje correcto.La salida de su cargador de coche debería tener 5V y la capacidad actual recomendada para su modelo está escrito en la lista siguiente:

raspberrrypower.PNG

Instalación de mjpg streamer

Para que su Raspberry esté lista para transmitir video via tcp/ip a traves de una conexión wifi, debe seguir estos pasos:

1. Abra un terminal por ssh
2. Instale mread streamer con estos comandos (comience con el primero):
 sudo apt-get install libv4l-dev
 sudo apt-get install libjpeg8-dev
 sudo apt-get install subversion
 sudo apt-get install imagemagick
 svn co https://svn.code.sf.net/p/mjpg-streamer/code/
 cd / home / pi / code / mjpg-streamer /
 make USE_LIBV4L2 = true clean all
 sudo make DESTDIR = / usr install
3. !Listo!!

Configurar una dirección IP estática y conexión WiFi

Para asegurarse de que su Raspberry Pi siempre tenga la misma dirección IP, establezca IP estática (para que no tenga problemas al  iniciar la app)

Por ello verifque su interfaz WiFi  con  el comando :ifconfig (buscar la ip asociada a Interfaz WiFi) y una vez seap el  nombre de interfaz WiFi asi  , edite las interfaces:

  • sudo nano / etc / network / interfaces
  • Desplazarse hacia abajo a la #WLAN  sección (si no está allí crear uno al final del archivo)
  • Configure su interfaz a IP estática
  • Configure su Raspberry Pi  a una  dirección  fija ,por ejemplo “192.168.43.125” o lo que quiera
  • Escriba el nombre de la zona wifi y contraseña entre comillas  “
  • Salvar el fichero y reiniciar la Raspberry

RearPi

Para empezar a usar  su Raspeberrry Pi como cámara IP trasera, una vez seguido el proceso anterior de personalización de la  Pi , es importante que  nuestro smartphone  y la  Raspberry estén en la misma red , para lo cual podemos  automatizar el proceso con la App Automate , tal y como vimos en este post 

Muy  resumidamente  la red wifi , se consigue con la función de “hot spot ”  de nuestro teléfono inteligente  la cual permite conectar diferentes dispositivos conectados a nuestra propia red wifi generada desde el  propio terminal   .En caso de Android   vaya a “Configuración –>Más –>Anclaje y punto de acceso portátil” o en versiones de Android superiores a   a la 7 vaya   a  Ajustes (la tuerca ) , busque la opción de  Más y vaya  a  Anclaje de red y zona Wi-Fi  y pulse  Zona Wifi portátil  y áctivelo ( interruptor a la derecha).Una  vez creada la zona wifi podemos  automatizar el proceso con la App Automate buscando   el punto de acceso en el automóvil ( Hotspot ON/OF CAR ) y descargando el flujo

Ahora con  ambos  equipos en red ,conecte la Raspberry Pi con su cargador e Instale la app RearPi desde Google Play 

Una vez ejecute la app, abra la “configuración” y configure la “Dirección IP”, el “Nombre de inicio de sesión” y la contraseña (std pw = raspberry) y podemos empezar con los ajustes de  la pantalla de inicio ajustable:

  •  Establezca los segundos por cuánto tiempo pantalla de inicio se queda (en la configuración)
  •  Establecer “0” para ninguna pantalla de inicio
  •  Activar la cámara cada inicio

Imagen Imagen

Una vez  realizados los ajustes , pulsaremos  el  botón ABRIR , el cual  se conectará a la Raspberry Pi y activara la cámara  actualizando la señal de vídeo

Si queremos abandonar  esta utilidad  , pulsaremos  el  Botón EXIT, el cual se conectara a la Raspberry Pi y desactivara la cámara, cerrando  aplicación

Un modo muy interesante es el Modo de pantalla completa, qu e opera del siguiente modo:

  •  Toque una vez en el vídeo para obtener modo de pantalla completa
  •  Toque  nuevamente para salir de pantalla completa modo

Imagen

Un truco muy interesante es el Modo de pantalla completa al inicio, que conseguiremos si  establecemos la marca de verificación para ir directamente en el modo de pantalla completa (configuración)  cuando iniciemos la aplicación

Por cierto también es posible  grabar video  y visionarlo  desde la propia  aplicación

 

Imagen

 

Resumidamente estos son los posos a seguir para crear una camara trasera  :

  • Establecer un hot spot  para conectar la Pi y su teléfono / tableta.
  • Para transmitir vídeo tiene que instalar streamer MJPG  en Raspberry Pi:.
  • Ejecute   sudo ◦ apt-get install build-essential libjpeg-dev ImageMagick subversión libv4l-dev checkinstall
  • Ejecute  svn co svn: //svn.code.sf.net/p/mjpg-streamer/code/ MJPG-streamer
  • Ejecute cd MJPG-streamer / mjpg-streamer
  • Ejecute  VERSION = $ (sed -n ‘/SOURCE_VERSION/s/^.*”\(.*\)”.*$/\1/gp’ REVISIÓN ◦ = $ (CN svnversion | sed “s /.*: //”)
  • Ejecute sudo checkinstall –pkgname = MJPG-streamer –pkgversion = “$ + $ VERSIÓN DE REVISIÓN ~ checkinstall” –default
  • Hacer USE_LIBV4L2 = true ← opcional
  • De a suu Raspberry Pi una dirección IP estática (pasos detallados en el manual de PDF).
  •  Conectar con la App a su a Pi (IP / Conexión / PW)

 

Con  esta solución  no, necesita alguna fuente de radiación lumínica o infrarroja pues  en condiciones de muy baja luminosidad trabaja bien especialmente si usa la camra nativa.

Por cierto para probar si esta funcionando el stream de video ,tenemos  el comando raspistill que   sirve para hacer fotografías. Si busca en internet hay proyectos para hacer de forma automatizada varias tomas y hacer un timelapse  de modo  qeu la ventaja de esta cámara es que la podrá usar como cámara de vigilancia con uno leds infrarojos para iluminar la zona

En el siguiente vídeo podemos  ver la cámara en acción:

 

Documentación: https://alikamouche.files.wordpress.com … _v1-33.pdf

Sencilla cámara trasera basada en Android


Las cámaras de atrás para  vehículos son sin duda una pieza fundamental en materia de seguridad , pues además  de ser muy  útiles para aparcar  se han demostrado  que son muy necesarias para reducir accidentes mientras transmiten una  imagen mas real de la parte atrás del vehículo  sin ángulos muertos  hacia el conductor .

Tal es su utilidad  que desde 2014 se requieren en todos los coches nuevos en los Estados Unidos, aunque  en Europa y Sudamérica aun todavía no es obligatorio, aunque muchos fabricantes incluso en gamas económicas lo incluyen  de serie .

Su su coche no dispone de cámara trasera , se puede hacer un sistema de relativamente bajo costo del mercado con muy poca inversión.

Aunque existen muchísimas  soluciones vamos  a ver tres bastante económicas:

Usar un  smartphone como cámara

En efecto, dado la potencia  y versatilidad de los smartphones actuales , realmente pueden usarse perfectamente estos  como cámaras IP portátiles , eso si ,  siempre que el smartphone que hace cámara y el smartphone que hace de visor  estén en la misma red, para lo cual puede ser muy interesante automatizar el proceso  como vimos en este post

Vamos a ver algunas aplicaciones para  tal cometido:

FreeRear ViewCam

Es una app que contiene publicidad donde el teléfono inteligente actual se utiliza como un monitor cerca del conductor y su “viejo terminal “, sin uso encuentra su lugar “atrás” y utiliza la funcionalidad de la cámara. A través de la aplicación, los dos teléfonos inteligentes están acoplados, la cámara de la “vieja” y el monitor de los “nuevos” teléfonos – que es la cámara trasera.
Como aspecto negativo la cámara de marcha y la función de grabación contiene publicidad  (hay que pagar  una pequeña cuota para anularlo en la versión avanzada).
Una versión Pro con características especiales está previsto para el futuro.

Es importante destacar que  la transmisión del flujo de vídeo consume  batería  fuertemente, en particular la de los teléfonos con cámara. Si desea transmitir un tiempo más largo conecte el teléfono a una fuente de alimentación y / o Apágala después de su uso.

Advertir a los usuarios de termimales SAMSUNG que el desarrollador  desaconseja el uso de dispositivos de Samsung con FreeRearviewCam. Debido a que una aplicación individual de directrices Android cualquier reconexión entre el transmisor y el receptor móvil requiere una nueva validación en el teléfono transmisor., lo cual o significa que el usuario durante cada nuevo uso de la aplicación en el coche debe  dar permiso para enviar :

Esta app utiliza FFmpeg para el procesamiento de vídeo. Se llama a un FFmpeg binario precompilado como proceso externo. Puede encontrar el código fuente utilizado para compilar el FFmpeg través https://www.freerearviewcam.com/ffmpeg

Los pasos para usar esta app son bien sencillos:

  • Descargar e instalar la app  en los dos terminales  desde  Google Play

Captura de pantalla

  • Ambos  terminales deben estar conectados por wifi a la misma red.
  • Pulsar Back Camara  en el terminal que va a hacer de cámara.
  • Pulsar Front Monitor en el terminal que va a hacer de visor :en unos segundos deberíamos ver en el terminal la imagen captada por la cámara.

IP Webcam

Esta app es muy similar la anterior  debiéndose usar  la misma app para ambas funciones : camera o visor.

Tan solo hay una diferencia con la pp anterior  y es el hecho de generar un token desde la cámara , que deberá ser introducida en el visor.

Captura de pantallaCaptura de pantallaCaptura de pantallaCaptura de pantallaCaptura de pantalla

Esta app en realidad no es para coche  pues utiliza el teléfono Android como cámara web, convirtiendo  un teléfono inteligente en  una cámaras de seguridad para el hogar, es decir una cámara de red  que  permite  ver la cámara en cualquier lugar , pero en realidad  puede servir para monitorizar también la vista trasera del coche
Lo que esta claro es que esta app transforma un  antiguos teléfono inteligente en una cámara ip , que puede usarse como  sistema de seguridad para el hogar, vigilando y protegiendo tu casa, cámara para mascotas, monitor de bebé,o cámara de coche

Este es el link en Google Play https://play.google.com/store/apps/details?id=nfo.webcam

Por cierto una app “profesional” similar a las dos anteriores,  y que puede  usarse no solo como cámara de vigilancia sino cámara trasera para coche, es la famosa aplicación de cámara de vigilancia wifi de Alfred Labs (https://play.google.com/store/apps/details?id=com.ivuu)

Otra solución : una cámara IP

Hemos hablado de cámaras wifi con terminales android , pero también existen camaras IP especificas para coche  y que nos van a permitir    visionar en nuestro terminal android la imagen captada por estas de un modo mas funcional y útil que una pantalla especifica.

La cámara opera  a  2.3-2.4ghz, Velocidad de fotogramas de 30 fps; rango de transmisión de 20 pies a 60 pies (hasta 100 pies bajo ninguna otra condición de obstáculo).

Esta camara  IP  es impermeable, a prueba de polvo y a prueba de choques; iluminación mínima del soporte menos de 0.5 señal digital del lux,de modo que usted podría conseguir una imagen clara incluso en la noche.

Es muy fácil de instalar y operar:

  1. Conecte el transmisor wifi y la cámara trasera a la luz de reserva o alimentación de 9V-30V,
  2. Descargue la aplicación “WIFIAV” en su teléfono (dispositivo inteligente) desde Google Play Store
  3. Instale la aplicación gratuita WiFiAV .
  4. Puede utilizar  el nombre predeterminado del dispositivo (WiFiAV) y la contraseña predeterminada (12345678), pero se puede personalizar con un nuevo nombre y contraseña de la manera que se desee.Hay un botón en el transmisor que reiniciará el transmisor a este valor predeterminado en caso de que cambie las cosas y olvide su nueva contraseña
  5. Obtenga una señal de imagen

Esta cámara   tampoco sirve para Samsung J7 S7 S8 pero soporta iPhone, iPad  auqnue no es compatible con la versión del teléfono que está por debajo de 4.0.

La pantalla de la aplicación llena toda la pantalla, pero puedes pellizcarla y arrastrarla para ajustarla a tu gusto. aproximadamente 3/4 de la pantalla para que sea realmente clara y nítida y  como novedad implementa lineas  de referencia.

.Captura de pantalla

El precio es lo único que nos puede disuadir  ; unos 62,99€ en Amazon pues por lo demás no nos  parece una mala opción.

Tercera solución; Rasberry pi con camara

Ya  que hemos hablado de usar un terminal Android o una cámara especifica ¿por que no usar nuestro propio hw?  Pues en efecto se puede gracias a la aplicación RearPi de la que hablaremos en un próximo post.