Reciclar un viejo teléfono como reproductor multimedia permanente en el coche


No hace mucho tiempo casi todos los vehículos solo contaban , ademas del correspondiente reproductor de cd’s o dvd’s con soporte mp3 ,  en el mejor de los  casos , una entrada adicional  basada en jack para la famosa entrada  ‘AUX’  mediante una conexión física por minijack de 3,5 m o incluso  por  dos RCA ( para respectivos ambos canales) .  Afortunadamente todo  eso ha quedado  – o casi- relegado al olvido gracias  a la autentica “navaja suiza”  de nuestros tiempos: los smartphones, ya que gracias a sus grandes posibilidades ( también para el aspecto multimedia ) nos permiten reproducir   cualquier contenido multimedia  , ( de hecho   a estas alturas ,  muchos vehículos cuentan con sistemas multimedia basados en Android ,  e incluso tenemos Android Auto y Apple CarPlay, pero estos últimos tienen que ser por cable en casi cualquier modelo).

 

Volviendo  al tema de  los coches “medianamente modernos”,   lo que si que suelen contar éstos  es con   una conexión Bluetooth ,conexión  donde, en la mayoría de los casos, podremos hacer  streaming de música, si bien es cierto que hay determinados casos de  vehículos en los que sencillamente no tenemos conexión Bluetooth,  pero  en los tiempos  actuales   no es un gran problema ,   pues podemos optar por un transmisor FM con enlace por bluetooth y soporte A2DP, como por ejemplo el adaptador Victsing el cual nos permite ademas de servir de manos libres , enviar el sonido desde nuestro smartphone  a la radio FM del coche por un canal que deseemos 

 

Es cierto que también hay vehículos con conexión  Bluetooth,y que curiosamente no se puede utilizar para el streaming de música y sí como manos libres, pero  no es lo habitual  ( y si fuese así  también  tendría solución por ejemplo con el adaptador Victsing ya comentado que nos permite , enviar el sonido desde nuestro smartphone  a la radio FM del coche).

 

Lo mas normal  pues es  que en casi  todos los vehículos  ya  tengamos Bluetooth  para que  podemos usarlo para el manos libres del teléfono y también para transmitir  la música sin cables al equipo de audio ,así que dada la facilidad  de poder  contar  con  terminales obsoletos ,    vamos a ver como mediante  tres sencillas apps podemos convertir un viejo terminal olvidado en un cajón en un elegante reproductor multimedia permanente en nuestro automóvil , lo cual  que sin duda nos hará mas sencillo las horas al volante sin arriesgar con ello nuestra integridad.

 

Ademas de la usabilidad  del reproductor multimedia , para  poder automatizar  que al arrancar el terminal arranque el reproductor  y   asimismo que podamos apagar con  mucha facilidad el terminal , proponemos  la instalación de tres aplicaciones:

  • Power off click
  • Car web Guru Luncher
  • Autostart

Asimismo  en el apartado hardware    necesitaremos tambien ;

  • Un smartphone obsoleto sin tarjeta sim ( ¿lógico no?)
  • Una tarjeta micro-sd de al menos 16GB para almacenar el contenido  multimedia 
  • Un soporte de gel  para el terminal que sea  permanente
  • Un cargador doble usb
  • Adaptador Victsing en caso de no disponer de bluetoth con A2Dp

 

Veamos con detalle  los pasos  a seguir:

Conexión  por bluetooth

Si su coche cuenta con  Bluetooth y soporta A2DP, entonces tiene la situación ideal y la configuración es muy sencilla.En caso de no disponer de  Bluetooth o que este no soporte A2DP   ya hemos comenatdo la solución  que no disponga  :el adaptador Victsing el cual nos permite ademas de servir de manos libres , enviar el sonido desde nuestro smartphone  a la radio FM del coche por un canal que deseemos 

Una vez tengamos   resuelto  el enlace de bluettooth con A2DP ,  lo siguiente es sincronizarlo  con el móvil que vamos a a usar como reproductor multimedia

