Construir una consola retro con clon Raspberry Pi :posibles problemas de instalación


 

Si  ha seguido  los  sencillos  pasos  que en un post anterior   y  aqui  habra visto  como es posible  de una manera muy sencilla  y gratuita  cargar en una placa que cuente con el chip  H3 / Mali (por ejemplo todas las versiones de Orange Pi o Banana Pi )  una  imagen de Retropie con la mayoría de los núcleos de Libretro encima de una versión de Jessica Desktop de Armbian preinstalada ,incluyendo   ademas  OpenELEC.

Hablamos  por tanto de convertir nuestro clon de Raspberry pi en una consola gracias  a la distribución de juegos y medios basada en Armbian (Debian 8), es decir  Full Armbian 5.23 con versión de escritorio de Jessie con el núcleo 3.4.113 (backdoors fijados) que permite emular   las siguintes maquinas: Nintendo DS, Neo Geo Pocket, Neo Geo, Neo Geo, Neo Geo, Nintendo, Neo Geo, Neo Geo, Neo Geo Pocket Color, PC Engine (TurboGrafx), Playstation 1, Playstation Portable, Sega32x, SegaCD, SG-1000, Super Nintendo, Vectrex, ZxSpectrum, Amiga ,Atari 5200 ,Atari 8bit (modelos 400 800 XL XE) ,Coco / Tandy ,Colecovision ,Creativision ,Daphne (emulador Philips Cdi),Dosbox (versión GLES) y Dreamcast (fijo reicast-joyconfig),OpenMSX (con soporte .dsk) ,PPSSPP ,TI99 / 4A (Texas Instruments) entre otras.

Realmente los pasos para crear  la sd e instalar los juegos de la plataforma que nos interese  no suelen dar problemas , pero  como en casi todo en esta vida, a veces la suerte no esta de nuestro lado y  hay problemas  que nos pueden impedir  cumplir nuestro cometido.

Veamos algunos de los problemas que nos podemos enfrentar en la instalación y puesta en marcha del entrono de RetroPie  en nuestro clon de Raspeberry Pi:

 

 

En caso de que no arranque su distribucion

 

En caso de que su placa no parezca arrancar, trate de reformatear su tarjeta SD con SDFormatter 4.0 por Trendy (con ajuste de tamaño )  pruebe con una fuente de alimentación diferente (real 2A) y  otra  sdcard (Original, class10 recomendado), y por último, pero no menos importante, asegúrese de estar conectado al televisor compatible con HDMI 720 (sin adaptadores DVI)

En el primer arranque se instalará automáticamente el sistema, cambiara el tamaño de la tarjeta SD y se reiniciara de nuevo asi que por favor tenga paciencia

 

 

 

 

 Configurar controladores

En el primer arranque de su sistema de archivos se ampliará automáticamente, a continuación, se dará la bienvenida con la siguiente pantalla-este menú configurará los controles de emulación y emuladores RetroArch:

pantalla de bienvenida

Mantenga presionado cualquier botón de su teclado o gamepad y el nombre aparecerá en la parte inferior y luego abrir en un menú de configuración:

Welcomecreengamepadname

Siga las instrucciones en pantalla para configurar su gamepad, si se queda sin botones, simplemente mantenga presionado un botón para omitir cada botón no utilizado. Cuando llegue a OK presione el botón que ha configurado como “A” .

Welcomecreengamepadconfigure

Si desea configurar más de un controlador, puede hacerlo desde el menú de inicio de emulationstation. Para obtener más detalles sobre las configuraciones de controlador manual, consulte esta página aquí .

Vea los siguientes diagramas para referencia:

Controlador SNES
Snes_controller
Controlador XBox 360
Xbox360_controller
Controlador PS3
Ps3_controller

 Teclas de acceso rápido

Las teclas de acceso rápido le permiten presionar una combinación de botones para acceder a funciones como guardar, cargar y salir de los emuladores.

El siguiente gráfico muestra las combinaciones de teclas de acceso directo predeterminadas. De forma predeterminada, la tecla de acceso directo está seleccionada de modo que significa que mantiene pulsada la tecla select mientras pulsa otro botón para ejecutar un comando.

Tenga en cuenta que las teclas de acceso rápido sólo son específicas para los emuladores basados ​​en retroarch / libretro.

Teclas de acceso rápido Acción
Seleccionar + Inicio Salida
Seleccionar + hombro derecho Salvar
Seleccionar + hombro izquierdo Carga
Seleccionar + Derecha Aumento de ranura de estado de entrada
Seleccionar + Izquierda Disminución de la ranura del estado de entrada
Seleccione + X Menú RGUI
Seleccione + B Reiniciar

 EmulationStation

Cuando vea EmulationStation por primera vez puede preguntarse por qué no ve sistemas como el SNES o Game Boy- no se preocupe, ellos están instalados en el sistema, las ROM solo necesitan ser agregadas a sus respectivas carpetas de ROM antes de que se vuelvan visibles

Los emuladores ya están instalados , pero sólo aparecen en EmulationStation cuando se agregan roms.

Para agregar ROMs, simplemente coloque los archivos en la carpeta / home / pi / RetroPie / roms / $ CONSOLE, donde $ CONSOLE es el nombre de la consola de destino, por ejemplo, snes o arcade. Puede iniciar Desktop desde EmulationStation y conectar una unidad USB con sus ROMs. Las carpetas de Roms también son partes de samba.

primer arranque

TARJETA SD:

 RetroPie se construye sobre Raspbian (un sistema operativo Linux para el Raspberry Pi) y como tal la partición en la tarjeta SD es EXT4 (un sistema de archivos linux) que no es visible en los sistemas Windows, por lo que la tarjeta se mostrará como un Tamaño más pequeño que de costumbre y usted no será capaz de ver todo en la tarjeta, pero todo está allí. Podrá acceder al sistema de archivos a través de la red por smb  o bien usando cualquier utilidad de sftp.

 

Transferencia de Roms

Debido a la naturaleza / complejidad de la Ley de Derechos de Propiedad Intelectual / Propiedad Intelectual, que difiere significativamente de País a País, los ROM no pueden ser provistos con RetroPie y deben ser proporcionados por el usuario. Teóricamente sólo debería  tener ROMs de juegos que posee o haya poseído en alguna ocasión .

Hay tres métodos principales de transferencia de roms:

 USB

Asegúrese de que su USB esté formateado a FAT32 o NTFS

  • Primero cree una carpeta llamada retropie en su memoria USB
  • Enchúfelo en el pi y espere a que termine de parpadear
  • Sacar el USB y conectarlo a una computadora
  • Agregue las roms a sus respectivas carpetas (en la carpeta retropie/roms )
  • Vuelva a enchufarlo en la frambuesa pi
  • Espere a que termine de parpadear
  • Refresque emulationstation eligiendo reiniciar emulationstation desde el menú de inicio

Vea este video como referencia:

 

 SFTP

Es necesario habilitar SSH para que SFTP funcione.  A partir de RetroPie 4.2, para mantener la imagen predeterminada segura, SSH se desactiva de forma predeterminada, pero se puede volver a habilitar en raspi-config :

sudo raspi-config

Opciones de interfaz >> SSH >> Habilitar >> reiniciar tu pi

Necesitara  que ambos PC y placa estén conectados  por  cable Ethernet

.Hay muchos programas de SFTP por ahí, para las ventanas muchas personas utilizan WinSCP para mac se puede utilizar algo como Cyberduck

Winscp

 

En el caso de  la Orange Pi , Usuario: root y  contraseña predeterminada: orangepi

 

 Smb

En una red   Windows  simplemente busque la unidad de red  \RETRORANGEPI\roms en el explorador  de  su pc

 También puede reemplazar retrorangepie con la dirección IP de su placa 

rom2

En caso de MAC OS X, seleccione el menú “Ir” y “Conectar al servidor”.Escriba smb://retroorangepi y pulse “Conectar”.

 

Personalización vía shell

Se  pueden ejecutar comandos en nuestra distribución de Retropie  como en cualquier otra distribución basada en Linux

Debido a la configuración personalizada, no ejecute ‘sudo apt-get upgrade’ pues puede romper algunas cosas.

A continuación algunas comandos básicos ;

Reiniciar:sudo reboot

Apagar: sudo shutdown -h now

Cambio de directorio cd /path/to/directory

Lista de archivos en el directorio actual ls

Retropie Script de instalación: sudo /home/pi/RetroPie-Setup/retropie_setup.sh

Editar archivos con Nano: sudo nano /path/to/file.txt

Cambio de propietario a Pi: sudo chown pi:pi filetobechanged

Cambiar el propietario de la carpeta y todos los archivos de la carpeta a Pi: sudo chown -R pi:pi /folder/to/be/changed

Hacer script de shell ejecutable:sudo chmod +x yourshellscript.sh

Volver a  la interfaz: exit

 

 

Anuncios

Construir una consola retro con Orange Pi PC parte 2


En un post anterior vimos como es posible  de una manera muy sencilla  y gratuita  cargar en nuestra Orange Pi o Banana Pi ( y por supuesto también en cualquier Raspberry Pi ) una  imagen de Retropie con la mayoría de los núcleos de Libretro encima de una versión de Jessica Desktop de Armbian preinstalada ,incluyendo   ademas  OpenELEC.

