
Android Auto es una aplicación de Google que permite que un ODROID-C2/C1+ funcione como un ordenador de a bordo con soporte para navegación, audio y manos libres. Las instrucciones en video están disponibles en youtube "[ODROID/Android Auto]chip car head unit". La aplicación se ejecuta dentro de Linux utilizando la aplicación OpenAuto.
Materiales
- ODROID-C2 / ODROID-C1+
- ODROID-VU7. también puedes usar el ODROID-VU5, aunque puede ser demasiado pequeño para verlo mientras conduces
- Kit I2S 2Watt Stereo Boom Bonnet. Elegimos este por motivos de movilidad. Además, tiene suficiente volumen de sonido, aunque también puede usar otros altavoces.
- ODROID-USB-CAM 720P / Microfono USB. Conectamos un micrófono para el manos libres.
- Botón de encendido. Puede usar tu propio estilo para que coincida con el interior de tu coche
- SmartPower2 15V/4A
- Adaptador de corriente para el mechero
- Cable conector DC de 5,5 mm tipo L
- Cable conector DC de 2,5 mm tipo L
Software
Este proyecto está basado en ubuntu64-16.04.3-mate, Android Auto versión 2.2. Funciona muy bien en ODROID-C2 y ODROID-C1+.
Instalar dependencias
Antes de instalar Audio Auto, debe instalar los paquetes de dependencia
$ sudo apt-get update && sudo apt-get upgrade $ sudo apt-get install -y git-core curl dh-autoreconf libboost-all-dev libusb-1.0.0-dev libssl-dev cmake libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtmultimedia5-dev libqt5bluetooth5 libqt5bluetooth5-bin qtconnectivity5-dev pulseaudio gstreamer1.0-plugins-bad gst123 librtaudio-devLa siguiente script se conectará automáticamente en la cuenta de Android después de cada inicio:
$ sudo vi /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf [Seat:*] greeter-session=lightdm-gtk-greeter autologin-user=odroid
Instalación
Para usar Android Auto, necesitarás instalar OpenAuto, que requiere que se instale tanto aasdk como protocol-buffers. Antes de actualizar el compilador, verifica la versión del compilador GCC. La versión de GCC debe ser 6 o superior:
$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper Target: aarch64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64 --with-arch-directory=aarch64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu Thread model: posix gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9)Añade el repositorio a través de los comandos add-apt-repository, luego instala gcc-6:
$ sudo apt update $ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y $ sudo apt update $ sudo apt install gcc-snapshot -y $ sudo apt update $ sudo apt install gcc-6 g++-6 -y $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6 $ sudo update-alternatives --config gccTras la instalación, deberías ver que el GCC actualizado está disponible:
$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper Target: arm-linux-gnueabihf Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 6.3.0-18ub untu2~16.04' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-multilib --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf Thread model: posix gcc version 6.3.0 20170519 (Ubuntu/Linaro 6.3.0-18ubuntu2~16.04)A continuación, descarga el código fuente del compilador protobuf:
$ wget https://github.com/google/protobuf/archive/v3.0.0.zip $ unzip v3.0.0.zip $ cd protobuf-3.0.0En el archivo autogen.sh, cambia los paquetes Google Mock por los paquetes Google Test:
$ vi autogen.sh . . . (:32) if test ! -e gmock; then curl $curlopts -L -O https://github.com/google/googletest/archive/release-1.7.0.zip unzip -q release-1.7.0.zip rm release-1.7.0.zip mkdir -p gmock/gtest mv googletest-release-1.7.0 gmock/gtest fi . . .Si estás utilizando un ODROID-C2 para tu compilación, puede añadir la opción "-j4" al comando "make", pero en el ODROID-C1+ debes evitar esta opción por contar con menor memoria del sistema.
$ ./autogen.sh $ ./configure --prefix=/usr/lib/arm-linux-gnueabihf/ $ make [-j4] $ sudo make install $ sudo ldconfig $ export PATH=/usr/lib/arm-linux-gnueabihf/bin/:$PATH $ cd $ git clone -b master https://github.com/f1xpl/aasdk.git $ mkdir aasdk_build $ cd aasdk_build $ cmake -DCMAKE_BUILD_TYPE=Release ../aasdk $ make [-j4]Finalmente, compila e instala Open Auto:
$ cd $ git clone -b master https://github.com/f1xpl/openauto.git $ mkdir openauto_build $ cd openauto_build $ cmake -DCMAKE_BUILD_TYPE=Release -DRPI3_BUILD=FALSE -DAASDK_INCLUDE_DIRS="/home/odroid/aasdk/include" -DAASDK_LIBRARIES="/home/odroid/aasdk/lib/libaasdk.so" -DAASDK_PROTO_INCLUDE_DIRS="/home/odroid/aasdk_build" -DAASDK_PROTO_LIBRARIES="/home/odroid/aasdk/lib/libaasdk_proto.so" ../openauto $ make [-j4] $ echo "./openauto/bin/autoapp &" >> .bashrc
Añadir cuentas al grupo
Para solventar el problema del permiso de la cuenta, configura el grupo de usuarios como se muestra a continuación:
$ sudo usermod -a -G root odroid $ sudo usermod -a -G tty odroid $ sudo usermod -a -G voice odroid $ sudo usermod -a -G input odroid $ sudo usermod -a -G audio odroid $ sudo usermod -a -G pulse odroid $ sudo usermod -a -G pulse-access odroidDeberías ver la pantalla de Android auto listo al arrancar.
Conectar y configurar los componentes
Para usar la pantalla ODROID-VU7, edita el archivo boot.ini tal y como se muestra a continuación. Deberías editar las opciones de resolución y vout_mode. El ODROID-VU7 tiene una resolución de 800×480 60hz y el modo DVI.
$ sudo vi /media/boot/boot.ini # setenv m "576p" # 720x576 setenv m "800x480p60hz" # 800x480 # setenv m "800x600p60hz" # 800x600 # setenv m "1024x600p60hz" # 1024x600 # setenv m "1024x768p60hz" # 1024x768 # setenv m "1360x768p60hz" # 1360x768 # setenv m "1440x900p60hz" # 1440x900 # setenv m "1600x900p60hz" # 1600x900 # setenv m "1680x1050p60hz" # 1680x1050 # setenv m "720p" # 720p 1280x720 # setenv m "800p" # 1280x800 # setenv m "sxga" # 1280x1024 # setenv m "1080i50hz" # 1080I@50Hz # setenv m "1080p24hz" # 1080P@24Hz # setenv m "1080p50hz" # 1080P@50Hz # setenv m "1080p" # 1080P@60Hz # setenv m "1920x1200" # 1920x1200 # HDMI DVI Mode Configuration # setenv vout_mode "hdmi" setenv vout_mode "dvi" # setenv vout_mode "vga"

