Servidor para impresora 3d con Orange Pi PC


 

orangepi

 

 

 

En esta ocasión usaremos  la Orange Pi PC  para quitarnos el engorro de tener que colocar los modelos 3D en la tarjeta microsd cada vez que queramos imprimir o pasar a enviarlo por cable,

Asimismo el sw que vamos a instalar  trae otras utilidades como la de poder ver en tiempo real como va nuestra impresión desde cualquier lado gracias a una webcam que podemos conectarle, ver información y configuración de la impresora y de la impresión, que la impresora se apague sola cuando acabe de imprimir e incluso podemos hacer todas estas operaciones  desde nuestro teléfono móvil entre otras muchas opciones.

Antes de nada debemos  primero instalar un sistema operativo a  la Orange Pi PC , después accederemos por red a la misma,le  haremos una configuración básica, y luego le instalaremos el programa Octoprint (programa para manejar la impresora 3D de forma remota) que el sw que se encargara de toda la gestión con la impresora 3d

 

 

 

 

 

 

Shenzhen Xunlong dispone de la  placa Orange Pi PC ( y muchas variantes mas )  muy similares  em eencia  a la Raspberry Pi  pero con un coste   bastante inferior   siendo ademas abiertas y hackeables. Esta 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.

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,

Sobre diferencias respecto  a la 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

 

INSTALACION DE  UN SISTEMA OPERATIVO A LA ORANGE PI

Como la Orange Pi PC viene vacía tendremos que instalare un sistema operativo que la controle.

Nosotros usaremos el recomendado por el fabricante (armbian)  por lo que   también necesitaremos una microsd a poder ser de más de 8gb , el programa “SD Card Formatter” para formatear la microsd y el programa “Win32 Diskimager” para instalarle la imagen del armbian.

Los pasos a seguir son los siguientes:

  1.  Accedemos en un pc cualquiera con windows a la web de “armbian” y descargamos la última versión disponible:  https://www.armbian.com/orange-pi-pc/ (pincharemos en la descarga de  “Debian server”).armbian.png
  2. Si no lo tenemos instalado ,descargamos e instalamos el programa “SD Card Formatter” de:https://www.sdcard.org/downloads/formatter_4/eula_windows/
  3. Si no lo tenemos instalado ,descargamos el programa “Win32 Diskimager” de:
    https://sourceforge.net/projects/win32diskimager/files/Archive/
  4. Conectamos una microsd a nuestro pc Windows mediante un adaptador o lector de tarjetas.
  5.  Instalamos y ejecutamos “SD Card Formatter“, donde pone “Drive” deberá aparecer la letra de la unidad que representa a la microsd .Importamte :No hace falta mencionar que es muy importante asegurarse de que haber seleccionado la unidad donde esta conectada la microsd antes de continuar y no otra unidad pues obviamente se  va  borrar todo su contenido
  6. Pulsaremos en “Option” y donde pone “FORMAT SIZE ADJUSTMENT” seleccionaremos la opción “ON” para que la partición ocupe toda la microsd y  después le damos a “Format” y esperamos.
  7. Al  descargar la imagen de Debian el fichero viene comprimido en un fichero .7z, asi que debe descomprimirlo con el  programa  7zip  que  es gratuito  y open sw .Si no lo tiene instalado ,puede descargarlo desde http://www.7-zip.org/ 7zip.png
  8. Ahora instalamos y ejecutamos “Win32 Diskimager”
  9. Donde ponga “Image file” debemos cargar el archivo de armbian .img que  hemos descomprimido con el 7zip en el paso anterior  y donde pone “Device” debemos asegurarnos de nuevo que es la letra que representa nuestra microsd y luego pulsamos “Write“y esperamos.     
  10. Ya hemos acabado el proceso de instalación del sistema operativo en la Orange Pi PC . Ahora debemos quitar la microsd de nuestro ordenador e introducirla en su ranura/zócalo correspondiente de la Orange Pi PC

 

ACCEDIENDO A LA ORANGE PI PC POR RED LOCAL

Para acceder a la Orange Pi de forma remota tendremos que realizar los siguientes pasos:

1- Tenemos que conectar la Orange Pi a nuestro router con un cable de red ethernet y alimentarla con +5VDC.
2-En en nuestro ordenador tenemos que descargar un cliente SSH para
conectarnos  a la Orange Pi  como por ejemplo  el programa “Putty” que podemos descargar de:http://www.putty.org/
3-  Para usar el “Putty” lo único que hay que hacer es colocar la dirección IP que tiene la Orange Pi PC en nuestra red local donde pone “Host Name (or IP ADDRESS)” y luego pulsar en “Open” para acceder a la Orange Pi  para eso primero necesitamos saber la IP de la misma.

4-Una forma muy sencilla de obtener la IP de la Orange Pi PC es instalar el programa Fing en nuestro smartphone Android (debe estar conectado por wifi a nuestra misma red )

5 – Ya tenemos la IP de la Orange Pi que era lo que nos hacía falta para acceder a ella por SSH, ahora abrimos el “Putty” y donde pone “Host Name (or IP ADDRESS)” pegamos la IP y le damos a “Open”. Se nos abrirá una consola desde donde a partir de ahora interactuaremos con la Orange Pi

6- Lo primero que te pide es el usuario administrador para acceder al sistema, por defecto en “Armbian” es: root (lo escribimos y pulsamos enter). A continuación nos pedirá una contraseña; por defecto es:1234

7 – A continuación volverá a pedirá que cambie la contraseña del usuario root, primero introducimos la contraseña actual de nuevo:1234   y después introducimos la nueva contraseña larga de al menos 8 caracteres  y la repetimos para confirmar ( esta sera la nueva  contraseña  que tendra que usar para acceder a partir de ahora)

8- Para acabar el primer acceso nos pedirá que creemos un nuevo usuario, escribimos el
nombre que queramos y pulsamos enter. A continuación nos preguntará información que podemos dejar en blanco pulsando enter hasta que nos pregunte si queremos guardar el usuario, pulsamos la tecla Y (de yes) y luego enter y ya hemos acabado con el apartado de acceso a orange pi PC

CONFIGURACIÓN BÁSICA DE LA ORANGE PI PC

Ahora vamos a hacer una configuración básica para instalarle el Octoprint después.

  1. – Para empezar  lo mejor es reiniciar el sistema con:
    sudo reboot (cuando introduzca el omando el “Putty” se cerrará).
  2.  Esperamos a que se reinicie la Orange Pi y volvemos a abrir el “Putty” y a colocar la IP de la Orange Pi  para conectarnos de nuevo con el usuario root y con la nueva contraseña
  3.  Ahora nos movemos a la carpeta sources.list.d con el comando:
    cd /etc/apt/sources.list.d/
  4.  Aquí vamos a añadir un nuevo repositorio a la Orange Pi para que pueda descargar paquetes para sus programas cuando le haga falta, para eso tenemos que crear un archivo con el programa nano (el “block de notas” de linux xD) con el comando:sudo nano raspbian.list
  5. Se abrirá una nueva pantalla donde deberás pegar la siguiente línea:deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free
  6.  Una vez hayas pegado la línea pulsa Ctrl + X, luego pulsa la letra Y y luego e al enter y Ctrl+x para salir del editor.
  7. – Una vez añadido  solo para el caso de otras placas con WIFI(por ejemplo la Orange Pi ZERO)  ,la IP con la que accedemos a la Orange Pi  se la ha dado tu router de forma dinámica/automática lo cual  quiere decir que en alguna ocasión podría cambiar y esto no es práctico a la hora de usar el Octoprint, por lo tanto tendreiamos  que ponerle una IP fija y única que no cambie tanto para el acceso de la Orange Pi  por cable de red.Para eso  usariamos el comando llamao “nmtui”, para ello ponemos:sudo apt-get install NetworkManager-tui   sudo apt-get install nmtui .  Riniciarimos la red y luego el sistema (lo cual nos cerrará el “Putty”) con:
    sudo /etc/init.d/networking restart  sudo reboot
  8. Ahora  revisamos si necesita instalar algún paquete nuevo y reiniciamos con:

sudo apt-get update
sudo apt-get upgrade
sudo reboot
PD: Es posible que en algún momento de alguna instalación se pare y te pregunte si quieres continuar por seguridad, pulsa la tecla Y y luego enter para continuar.

 

 

INSTALACIÓN DE OCTOPRINT EN LA ORANGE PI

Ahora y por último vamos a instalar el programa Octoprint a nuestra Orange Pi , para ello:

  1.  Primero creamos un usuario llamado octoprint y le ponemos los privilegios necesarios con:
    sudo adduser octoprint
    sudo usermod -a -G tty octoprint
    sudo usermod -a -G dialout octoprint
    sudo adduser octoprint sudo
  2. Ahora ejecutamos el siguiente comando para editar el privilegio de administración del usuario octoprint:
    sudo visudo
  3. Se nos abrirá un archivo en el que tenemos que copiar y pegar la siguiente línea al final de todo el documento:
    octoprint ALL=(ALL) NOPASSWD:ALL
    Una vez haya pegado la línea pulsa Ctrl + X, luego pulsa la letra Y y Enter. Para salir del editor usaremos Ctrl+x
  4. Ahora quitamos la contraseña del usuario Octoprint con privilegios con el siguiente
    comando e instalamos todos los paquetes y actualizaciones necesarias para el octoprint:
    sudo passwd octoprint -d
    sudo apt-get install python-pip python-dev g
  5. Vamos a la carpeta raíz de este usuario con:
    cd ~
  6. Instalamos de nuevo paquetes necesarios para el octoprint usando por orden estos
    comandos:
    wget https://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz
    tar -zxf pyserial-2.7.tar.gz
    cd pyserial-2.7
    sudo python setup.py install
    sudo apt-get update
    sudo apt-get upgrade
  7.  Ahora el paso definitivo para instalar el octoprint, usaremos por orden estos comandos para su instalación:
    cd ~
    git clone https://github.com/foosel/OctoPrint.git
    cd OctoPrint
    sudo python setup.py install
  8.  Ya tenemos instalado el octoprint, lo único que tendríamos que hacer para iniciarlo es usar el comando:
    Octoprint

Lamentablemente  ocurre una cosa: cuando apaguemos la Orange Pi y la volvamos a encender el octoprint estará apagado, así que lo que podemos hacer por comodidad es crear un script para  hacer que se inicie automáticamente el octoprint cuando encendamos la Orange Pi :

  1.  Nos logeamos como superusuario con:
    sudo su
  2.  Vamos a la raíz y creamos un archivo llamado octoprint.sh con:
    cd ~
    sudo nano octoprint.sh
  3. Ahora se nos abrirá un archivo vacío en el que tenemos que pegar las siguientes líneas (tiene que quedar tal cual):
    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides: octoprint
    # Required-Start: $syslog
    # Required-Stop: $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: octoprint
    # Description:
    #
    ### END INIT INFO
    su octoprint -c ‘octoprint’
  4. Después pulsamos Ctrl + X, luego pulse la letra Y , Enter y nuevamente Ctrl+x para salir del editor.
  5. Ahora le damos permisos de ejecución y lo copiamos a la carpeta de inicio de armbian:
    sudo chmod +x octoprint.sh
    sudo cp octoprint.sh /etc/init.d/
  6. Nos movemos a la carpeta y convertimos el script en un daemon (proceso de linux) para que se inicie con la Orange Pi:
    cd /etc/init.d/
    sudo update-rc.d octoprint.sh defaults
  7.  Ahora lo único que tenemos que hacer es reiniciar: (se cerrará el Putty)
    sudo reboot
  8. ¡¡Ya está terminado !! lo que tenemos que hacer ahora es alimentar  la Orange Pi   y sin hacer nada debería  conectarse a la red  e iniciar el octoprint.
  9. Esperaramos un poco a que cargue y a continuación en nuestro ordenador  abrimos un navegador  colocamos en la dirección url la ip  de la Orange Pi  (en mi caso 192.168.1.57 ) seguido del puerto :5000 y ya podremos acceder al ¡¡Octoprint!!

 

Primeros pasos con Ocoprint

  1. Una vez accedamos a la url  del octoprint , solo tenemos  que logearnos con el usuario octoprint, y configurar vuestra impresora 3D  en nuestro perfil.
  2. Empezara el asistente solicitándonos un usuario para    conectarnos desde nuestra red( y fuera )accesscontrol.png
  3. Si la verificación de conectividad está activada, OctoPrint verificará regularmente si está conectada a Internet. Esto es útil para evitar operaciones intensivas en recursos (como la búsqueda de actualizaciones) si ya está claro que no tendrán éxito de ninguna manera.

    Si está deshabilitado, OctoPrint siempre asumirá que tiene una conexión activa a Internet. Si ese no debería ser el caso, los inicios del servidor, las comprobaciones de actualización y similares podrían demorar más. Es muy interesante por tanto  comprobar la conectividad mediante el botón Test host & port   y después Enable Conectivity Chck antes de darle a continuar (Next)conectividad.png

  4. Para protegerse contra problemas graves conocidos con ciertas versiones de plugins de terceros, OctoPrint admite el uso de una lista negra de plugins centralizados para deshabilitar automáticamente dichas versiones de plugins antes de que puedan interferir con el funcionamiento normal, lo que le permite desinstalarlos o actualizarlos a una versión más nueva.De forma predeterminada, OctoPrint utilizará la lista negra alojada en plugins.octoprint.org/blacklist.json, que también puede ver en un formato legible más humano aquí.Por taantp hay que decidir si permite o no buscar y usar esta lista negra centralizada comenzando con el próximo inicio del servidor. También puede cambiar su decisión en cualquier momento a través de Configuración> Servidor desde OctoPrint.blacklist
  5. Toca configurar CuraEngine.La ruta de acceso a CuraEngine aún no se ha configurado, para poder usar CuraEngine para cortar debe especificarse.
  6. Descargue en su navegador y cópielo en una carpeta de su Pi, por ejemplo, a través de SSH o descárguelo en su Pi:                                                                                                      wget http://octoprint.org/files/octopi/cura_engine_14.12/cura_engine
  7. Hacer ejecutable: chmod + x /root / cura_engine
  8. Pruebe si se ejecuta: / root / cura_engine –help
  9. Configure / path / to / cura_engine como la ruta a CuraEngine en el complemento de Octocure Cura
  10. Ya hemos finalizado la instalación del octoprint, solo tenemos que apagarlo todo conectar nuestra impresora 3D con nuestra Orange Pi  mediante USB y encenderlo todo.

En este vídeo podemos ver este excelente programa  usando una Orange pi  comos servidor de impesión 3d y  su operativa básica para empezar a trabajar desde este entorno de red:

 