Normalmente la forma más fácil de hacerla sera pulsando en el volante, o en la propia radio, sobre el botón de llamada, con forma de teléfono: de este modo hará que el sistema multimedia trate de usar el teléfono para hacer una llamada y, al no detectar ningún dispositivo conectado por Bluetooth, se abrirá el asistente de forma automática, asi que ,hecho esto,  le tocará ir al móvil, a Ajustes > Bluetooth y buscar el coche por el nombre que aparece en pantalla. Al seleccionarlo, es posible que solicite un código PIN, que también será facilitado por el propio sistema multimedia.

No olvide pulsar el check en el teléfono de almacenarlo para siempre  de modo que no se repita el proceso cada vez que este cerca su smartphone

Cuando termine el emparejamiento, para escuchar la música por Bluetooth en el coche, pulse en el vehículo sobre la entrada de audio correspondiente  y reproduzca en su viejo móvil la música que quiera que suene por los altavoces del coche.

 

Instalación permanente del smartphone en el vehículo

Para   dedicar  el viejo móvil de forma permanente necesitamos   fijarlo de forma permanente ( o casi ) a nuestro vehículo  pues no sera relevante la  necesidad de sacarlo cada vez que salimos del vehículo de modo que así  nos ahorramos bastante espacio   y problemas de que se nos pueda soltar el terminal

Como soporte que permita dejar el terminal permanente  podemos usar dos piezas de gel que nos permitirá unirlo prácticamente a cualquier parte  permitiendo  incluso quitarlo si fuese necesario sin tener  que pegar  o romper nada (se puede  quitar del salpicadero sin dejar residuo)

El soporte que hemos probado es este modelo de amazon ( lo hay en diferentes colores  ). Son almohadillas de silicona  con  adhesión fuertemente  sin imán, sin pegamento, pero con efecto de vacío permitiendo mantener el móvil siempre en su lugar aún cuando haya un viraje o frena el coche.Este soporte  puede doblarse a cualquier forma y se puede lavar con agua ( si lo quitamos cuando está sucio, lavarlo con agua limpia, se vuelve pegajosa de nuevo) .

Antes de fijar el soporte no olvidar colocar la  memoria micro-sd dentro del terminal   donde  habremos colocado en carpetas nuestro material multimedia

 

En realidad   fijarlo al termina  es muy sencillo: quitamos el protector fijándolo a la parte posterior del móvil . Asimismo es interesante   añadir al cable de carga  un poco de cinta 3m para evitar que se suelte en lo viajes . 

 

Una vez fijado el lado posterior del móvil ,  nos toca elegir un lugar accesible del salpicadero que no moleste en la conducción 

Posteriormente elegida la ubicación lo fijaremos a este quitando la protección de ese lado

 

Asimismo  también necesitamos un cargador de mechero doble usb  , por si en el caso normal queremos cargar también nuestro smartphone  “habitual”

Instalación del software  y customización 

En primer lugar   necesitamos  un sw  de reproducción que sea muy   sencillo pero potente  y sobre todo que  nos evite  distraernos del volante y que al mismo tiempo no nos moleste con anuncios o información irrelevante

Desde  este blog  hemos probado el sw de  Car web Guru Luncher   disponible en google Play  en 

https://play.google.com/store/apps/details?id=com.softartstudio.carwebguru

Este programa soporta los formatos de música ma spoulares : MP3, OGG, FLAC, M4A y clasificación por carpetas de forma muy sencilla 

En realidad es un launcher  por lo que puede complementarse  con numerosos  widgets, añadiendo  grandes velocímetros elegantes,  reproduciendo música con la visualización y búsqueda, con la posibilidad de seleccionar el logotipo de su coche, establecer la imagen de fondo propio, grabación y visualización de pistas geográficas, el modo de pantalla completa, reproductores incorporados, la velocidad y la aceleración de medición, la velocidad de visualización gráfica y un montón de otras características útiles.

Este  programa está diseñado para trabajar en el sistema de radio de coche con el Androide pero en nuestro caso  lo vamos a instalar  en un  teléfono inteligente o tableta.
Es de destacar la personalización de este programa a dos niveles:

  • De la esfera  central circular  donde puede cambiarse haciendo simplemente click  por una brújula , el logo de la marca del coche, un reloj , el tema que se esta reproduciendo   o incluso un navegador
  • De los 4 accesos directos  inferiores  ; donde recomendamos desde este blog dedicar al menos uno asociar a la app de apagado total del móvil 

 

 

 

Autostart