Hablamos  por tanto de convertir nuestro clon de Raspberry pi en una consola gracias  a la distribución de juegos y medios basada en Armbian (Debian 8), es decir  Full Armbian 5.23 con versión de escritorio de Jessie con el núcleo 3.4.113 (backdoors fijados)  que es  compatible con todas las placas que cuenten el chip  H3 / Mali (pr ejemplo todas las versiones de Orange Pi o Banana Pi )

Si  ha seguido  los  sencillos  pasos  que en un post anterior   comentábamos , verá que  una vez que hay configurado las teclas  funcionales del teclado o mando auxiliar   tendrá una bonita pantalla  en la que desplazándose  con el cursor a izquierda o derecha  por el menú horizontal tendrá disponibles la emulación  de las siguintes maquinas: Nintendo DS, Neo Geo Pocket, Neo Geo, Neo Geo, Neo Geo, Nintendo, Neo Geo, Neo Geo, Neo Geo Pocket Color, PC Engine (TurboGrafx), Playstation 1, Playstation Portable, Sega32x, SegaCD, SG-1000, Super Nintendo, Vectrex, ZxSpectrum, Amiga ,Atari 5200 ,Atari 8bit (modelos 400 800 XL XE) ,Coco / Tandy ,Colecovision ,Creativision ,Daphne (emulador Philips Cdi),Dosbox (versión GLES) y Dreamcast (fijo reicast-joyconfig),OpenMSX (con soporte .dsk) ,PPSSPP ,TI99 / 4A (Texas Instruments) entre otras.

Excepto alguna excepciones ( como la emulación de Amiga)    , un navegador web  y una versión de   Kodi  es todo lo util  que  habrá observado que en la imagen original  de Retrorange Pi ,   no conteniendo demasiadas  posibilidades  debido a que por su tamaño no se podían incluir estas en la propia distribución de modo  que en principio no parece que se pueda hacer gran cosa hasta que carguemos las apps

Obviamente lo que toca es cargar esos juegos  de nuestra plataforma favorita ( en el ejemplo se ha optado por el Zx Spectrum)    para poderlas ejecutar desde nuestra placa.

Hay muchísimos sitios en internet que puedan proporcionar los viejos ficheros ,pero uno de los mas famosos es arcadepunks   , desde donde nos aportan los links agrupados por alguna de las plataformas anteriormente mencionadas para bajarnos la mayoría de esos queridos ficheros .

Lógicamente pincharemos en algunos de los links que nos proponen y procederemos  a descargar  el fichero comprimido

Una vez descomprimido la colección de binarios de los diferentes juegos, el proceso de copia de estos a la placa es muy sencillo pues  teniendo en cuenta que ambos equipos ( la placa  y nuestro pc)  están en la misma red, solo tendremos que buscar desde el explorador de windows  la ruta \RETRORANGEPI\roms

Sobre cualquiera de las plataformas  a la nos hayamos descargado y descomprimido  la colección  de juegos si pinchamos sobre la carpeta  de red  correspondiente( en el ejemplo \RETRORANGEPI\roms\zxspectrum)  es ahí donde deberemos copiar el conjunto de ficheros

Una vez que copiemos los  ficheros , reiniciaremos  la placa ,  y  al arrancar  ésta , seleccionar la plataforma. de modo que   ya deberían  aparecer disponibles los juegos para la plataforma elegida

Con el interfaz   ,lo normal es movernos con las flechas el cursor  ,las teclas A  , B ( de Back) , barra , escape  , números    y por supuesto la tecla Intro  ,  pero hay algunos de  las HOTKEYS (excepto Dreamcast, PPSSPP, LinApple, Commodore …)

  •  Selección + Inicio → Salir del juego
  •  Selección + Home Derecho → Guardar Estado
  •  Selección + Home izquierdo → Estado de carga
  •  Selección + Derecha → Guardar Incremento de la Ranura
  •  Seleccion + Izquierda → Guardar Disminución de la Ranura
  •  Seleccion+ X → Menú RetroArch
  •  Seleccion + B → Restablecer juego

Algunas notas  extraídas de foros sobre algunos juegos:

  • Atari 2600 no carga ninguna ROM por defecto. Las instrucciones para corregir el núcleo de Atari 2600es seguir los siguintes cinco pasos:  1-Retropie setup, ,2-Maanage Packages,3-Manage Main Packages,4 -Seleccionar ir-stella,5-Update from source
  • Nintendo NES funciona 100% perfecto   60 cuadros por segundo.
  • Los juegos de SNES funcionan casi todos, solo se alenta un poco con ciertos ROMS y solo en momentos de mucho procesamiento (por ejemplo Super Mario RPG), se juega muy cómodo, la verdad es que esos pocos momentos donde se alentan los juegos no perjudican la experiencia.
  • Game Boy funciona bien pero  se aprecia  “tearing” (desincronización de redibujado de pantalla), incluso cuando se configura a que esté el V-Sync activado.
  • Game Boy Advance funciona perfect,  a toda velocidad.
  • Sega Genesis funciona al 100%, parece ser facil de emular esta consola y todo funciona muy optimizado.
  • N64 ependiendo del ROM, por ejemplo, Super Mario 64 funciona a la perfección pero Conker’s Bad Fur Day funciona muy lento, así que todo depende de que tan complejo sea el juego.
  • PlayStation funciona casi perfecto, pero puede haber problemas con  juego que nose  carguen
  • Juegos de Arcad, obviamente depende de que tan reciente y complejo es el juego pero también con qué emulador lo esté ejecutando,.La gran mayoría de juegos 2D funcionan bien, los 3D sufren prácticamente todos.
  • Vienen algunos cuantos port de juegos de PC como CaveStory, Quake, Prince of Persia, Doom, Duke Nukem 3D, Beats of Rage… algunos se juegan bien, pero otros  no tanto por le tema de  configurar los controles.

Puertos

RetrOrangePi Ports es una colección de ROMs y motores portados a RetrOrangePi.  Este paquete incluye: CannonBall (motor OutRun) y SDLPoP (Prince of Persia). Necesita descomprimir su conjunto OutRun B desde el último MAME (outrun.zip) a
Escritorio / puertos / CannonBall / roms /

Deben coincidir con los nombres de archivo enumerados en el archivo roms.txt que se encuentra en la carpeta ROMs. También tendrá que cambiar el nombre del archivo epr-10381a.132 a epr-10381b.132 antes de que funcione

Instrucciones de instalación:

  • Debe tener conectada su RetroPie a su red local (osea, como si la conectaras a Internet),
  • Desde su PC   busquea en la red local  su  RetroPie  (poniendo \\RETROPIE en la barra de direcciones de MiPC si usas Windows),
  • Copiar los ROMs en la carpeta correspondiente.
  • En la Retropie ,seleccione Escritorio en el menú EmulationStation
  • Descargar ports_vol_1.zip y descomprimir en su escritorio
  • Abra la carpeta de puertos, haga doble clic para ejecutar los juegos

Construir una consola retro con Orange Pi PC


RetrOrange Pi es un proyecto sin fines de lucro. Se compone de una configuración básica de Retropie con la mayoría de los núcleos de Libretro encima de una versión de Jessica Desktop de Armbian preinstalada incluyendo   ademas  OpenELEC .Mas especificamnte RetrOrangePi  es por tanto una distribución de juegos y medios basada en Armbian (Debian 8), es decir  Full Armbian 5.23 con versión de escritorio de Jessie con el núcleo 3.4.113 (backdoors fijados)  que es  compatible con dispositivos H3 / Mali , como por ejemplo la Orange Pi PC . Ha sido  desarrollado y mantenido por Stevie Whyte y Alerino Reis con la colaboración de Wang Matt.

Gran parte del software incluido en la imagen tiene licencias no comerciales. Debido a esto, vender una imagen RetrOrange preinstalada no es legal, ni incluirla con su producto comercial .

Las plataformas soportadas  por esta distribución son las siguientes:  Nintendo DS, Neo Geo Pocket, Neo Geo, Neo Geo, Neo Geo, Nintendo, Neo Geo, Neo Geo, Neo Geo Pocket Color, PC Engine (TurboGrafx), Playstation 1, Playstation Portable, Sega32x, SegaCD, SG-1000, Super Nintendo, Vectrex, ZxSpectrum

Ademas, recientemente se han incorporado  otras plataformas como Amiga (emulador FS-UAE, fullscreen ahora, sonido de disquete, lanzador),Atari 5200 ,Atari 8bit (modelos 400 800 XL XE) ,Coco / Tandy ,Colecovision (ColEm emu * Colección personalizada BlueMSX núcleo **),Creativision ,Daphne (emulador Philips Cdi),Dosbox (versión GLES) y Dreamcast (fijo reicast-joyconfig),OpenMSX (con soporte .dsk) ,PPSSPP (nueva versión 1.3 de repo odroid),TI99 / 4A (Texas Instruments) entre otras.

Retrorange Pi incluye además OpenELEC (Kodi Jarvis 16.1) con el apoyo de la CEC por Jernej krabec y  Kodi Krypton beta6 (populares reproductores multimedia  que sirven ademas para ver estaciones de TV por internet,ect )  ,  pero tenga cuidado ,pues si ejecuta cualquiera de ellos cada que arranque su OrangePi arrancará con Kodi/OpenELEC y no podrá volver a Emulation Station sin hacer una serie de pasos que pueden ser complicados para muchos usuarios.

kodi01 kodi02

Ademas también tenemos un escritorio Linux completamente funcional bajo el eficiente Xfce