Todo el proceso de instalación del OctoPrint aquí explicado sirve igualmente para otras placas similares a la Orange Pi  con o  sin wifi  como es la Raspberry Pi  Zero o similares.  En el caso de disponer de una Raspberry Pi 3 el proceso puede sera un mas sencillo pues existe una distribución llamada Octopi  con todo preinstalado  así que no es necesario instalar nada (lo puede descargar desde https://octoprint.org/download/)
En próximos post    hablaremos  como configurar el octoprint con su impresora, como instalarle una webcam para ver a tiempo real el proceso, como vincular Octoprint con aplicaciones externas y móviles, como hacer que octoprint apague la impresora automáticamente cuando acabe de imprimir, así  como acceder desde cualquier parte del mundo a su Octoprint.

Anuncios

Monitor portatil casero


En este proyecto realizado   por  GreatScottlab  podemos ver   cómo utilizar  un LCD KIt de  1280 x 800  para construir un  mini -monitor  autoalimentado   por baterías, el cual  puede ser útil  para una cámara DSLR, como pantalla para la Raspberry Pi o simplemente para ampliar el campo de visión del ordenador.

Realmente la idea del circuito no  es mala porque no es habitual encontrar en el mercado  monitores alimentados a batería que puedan servir para nuestra Raspberry PI así que veamos como lo ha construido

A continuación  la lista de materiales usados por GreatScottlab :

  • 1 x 1280 x 800 LCD Kit
  • 5 x pulsadores táctiles:
  • 1 x 5mm verde y rojo:
  • 1 x interruptor
  • 1 cargador de celular solo x TP4056: Se puede comprar en Amazon por  unos 6€
  • 1 x XL6009 convertidor: Se puede compra en Amazon por menos de 5€ 
  • Baterías de ion de litio 2 x 18650 2800mAh.
  • 1 x trípode.
  • 1 x Mini trípode

 

El kit lcd

El proyecto  gira  en torno a  un  kit del módulo de pantalla lcd 10.1 pulgadas  y resolución 1280 * 800  especialmente diseñado como monitor para Raspberry PI 3/2 Model B b a +. Raspberry y B+ PI que puede adquirirse en ebay o en portales orientales

En caso de usarlo para la Raspberry Pi se sugiere editar el fichero config.txt para configurar el cable hdmi a la resolución nativa 1280 x 800 en caso de no detecte correctamente la resolución (la forma más fácil de editar el config.txt es poner la tarjeta microsd  de lapi en un ordenador y editar config.txt con cualquier editor de texto y guardar.

Las características del kit del panel son las siguientes:

  • Tamaño del panel: 10.1″
  • Resolución (rgb): wxga 1280 x 800.
  • Brillo: 350CD/m ^ 2
  •  Voltaje de funcionamiento: 12v (actual requisito 1a-2a)
  • La potencia nominal: 6-7w
  •  Entrada de señal: AV + VGA + HDMI (HDMI 1.2)

Pantalla dimensiones: 217 x 135 mm / 16:1010.1 pulgada 1280x800 exhibición del hd TFT Kit de módulo lcd para Raspberry Pi

Como vemos  el kit consta de una controladora , el panel lcd   y una pequeña botonera ambos unidos  por sendos cables de cinta.

10.1 pulgada 1280x800 exhibición del hd TFT Kit de módulo lcd para Raspberry Pi

Convertidor  DC

En el  proyecto se usa el modulo  DSN6009 , que  un módulo conversor dc-dc  de refuerzo de alto rendimiento (BOOST) con una corriente de conmutación de 4A.

La tensión de entrada soportada va  desde los  3V  hasta 32V, pero el mejor voltaje de funcionamiento es 5 ~ 32V.  La tensión de salida es variable entre 5v a 35V

Cuenta con un interruptor incorporado de tipo  MOSFET de  alta eficacia  soportando 4A, siendo la eficacia de hasta 94%; (la corriente LM2577 es sólo 3A)

Gracias a la alta frecuencia de conmutación de 400KHz, se puede alcanzar resultados muy buenos con una pequeña capacidad del condensador del filtro (la frecuencia de LM2577 es solamente 50KHz)

El conexionado, como vemos, es bastante sencillo  pues en los pines IN+  y IN – conectaremos el  polo +(IN+)     y la masa(IN-)    de  la  salida de 5V  procedentes de la salida del cargador de batería .  

Para este proyecto debe ajustarse el  modulo regulando el trimmer  para obtener una salida de 12V DC.

De los pines OUT + y OUT-  conectaremos bien mediante un jack   a la  placa del interfaz de la placa del lCD ( la masa del jack a OUT-   y el pin central al pin OUT+)  o bien soldandolos a la placa madre del kit lcd  como en la foto:

Picture of Get the Wiring Done!

Cargador batería

Para la gestión de la carga de las  baterías del tipo  18650  ,  se  usa un modulo  con chip TP4056 con sobre-protección de bajo voltaje.
Este modulo gestiona la  carga de una celda de carga de baterías con  una celda de litio 18650 energía con carga de hasta 1000 mAh
Se puede cargar baterías  18650  con 2600 mAh ( desarrolladas para  antiguos Notebook), lo cual significa que con el módulo también se permite la carga de baterías de litio de una mayor capacidad 1000 mAh ( el ejemplo de hecho se usan dos celdas en paralelo)
El tiempo de carga depende de la  corriente de entrada que introduciremos de 5V DC  por cable micro USB cable de carga o en los contactos “+ – ” junto a el puerto USB de soldar.
Se puede cargar con el cable USB de un cargador de un móvil o de  ordenador , tan pronto como el nivel de batería ha descendido.a 2.5 V .
Este modulo, ademas,  puede cargar sin  preocupaciones, mientras este conectada la entrada de alimentación y es usado el monitor
Características del modulo:
  • Voltaje de entrada: 4,5 hasta 5 V
  • Corriente de carga máxima 1000 milivatio amperios
  • Voltaje de apagado al cargar 4,2 V +/-1%
  • Protección de bajo voltaje de 2,5 V
  • Protección contra cortocircuitos en 3 amperios
  • Dimensiones: 26 x 17 x 2 mm
En la siguiente imagen podemos ver el modulo con las conexiones realizadas a las dos baterías en paralelo , los leds al panel   y  la salida que ira conectada al convertidor dc-dc:
Picture of Get the Wiring Done!

Construcción de la caja

No todo el mundo tiene disponible  un impresora 3d, asi que GreatScottlab    decidio hacer la caja con materiales tradicionales  como es la madera

En la foto  se pueden ver as las medidas de las piezas MDF que GreatScottlab creo para construir la caja.

Cableado

Finalmente en  al siguiente foto vemos el montaje final

Observese  que se han capturado los pulsadores del kit para hacerlos accesibles desde el exterior
Asimismo se ven los dos leds de estado de carga  y de la batería conectados justo debajo de los pulsadores
Asimismo se ha conectado  un interruptor de potencia para  conectar  o desconectar la unidad

El cableado  es pues sencillo  y cabe perfectamente dentro  de la caja así que de esta forma que todo debería funcionar bien.

Aqui podemos ver el resultado final

 

¡Acabamos de  ver como crear un monitor mini portátil casero!

 

Por si nos ha quedado alguna duda en los  dos siguientes videos  podemos ver el proceso de montaje  paso a paso con todo lujo de detalles desde las coenxiones electricas y pruebas pertinentes  a la construcción de la propia caja que contendrá  todas la electronica:

 

En el video continuacion del anteriro podemso  ver oda la información fundamental  del montaje  de kla caja que se  necesitaría  para la construcción de este proyecto:

 

 

¿Se  atrevería  a montarlo usted también?

 

 

 

 

Fuente Instructables.com

Contador con reconocimiento facial para Raspbery Pi 3


Con una Raspberry Pi se pueden hacer muchas cosas , pero seguramente  se sorprenda que incluso puede utilizar la cámara para experimentar  con reconocimiento facial, labor que ha hecho  DekuNukem utilizando una Raspberry Pi 3, el módulo de la cámara de Raspberry Pi y una pantalla OLED para la visualización de los datos

 El concepto es relativamente simple: la pi-camera toma una foto cada 15 segundos, de modo que  si se encuentra nuestra cara, la cual  previamente habremos cargado, se registra la hora actual. y el tiempo registrado se suma para calcular el  horario laboral exacto todas las semanas mostrándose el resultado en una pantalla OLED.

Para este proyecto  estrictamente como puede deducirse  no es necesario incluir la pantalla OLED  ya que nos  podemos  conectar  a la propia Raspberry Pi  3 para consultar ese dato , pero definitivamente la pantalla extra añade inmediatez y flexibilidad , dejando ver el tiempo diario y semanal de un vistazo sin tener que acceder su frambuesa Pi para ver  los datos.

 

dekuNukem facepunch raspberry pi facial recognition

 

Resumiendo estos son los componentes usados :

  • Raspberry Pi 3 Model B. También podría funcionar en Zero
  • Módulo de cámara Raspberry Pi
  • OPCIONAL : pantalla OLED de 1.3 pulgadas de 128×64. Pantallas de 0.96 pulgadas OLED también funcionan.Que sea  OLED es opcional; Omita los pasos relacionados con la pantalla si se opta por no usar  esta

Modulo de visualización

Se  puede conectar una OLED a la  Pi con el Pi interfaz I2C o SPI. En general, I2C utiliza menos pines  pero es algo más lenta. SPI es mas rápido, pero requiere un numero o de pines del GPIO  extra por lo que esta elección  debe considerarse en función de sus necesidades .

La interfaz I2C es la normal que se use por su mayor sencillez    pero para ‘escritura’ en la pantalla solamente, asi todavía tendrá el marco entero 512 bytes del búfer en el microcontrolador RAM  aunque no se podran  leer datos de lo OLED (aunque I2C es un protocolo bidireccional).

Antes de comenzar el cableado de la  pantalla , en muchas  de estas debe conectarse  una franja de pines que deben soldarse a la placa  OLED , pues no es posible  simplemente hacer las conexiones enrollándolos a las cabeceras

Si su OLED compatible con I2C y SPI, asegúrese de comprobar cómo se configuran los puentes de soldadura para configurar  la interfaz correcta, asi que para comenzar, usted necesitará  dos puentes en la parte posterior de la pantalla OLED de la soldadura. Debe soldarse como ‘cerrado’ para   configurar la pantalla en modo  I2C

 

Para usar la  Raspberry Pi  3 , habilitar I2C antes desde el interfaz  de Raspbian antes de cablearlo

Las conexiones necesarias son las siguientes:

  • Conectar pin 3  de GND   de la  Raspberry Pi  3 , al pin GND de la  pantalla  (cable negro).
  • Conectar  VIN  de la pantalla  al pin 1  Raspberry Pi  3 , de 3.3 voltios (cable rojo).
  • Conectar el terminal Reset de la pantalla al pin pin32 de la  Raspberry Pi  3 ,   (cable azul). Alternativamente puede usar cualquier pin digital libre de GPIO para el pin de reset.
  • Conecte el pin SCL de la pantalla  al pin 5 SCL de la   Raspberry Pi  3 ,  (cable morado).
  • Conectar el pin SDA  de la pantalla al pin 3 SDA de la  Raspberry Pi  3   (cable naranja).

 

 

El módulo de cámara es un complemento personalizado y diseñado para Rasbperry Pi. Se conecta a Raspberry Pi a través de uno de los dos pequeños conectores de la parte superior de la placa. La cámara debe ser  compatible con la última versión de Raspbian, el sistema operativo preferido de Raspberry Pi.

El módulo en sí, es pequeño, en torno a 25 mm x 20 mm x 9 mm. Se conecta a Raspberry Pi  3 mediante un cable plano flexible al conector  de cámara .

Sin título.png

Resto de conexiones

Como dekuNukem explica en el repositorio de GitHub para la construcción del prototipo se puede utilizar una placa de  prototipos para montar  incluso  la pantalla  adhiriendo  esta a la pcb , conectado el conjunto a la Raspberry  Pi  por el GPIO   ,lo cual es  una forma agradable y sencilla de tener  todo el proyecto juntos sin cables sueltos o incluso simplificar  si  se necesita modificarlo.

Puede colocar la cámara y el OLED juntos en una placa perforada que se conecta al bus GPIO  o por supuesto, puede colocarlos en otro lugar o diseñar su propia PCB.

 

Librerias necesarias

Para este proyecto se necesitan las siguientes librerias:

 

Proporcione su foto

El programa necesita una imagen de su rostro para saber cómo se ve. Obtenga una imagen de su cara bien iluminada con un fondo limpio, llamándola por ejemplo  me.jpg y colóquela en la carpeta del software.

La resolución debe ser de alrededor de 400×400, de lo contrario el tiempo de procesamiento va a ser largo. Ya se proporciona un ejemplo, así que simplemente reemplace esta  por el suyo.

Ejecucion del programa

Ejecute python3 detect.py para iniciar la detección de rostros y el registro.
Ejecute python3 display_oled.py para mostrar las estadísticas de tiempo en el OLED.
O si no usa un OLED, ejecute python3 display_text.py para imprimir las estadísticas en el terminal.
Es posible que tenga que expeimentar r con camera.rotation y camera.brightness al principio de detect.py, dependiendo de cómo esté orientada la cámara y de su condición de iluminación. Puede abrir image.jpg para ver la última foto tomada.
El pin de reinicio OLED predeterminado es 17, cámbielo a lo que usa en display_oled.py.

 

 

Esta  incursión en reconocimiento facial  puede  incorporarse  en  otros proyectos de automatización del hogar:  como por ejemplo  una identificación de usuario de Magic Mirror, quizás, o un timbre que reconoce a amigos y familiares.

En todo caso la idea presentada  en su simpleza destaca uan genialidad  pues  nos  da una estadística visual y desatendida de las horas que nos pasamos delante de la pantalla.

 

 

 

Nueva plataforma IoT de código abierto


Existen numerosos protocolos y formatos de datos de IoT, ,algunos de ellos son más populares, como MQTT y JSON, y algunos otros  son   “bastante raros”. Normalmente la mayoría de las plataformas IoT brindan soporte para los protocolos y formatos de datos más populares desde el primer momento, pero es difícil respaldar a todos en una sola solución.

Con el crecimiento de la comunidad de código abierto de la plataforma Thingsboard, ha comenzado a recibir solicitudes sobre el soporte de protocolos IoT, como OPC-UA y algunos formatos de datos específicos, de modo que también han decidido implementar esta funcionalidad como un proyecto separado de código abierto que  permitirá unir la plataforma API a, literalmente, cualquier dispositivo.

El diagrama de flujo de datos es el siguiente

thingsboard

 

IoT Gateway está construido sobre Java, pero es diferente de proyectos similares que aprovechan la tecnología OSGi pues la idea es similar a una arquitectura de microservicios. Después de todo, hay otros lenguajes de programación (C, C ++, Python, Javascript, Go, etc.) que pueden ser más adecuados para el desarrollo de aplicaciones para dispositivos de IoT de destino, especialmente cuando hablamos de API de idiomas y bibliotecas existentes para trabajar con puertos serie , GPIO, I2C y nuevos módulos y sensores que se lanzan todos los días.

El Gateway proporciona API’s  de integración simples y encapsula tareas comunes relacionadas con el tablero de tareas: aprovisionamiento de dispositivos, persistencia y entrega de datos locales, conversores / adaptadores de mensajes, y más.

Como desarrollador de aplicaciones, puede elegir Python, Go, C / C ++ y otros idiomas y conectarse a la puerta de enlace de Thingsboard a través de un intermediario MQTT externo o un servidor OPC-UA. Los dispositivos que admiten otros protocolos se pueden conectar a la puerta de enlace implementando extensiones personalizadas.

La puerta de enlace IoT de Thingsboard ofrece las siguientes características:

  • Extensión OPC-UA para recopilar datos de dispositivos que están conectados a servidores OPC-UA.
  • Extensión MQTT para recopilar datos que se publican en intermediarios MQTT externos.
  • Persistencia de los datos recopilados para garantizar la entrega de datos en caso de fallas de red y hardware.
  • La reconexión automática a los grupos de tableros de cartón.
  • Mapeo simple pero poderoso de los datos y mensajes entrantes en un formato unificado.

El objetivo de lanzamiento inicial de Gateway es llevar la función de recopilación de datos de Bagsboard a dispositivos compatibles con OPC-UA y MQTT. El proyecto Gateway se encuentra actualmente en la etapa de desarrollo activo, y debemos esperar  a los lanzamientos de características principales en los próximos  meses pero el objetivo es unir todas las demás características de Panel de pruebas y permitir configurar y administrar dispositivos de IoT a través de la puerta de enlace usando los widgets y paneles de control de Thingsboard.

 

En este post vamos  a ver como  recopilar y visualizar algunos datos del dispositivo IoT con ThingsBoard permitiendo :

  • Registrar  su dispositivo IoT
  • Administrar credenciales del dispositivo
  • Mandar  los datos del dispositivo a su instancia de ThingsBoard utilizando los protocolos MQTT, CoAP o HTTP
  • Crear un tablero para visualizar los datos

Configuración y requisitos

Si no tiene acceso a una instancia de ThingsBoard en ejecución, use Live Demo o la Guía de instalación para solucionar esto.

Todas las instalaciones de ThingsBoard están equipadas con una cuenta de demostración que simplifica la experiencia del primer usuario. Esta cuenta demo contiene varios dispositivos, cuadros de mando, reglas y complementos preaprovisionados instalados. Tenga en cuenta que puede eliminar esta cuenta en la implementación de producción.

También puede usar emuladores de dispositivo ThingsBoard para simular dispositivos de la vida real y jugar con las API del lado del servidor, la visualización de datos y la lógica de procesamiento.

En este  ejemplo  solo utilizaremos una cuenta de administrador de inquilino preaprovisionada y como hardware una Raspberry Pi 3.

Iniciar sesión como administrador de inquilinos

El primer paso es iniciar sesión en la interfaz de usuario web de administración.

Si está utilizando la instalación local de ThingsBoard, puede iniciar sesión en la interfaz de usuario web de administración utilizando la cuenta predeterminada:

Si usa Live Demo, puede iniciar sesión en el servidor Live Demo utilizando la cuenta de administrador del inquilino (la que creó durante el registro).

imagen

Abra el panel Dispositivos y haga clic en el botón “+” en la esquina inferior derecha de la página.

imagen

Rellene y guarde el nombre del dispositivo (por ejemplo, “SN-001”) aunque más adelante se le llamará $ DEVICE_NAME.

Como los nombres de dispositivo deben ser únicos, por lo general es una buena idea llamar al nombre del dispositivo según un número de serie único u otro identificador de dispositivo. Haga clic en el botón “Agregar” agregará la tarjeta del dispositivo correspondiente al panel.

imagen

Haga clic en la “tarjeta del dispositivo” que hemos creado en el paso anterior. Esta acción abrirá el panel de “detalles del dispositivo”.

Haga clic en el botón “administrar credenciales” en la parte superior del panel. Esta acción abrirá una ventana emergente con credenciales del dispositivo.

imagen

La ventana de credenciales del dispositivo mostrará el token de acceso al dispositivo generado automáticamente que puede cambiar. Guarde este token de dispositivo. Más tarde se lo llamará $ ACCESS_TOKEN .

imagen

¡Felicitaciones! ¡Acaba de aprovisionar su primer dispositivo! Ahora puede enviar algunos datos de este dispositivo a ThingsBoard para su visualización y análisis.

Envío de datos

Para simplificar   enviaremos datos utilizando el protocolo MQTT, CoAP o HTTP desde su PC local.Consulte otros  ejemplos para ejemplos avanzados de varias plataformas de hardware.

Ahora  que ya  tiene creado las credenciales  del   dispositivo ,iInstale el cliente preferido MQTT (Mosquitto o MQTT.js), CoAP (CoAP.js) o HTTP (cURL) con los siguientes comandos.

resources/node-mqtt.sh 
# Assuming you have Node.js and NPM installed on your Windows/Linux/MacOS machine npm install mqtt -g

Cree una carpeta para almacenar todos los archivos necesarios para este ejemplo y descargue a esta carpeta o cree los siguientes archivos de datos:

  • attributes-data.json – contiene dos valores de atributos del dispositivo: la versión del firmware y el número de serie.
  • telemetry-data.json – contiene tres valores de series temporales: temperatura, humedad y bandera activa.

Tenga en cuenta que los datos en estos archivos están básicamente en formato de clave-valor. Puede usar sus propias claves y valores. Consulte la referencia de protocolo MQTT , CoAP o HTTP para obtener más detalles.

resources/attributes-data.json 
{ "firmware_version" : "1.0.1" ,   "serial_number" : "SN-001" } 

Envio de  datos usando MQTT, CoAP o HTTP

Descargue los siguientes archivos a la carpeta creada previamente de acuerdo con el cliente preferido:

Si está utilizando un script de shell (* .sh), asegúrese de que sea ejecutable:

chmod +x * .sh

Antes de ejecutar el script, no olvide:

  • reemplace $ ACCESS_TOKEN por uno de la ventana Credenciales del dispositivo .
  • reemplace $ THINGSBOARD_HOST con 127.0.0.1 (en caso de instalación local) o demo.thingsboard.io (en caso de live-demo).

Finalmente, ejecute el script * .sh o * .bat correspondiente para enviar datos al servidor.

A continuación en estos enlaces  esta  el contenido de los scripts proporcionados.

resources/mqtt-js.sh 
#!/bin/sh # Set ThingsBoard host to "demo.thingsboard.io" or "localhost" export THINGSBOARD_HOST = demo.thingsboard.io # Replace YOUR_ACCESS_TOKEN with one from Device credentials window. export ACCESS_TOKEN = YOUR_ACCESS_TOKEN # Read serial number and firmware version attributes ATTRIBUTES = $( cat attributes-data.json ) export ATTRIBUTES # Read timeseries data as an object without timestamp (server-side timestamp will be used) TELEMETRY = $( cat telemetry-data.json ) export TELEMETRY # publish attributes and telemetry data via mqtt client node publish.js

Visualización de los datos del dispositivo en la interfaz de usuario web

Una vez que ejecute los comandos enumerados arriba, debería ver los atributos y los últimos datos de telemetría en las pestañas de detalles correspondientes del dispositivo.

imagen

imagen

Crear un nuevo tablero para visualizar los datos

La forma más fácil de crear un nuevo tablero es seleccionar los atributos del dispositivo y mostrarlos en el widget

imagen

Una vez que haga clic en el botón “Mostrar en el widget”, verá un panel de “vista previa del widget” donde puede

  • Seleccionar paquete de widgets
  • Seleccione el widget preferido
  • Agregar widget al panel nuevo o existente

imagen

Agreguemos nuestro primer widget al nuevo tablero llamado “SN-001 Dashboard

imagen

Agreguemos  también un widget para visualizar la temperatura:

imagen

Haga clic en Mostrar en el widget y seleccione Paquete de indicadores digitales . Use el carrusel para seleccionar el widget del termómetro como se muestra a continuación.

imagen

Tenga en cuenta que en este caso, agregaremos un widget a un panel ya existente. También seleccionaremos la opción “Open dashboard” para ver los resultados de nuestro trabajo.

imagen

Finalmente, podemos ver nuestro nuevo tablero.

Ahora podemos editar el tablero para:

  • Configurar la configuración del tablero
  • Ajustar tamaños de widgets y diseño
  • Modificar la configuración avanzada del widget individual
  • Agregue nuevos widgets o elimine los existentes
  • Widgets de importación / exportación

imagen

Mas info en https://thingsboard.io/docs/getting-started-guides/helloworld/

Envío de datos de Iot en Raspberry Pi a la nube


Hoy vamos a  ver  lo fácil  que es conectar un sensor simple conectado a una Raspberry Pi a la nube de transmisión utilizando para ello  un sensor de temperatura digital, el popular DS18B20 y dos scripts de Python simples: uno para enviar los datos del sensor a la nube y el otro para recibirlo para su uso en alguna otra aplicación.
El código  para que pueda iniciarse esta disponible en un repositorio de GitHub .

CONEXIÓN DE UN SENSOR A SU RASPBERRY PI

Primero debe conectar el sensor a su Raspberry Pi. Debe conectar conectar al sensor una resistencia de Pull Uo  de 4,7 K entre  la linea de datos (que conectaremos al GPIO4 )  y la alimentacion de 3.3V

En la imagen se describe la sencilla conexión utilizando el bus 1wire con tres pines GPIO (alimentación, tierra y el pin de datos real).

Connection diagram for ds18b20 1-wire temperature sensor to Raspberry Pi GPIO

Después de hacer las conexiones  debe asegurarse de que el módulo kernel del dispositivo de comunicación 1wire esté cargado.

El procedimiento para hacerlo es ligeramente diferente entre las versiones de Raspberry Pi antes y después de enero de 2015, cuando kernel 3.18.8 se incluyó en Raspbian , la distribución de Linux más utilizada para Raspberry Pi. En las actualizaciones recientes debe modificar el archivo /boot/config.txt como se describe aquí:

# with a pre-3.18.8 kernel:
[email protected] ~ $ sudo modprobe w1-gpio && sudo modprobe w1_therm

# else:
[email protected] ~ $ uname -a
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux
[email protected] $ sudo nano /boot/config.txt
# add this line at the bottom (and then reboot):
# dtoverlay=w1-gpio

Ahora puede buscar los dispositivos 1wire respectivos en su sistema de archivos. Cada sensor DS18B20 tiene una identificación única que aparece en este directorio de dispositivos, en nuestro caso 28-000004a365ef .

La siguiente sección muestra cómo leer los datos del sensor para que puedan publicarse en la nube.

LECTURA DE LOS DATOS DEL SENSOR

Una vez que conozca la identificación única de su DS18B20 , puede acceder a los datos del sensor de una manera más reutilizable con una función de Python como la de read_temp.py .
Al ejecutar este código también se ejecutará un ciclo corto para leer y visualizar la temperatura ambiente alrededor del sensor. Intente tocar el sensor con los dedos para ver cómo afecta las lecturas.
Ahora que el sensor está funcionando y entrega datos, es hora de enviar esos datos a la nube , la cual en esta ocasion sera ofrecida por el proveedor europeo relayr

relayr.png

Si no tiene una cuenta de desarrollador relayr , tendrá que crear una. Una vez que tenga una cuenta, puede crear un prototipo de sensor simplemente accediendo a la página de dispositivos de su dispositivo y moviendo el puntero del mouse sobre el botón con el signo más en la esquina inferior derecha.
Luego, desplácese hacia abajo y seleccione “Continuar sin un modelo” para crear el dispositivo. Ahora, cambie el lenguaje de programación a “Python” y copie el código de firmware generado, que será útil para la siguiente sección.

PUBLICACIÓN  DE SUS DATOS DE SENSOR EN LA NUBE DE RELAYR

Puede publicar sus datos usando MQTT (un protocolo para comunicar mensajes de máquina a máquina). Si aún no está instalado, tendrá que configurarlo en su Pi. El paquete paho-mqtt proporciona soporte MQTT para Python y se puede instalar fácilmente como un paquete Python con pip como este (instale pip primero si aún no lo tiene):

 pi @ raspberrypi ~ $ sudo apt-get install python-pip
 pi @ raspberrypi ~ $ sudo pip install paho-mqtt == 1.1

Sabrá si lo ha instalado con éxito si puede ejecutar esta declaración en Python sin ningún error: import paho .
A continuación, puede copiar el fragmento de muestra de Python de la página del prototipo del panel que haya visto al crear un prototipo. Para hacer esto, reemplace el ciclo while en la parte inferior del código con el de publish_temperature.py (disponible en el repositorio).

No olvide incluir la función read_temperature desde arriba y también agregar su identificación de sensor única al ciclo while (la que encontró al configurar el sensor). Alternativamente, puede usar el código en publish_data_mqtt.py , asegurándose de cambiar las credenciales (con las de su panel) y el device_id en la parte inferior de la página.
Esto le permitirá ejecutar un ciclo sin fin, leer los valores de temperatura y publicarlos uno por segundo a la nube de retransmisión.

CONSULTA DE SUS  DATOS

A medida que introduce sus datos en la nube de relayr, puede ver los valores en tiempo real a medida que cambian en el tablero de relayr.

Screen_Shot_2016-07-12_at_16.12.28.png

Ver sus datos en el tablero de instrumentos a medida que cambia es genial, pero en algún momento querrá extraer los datos para usarlos. Para ello, puede acceder a sus datos a través de MQTT de nuevo escribiendo un script simple como el Llamado fetch_data_mqtt.py en el repositorio de GitHub .

Si ejecuta esa secuencia de comandos, mostrará los mensajes MQTT en vivo que contienen los valores de datos tal como se recibieron.

Para ello, utilice el SDK de Relayr Python instalando primero los paquetes necesarios (ejecute las líneas a continuación en su pi):

sudo pip install git + https: //github.com/relayr/pythonsdk

sudo pip install relayr upgrade

Si tiene una Raspberry Pi nueva, asegúrese  de actualizar su lista de paquetes Debian e instalar algunos paquetes de desarrollador antes de instalar el paquete más nuevo de GitHub de la siguiente manera:

  pi @ raspberrypi ~ $ sudo apt-get update 
  pi @ raspberrypi ~ $ sudo apt-get install python-dev libffi-dev libssl-dev 
  pi @ raspberrypi ~ $ pip install git + https://github.com/relayr/python-sdk 

Ahora puede usar el código en receive_data.py para recibir datos de la nube. Asegúrese de cambiar la identificación de su dispositivo y el token de acceso (omitiendo la parte “Portador” del token).


En este ejemplo ha visto cómo puede conectar un sensor de temperatura simple a una Raspberry Pi y publicar sus datos en la nube de transmisión . Esto le permite ver los datos en vivo en el tablero, o exportarlos para usarlos en una aplicación. Puede usar MQTT para publicar y recibir los datos del sensor, o usar uno de los SDK de Relayr, como el SDK de Python , para acceder a los datos de manera más conveniente.

También puede usar sensores más emocionantes y publicar valores de datos más complejos que un solo flotante (es decir, una lista de tres flotantes que representan información geoespacial). Siempre que proporcione una lecturaconocida en el panel de control de relayr, mostrará sus datos en un buen widget. Y también puede publicar algo aún más complicado, como un objeto con niveles de anidación más profundos. En ese caso, el tablero mostrará un widget genérico. ¡Depende de usted y de lo que quiera hacer!

El código del ejemplo esta disponible ena GitHub repository.

Conectar un viejo monitor a un pc con salida DVI


El estándar VGA  caracterizado por el conector de  15 pines  ,está cayendo en desuso (aunque aún lo respetan algunos fabricantes de monitores ),  básicamente porque este estaba concebido para monitores basados en CRT , hasta tal punto que de hecho las gráficas actuales no llevan ya conector VGA , de modo que si va a comprar un monitor, asegúrese antes de qué conexión tiene para evitar incidencias porque un monitor que sólo lleve conector VGA tal vez no se pueda conectar a su ordenador.

En efecto , el veterano VGA es un interfaz analógico  puesto que la fuente varía su tensión de salida con cada línea que emite para representar el brillo deseado,l o cual era así porque en las antiguas pantallas de CRT se usaba para asignar al rayo la intensidad adecuada mientras éste se iba desplazando por la pantalla durante el barrido del haz de rayos catdicos.

En las actuales monitores  LCD o TFT´, como este rayo ya no está presente,  pierde su sentido, pues  en su lugar hay una matriz de píxeles, y se debe asignar un valor de brillo a cada uno de ellos, tarea  realizada  por  el decodificador  que  toma muestras del voltaje de entrada a intervalos regulares,  lo cual puede provocar distorsión si las muestras no se toman en el centro de cada píxel, y, en general, el grado de ruido entre píxeles adyacentes es elevado.

Precisamente para superar las limitaciones de la conexiones VGA, surge el interfaz DVI , el cual adopta un enfoque distinto en tanto que el brillo de los píxeles se transmite en forma de lista de números binarios de modo que cuando la pantalla está establecida a su resolución nativa, solamente tiene que leer cada número y aplicar ese brillo al píxel apropiado  y de esta forma, cada píxel del buffer de salida de la fuente se corresponde directamente con un píxel en la pantalla (mientras que como hemos visto con una señal VGA el aspecto de cada píxel puede verse afectado por sus píxeles adyacentes, así como por el ruido eléctrico y otras formas de distorsión analógica)

El conector DVI normalmente posee pines para transmitir las señales digitales nativas de DVI pero  también puede tener pines para transmitir las señales analógicas del estándar VGA. Esta característica se incluyó para dar un carácter universal a DVI: los conectores que la implementan admiten monitores de ambos tipos (analógico o digital).

Los conectores DVI se clasifican en tres tipos en función de qué señales admiten:

  • DVI-D (solamente digital): Dispone de 24 pines. Los adaptadores DVI -> VGA no encajan físicamente con este conector y la conversión no es posible.
  • DVI-A (solamente analógica): no esta muy extendido  y existen conversores
  • DVI-I (digital y analógica): es una conexión doble, que emite señal digital a la vez que señal analógica. Dispone de los 24 pines estándar más otros 4 en uno de los lados. Esos 4 pines son los que emiten señal analógica
  • A veces se denomina DVI-DL a los conectores que admiten dos enlaces.

Aunque el interfaz de video mas reciente es el Display Port  , algunas  tarjetas gráficas todavia actuales pueden llevar uno o dos conectores DVI  provocando dos casuisticas diferentes:

  • Si lleva un solo conector  DVI , será DVI-D , que como hemos visto, al ser completamente digital ,no se podrá usar un adaptador a VGA
  • Si lleva dos conectores DVI , uno será de cada tipo(DVI-D y DVI-A) y entonces sí se podrá usar un adaptador DVI a VGA.

Adaptadores DVI a VGA

Según lo comentado   existe la posibilidad de convertir la señal  de la tarjeta gráfica de un ordenador de un puerto DVI (conector blanco o negro de 24 pines) si es del tipo DVI-A  o DVI-I a   una  conexión VGA (conector azul de 15 pines)  mediante un simple adaptador

Este tipo de adaptadores DVI a VGA llevan una conector DVI tipo 24+5 macho en un extremo y VGA HDB15 hembra en el otro , lo cual permite utilizarlos para convertir un puerto DVI a puerto SVGA hembra para poder conectar un cable SVGA con conector macho hacia  un monitor o TV con conexión analogica.

Como hemos visto , esta posibilidad  tiene que ver con que la señal DVI es digital y la VGA es analógica, pero sin embargo los fabricantes gracias  a los diferentes  tipos de conexión DVI  permiten aun  que sea  compatibles sus trajetas graficas  con el veterano estándar VGA simplemente usando un cable  o un simple adaptador   que  cuestan unos 2€

adpatador

Adaptadores HDMI a DVI

Gracias a su compatibilidad inversa con la señales DVI-D y DVI-I, se  puede emplear este tipo de  cables adaptadores para conectar un ordenador o dispositivo con puerto DVI a un televisor o una pantalla con puerto HDMI.

Una aplicación típica de estos adaptadores es  ver vídeos desde un ordenador hacia un televisor HD de pantalla grande, o al revés. Estos  cables conectan incluso los dispositivos con puerto HDMI como Blu-Ray, PlayStation 3 o Xbox 360 a un monitor o un televisor con puerto DVI.

Un aspecto muy interesante es que al  ser compatibles con la señal de audio, el cable adaptador de HDMI a DVI funciona igual que un cable HDMI de alta velocidad, permitiendo disfrutar de videojuegos, sistemas de cine en casa, etc.

hdmi.png

Conversion HDMI a VGA

Es posible encontrar conversores desde HDMI a VGA con y sin sonido, pero debe saber si elige uno con sonido, tenga en cuenta que la conexión VGA sólo lleva imagen, de modo que  el audio saldrá por un conector Jack de 3,5 mm que deberá conectar a unos altavoces externos con amplificador, si es que el monitor no los incluye( suelen llevar una hembra de 3,5mm de audio IN) .

La conversión desde la señal digital HDMI hacia la analógica VGA se hace mediante un proceso llamado modulación ,  por lo que la conversión desde HDMI a VGA es unidireccional: es decir el adaptador a emplear sólo soportara HDMI a VGA, conectando un ordenador o Laptop con salida  HDMI a un proyector,pantalla,TV y monitor con interfaz VGA

Este  tipo de conversores  llegan hasta una resolución 1080P, gracias  a que  convierten la señal digital HDMI a la analógica VGA por medio  de un chip IC integrado, soportando una resolución máxima de salida VGA de hasta 1920×[email protected]z     y suelen alimentarse  con alimentación adicional mediante cable Micro USB .

adaptador.png

Por cierto, la compatibilidad del puerto HDMI esta asegurada para Laptop, Macbook, Rasberry Pi, etc   y  el puerto VGA hembra puede ser conectado a un proyector, HDTV, monitores y etc.

El precio de  uno de estos adaptadores suele rondar los 10€ en Amazon

Conversion VGA a HDMI

Si lo que necesita es proyectar una imagen desde  su ordenador , y este solo cuenta con una salida  VGA y  necesita llevar ésta a  un televisor que sólo cuente con  entrada HDMI, también puede encontrar adaptadores  que , aunque son algo más complejos lo permiten.

La complejidad  de la electronica de estos conversores es debida a que estos hacen un muestreo de señal, es decir realizan  el proceso complementario al de de la modulación.

vga a hdmi

Normalmente los adaptadores de  entrada VGA a salidad HDMI  incorporan un chipset que soporta sincronización de vídeo y audio a través de un cable con resoluciones de  1600×1200 1080P 60Hz para convertir la señal analógica VGA a señal digital HDMI para conectar PCs, Laptops a proyectores, monitores o HDTV

Estos adaptadores son  uni-direccionales, es decir , sólo soportan el  transformar  desde VGA a HDMI mediante un puerto VGA macho que conectaremos al pc   a un HDMI hembra que mediante un cable hdmi-hdmi llevaremos a nuestro TV

Ademas estos convertidores  cuentan con un puerto de alimentación USB que permiten  transmitir la señal de audio y vídeo  y alimentar  al dispositivo via los 5V de la ocnexion usb  no  requiriendo adaptador de energía adicional

En cuanto al precio suelen rondar el doble de los adaptadores hdmi-vga ( uno 20€ en Amazon)

Conversion   mini HDMI a  HDMI

Por  ultimo decir que hay posibilidad de conectar  algunas tabletas y otros aparatos que solo cuenta con conexion minihdmi  a  un tv convencional con entrada hdmi

En este caso solo debmo comprar  adaptadores HDMI a miniHDMI  , es decir  HDMI tipo C macho a tipo A hembra

minihdmi

Por ultimo ,hay que citar que la conexión mini-hdmi  no debe confundirse con la conexión OTG que  muchas tabletas o smartphone cuentan para vía un cable especial poder enviar audio y video a un TV

 

Arrancar su Raspberry Pi 3 desde un USB


Como sin duda sabrá , todas las versiones de  Raspberry Pi, por pura cuestión económica y simplicidad,  instalan el sistema operativo en una tarjeta micro-SD y por lo  tanto ese es  el medio desde el que se inicia cualquier Rasberry Pi .
Desgraciadamente   las tarjetas micro-SD , aunque son económicas  y ocupan muy poco espacio, son  relativamente lentas tanto en operaciones de lectura como de escritura de datos , de modo que  cuando el S.O. tiene que hacerlo de forma intensiva, el sistema queda sin responder y aparentemente atascado a causa  precisamente de la baja tasa de transferencia de E/S en las memorias SD.
Como vamos a  ver, afortunadamente , para aumentar muy notablemente el rendimiento ( y de paso la capacidad de almacenamiento ) de la Raspberry Pi ,podemos instalar la partición del sistema operativo en una memoria USB o disco duro externo, pues  no es muy complicado y el aumento de rendimiento es notable.

A partir de abril de 2017  el soporte de arranque desde un dispositivo USB   se ha contemplado  oficialmente en el kernel    del  SO  y por tanto es totalmente apoyado por Raspbery Pi, por lo que  vamos  a ver es este post rápidamente cómo arrancar una  Raspberry Pi desde un almacenamiento USB, como unidad flash o disco duro USB.

Es importante destacar  que hay dos opciones : que  la Raspberry Pi inicie el sistema desde la tarjeta SD, por lo que aunque instalemos el sistema en un dispositivo USB, seguiremos necesitando la tarjeta SD para que contenga al menos la partición de arranque (boot) o  bien que prescinda definitivamente de esta SD.

Como nota aclaratoria, el dispositivo puede ser una memoria flash pero también  un disco duro de 2,5″,  así que en este segundo caso, al tomar la alimentación de  la propia  Raspberry Pi , asegúrese que alimenta  con corriente suficiente esta.

METODO   QUE PRESCINDE DE LA SD

Veamos  en primer lugar  como prescindir de tarjeta  micro- sd, aunque tenga mucho  cuidado pues el método puede ser irreversible.

Primero , como siempre  tendrá que descargar Rasbian , aunque este método funciona con otros sistemas operativos más recientes como OSMC desde  de abril de 2017  donde se  añadió  oficialmente  el soporte de arranque desde un dispositivo USB   en el kernel    del  SO  y por tanto es totalmente apoyado por Raspbery Pi.

 

Ahora vamos a necesitar el software de etcher,  del que hemos hablado en este blog , para escribir la imagen tanto  en nuestra tarjeta SD, como en el  dispositivo de almacenamiento USB.

 

Con todo el software descargado, ahora debe permitir escribir la imagen descargada tanto en la tarjeta SD como en  el dispositivo de almacenamiento USB.

Si no puede detectar el dispositivo de almacenamiento USB asegúrese de comprobar la opción “inseguro” en los ajustes de etcher.

grabador inseguro

PROGRAMAR USB BOOT MODE

Una vez que ambas imágenes hayan sido escritas (tanto en la miscro-sd como en el dispositivo USN)  , tendremos que insertar una línea en nuestro archivo config.txt ubicado en /boot/config.txt

Ahora agregue  el final del archivo   la siguiente  linea   en ambos dispositivos: en la  sdcard y el medio de almacenamiento USB que vaya a usar:

program_usb_boot_mode=1 

Esto establecerá un bit en la memoria OTP (One Time Programmable) en el Raspberry Pi SoC que habilitará el arranque desde un dispositivo de almacenamiento masivo USB,por lo que una vez que se ha ajustado este bit, la tarjeta SD ya no será necesaria.

Tenga en cuenta que cualquier cambio que realice en la OTP es permanente y no se puede deshacer, pero usted todavía será capaz de arrancar desde la tarjeta SD si se inserta y no cambia las operaciones de su Pi.

Ahora que la parte difícil se ha completado, sólo necesitamos arrancar desde la tarjeta sd primero , y a continuación  reiniciar una vez que esté completamente arrancado para asegurarse de que ha escrito el modo de arranque para el Pi.
Después de reiniciar, ahora puede quitar la tarjeta SD y conectar el dispositivo de almacenamiento USB y ya debería arrancar su Raspberry Pi.

Asegúrese eso si , de quitar el código de modo de arranque program_usb_boot_mode=1  de su tarjeta SD  ubicado en el fichero /boot/config.txt  cuando se completan estos pasos anteriores  pues,  puede si introduce nuevamente la sd por  accidente puede que no arranque provocando mas  problemas.

SOLUCIÓN DE PROBLEMAS

Si su Pi no arranca desde el dispositivo de almacenamiento USB, puede comprobar si el modo de arranque se ha escrito ejecutando este comando en el Pi arrancado desde SD

$ vcgencmd otp_dump | grep 17 : 17 : 3020000a

Asegúrese de que se muestra la salida0x302000a . En caso que no sea ésta ,el modo de arranque no se ha escrito correctamente.

También es posible que su dispositivo de almacenamiento USB no sea compatible, de modo que debería probar con otro dispositivo de almacenamiento si es posible.

 

METODO   CON SD

En este método que vamos a describir, la Raspberry Pi se inicia desde la tarjeta SD por lo que aunque instalemos el sistema en un dispositivo USB seguiremos necesitando la tarjeta SD para que contenga al menos la partición de arranque (boot).

 

Primero , como siempre  tendrá que descargar Rasbian , aunque este método funciona con otros sistemas operativos más recientes como OSMC desde  de abril de 2017  donde se  añadió  oficialmente  el soporte de arranque desde un dispositivo USB   en el kernel    del  SO  y por tanto es totalmente apoyado por Raspbery Pi.

 

Ahora vamos a necesitar el software de etcher  para escribir la imagen en el  dispositivo de almacenamiento USB.

 

Con todo el software descargado, ahora debe permitir escribir la imagen descargada  en  el dispositivo de almacenamiento USB.

Si no puede detectar el dispositivo de almacenamiento USB asegúrese de comprobar la opción “inseguro” en los ajustes de etcher.

Una vez que haya terminado, tendremos el dispositivo  USB con dos particiones una de arranque que se ve desde cualquier sistema operativo y otro que es solo visible desde Linux (Raspbian, Ubuntu, …).

Ahora arrancaremos la Raspberry Pi  ( con la sd ) de forma habitual, introduciremos la unidad  USB  en ésta , y bien desde el terminal  o por ssh ejecutamos el comando

dmesg

Este comando ,como puede imaginar, sirve  para   obtener el nombre del usb que hemos conectado, ( normalmente sera   sda o sda2).

Una vez sepamos el nombre de la  unidad  usb, podemos crear la partición  de una forma muy similar  a como lo haríamos desde linea de comandos desde un entorno windows.

De forma sintética, el proceso seria el siguiente bien desde ssh o desde el terminal:

  • Ejecutaremos fdsik   sobre  sda :    sudo fdisk /dev/sda
  • Presionamos p para ver las particiones
  • Después presionamos d para eliminar una partición, y escribimos 2 a continuación.
  • Para  crear la nueva partición, o presionamos n y crearemos la nueva partición,
  • Presionamos p para que sea primaria , y  escribimos 2.
  • Ahora nos preguntará por el primer sector de la unidad extraible , (por ejemplo en caso de  ser una unidad flash de 16GB seria de  12280 ), pulsamos Enter.
  • Pulsaremos Enter en las siguientes preguntas sin necesidad de escribir nada para que tome el valor por defecto.
  • Por ultimo pulsamos w para que se guarden los cambios.

Con esto, ya tendremos el usb preparado, por lo solo nos falta decirle a la Raspberry Pi  donde se encuentra el sistema, para ello vamos a modificar tanto el fichero cmdline.txt   como el fstab para que apunte a nuestro usb en lugar de la sd.

En la Raspberry Pi ejecutamos los siguientes comandos:

  • sudo nano /boot/cmdline.txt 
  • Sustituimos root=/dev/mmcblk0p2( es decir la sd)  por root=/dev/sda2 (por el usb en nuestro caso)
  • Pulsamos Control + O seguido de enter para guardar los cambios
  • Pulsamos  Control+X para salir del editor.
  • Ahora modificaremos el fichero /etc/fstab con el comandos:
    sudo nano /etc/fstab
  • Sustituimos root=/dev/mmcblk0p2 ( es decir la sd) por root=/dev/sda2 (por el usb en nuestro caso)
  • Pulsamos Control + O seguido de enter para guardar los cambios
  • Pulsamos  Control+X para salir del editor.

 

Hechos los cambio mencionados reiniciamos la Raspberry  Pi bien  desde el propio interfaz de Raspbian  o bien desde consola o por ssh ejecutar el comando:

sudo shutdown -r now

Una vez reiniciada la Raspberry Pi, para poder utilizar todo el espacio de nuestro usb, ejecutaremos:

sudo resize2fs /dev/sda2

Cuando haya finalizado la ejecución del comando, podremos comprobar que está todo correcto mirando el tamaño del disco, y donde se encuentra /dev/root .

Para ver el tamaño del disco ejecutaremos el comando:

df -h

Asimismo ,para ver donde se encuentra /dev/root ejecutaremos: ls -la /dev/root y debería aparecernos una flecha hacia la partición de nuestro usb.

Una vez realizado todos estos pasos, Raspbian se encontrará en nuestro usb, notaremos una mejora de velocidad y dispondremos de mas tamaño de disco del que disponíamos con la SD.

Cambio de SD

En caso de querer cambiar la  microSD por  otra mas pequeña  poner  la nueva microSD que vaya   a usar ( por ejemplo muchas personas hablan que con  una de sd de 16MB puede ser suficiente) y   copiar  todos los archivos de la partición de arranque del USB a la SD.

Ahora solo queda hacer un cambio en el archivo: cmdline.txt   y lo editamos para cambiar este texto: root=/dev/mmcblk0p2       por este otro texto: root=/dev/sda2 

Asimismo  modificaremos el fichero /etc/fstab con el comando sudo nano /etc/fstab   y sustituimos root=/dev/mmcblk0p2 ( es decir la sd) por root=/dev/sda2 (por el usb en nuestro caso)

A partir de este punto con la tarjeta SD insertada en la Raspberry Pi y el dispositivo USB conectado a uno de los puertos se iniciará la Pi desde la partición del sistema del dispositivo USB en vez de la tarjeta SD.

Con la partición del sistema instalada en una memoria o disco duro externo siguiendo algunos de los dos  métodos descritos  deberíamos notar un menor tiempo de arranque  y sobre todo  un  aumento de rendimiento considerable debido  a la mejora  en los tiempos de lectura  o escritura puestos  que es  mayor  tasa de transferencia de los dispositivos USB.