Montar SmartPower2
Este es un dispositivo opcional, y puedes usar cualquier otra fuente de alimentación 5V/3A para esto. SmartPower2 tiene una función de ejecución automática y puedes comunicarte con él a través de WiFi.
Comprueba la opción Auto Run y conecte SmartPower2 utilizando el adaptador de alimentación del mechero como entrada y el ODROID-C1+ como salida.
Montar Stereo Boom Bonnet
Si tuvieras que cargar el driver cada vez que arranques ODROID-C1+/C2, simplemente registra el driver en /etc/modules (más detalles):
odroid@odroid64:~$ su Password: /* root password is "odroid" */ root@odroid64:/home/odroid# echo "snd-soc-pcm5102" >> /etc/modules root@odroid64:/home/odroid# echo "snd-soc-odroid-dac" >> /etc/modules root@odroid64:/home/odroid# exit exit odroid@odroid64:~$Selecciona " output to ODROID-DAC Analog stereo " a través de System » Preferences » Hardware » Sound » Output.
Configurar el botón de encendido
Con el teclado numérico de la pantalla TFT LCD, se puede apagar el sistema Android Auto cuando paramos el sistema del coche, pero queríamos incluir un botón de encendido independiente para mayor comodidad. Para que esto funcione, hay que cambiar "KEY_UP" por "KEY_POWER" en el código fuente del servicio tftlcd_key:
{ PORT_KEY1, HIGH, KEY_UP, KEY_RELEASE },A continuación, actualiza rc.local para cargar automáticamente el servicio tftlcd_key en el arranque:
$ sudo vi /etc/rc.local # By default this script does nothing. sudo /home/odroid/tftlcd_key & if [ -f /aafirstboot ]; then /aafirstboot start ; fiAhora conecta el botón de encendido a los conectores de expansión GPIO J2. Usamos el Pin 6 y el Pin 12.
Para asignar la acción de apagado, dirígete a System » Preferences » Hardware » Power Management » General
Montar los micrófonos USB
Para usar Google Assistant, también necesitarás un micrófono USB. Configura la entrada del dispositivo USB usando System » Preferences » Hardware » Sound » Input.
Instalar Android Auto en un coche
Ahora instalamos el dispositivo Android Auto en mi coche personal, el cual funciona muy bien. Después de arrancar, Android Auto está listo automáticamente para conectar tu dispositivo Android. Tras conectar tu dispositivo Android a Android Auto, Android Auto detectará el dispositivo para que puedas usarlo.
Be the first to comment