Incluye  teclado en pantalla con fácil configuración wifi y control de almacenamiento con características adicionales añadidas por el equipo ROPi: configuración de visualización, OpenELEC / Desktop launcher y switcher de música de fondo integrado en el menú principal.

También soporta  Plug n ‘Play – USB roms autoload (lee desde / media / usb0) (buggy) entre sus muchas carasterictics

Instrucciones  de instalación

Lo primero  es descargar la imagen correspondiente  en su ordenador, segun la  placa  que tenga , descargue la última imagen del sitio oficial  http://www.retrorangepi.org/#download  .

Por ejemplo para Orange Pi PC el fichero descargado seria RetrOrangePi-3.0.1.Orangepipc.tar.gz

Para descomprimir la imagen,  si estamos en Windows  primero en un fichero tar lo mejor es usar  el  famoso descompresor 7-Zip

Para descomprimir el tar obtenido por el 7-zio    ahora si podemos usar el  Winrar  para obtener el fichero .iso

Para crear la imagen en la sd existen dos métodos  principalmente  , veamos el procedimiento tradicional:

  • Inserte la tarjeta SD en el lector de tarjetas SD  de su ordenador comprobando cual es la letra de unidad asignada. Se puede ver fácilmente la letra de la unidad, tal como G :, mirando en la columna izquierda del Explorador de Windows.
  • Puede utilizar la ranura para tarjetas SD, si usted tiene uno, o un adaptador SD barato en un puerto USB.
  • Descargar la utilidad Win32DiskImager desde la página del proyecto en SourceForge como un archivo zip; puede ejecutar esto desde una unidad USB.
  • Extraer el ejecutable desde el archivo zip y ejecutar la utilidad Win32DiskImager; puede que tenga que ejecutar esto como administrador. Haga clic derecho en el archivo y seleccione Ejecutar como administrador.
  • Seleccione el archivo de imagen ISO  que ha extraído anteriormente
  • Seleccione la letra de la unidad de la tarjeta SD en la caja del dispositivo. Tenga cuidado de seleccionar la unidad correcta; si usted consigue el incorrecto puede destruir los datos en el disco duro de su ordenador! Si está utilizando una ranura para tarjetas SD en su ordenador y no puede ver la unidad en la ventana Win32DiskImager, intente utilizar un adaptador SD externa.retro
  • Haga clic en Write  Escribir y esperar a que la escritura se complete.
  • Salir del administrador de archivos  y expulsar la tarjeta SD.

Existe un procedimiento alternativo que permite usar diferentes funcionalidades en diferentes sistemas operativos en una única herramienta

  • Ir a etcher.io donde podemos descargar el software para cada sistema operativo
    pudiéndose e elegir aquí el sistema operativo que desea para Mac, linux o Windows
  • Una vez descargado el sw  instale en su equipo y  ejecute
  • Ahora seleccione la imagen ISO
  • Seleccione la unidad de tarjeta sd donde desee crear la imagen
  • Luego haga clic en flash, y la imagen será transferido a su tarjeta SD

etcher.PNG

 

Al finalizar de crear la imagen extraiga de su pc de  forma ordenadas

Coloque la sd en su Orange Pi PC ( o la placa que tenga)

El usuario y la contraseña predeterminados son:

user – pi
pass – pi
root – orangepi

Los emuladores ya están instalados (al menos los más comunes). Para agregar ROMs, simplemente coloque los archivos en la ~/RetroPie/roms/$CONSOLE , donde $CONSOLE es el nombre de la consola de destino, por ejemplo, snes o arcade.

Para usar la GUI, seleccione Desktop desde el menú EmulationStation, inserte la unidad USB con sus ROMs, cópielos en la RetroPie/roms/$CONSOLE (acceso directo en su escritorio).

Información importante:
 

  • En caso de que su placa no parezca arrancar, trate de reformatear su tarjeta SD con SDFormatter 4.0 por Trendy (con ajuste de tamaño )  pruebe con una fuente de alimentación diferente (real 2A) y  otra  sdcard (Original, class10 recomendado), y por último, pero no menos importante, asegúrese de estar conectado al televisor compatible con HDMI 720 (sin adaptadores DVI)
  • En el primer arranque se instalará automáticamente el sistema, cambiara el tamaño de la tarjeta SD y se reiniciara de nuevo asi que por favor tenga paciencia
  • Los emuladores ya están instalados , pero sólo aparecen en EmulationStation cuando se agregan roms.
  • Para agregar ROMs, simplemente coloque los archivos en la carpeta / home / pi / RetroPie / roms / $ CONSOLE, donde $ CONSOLE es el nombre de la consola de destino, por ejemplo, snes o arcade. Puede iniciar Desktop desde EmulationStation y conectar una unidad USB con sus ROMs. Las carpetas de Roms también son partes de samba.
  • Debido a nuestra configuración personalizada, no ejecute ‘sudo apt-get upgrade’. Puede romper algunas cosas.

 

 

Web oficial de RetroRangePiorange314.com/RetrOrangePi

Cómo instalar ArmBian en Orange Pi PC


Armbian es una distribución ligera basada en Debian o Ubuntu especializada para placas de desarrollo ARM. Compilado desde cero, contando con poderosas herramientas, desarrollo de software, y una comunidad vibrante.Otras placas ARM pueden ser las Raspberry PI, Odroid, Cubieboard… cada una de un fabricante distinto y luchando por hacerse con su espacio

Para instalar Armbian, primero debemos elegir entre un entorno gráfico o linea de comandos pues dependiendo lo que queramos hacer, elegiremos uno u otro sistema. Según la placa tendremos soporte completo con una de cuatro sistemas básicos  Debian Wheezy  (Jessie)  o   Ubuntu Trusty  (Xenial)

Ademas  dentro de esas distribuciones, podemos elegir entre “Legacy” y “Vanilla”,ambos estables y listos para producción, pero se debe elegir en base a nuestras necesidades, ya que su soporte básico es diferente:

  • Legacy: aceleración de vídeo, sistema al que conectar pantallas y otros periféricos, como teclado, ratón…
  • Vanilla: servidores sin monitor o periféricos, que se vayan a controlar remotamente por ssh ( por ejemplo desde el putty)

Más información acerca de Armbian se puede encontrar: Aquí  y se puede encontrar la guía de instalación: Aquí

Ok, ¿qué necesitamos para iniciar este pequeño proyecto?

Hardware necesario:

  1. Orange Pi PC
  2. 5V / 2A con el barril del CC Jack o el cable grueso del USB (utilicé 5V / 1,5A de mi teléfono viejo)
  3. Tarjeta SD – Clase 10!
  4. Teclado y ratón
  5. Cable HDMI
  6. Cable ethernet de LAN
  7. Lector de tarjetas

Software necesario:

  1. Descargar Armbian – Jessie,versión servidor  para el Orange Pi PC   Aquí
  2. Descargar SDFormatter: aqui
  3. Descargar Etcher: Here
  4. Descargar 7-Zip: Aquí
  5. Descargar Putty: aqui

Upzip, formato e instalación de Armbian a la tarjeta SD