Ya hemos hablado de esta app en este blog , la cual nos permite iniciar una app automáticamente al encender el terminal  .

La app esta  disponible en google Play en   https://play.google.com/store/apps/details?id=com.autostart

Una vez instalada  esta aplicación . seleccionaremos  la aplicación que deseamos  que se inicie automáticamente después de encendido del teléfono en el arranque , en nuestro caso  Car web Guru Luncher


Obviamente se pueden elegir una o varias aplicaciones de inicio automático en el arranque. 

 

El retraso de ejecución automática (inicio automático) se puede personalizar y no debemos olvidar el botón de Auto startup  que este pulsado  ON ( para que arranque esta  y las que digamos)

La app de inicio automático funciona en todos los teléfonos / tabletas y no requiere permisos de root.

 

 

Power off click

Por ultimo, para facilitar el apagado del terminal al dejar el automovil  hemos pensado en una app rápida  que  haga la desconexión casi instantánea :  power off click    

Esta  app esta  disponible en google Play en   https://play.google.com/store/apps/details?id=com.stedi.poweroffclick

 

 

Lo interesante de esta app es añadirla como acceso directo en la app Car web Guru Luncher     de modo que desde la app , directamente podamos apagar el terminal con un solo gesto  ahorrando tiempo  en  esfuerzos inútiles

 

 

Anuncios

Shell script: programas externos, E/S y dirección de shell


Bash , c-shell  o simplemente shell scripting es  un lenguaje de script  creado a fines de la década de 1980 por un programador llamado Brian Fox, que trabajaba para la Free Software Foundation . Fue pensado como una alternativa de software libre para el shell Bourne (de hecho, su nombre es un acrónimo de Bourne Again SHell ), e incorpora todas las características de ese shell, así como nuevas características como la aritmética de enteros y el control de trabajo

Bash es un “shell de Unix”, es decir  una interfaz de línea de comandos para interactuar con el sistema operativo por lo que está ampliamente disponible, siendo el shell predeterminado en muchas distribuciones de GNU / Linux y en Mac OSX, con puertos existentes para muchos otros sistemas.

En post anteriores hemos hablado en una primera aproximación  al lenguaje c-sheall  con el primer ejemplo famoso de  Hello world y avanzando comandos ,tuberías ,variables ,parámetros y salidas posibles y en un segundo post  sobre el  uso de las Tuberías , sustitución de comandos,operadores ,asignación de variables ,Bucles , literales , variables   y aritmética no entera

Asimismo   en un  post  anterior continuamos  avanzando en el conocimiento de este lenguaje con el uso de las funciones, subshells  y las  variables de entorno

En esta ocasión vamos a ver el uso de funciones de shell, funciones de e/s y la redirección shell

close up code coding computer

 

 

 

Funciones de shell 

Programas externos

Bash, como un shell, es en realidad un lenguaje de “pegamento”. Ayuda a los programas a cooperar entre sí, y se beneficia de ello. Siempre busque en Internet lo que desea: hay muchas utilidades de línea de comandos disponibles.

Usando whiptail 

Whiptail es un programa que permite que los scripts de shell muestren cuadros de diálogo al usuario con fines informativos, o para obtener información del usuario de manera amigable. Whiptail se incluye de forma predeterminada en Debian y en varias otras distribuciones de GNU / Linux.

Desde el diccionario GNU / Linux : whiptail es un reemplazo de “diálogo” que usa newt en lugar de ncurses.
Desde su README: whiptail está diseñado para ser compatible con el cuadro de diálogo (1), pero tiene menos funciones: algunos cuadros de diálogo no están implementados, tales como caja de cola, caja de tiempo, caja de calendario, etc.

Usando man, info y ayuda 

Estos tres programas son donde puede encontrar ayuda o referencia de. man muestra las páginas de manual de roff , la información muestra las documentaciones de texinfo, mientras que la ayuda muestra las ayudas integradas.

Al añadir --long-ayuda , --help o --usage a un programa de línea de comandos puede también le da la información de uso. Posibles sinónimos incluyen -H y -h .

Solo prueba estos:

man --help
man man

info --help
man info
info info

help help

Presionar h en las interfaces de man and info también puede darle alguna dirección.

Entrada / Salida

La lectura incorporada 

De la ayuda leída :

read: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