Upzip, Formato e Instalación de Armbian a Tarjeta SD
  • Empezar a descargar Armbian (ver enlaces anteriores) e instalar SDFormatter, Etcher y 7-zip.
    (No estoy explicando cómo instalar esas aplicaciones porque es bastante sencillo.
  • Cuando esto se hace, abra la carpeta donde descargó la imagen de Armbian,
    Esto debe ser nombrado así:
    “Armbian_5.20_Orangepiplus_Debian_jessie_3.4.112_desktop.7z
  • Abra 7-zip y descomprima este archivo en un nuevo directorio para que tenga algo como: “Armbian_5.20_Orangepiplus_Debian_jessie_3.4.112_desktop.img 
  • Conecte su tarjeta SD a su computadora, en este caso utilicé un lector de tarjetas USB
  • Iniciar SDformatter
    • Drive: Seleccione su tarjeta SD ( Compruebe esto! )
    • Vaya a las opciones -> “Ajuste del tamaño del formato” -> YES (El valor predeterminado es “No”) -> OK
    • Compruebe nuevamente si la tarjeta SD está seleccionada en la sección “Drive”.
    • Haga clic en “Formato”
  • Iniciar Etcher (ejecutar como Administrador!)
    • ” Seleccionar imagen ” -> Seleccione su unzipt:
      Archivo “Armbian_5.20_Orangepiplus_Debian_jessie_3.4.112_desktop.img”
    • Seleccione ” Cambiar ” para cambiar su letra de unidad para usted Tarjeta SD
    • Seleccione “Flash!” Y esperar hasta que esto se haga
  • Desconecte su tarjeta SD cuando se haya completado este proceso, use la opción “Quitar hardware y expulsar material de forma segura” en Windows para asegurarse de que está bien

Conecte su Orange Pi PC  y arranque por  primera vez con Armbian

 Ok, ahora es el momento de conectar todos sus dispositivos y cables para iniciar su Orange Pi!
  • Conecte un teclado + mouse a USB
  • Conecte su cable HDMI a su TV  o monitor
  • Conecte el cable LAN al enrutador / conmutador
  • Inserte la tarjeta SD en la ranura de la tarjeta SD
  • Por último, pero no menos importante, conecte el cable de alimentación a su Orange Pi (recuerde que no hay soporte en el Micro USB como fuente de alimentación)
  • ¡Que empiece la diversión!

¿Cómo arrancar?

El primer arranque toma alrededor de 3 minutos y luego se reinicia y tendrá que esperar otro minuto para iniciar sesión. Este retraso se debe a que el sistema actualiza la lista de paquetes y crea SWAP de emergencia de 128Mb en la tarjeta SD.

¿Cómo iniciar sesión?

Ingrese como nombre de usuario ” root” en la consola o mediante SSH y use la contraseña ” 1234″ . Se le pedirá que cambie esta contraseña en el primer inicio de sesión. A continuación, se le pedirá que cree una cuenta de usuario normal que esté sudo (admin) habilitada.
Incluso te está preguntando si quieres cambiar la resolución de la pantalla, pero para mí está bien en 720P.
Estoy usando la línea de comandos con SSH (masilla) la mayor parte del tiempo.

Su escritorio ya está listo para usar! :

Le mostrará algo como esto: donde como vemos aparece la dirección IP a la que nos podemos conectar por ssh

Inicie Putty y conéctese a la dirección IP de su Orange Pi así (ver captura de pantalla):

Nombre de host (o dirección IP): 192.168.1.48 (sólo mi ejemplo, cambie a su IP)
Puerto 22 (predeterminado)
Y haga clic en “Abrir”

Putty le dará un mensaje de seguridad la primera vez, simplemente haga clic en “Sí”.

Ingrese con “root” como nombre de usuario, y su propia contraseña.

Actualizar, establecer una IP estática y deshabilitar raíz para iniciar sesión.

Su Orange Pi debe ejecutar el escritorio y SSH ahora mismo, pero queremos hacer más!

Estos 3 pasos no son obligatorios, pero me gustaría recomendarlo o al menos echarle un vistazo.

  • Actualizar / actualizar su Armbian
    Inicie sesión con Putty en su Orange Pi, y use este comando para actualizar / actualizar su Armbian:
    ” Sudo apt-get update  o simplemente   “apt-get update” si esta logado como root
    Después de esto:
    Sudo apt-get upgrade -y ” o simplemente apt-get upgrade -y  si esta logado como root     .En caso de error puede que tenga   que selecionar la opcion -f , es decir            apt-get -f install
  • Configurar un IP estático
    Quiero tener una dirección IP estática (no DHCP) en mi Orange Pi, así que sé con seguridad que estoy conectando a mi Orange Pi en la misma dirección IP todo el tiempo.
    Inicie sesión con Putty en su Orange Pi y utilice este comando ifconfig  para ver los detalles de su IP actual:

    [email protected]:~# ifconfig
    eth0 Link encap:Ethernet HWaddr d2:94:6d:f5:41:56
    inet addr:192.168.1.48 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr: fe80::d094:6dff:fef5:4156/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:20090 errors:0 dropped:0 overruns:0 frame:0
    TX packets:9527 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:24031895 (24.0 MB) TX bytes:757452 (757.4 KB)
    Interrupt:114
    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:1 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:104 (104.0 B) TX bytes:104 (104.0 B)

    [email protected]:~#

  • En este caso, quiero usar esta dirección IP 192.168.1.48 como una dirección IP estática, pero usted tiene que comprobar qué dirección IP que desea utilizar en este rango.Tipo:
    nano / etc / network / interfaces “, el texteditor Nano se abrirá y le mostrará la configuración de red, busque los detalles de “eth0”, como esto:

source /etc/network/interfaces.d/*

# Wired adapter #1
allow-hotplug eth0
no-auto-down eth0
iface eth0 inet dhcp
#address 192.168.0.100
#netmask 255.255.255.0
#gateway 192.168.0.1
#dns-nameservers 8.8.8.8 8.8.4.4
# hwaddress ether # if you want to set MAC manually
# pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838

# Wireless adapter #1
# Armbian ships with network-manager installed by default. To save you time
# and hassles consider using ‘sudo nmtui’ instead of configuring Wi-Fi settings
# manually. The below lines are only meant as an example how configuration could
# be done in an anachronistic way:
#
#allow-hotplug wlan0
#iface wlan0 inet dhcp
#address 192.168.0.100
#netmask 255.255.255.0
#gateway 192.168.0.1
#dns-nameservers 8.8.8.8 8.8.4.4
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
# Disable power saving on compatible chipsets (prevents SSH/connection dropouts over WiFi)
#wireless-mode Managed
#wireless-power off

# Local loopback
auto lo
iface lo inet loopback

  • Ahora necesitamos cambiar la parte ” dhcp ” a ” static “, y llenar todos los detalles de la dirección

    IP.Cambiarlo así:# Wired adapter #1
    allow-hotplug eth0
    no-auto-down eth0
    iface eth0 inet static
    address 192.168.1.48
    netmask 255.255.255.0
    gateway 192.168.0.1
    #dns-nameservers 8.8.8.8 8.8.4.4
    # hwaddress ether # if you want to set MAC manually
    # pre-up /sbin/ifconfig eth0 mtu 3838 # setting MTU for DHCP, static just: mtu 3838# Wireless adapter #1
    # Armbian ships with network-manager installed by default. To save you time
    # and hassles consider using ‘sudo nmtui’ instead of configuring Wi-Fi settings
    # manually. The below lines are only meant as an example how configuration could
    # be done in an anachronistic way:
    #
    #allow-hotplug wlan0
    #iface wlan0 inet dhcp
    #address 192.168.0.100
    #netmask 255.255.255.0
    #gateway 192.168.0.1
    #dns-nameservers 8.8.8.8 8.8.4.4
    # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    # Disable power saving on compatible chipsets (prevents SSH/connection dropouts over WiFi)
    #wireless-mode Managed
    #wireless-power off# Local loopback
    auto lo
    iface lo inet loopback

    Guarde este documento pulsando ” ctrl + x “, ” Y ” y pulse enter ( no cambie el nombre de archivo! )
    Ahora necesitamos reiniciar el servicio de red en Armbian, pero no sé por qué, reiniciando Armbian funciona muy bien aquí. Puede reiniciar tecleando este “reboot”.

  • Putty le dará un mensaje ” Server inesperadamente cerrado conexión de red “, pero eso no es extraño, que está reiniciando el Orange Pi.
    En putty utilice el botón “Restart ression” para reiniciar la conexión a su Orange Pi.Ahora cambiamos una dirección IP DHCP a una dirección IP estática para ” ETH0 “.
  • Desactivar la conexión root de SSH en Armbian
    ¿Por qué debemos desactivar la cuenta de root para el inicio de sesión de SSH? Bastante simple, la seguridad !
    Casi todas las distribuciones de Linux tienen la cuenta “root”, así que si alguien quiere hackear / fuerza bruta
    Un servidor Linux que están intentando iniciar sesión con esta cuenta. Al deshabilitar esta cuenta, primero deben encontrar una cuenta de usuario.Para solucionar este problema, debemos editar el archivo ” sshd_config “, que es el archivo de configuración principal del servicio sshd. ¡Asegúrese de que su segunda cuenta funcione! Al principio, Armbian le pidió que creara una segunda cuenta de usuario con una contraseña. Cierre sesión en Putty e intente iniciar sesión con esta cuenta. En mi caso creé una cuenta ” orangepi “.Tipo:
    ” Sudo nano / etc / ssh / sshd_config “Encuentre esta parte: (en Nano puede buscar con “ctrl + w”)
    ” PermitRootLogin “Te mostrará:
    # Autenticación:LoginGraceTime 120
    PermitRootLogin sí
    StrictModes síCambie el “ PermitRootLogin  ” a ” PermitRootLogin no ”
    Guardar esto golpeando ” ctr + x “, Y (es) y pulse enter (no cambie el nombre del archivo!)
    Reinicie SSH escribiendo:
    ” Sudo service ssh restart “Cierre la sesión e intente ingresar con “root”, si ha cambiado esto correctamente, le dará un error ahora.
    “Acceso denegado”.
    Inicia sesión con tu segunda cuenta ahora, en mi caso es “orangepi” y ya está!

Software adicional

Estos son sólo extra como: 

  • GPIO 
    Al igual que la Raspberry Pi (RPI), el Orange Pi (OP o OPI) tiene algunos GPIO para jugar.
    El RPI usa un programa llamado “WiringPi”, pero para el Orange Pi tenemos “WiringOP”!
    Se puede encontrar más información: aquí y aquí

    • Ir a su homedirectory
    • Tipo: “clon de git https://github.com/zhaolei/WiringOP.git -b h3″
    • Tipo: “cd WiringOP”
    • Tipo: “sudo chmod + x ./build”
    • Tipo: “sudo ./build”
    • Tipo: “gpio readall” para ver una visión general de todos los puertos GPIO.
  • VNC sobre SSH
    Puedo copiar pasado este sitio web completo, pero toda la información es:Aquí
  • RPI-Monitor
    Puedo copiar pasado este sitio web completo, pero toda la información es:Aquí
  • Webmin 
    Puedo copiar pasado este sitio web completo, pero toda la información es: Aquí

Convierta en mini PC una Raspberry Pi


Hablamos de un curioso Kit   que   permite cambiar completamente la funcionalidad de una Raspbrry  pi 3 conviertiendo ésta  en un  funcional minipc con una estética muy lograda

El kit se conecta a una Raspberry Pi( que por   cierto no va incluida)   a través del   puerto GPIO de 40 pines del que hemos hablado en este blog  permitiendo que luego conectemos una unidad SSD a esa placa auxiliar gracias a la interfaz mSATA y a la presencia de un pequeño adaptador de corriente que suministra la energía necesaria para que tanto la Raspberry Pi como la unidad de almacenamiento funcionen sin problemas. Obviamente precisamente uno de los puntos interesantes de este kit es que gracias a  este puerto  la Raspberry Pi puede iniciarse desde el SSD, y no necesariamente desde una tarjeta microSD como es lo habitual . Incluso la placa HAT lleva un conector macho superior para encadenar con otra placa HAT adicional que necesitemos.

 

rp3

Además ofrece un reloj en tiempo real (RTC) para mantener el reloj en hora incluso sin alimentación (incluye batería CR2032),

 

pila.png

Otro detalle interesante que se hecha en falta en su versión  de caja tradicional  es contar   con  un botón  un control de alimentación inteligente  que permite encender y apagar la Raspberry Pi de forma segura  sin perder datos y sin necesidad de quitar el cable de alimentación.

caja.png

 

Respecto a  la elegante caja esta aprovecha los puertos de la Raspberry Pi 3, contando con refrigeración mediante un pequeño disipador, un adaptador USB y una pila para el reloj del sistema,botón de encendido  e incluso una abertura para puede instalar una Raspberry Pi Cam en la parte frontal de la caja.
El kit incluye:

  • HAT para instalar disco SDD mSATA
  • Disipador de calor para la Raspberry Pi 3
  • Adaptador USB externo (Micro-Type A)
  • Espaciadores largo (x4) ,  corto (x4) y tornillos para sujetar la Raspberry Pi (x4)
  • Elegante caja 18x18x4,5cm
  • Batería (CR2032)
  • No incluye la Raspberry Pi 3.

 

 

Respecto al al software  recomiendan  RaspAnd OS que también incorpora de inicio varias aplicaciones recientemente actualizadas entre las que podemos mencionar Spotify TV 1.2.0, Rotation Control Pro 1.1.2, Google Play Games 3.9.08, Clash of Clans 9.24.9, el gestor de correo Gmail 7.4.23 o Aptoide TV 3.2.1.

Además merece la pena saber que también se ha incluido el paquete GAPPS para que los usuarios que se decanten por esta interesante alternativa, a su vez también tengan acceso a los servicios de la firma Google. Llegados a este punto decir que GAPPS incluye Google Play Services, pero no la tienda oficial Google Play Store.

 

Como vemos pues con este kit  por  unos 65€   podremos  convertir  una  Raspberry Pi 3 en un ordenador con WiFi, Ethernet, Bluetooth, RTC, Cámara y SSD   que ademas conectado  mediante HDMI a una pantalla nos permitirá  disfrutar de una experiencia PC auténtica.

Nueva rom Android para Orange pi PC


Desde 2012 la Raspberry Pi ha ido  creciendo  de  gran popularidad, estando  hoy en día  posicionada como una de las placas de desarrollo de referencia. Uno de sus rivales clásicos en los últimos tiempos están siendo las Orange Pi, una placa con un diseño similar pero  basado  en  procesadores de Allwinne

Shenzhen Xunlong dispone de la  placa SBC  muy similar a la Raspberry Pi a falta de 1 conector  USB , pero con un coste   bastante inferior  en Aliexpres. Es ademas abierta y hackeable. La placa de desarrollo low cost compite abiertamente   con  otras tantas existentes  donde  la mas destacable es también la Banana Pi  ,  pretendiendo todas  ellas  competir  con la Raspberry Pi.

 

orangepi

 

Esta placa integra una CPU basada en ARM Cortex A7 Dualcore y Quadcore (en la versión más potente), una GPU Mali compatible con OpenGL y 1GB DDR3 RAM, posibilidad de direccionar hasta 64GB de almacenamiento mediante tarjetas o por un puerto SATA, conexiones para audio, conector CSI para cámara, HDMI, VGA, USB OTG, USB 2.0, alimentación, GPIOs, IR, AV, receptor de infrarrojos, Ethernet RJ45 10/100M, tres puertos USB 2.0, uno microUSB OTG, un micrófono, un interfaz CSI para cámara y un encabezado de 40 pines compatible con Raspberry Pi,etc

Sobre diferencias respecto  al original,ciertamente casi todas las placas SBC son bastante similares orientándose para ser clones  mas baratos  de  la Raspberry Pi. Es cuestión de gustos o necesidades, pues  como hemos visto no se pueden alegar diferencias sustanciales, excepto porque se basan en arquitecturas diferentes a la ARM (como las basadas en x86) de la cual se comenta tienden a calentarse mucho precisando normalmente de un radiador pasivo o si es posible mejor  activo (equipado con un miniventilador).

orange_pi

En cuanto a los sistemas operativos soportados, se encuentran Raspbian, Ubuntu, Debian, Android 4.4 y otras versiones del sistema de Google  descargable desde la pagina oficial .. Todos ellos pueden ser movidos por los chips de Allwinner y el hardware que entregan estas placas SBC (Single Board Computer).

 

Desde la pagina oficial hay una imagen para Android ,pero desgraciadamente no funciona, pero gracias a la comunidad que hay detrás de esta placa  se ha creado una nueva imagen que si es funcional  ,  la cual ademas intenta explotar al máximo el hw de esta placa.

Como el procedimiento de instalación de una imagen Android es ligeramente diferente a una imagen basada en Linux, vamos a ver como crearla.

Para crear la imagen necesitaremos los siguientes  elementos  software:

 

La  instalación de seta nueva ROM es sencilla :

  • Descargar  Android firmware http://sh.st/nJPLZ
  • Descomprimir el archivo con el winrar
  • Inserte una microsd en su PC
  • Abra Phoenix Suite, y seleccione el archivo de imagen que descargó y descomprimimos en los dos primeros pasos
  • Asegúrese que en disK aparece la unidad donde ha metido la sd ( si por error es otra unidad borraría su contenido)
  • Pulse  Format no Normal
  • Espere a que finalice el proceso
  • Chequee ahora el checkbox Startup!
  • Pulse  el boton  Burn!

 

 

phoenix.PNG

  • Tras unos minutos debería ver llegar hasta el final y concluir el proceso

phoenixfin

NOTA: si en este proceso del da  ERROR puede ser por la falta de capacidad  o por el tipo de memoria ( recomendable al menos una microsd HC de  16GB)

 

En la version del firmware  V1.2 incluye:

  • Librerías multimedia actualizadas
  • Actualizado mi librtmp personalizado en Kodi
  • Otras pequeñas …

Registro de cambios V1.1:

  • Todo lo anterior menos el kernel personalizado, no es necesario …
  • Basado en 202k4
  • Root actualizada
  • Busybox actualizado
  • Añadido Nano editor de texto. Abra Terminal y escriba nano
  • Añadido entorno Bash. Abrir terminal y tipo bash
  • Añadido soporte init.d.
  • Otras cosas pequeñas ….

Registro de cambios V1:

  • TWRP 2.8.7.0 (Thks Abdul_pt)
  • Kernel de tronsmart (julio) Configuración personalizada.
  • Xbox360 inalámbrico y soporte de cable.
  • Custom Kodi 14.2 CedarX Hw aceleración del código fuente zidoo (thks zidoo y kodi equipo) limpiar y eliminar todas sus protecciones!
  • ¡Actualizó todas las aplicaciones de Google!
  • Limpia todo lo que el dragón recurso eater spyware crap
  • Se agregaron algunas aplicaciones de preinstalación. Youtube, Terminal, Reboot, Explorador de archivos ES, AdAway …
  • Aumento de los búferes TCP
  • Se ha agregado un Nexus10 build.prop

Plataforma de sensores e-Health V1.0 para Arduino y Raspberry Pi [aplicaciones biométricas / medicina]


En agosto de 2013 Cooking Hacks lanzó la nueva versión del primer escudo biométrica para Arduino y Raspberry Pi: la plataforma  e-Health Sensor. Gracias a la retroalimentación de la comunidad y varios proyectos que han sido creados con esta, han mejorado la plataforma de e-Health con nuevas características tales como:

  • Nuevo sensor de músculo
  • Sensor de presión de la sangre nueva
  • Glucómetro actualizado
  • Nuevas posibilidades de conexión

En este post  vamos a explicar cómo trabajar cplataforma  e-Health Sensor.V2.0.

E-Health Sensor Shield V2.0 permite a los usuarios de Arduino y Raspberry Pi realizar aplicaciones biométricas y médicas donde la supervisión del cuerpo sea necesaria mediante el uso de 10 sensores diferentes: pulso, oxígeno en sangre (SPO2), flujo de aire (respiración), temperatura corporal, Electrocardiograma (ECG), glucómetro, respuesta galvánica de la piel (GSR – sudoración), presión arterial (esfigmomanómetro), posición del paciente (acelerómetro) y sensor de músculo/eletromyography (EMG).

Esta información puede utilizarse para monitorizar en tiempo real el estado de un paciente o para obtener datos sensibles para ser analizados posteriormente para el diagnóstico médico. La información biométrica obtenida puede enviarse sin cables usando cualquiera de las 6 opciones de conectividad: Wi-Fi, 3 G, GPRS, Bluetooth, 802.15.4 y ZigBee dependiendo de la aplicación.

Si para  el diagnóstico de la imagen en tiempo real es necesaria una cámara puede conectarse el módulo 3G para enviar fotos y videos del paciente a un centro de diagnóstico médico.

Los datos pueden enviarse a la nube para almacenamiento permanente o visualizarlos en tiempo real enviando los datos directamente a un ordenador portátil o Smartphone. También  hay desarrollado  varias aplicaciones iPhone y Android  para poder ver fácilmente la información del paciente.

La privacidad es uno de los puntos clave en este tipo de aplicaciones. Por esta razón, la plataforma incluye varios niveles de seguridad:

    • En la capa de enlace de comunicación: AES 128 para 802.14.5 / ZigBee y WPA2 para Wifi.
    • En la capa de aplicación: mediante el protocolo HTTPS (seguro) nos aseguramos de un túnel de seguridad de punto a punto entre cada nodo de sensor y el servidor web (este es el mismo método utilizado en las transferencias bancarias).

e-Health protector del Sensor sobre Arduino (izquierda) frambuesa Pi (derecha)

Importante: La plataforma de e-Health Sensor ha sido diseñada por Cooking Hacks (la división de hardware abierto de Libelium) para ayudar a los investigadores, desarrolladores y artistas para medir datos de sensor biométrico para fines de experimentación, diversión y prueba proporcionando una alternativa barata y abierta en comparación con las soluciones propietarias  debido al precio prohibitivo de llas profesionales usadas por el  mercado médico. Precisamente por esta razon, como la plataforma no tiene certificaciones médicas no puede  ser utilizada para monitorizar pacientes críticos que necesitan un control médico preciso o aquellos cuyas condiciones deben medirse con precisión para un diagnóstico profesional ulterior.
Gracias a la comunidad Arduino y Raspberry  Pi ,es  posible  una rápida prueba de concepto y servir de  base de una nueva era de productos médicos de código abierto.

El paquete que vamos a utilizar en este tutorial se basa en la plataforma de Sensor de eHealth de Cooking Hacks. La E-Health protector del Sensor es totalmente compatible con las nuevas y viejas versiones de Arduino USB, Duemilanove y Mega y Rsapberry.

  • 8 sensores médicos no invasiva + 1 invasoras
  • Almacenamiento y uso de las mediciones de glucosa.
  • Monitoreo de señales ECG.
  • Señales de monitorización EMG.
  • Control de flujo de aire del paciente.
  • Control de flujo de aire del paciente.
  • Datos de la temperatura del cuerpo.
  • Medidas de respuesta galvánica de la piel.
  • Detección de la posición del cuerpo.
  • Funciones de pulso y oxígeno.
  • Dispositivo de control de la presión arterial.
  • Múltiples sistemas de visualización de datos.
  • Compatible con todos dispositivos UART.

Características eléctricas:

La placa puede ser alimentada por el PC o por una fuente externa. Algunos de los puertos USB en los ordenadores no son capaces de dar toda la corriente para que el módulo pueda  trabajar, si el módulo tiene problemas cuando funcione, se puede utilizar una fuente externa (12V – 2A) en el Arduino/RasberryPi

El escudo

 

Escudo de e-Health sobre Raspberry Pi

Para conectar el protector del Sensor e-Health para Raspberry Pi es necesario un  adaptador que haga de puente de conexión .

La idea detrás del  puente de conexión Arduino shields es permitir utilizar cualquiera de los escudos, placas y módulos diseñados para Arduino en Raspberry Pi. También incluye la posibilidad de conectar sensores analógicos y digitales, utilizando el mismo pinout de Arduino pero con la potencia y capacidades de Raspberry Pi

La conexión puente es compatible con Raspberry Pi, Raspberry Pi (modelo B +), Raspberry Pi 2 y el Raspberry Pi 3.

Para hacer completa la compatibilidad han creado la biblioteca de arduPi que permite el uso de frambuesa con el mismo código utilizado en Arduino. Para ello, han implementado funciones de conversión de modo que usted puede controlar de la misma manera como en Arduino la entrada-salida interfaces: i2C, SPI, UART, analógica, digital, en Raspberry Pi.

Vamos a resumir lo que podemos hacer con este escudo junto con la biblioteca de arduPi:

ADVERTENCIAS:

  • Los módulos LCD, esfigmomanómetro y comunicación utilizan el puerto UART y no pueden trabajar al mismo tiempo.
  • El glucómetro es ahora compatible con otros dispositivos UART y tiene su propio conector. Pero no puede trabajar con el esfigmomanómetro conectado.
  • El sensor de EMG y el ECG no pueden trabajar al mismo tiempo. Utilizar los puentes integrados en el tablero para utilizar uno u otro
  • Para utilizar el sensor de EMG, usted tiene que tener los puentes en la posición de EMG. Para utilizar el sensor de ECG, usted tiene que tener los puentes en la configuración de ECG.

El escudo

Versión 2 del escudo:

  • Esta versión incluye un conmutador Digital para activar/desactivar la toma de corriente para módulos inalámbricos usando GPIO23 (Digital Pin 3).

Versión 1 del escudo:

  • 8 pines digitales.
  • Conector para módulos inalámbricos.
  • Pernos de RX/TX.
  • pasadores de i2C (SDA, SCL).
  • Pasadores de SPI (SCK MISO, MOSI, CS). Puede utilizarse también como GPIO.
  • 8 canales convertidor analógico a digital.
  • Interruptor para activar la fuente de alimentación externa.

 La biblioteca: arduPi

arduPi es una librería C++ que permite escribir programas para Raspberry Pi como si estuvieras escribiendo un programa de arduino. Todas las funciones para el control de comunicaciones del puerto serie, i2C, SPI y GPIO pins están disponibles mediante la sintaxis de arduino.

arduPi ha sido probado en una distribución Raspbian. Para grabar una imagen de Raspbian a la tarjeta SD se pueden descargar los NOOBS aquí y siga estas instrucciones.

Una vez instalado Raspbian, descargue e instale arduPi biblioteca en una carpeta nueva, por ejemplo: “página de inicio/pi/ardupi”

Para Rasberry Pi:

wget http://www.cooking-hacks.com/media/cooking/images/documentation/raspberry_arduino_shield/raspberrypi.zip && unzip raspberrypi.zip && cd cooking/arduPi && chmod +x install_arduPi && ./install_arduPi && rm install_arduPi && cd ../..
Para Raspberry Pi 2 y 3:
wget http://www.cooking-hacks.com/media/cooking/images/documentation/raspberry_arduino_shield/raspberrypi2.zip && unzip raspberrypi2.zip && cd cooking/arduPi && chmod +x install_arduPi && ./install_arduPi && rm install_arduPi && cd ../..

Descargar arduPi biblioteca para Raspberry Pi

Descargar biblioteca de arduPi de frambuesa Pi 2 y 3

Usted puede encontrar una biblioteca de cambios aquí.

Funciones generales de Arduino:

  • Delay()
  • delayMicroseconds()
  • Millis()
  • pinMode()
  • digitalWrite()
  • digitalRead()
  • analogRead() (en pines de A0 a A7. Ejemplo: analogRead(5) leerá A5)
  • shiftIn()
  • shiftOut()
  • attachInterrupt() *
  • detachInterrupt()

[*] Podemos detectar interrumpe el ascenso y descenso. Cualquier pin digital (de 2 a 13) puede ser utilizado en attachInterrupt(). Por ejemplo, si queremos estar al tanto de eventos de levantamiento en el pin 6 que podemos hacer attachInterrupt(6,function_to_call,RISING).

Biblioteca  serie:

  • available()
  • begin()
  • end()
  • Flush()
  • Peek()
  • Print()
  • println()
  • Read()
  • readBytes()
  • readBytesUntil()
  • Find()
  • findUntil()
  • parseInt()
  • parseFloat()
  • setTimeout()
  • Write()

Biblioteca wire:

  • begin()
  • requestFrom()
  • beginTransmission()
  • endTransmission()
  • Write()
  • Read()

Biblioteca SPI:

  • begin()
  • end()
  • setBitOrder()
  • setClockDivider()
  • setDataMode()
  • Transfer()

Uso de la biblioteca arduPi:

En la carpeta de biblioteca encontrarás 3 archivos: arduPi.cpp, arduPi.h y arduPi_template.cpp
el archivo arduPi_template.cpp está destinado a ser utilizado como punto de partida para crear programas con el mismo comportamiento como un programa de arduino.

Aquí puede ver el código de plantilla:

//Include arduPi library
    #include "arduPi.h"

    /*********************************************************
     *  IF YOUR ARDUINO CODE HAS OTHER FUNCTIONS APART FROM  *
     *  setup() AND loop() YOU MUST DECLARE THEM HERE        *
     * *******************************************************/

    /**************************
     * YOUR ARDUINO CODE HERE *
     * ************************/

    int main (){
        setup();
        while(1){
            loop();
        }
        return (0);
    }

Como se puede ver en la función main() la función setup() es llamada una vez y luego la función loop() se llama contínuamente hasta que el programa se ve obligado a terminar.

Ya sea si están empezando a escribir un nuevo programa, o si usted tiene un programa de arduino escrito que utiliza las funciones portadas puede utilizar la plantilla (ardupi_template.cpp) y poner el código de arduino donde dice: el código de ARDUINO aquí. Recuerde que el programa que está escribiendo un programa C++ para que todas las bibliotecas de C++ pueden utilizarse.

También recordar, como se puede leer en la plantilla que si el código de arduino utiliza otras funciones setup() y loop() debe declararlos en el área indicada.

 Habilitación de Interfaces:

Los siguientes pasos han sido probados con Raspbian Jessie: 4.4.9 (Linux versión 4.4.9-v7+ ([email protected]) (gcc versión 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #884 SMP el viernes 6 de mayo 17:28:59 BST 2016)

Raspberry Pi 2:

  • Abrir un terminal en la Raspberry Pi, o conecte al Raspberry Pi a través de SSH.
  • Abra el archivo /boot/config.txt: sudo nano /boot/config.txt
  • Agregue las líneas siguientes al archivo:
#enable uart interface
enable_uart=1

#enable spi interface
dtparam=spi=on

#enable i2c interface
dtparam=i2c_arm=on
  • Presione CTRL + X para salir y guardar el archivo.
  • Actualizar el sistema operativo con los últimos parches.
sudo apt-get update
sudo apt-get upgrade
  • Reiniciar la Raspberry Pi.
sudo reboot

Raspberry Pi 3:

  • Abrir un terminal en la Raspberry Pi, o conecte al Raspberry Pi a través de SSH.
  • Abra el /boot/config.txt archivo <:sudo nano /boot/config.txt
  • Agregue las líneas siguientes al archivo:
#map mini-UART to internal bluetooth an free-up main UART to handle CookingHacks modules
dtoverlay=pi3-miniuart-bt

#enable uart interface
enable_uart=1

#enable spi interface
dtparam=spi=on

#enable i2c interface
dtparam=i2c_arm=on
  •  Presione CTRL + X para salir y guardar el archivo.
  • Abra el archivo /boot/cmdline.txt:sudo nano /boot/cmdline.txt
  • Este archivo contiene algo similar a esto (el contenido puede variar):
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
  • Eliminar los parámetros que hacen referencia al puerto serie UART (ttyAMA0):
dwc_otg.lpm_enable=0  console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait ip=192.168.1.160:::255.255.255.0
  • Presione CTRL + X para salir y guardar el archivo.
  • Actualizar el sistema operativo con los últimos parches.
sudo apt-get update
sudo apt-get upgrade
  • Reiniciar la Raspberry Pi.
sudo reboot
    

Ejecución de su programa

Para ejecutar el programa debe tener los permisos adecuados para utilizar GPIO (/ dev/mem debe accederse en la frambuesa). Puede ejecutar el programa con sudo:

sudo ./MY_PROGRAM

 Circuitos básicos.

ADVERTENCIA: los niveles de voltaje GPIO 3.3 V y no 5 V tolerantes. No hay ninguna protección de sobretensión en el tablero. Entradas digitales utilizan un nivel de lógica de 3V3 y no son tolerantes de niveles 5V, como se podría encontrar en un Arduino 5V alimentado.Tenga extrema precaución cuando trabaje con GPIO, puede dañar su Raspberry Pi, su equipo y potencialmente a sí mismo y otros. Si lo hace es bajo su propio riesgo!

4.1 GPIO de entrada

Periféricos GPIO varían bastante. En algunos casos, son muy simples, por ejemplo un grupo de pines pueden activarse como un grupo a la entrada o salida. Los voltajes de entrada y de salida son por lo general limitado a la   tensión de alimentación del dispositivo con los GPIOs por lo que pueden resultar dañados por una mayor tensión.

Algunos GPIOs tienen 5 entradas tolerantes V: incluso en los voltajes de la fuente baja, el dispositivo puede aceptar 5V sin daño.

Para Raspberry Pi, presentamos un ejemplo de cómo adaptar el nivel de voltaje de una medida de sensor de 5V para evitar posibles daños.

Componentes para este ejemplos y circuito de adaptación de tensión pueden fundados en el Starter Kit para Raspberry Pi.

Cuando un pin GPIO se configura como una entrada con un ejemplo de botón básico, podemos tener estos problemas de incompatibilidad de voltajes.

Este circuito es malo porque cuando usted presiona el botón de la entrada GPIO está conectada a 5 voltios, por lo tanto nuestro dispositivo puede dañarse.

Sin embargo, esto puede evitarse utilizando simplemente una resistencia en el cable del pulsador. El valor de la resistencia se determina por la corriente de la salida de los pines GPIO (la corriente por el circuito solía para leer el pin) y la cantidad de caída de voltaje que crea como resultado de ello. Con el resistor de 5K se obtiene 3, 3V en lo GPIO de entrada.

Vgpio = 5V· (10K/(10K+5K)) = 3, 3V

 medición del Sensor GPIO

Tenemos el mismo problema si utilizamos un sensor funcionando a 5 voltios.

Aquí está un ejemplo usando un sensor PIR.

Como se muestra en la imagen, utilizamos el mismo divisor resistivo utilizado para adaptar el nivel de tensión.

 ADC.

El escudo incluye a un ADC de 12b de la resolución que permite para conectar cualquier sensor a frambuesa con mayor precisión que Arduino. La comunicación entre la Raspberry Pi  y el ADC del escudo se realiza vía i2C.

La información de cada canal se puede obtener dos bytes de lectura de i2C, pero previamente un byte (que corresponde a la dirección de canal) debe enviar a través de i2C dependiendo del canal que queremos seleccionar. Aquí está una lista con las direcciones de canal:

Canal Dirección
0 0xDC
1 0x9C
2 0xCC
3 0x8C
4 0xAC
5 0xEC
6 0xBC
7 0xFC

Veremos un ejemplo de un programa que lee cada canal continuamente esperando 5 segundos entre repeticiones.

Con un cable de conexión el pin de 5V con algunos de los pines del ADC un valor cerca de 5.000000 debe leerse.

Todos los ejemplos en esta guía utilizan la biblioteca arduPi

//Include arduPi library 
#include "arduPi.h" 

char selected_channel[1];
char read_values[4];

int channel_0 = 0; 
int channel_1 = 0; 
int channel_2 = 0; 
int channel_3 = 0; 
int channel_4 = 0; 
int channel_5 = 0; 
int channel_6 = 0; 
int channel_7 = 0; 

float analog_0 = 0.0; 
float analog_1 = 0.0; 
float analog_2 = 0.0; 
float analog_3 = 0.0; 
float analog_4 = 0.0; 
float analog_5 = 0.0; 
float analog_6 = 0.0; 
float analog_7 = 0.0; 

void setup() 
{ 
  Wire.begin(); // join i2C bus (address optional for master) 
} 

void loop() 
{ 
  // channel 0 
  Wire.beginTransmission(8); 
  selected_channel[0] = 0xDC;
  Wire.read_rs(selected_channel, read_values, 2);
  Wire.read_rs(selected_channel, read_values, 2);
  channel_0 = int(read_values[0])*16 + int(read_values[1]>>4); 
  analog_0 = channel_0 * 5.0 / 4095.0;
  printf("Channel 0:\n");
  printf("Digital value = %d / Analog value = %fV\n\n", channel_0, analog_0); 


  // channel 1 
  Wire.beginTransmission(8); 
  selected_channel[0] = 0x9C;
  Wire.read_rs(selected_channel, read_values, 2);
  Wire.read_rs(selected_channel, read_values, 2);
  channel_1 = int(read_values[0])*16 + int(read_values[1]>>4); 
  analog_1 = channel_1 * 5.0 / 4095.0;
  printf("Channel 1:\n");
  printf("Digital value = %d / Analog value = %fV\n\n", channel_1, analog_1); 
  
 
  // channel 2 
  Wire.beginTransmission(8); 
  selected_channel[0] = 0xCC;
  Wire.read_rs(selected_channel, read_values, 2);
  Wire.read_rs(selected_channel, read_values, 2);
  channel_2 = int(read_values[0])*16 + int(read_values[1]>>4); 
  analog_2 = channel_2 * 5.0 / 4095.0;
  printf("Channel 2:\n");
  printf("Digital value = %d / Analog value = %fV\n\n", channel_2, analog_2); 
  
  
  // channel 3 
  Wire.beginTransmission(8); 
  selected_channel[0] = 0x8C;
  Wire.read_rs(selected_channel, read_values, 2);
  Wire.read_rs(selected_channel, read_values, 2);
  channel_3 = int(read_values[0])*16 + int(read_values[1]>>4); 
  analog_3 = channel_3 * 5.0 / 4095.0; 
  printf("Channel 3:\n");
  printf("Digital value = %d / Analog value = %fV\n\n", channel_3, analog_3); 
  
  
  // channel 4 
  Wire.beginTransmission(8); 
  selected_channel[0] = 0xAC;
  Wire.read_rs(selected_channel, read_values, 2);
  Wire.read_rs(selected_channel, read_values, 2);
  channel_4 = int(read_values[0])*16 + int(read_values[1]>>4); 
  analog_4 = channel_4 * 5.0 / 4095.0; 
  printf("Channel 4 (vertical header):\n");
  printf("Digital value = %d / Analog value = %fV\n\n", channel_4, analog_4); 
  
  
  // channel 5 
  Wire.beginTransmission(8); 
  selected_channel[0] = 0xEC;
  Wire.read_rs(selected_channel, read_values, 2);
  Wire.read_rs(selected_channel, read_values, 2);
  channel_5 = int(read_values[0])*16 + int(read_values[1]>>4); 
  analog_5 = channel_5 * 5.0 / 4095.0; 
  printf("Channel 5 (vertical header):\n");
  printf("Digital value = %d / Analog value = %fV\n\n", channel_5, analog_5); 
  
  
  // channel 6 
  Wire.beginTransmission(8); 
  selected_channel[0] = 0xBC;
  Wire.read_rs(selected_channel, read_values, 2);
  Wire.read_rs(selected_channel, read_values, 2);
  channel_6 = int(read_values[0])*16 + int(read_values[1]>>4); 
  analog_6 = channel_6 * 5.0 / 4095.0; 
  printf("Channel 6 (vertical header):\n");
  printf("Digital value = %d / Analog value = %fV\n\n", channel_6, analog_6); 
  
  
  // channel 7 
  Wire.beginTransmission(8); 
  selected_channel[0] = 0xFC;
  Wire.read_rs(selected_channel, read_values, 2);
  Wire.read_rs(selected_channel, read_values, 2);
  channel_7 = int(read_values[0])*16 + int(read_values[1]>>4); 
  analog_7 = channel_7 * 5.0 / 4095.0;
  printf("Channel 7 (vertical header):\n");
  printf("Digital value = %d / Analog value = %fV\n\n", channel_7, analog_7); 
  
  
  printf("***********************************\n"); 



  delay(1000); 

} 


int main (){ 
    setup(); 
    while(1){ 
        loop(); 
    } 
    return (0); 
}
                

Aquí está la salida de este programa que se conecta al pin de 5V de la Raspberry  Pia la entrada analógica 0:

UART.

Acceso al UART con arduPi biblioteca es tan simple como hacerlo con Arduino.

Necesita incluir arduPi.h en el código y crear una instancia de clase SerialPi nombrarlo serie.

Nombre de la instancia como serie le permite utilizar la sintaxis de arduino. (Todo esto está ya hecho si utilizas la plantilla proporcionada para crear sus programas).

Las funciones disponibles son:

  • Serial.Available()
  • Serial.Begin()
  • Serial.end()
  • Serial.Flush()
  • Serial.Peek()
  • Serial.Print()
  • Serial.println()
  • Serial.Read()
  • Serial.readBytes()
  • Serial.readBytesUntil()
  • Serial.Find()
  • Serial.findUntil()
  • Serial.parseInt()
  • Serial.parseFloat()
  • Serial.setTimeout()
  • Serial.Write()

Todas estas funciones tienen la misma funcionalidad que el arduino unos. Puede encontrar más información en:http://Arduino.CC/en/Reference/serial

Un ejemplo de código que se pueden encontrar en el tutorial de frambuesa Pi XBee acess el UART

 i2C.

Un ejemplo de uso de i2C puede encontrarse en la sección de ADC .

Aquí mostramos otro ejemplo usando lo BlinkM RGB i2C controlado dirigido.

BlinkM utiliza una alta calidad, poder más elevado LED RGB y un pequeño Microcontrolador AVR para permitir que un usuario de una interfaz i2C simple digital control de un LED RGB.

En el ejemplo vamos a cambiar el color led usando fade transiciones y también cambiando directamente. Más información sobre lo LED y los comandos que podemos enviar a él puede encontrarse en la hoja de datos.

Conectar la clavija (-) del led con el pin GND del escudo.

Conecta (+) del pin del led con el pin de 5V de la pantalla.

Conectar la clavija d del led con el pin SDA del escudo.

Conectar la clavija c del led con el pin SCL del escudo.

Aquí está el código:

/*  
 *  Raspberry Pi to Arduino Shields Connection Bridge
 *  
 *  Copyright (C) Libelium Comunicaciones Distribuidas S.L. 
 *  http://www.libelium.com 
 *  
 *  This program is free software: you can redistribute it and/or modify 
 *  it under the terms of the GNU General Public License as published by 
 *  the Free Software Foundation, either version 3 of the License, or 
 *  (at your option) any later version. 
 *  a
 *  This program is distributed in the hope that it will be useful, 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License 
 *  along with this program.  If not, see http://www.gnu.org/licenses/. 
 *  
 *  Version:           2.0
 *  Design:            David Gascón 
 *  Implementation:    Jorge Casanova & Luis Martín
 */


//Include arduPi library
#include "arduPi.h"


void setup(){
    Wire.begin();
    Wire.beginTransmission(9);
    Wire.write('o'); //End the current Light script
    Wire.endTransmission();
}

void loop(){
    for (int i=0;i < 5;i++){
        Wire.beginTransmission(9);
        Wire.write('n'); //Change to color
        Wire.write(byte(0xff)); //Red component
        Wire.write(byte(0x00)); //Green component
        Wire.write(byte(0x00)); //Blue component
        Wire.endTransmission();

        delay(500);
        
        Wire.beginTransmission(9);
        Wire.write('n'); //Change to color
        Wire.write(byte(0x00)); //Red component
        Wire.write(byte(0x00)); //Green component
        Wire.write(byte(0xff)); //Blue component
        Wire.endTransmission();
        
        delay(500);
    }
    
    for (int i=0;i < 10;i++){
        Wire.beginTransmission(9);
        Wire.write('c'); //Fade to color
        Wire.write(byte(0xff)); //Red component
        Wire.write(byte(0x00)); //Green component
        Wire.write(byte(0x5a)); //Blue component
        Wire.endTransmission();

        delay(150);
        
        Wire.beginTransmission(9);
        Wire.write('c'); //Fade to color
        Wire.write(byte(0x55)); //Red component
        Wire.write(byte(0x20)); //Green component
        Wire.write(byte(0x5a)); //Blue component
        Wire.endTransmission();

        delay(150);
    }
}

int main (){
    setup();
    while(1){
        loop();
    }
    return (0);
}

Este código alternativo de rojo a azul cinco veces y luego hacer unas transiciones suaves entre colores violáceos.

 SPI.

Es posible comunicar con dispositivos SPI usando las funciones arduPi.

En este ejemplo utilizamos las funciones SPI para imprimir mensajes en la ST7920 LCD12864 (LCD SPI)

En primer lugar, tenemos que poner el interruptor de la pantalla LCD en modo SPI.

Ahora procedemos con la conexión entre el LCD y el Raspberry Pi a arduino shield:

VCC de la LCD a 5v del escudo

GND de la LCD a GND del escudo

SCK de lo LCD a SCK del escudo

SID de la LCD a MOSI del escudo

CS de la pantalla LCD al pin 8 del escudo

Como puedes ver estamos utilizando el número pin 8 del escudo frambuesa Pi como chip select. Así que cuando tenemos que seleccionar la pantalla LCD como el dispositivo de destino para la comunicación SPI tenemos poner el pin 8 a alta.

Aquí está el código

/*  
 *  Raspberry Pi to Arduino Shields Connection Bridge
 *  
 *  Copyright (C) Libelium Comunicaciones Distribuidas S.L. 
 *  http://www.libelium.com 
 *  
 *  This program is free software: you can redistribute it and/or modify 
 *  it under the terms of the GNU General Public License as published by 
 *  the Free Software Foundation, either version 3 of the License, or 
 *  (at your option) any later version. 
 *  a
 *  This program is distributed in the hope that it will be useful, 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License 
 *  along with this program.  If not, see http://www.gnu.org/licenses/. 
 *  
 *  Version:           2.0
 *  Design:            David Gascón 
 *  Implementation:    Jorge Casanova & Luis Martín
 */

//Include arduPi library
#include "arduPi.h"

int latchPin = 8;
unsigned char char1[]=" Cooking Hacks  ";
unsigned char char2[]="  SPI LCD for   ";
unsigned char char3[]="  Raspberry Pi  ";

void initialise();
void displayString(int X,int Y,unsigned char *ptr,int dat);
void writeCommand(int CMD);
void writeData(int CMD);
void writeByte(int dat);
void clear();

void setup(){
    SPI.begin();
    SPI.setBitOrder(MSBFIRST);
    SPI.setDataMode(SPI_MODE0);
    SPI.setClockDivider(SPI_CLOCK_DIV128);

    initialise();
}

void loop(){
    displayString(0,0,char1,16);
    delay(2000);
    clear();
    displayString(1,0,char2,16);
    displayString(2,0,char3,16);
    delay(2000);
    clear();
}

void initialise(){
    pinMode(latchPin, OUTPUT);     
    digitalWrite(latchPin, LOW);

    delayMicroseconds(80);

    writeCommand(0x30);
    writeCommand(0x0c);
    writeCommand(0x01);
    writeCommand(0x06);
}


void displayString(int X,int Y,unsigned char *ptr,int dat){
    int i;

    switch(X){
        case 0:  Y|=0x80;break;

        case 1:  Y|=0x90;break;

        case 2:  Y|=0x88;break;

        case 3:  Y|=0x98;break;

        default: break;
    }

    writeCommand(Y);

    for(i=0;i < dat;i++){ 
        writeData(ptr[i]);
    }

}

void writeCommand(int CMD){
    int H_data,L_data;
    H_data = CMD;
    H_data &= 0xf0;
    L_data = CMD;
    L_data &= 0x0f;
    L_data <<= 4;
    writeByte(0xf8);
    writeByte(H_data);
    writeByte(L_data);
}

void writeData(int CMD){
    int H_data,L_data;
    H_data = CMD;
    H_data &= 0xf0;
    L_data = CMD;
    L_data &= 0x0f;
    L_data <<= 4;
    writeByte(0xfa);
    writeByte(H_data);
    writeByte(L_data);
}

void writeByte(int dat){
    digitalWrite(latchPin, HIGH);
    delayMicroseconds(80);
    SPI.transfer(dat);
    digitalWrite(latchPin, LOW);
}

void clear(){
    writeCommand(0x30);
    writeCommand(0x01);
}


int main (){
    setup();
    while(1){
        loop();
    }
    return (0);
}

Este programa mostrará los mensajes “Cooking Hacks” y “SPI LCD para Raspberry Pi” con un retraso de 2 segundos en el medio.

 Mas ayuda

Se puede obtener ayuda en la sección específica creada en este  foro.

Fuente cooking-hacks