Lea una línea de la entrada estándar y divídala en campos. La lectura es excelente tanto para las entradas del usuario como para la lectura de entradas / tuberías estándar.

Un ejemplo de entrada de usuario:

 # 'readline' pronuncie el nombre de la variable predeterminada 
read -e -p "Haga esto:" -i "destruye el  comando " commmand

echo  "$command "

O incluso más simple:

pause ()  {  read -n 1 -p "Presione cualquier tecla para continuar ..."  ;  }

Ejemplo de nivel de Hola-mundo de la operación stdout:

 echo  'Hola mundo!'  | {  read hola
 echo  $hola  }

Solo se creativo. Por ejemplo, en muchos sentidos, leer puede reemplazar el látigo. Aquí hay un ejemplo, extraído del script de shell de Arthur200000 :

# USAGE 
# yes_or_no "title" "text" width ["yes text"] ["no text"] 
# INPUTS 
# $ LINE = (y / n) - Si debemos usar el estilo de entrada basado en líneas (lectura) 
# $ _DEFAULT = (opcional) - El valor predeterminado para leer yes_or_no ()  { 
yes_or_no() {
  if [ "$LINE" == "y" ]; then
    echo -e "\e[1m$1\e[0m"
    echo '$2' | fold -w $4 -s
    while read -e -n 1 -i "$_DEFAULT" -p "Y for ${5:-Yes}, N for ${6:-No}[Y/N]" _yesno; do
      case $_yesno in
        [yY]|1)
          return 0
          ;;
        [nN]|0)
          return 1
          ;;
        *)
          echo -e "\e[1;31mINVALID INPUT\x21\e[0m"
       esac
  else whiptail --title "${1:-Huh?}" --yesno "${2:-Are you sure?}" ${3:-10} ${4:-80}\
         --yes-button "${5:-Yes}" --no-button "$6{:-No}"; return $?
  fi
}
# USAGE  # user_input var_name ["title"] ["prompt"] [altura] [ancho] 
 # ENTRADAS  # $ LINE = (y / n) - Si debemos usar el estilo de entrada basado en líneas (lectura) 
 # $ _DEFAULT = ( opcional) - El valor predeterminado para leer; por defecto a nada. user_input () 
user_input(){
  if [ "$LINE" == "y" ]; then
    echo -e "\e[1m${2:-Please Enter:}\e[0m" | fold -w ${4:-80} -s
    read -e -i "${_DEFAULT}" -p "${3:->}" $1
  else
    eval "$1"=$(whiptail --title "$2" --inputbox "$3" 3>&1 1>&2 2>&3)
  fi
}
 

Redirección de shell 

En shells, la redirección se usa para la E / S de archivos. El uso más común de es redirigir secuencias estándar (stdin, stdout y stderr) para aceptar la entrada de otro programa a través de tuberías, para guardar la salida del programa como un archivo, y para suprimir la salida del programa redireccionando una secuencia a / dev / null .

Índice de símbolos 

Símbolo Explicación
!
  • Lógicamente niega el estado de salida de una tubería. Por ejemplo, si grep YES votes.txt devuelve 0 , entonces ! grep YES votes.txt devuelve 1 , pero de lo contrario es equivalente.
  • También soportado por el [...] builtin, y dentro de expresiones condicionales. Por ejemplo, si [[-e file.txt]] es verdadero, entonces [[! -e archivo.txt]] es falso.
  • También se admite en expresiones aritméticas. Por ejemplo, si $ i es distinto de cero, entonces $ ((! I)) es 0 .
  • Vea también #! abajo.
"..."
  • Cita un argumento (o parte de un argumento) para que no esté dividido por espacios en blanco en múltiples argumentos, pero sin impedir la expansión de parámetros y la sustitución de comandos internamente.
  • Véase también $ "..." a continuación.
#
  • Introduce un comentario (que continúa hasta el final de la línea). Por ejemplo, el comando foo bar baz # bip es equivalente al comando foo bar baz , porque el comentario # bip se elimina.
  • Dentro de una expresión aritmética, un literal entero de la forma b # n se interpreta en la base b . Por ejemplo, 2 # 110110 es binario 110110, es decir, cincuenta y cuatro.
  • Vea también #! abajo.
  • Véase también $ # abajo.
#!
  • (Por lo general, ” shebang ” cuando se lee en voz alta). Se usa al comienzo de un script ejecutable para especificar el intérprete que se debe usar para ejecutarlo. Por ejemplo, si la primera línea de script.pl es #! / Usr / bin / perl , y script.pl tiene permisos ejecutables, entonces ./script.pl es aproximadamente equivalente a / usr / bin / perl ./script.pl .
  • La primera línea de un script Bash generalmente es #! / Bin / bash o #! / Bin / sh . (El primero generalmente se considera preferible.)
PS
  • Introduce varios tipos de expansiones, especialmente la expansión de parámetros (como en var o $ { var } ), la sustitución de comandos (como en $ ( comando ) ) y la expansión aritmética (como en $ (( expresión )) ).
PS
  • Una variante de "..." (ver más arriba) que admite la traducción específica del entorno local. (A menos que esté escribiendo scripts para su uso en varios idiomas, por ejemplo, inglés y francés, no debe preocuparse por esto).
PS
  • El número de parámetros posicionales (argumentos de un script o función). Por ejemplo, si se invoca un script como script.sh abc , entonces $ # será 3 . Los elementos incorporados que modifican los parámetros posicionales, como shift y set , también afectan a $ # .
% El operador de módulo. Devuelve el resto resultante de la división entera. Ej. 5% 2 = 1
Y Ampersand Comúnmente se utiliza para iniciar un comando en el fondo. Ej. Firefox &
' Una frase. Se utiliza para citar texto literalmente.
( Paréntesis abiertos. Se utiliza para denotar el comienzo de una subshell, entre otras cosas.
) Paréntesis de cierre. Se utiliza para denotar el “EOF” de una subshell.
* Asterisco. Denota multiplicación. Ej. 5 * 2 = 10
+ Más.Denota la suma. Ej. 5 + 2 = 7
, Coma. Utilizado para la separación. Ej. Archivo ls {1,2,3}
- Guión. Denota la resta. Ej. 5-2 = 3
. Parada completa.
/ Barra inclinada. Indica división entera (por ejemplo, 5/2 = 2) o parte de una ruta (por ejemplo, / home / usuario)
: Colon.
; Punto y coma. Separa las líneas si no existe una nueva línea / EOL. Ej. Echo hola; mundo eco
< Soporte de ángulo abierto. Utilizado para la redirección de entrada
= Signo de igualdad Se utiliza para asignar variables y comprobar la igualdad.
> Ángulo de cierre del soporte. Se utiliza para la redirección de salida.
? Signo de interrogación.
@ A la señal. Normalmente se utiliza como una variable que contiene todos los argumentos pasados ​​al entorno como $ @
El Abra el corchete. Utilizado como una alternativa visualmente más atractiva para probar. Por ejemplo, si [condición]; entonces etc
\ Barra invertida Más comúnmente utilizado para escapar. Por ejemplo, archivo rm \ con \ a \ manojo \ de \ espacios.txt
] Cierre corchete. Cierra los recintos de prueba.
^ Signo de intercalación.
_ Guion bajo.
`…`
  • Activa la sustitución de mando; equivalente a $ (…) , pero es algo más propenso a errores.
{ Abra el apoyo rizado. Utilizado para expansión de variable específica. Por ejemplo, (donde var = “hola”) echo “$ {var} world” imprimirá “hola mundo”, echo “$ varworld” generará un error, esperando una variable llamada varworld.
| Tubo. Se utiliza para redireccionar la entrada a la salida. Específicamente, toma la salida del comando en el lado izquierdo, ejecuta el programa en el lado derecho y luego pasa el contenido de la salida del primer comando al segundo, como si se estuviera escribiendo desde un teclado. ‘ls -l | grep Desk ‘es equivalente a ejecutar “grep Desk”, y luego escribir manualmente lo que ls -l tendría salida. Cada vez que se presiona la tecla de retorno, se activará grep hasta que se presione ^ D para pasar el EOF.
} Cierre corsé.
~ Tilde. Normalmente se utiliza para referirse al directorio de inicio. Registrado como “mrwhite”, cd ~ (o simplemente cd) iría a / home / mrwhite. Al iniciar sesión como otro usuario, se podría lograr el mismo efecto con ‘cd ~ mrwhite’.

Enlaces externos en ingles