Cómo agregar un botón de encendido/apagado a la Raspberry Pi


Siempre debemos apagar con  seguridad nuestra Raspberry Pi ,pues de lo contrario nos exponemos  a perder  el sistema de arranque y  tener que volver  a  crear una  imagen  con todo el trabajo que esto conlleva  respecto a las personalizaciones que tanto nos gustan
Raspberry Pi no cuenta con   un pulsador de encendido para intentar competir con su clones  y de este modo  mantener el precio «bajo»,  aunque  sin embargo, es muy fácil  añadir  el suyo propio  como vamos a ver en este post donde añadiremos un botón de encendido a su Raspberry para que puede encender o  apagar esta con total de seguridad .
No nos bastara añadir el pulsador pues tendremos  que usar unos scripts que vigilen  dos pines GPIO (general entrada/salida) en el Pi para que cuando se presione el botón activar o desactivar el  Pi.

 

raspberrypi

¿Por qué es importante un botón de encendido ?

Como comentábamos  nunca deberíamos «tirar» del cable de alimentación de su Raspberry Pi pues esto puede conducir a la corrupción de los datos graves (y en algunos casos, dañar físicamente tu tarjeta SD) pues para ello se puede cerrar con seguridad el Pi a través de un comando de consola (shutdown)  o por supuesto también  desde el propio interfaz gráfico de Raspian (shutdown)

Veamos  ahora como podemos añadir un pulsador  pero entes tenemos que entender cómo despertar la Raspberry Pi de un estado de suspensión antes de construir la funcionalidad de apagado.

Una manera fácil de comprobarlo es apagando  con sudo shutdown -h now y conectando los pines 5 y 6 con un cable hembra a hembra. Sólo necesitará cortarlo momentáneamente y entonces usted debe encontrar que la Raspberry Pi se «despertó».

En este punto es interesante destacar que cuando «apaga» el Pi, lo enviará en un estado de suspensión, lo cual significa  que sigue consumiendo una cantidad muy pequeña de  energía ( muy  similar a cómo todos modernos equipos trabajo cunado quedan en stand-bye).

Lógicamente  si  agrega un botón de encendido podrá tanto detener como despertar el Pi de un estado detenido, pero si su Raspberry Pi se ha apagado, usted puede desconectar de forma segura la fuente de alimentación  sin la preocupación de corrupción de datos.

 

El equipamiento hardware como vemos es muy sencillo pues basta dos cablecillos que conectaremos en los pines 5 y 6  de la Raspberry PI del conector de expansión( justos los dos de la tercera columna empezando por la drecha)

IMG_20181018_224306[1].jpg

 

Sencillamente, si se cortocircuitan entre sí los pines 5 y 6 (GPIO3 y GND) se pondrá nivel bajo el pin correspondiente al GPIO y podremos actuaren consecuencia con la Raspberry Pi

Obviamente el cortocircuito lo sustituiremos por un pequeño pulsador normalmente abierto  que conduciremos con dos cablecillo  a los pines 5 y 6  de nuestra Raspbery Pi

 

IMG_20181018_224929[1]

Finalmente sujetaremos el pulsador con cinta de doble cara , pegándolo o practicando un agujero al contenedor de la Raspberry Pi

 

IMG_20181018_225410[1]

 

 

La solución de sleep es bastante sencilla, pero para cerrar con seguridad el Pi vamos a tener que utilizar una solución de software. Ya que sabemos que vamos a utilizar los pines 5 y 6 para el Pi, vamos a usar estos pines para apagarlo tambien . Tanto así que podemos conectar nuestro botón a los alfileres y se concluirá y despertar la Pi.

Vamos a tener que escribir un script que escuche una pulsación y  cierre el Pi. Antes nos fijamos en la secuencia de comandos, vamos a discutir algunos enfoques diferentes. En primer lugar, podríamos escribir un script que inicie un bucle infinito y espere un cambio en el estado de los pines GPIO.

Usando  seudo-código, podría ser algo como:

while True:
    if GPIO3 is pressed:
        shutdown the pi

Mientras que esto funcionaría y probablemente no tenga problema de rendimiento real, hay realmente una manera mejor:podemos escuchar  una interrupción (un cambio de estado de bajo a alto o alto a bajo) que interrumpa  el procesador para qeu realize uan determinada accion .

Afortunadamente la biblioteca de RPi.GPIO proporciona un método llamado wait_for_edge que bloqueará la ejecución de nuestro script hasta que se detecte una interrupción. Así configuramos GPIO3 y una vez que detectamos un borde de caída vamos a apagar el Pi.

Entonces, vamos a usar un script llamado listen-for-shutdown.py.

Para crear el script, podemos usar el editor nano asi  que después de conectar con el Pi, ejecute el siguiente comando para crear este

sudo nano listen-for-shutdown.py

Luego, pegue el código siguiente en el archivo y pulse CTRL-X y salida, Y para guardar cuando se le solicite.

#!/usr/bin/env python


import RPi.GPIO as GPIO
import subprocess


GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(3, GPIO.FALLING)

subprocess.call(['shutdown', '-h', 'now'], shell=False)

A continuación necesitamos poner este script en el arranque por lo que  deberemos copiar el script en lar uta de  usr y hacerlo ejecutable , acciones que haremos con los dos siguintes comandos:

sudo mv listen-for-shutdown.py /usr/local/bin/
sudo chmod +x /usr/local/bin/listen-for-shutdown.py

Pero este script solo apagaria la placa  y nosotros queremso tambien qeu se pueda arrancar pulsando el boton por lo que  añadiremos otro script llamado listen-for-shutdown.py: que e enciende/apaga nuestro servicio.

Para crear el script  escriba  la secuencia de comandos:

sudo nano listen-for-shutdown.sh

Introduzca el código siguiente en el archivo y guárdelo:

#! /bin/sh

### BEGIN INIT INFO
# Provides:          listen-for-shutdown.py
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

# If you want a command to always run, put it here

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting listen-for-shutdown.py"
    /usr/local/bin/listen-for-shutdown.py &
    ;;
  stop)
    echo "Stopping listen-for-shutdown.py"
    pkill -f /usr/local/bin/listen-for-shutdown.py
    ;;
  *)
    echo "Usage: /etc/init.d/listen-for-shutdown.sh {start|stop}"
    exit 1
    ;;
esac

exit 0

 

Ahora necesitamos coloque este archivo en /etc/init.d y hacerlo ejecutable, acciones que haremos con los dos siguientes comandos.

sudo mv listen-for-shutdown.sh /etc/init.d/
sudo chmod +x /etc/init.d/listen-for-shutdown.sh

Ahora registramos la secuencia de comandos para ejecutar en el arranque y le pasaremos el parámetros de arranque con los dos siguientes comandos.

sudo update-rc.d listen-for-shutdown.sh defaults
sudo /etc/init.d/listen-for-shutdown.sh start

 

Seguro querido lector que por lo menos la próxima vez que desconecte su Raspberry de forma violenta recuerda que podría haber puesto un botón para hacer el apagado seguro…  Y por cierto si tiene una Orange Pi u otro clon , este sencillo truco le puede servir tambien..

 

 

Fuente  howchoo.com

La primera grabadora láser portatil


Este invento de la compañía Muherz   que permite tallar con un láser  en distintos materiales como cuero, fieltro, madera, etc.  surgido gracias a kickstarter  ha superado todas las expectativas de financiación  , y en efecto ya esta disponible comercialmente , ahora bien a  a un precio algo mas alto de los esperado ( unos 749€  en Amazon) .

A cambio de esta cantidad, no hay más instrucciones a seguir,no hay que montar nada   y no nos tenemos que preocupar por el espacio , pues tiene  una medidas bastantes reducidas de 50x50x50 (eso si excluimos el contenedor).

Como vemos en la imagen Cubiio consiste en una fuente de láser basado en semiconductor y dos espejos motorizados de corriente impulsada con el fin de desviar el láser a lo largo de ejes X e Y. La CPU incorporada se encarga de  traducir los bocetos en comandos digitales para lograr en los espejos la inclinación particular para luego proyectar el punto enfocado del láser a la superficie del blanco a lo largo de la trayectoria diseñada. Es básicamente un  «galvanómetro, ( usado muy comúnmente en los polimetros analógicos ) al  que se ha cambiado la aguja por un espejo.

Bueno en realidad no es solo un  «galvanómetro» pues ademas las máquinas de láser tradicional con galvanómetro han de corregir el  problema de distorsión de la imagen mediante el uso de «lentes f-theta,» que son muy voluminosos y caros  por lo que han desarrollado  un algoritmo para compensar la distorsión con éxito.(la patente del algoritmo de lente virtual está pendiente

El cubo donde se incluye el láser  y toda la electronica en realidad se coloca en una caja mayor que  incluye la  fuente, un filtro de aire y receptáculo  para Cubiio , aunque puede usarse sin esta  por ejemplo para grabar sobre piezas  que no puedan situarse ne la caja

Seguridad

Como debería ser en otras herramientas con láser   y a gran diferencia de otros productos  similares  en kits o  de origen asiático ,  en este diseño se ha tenido muy en cuenta la seguridad ,pues sin duda, cualquier dispositivo láser puede ser muy  perjudicial especialmente para nuestros ojos.

safety item

Cubiio implementa  las siguientes medidas de seguridad :

  • Protección ocular  con  gafas especiales certificadas que  están incluidas en cada paquete de Cubiio. Siempre utilice gafas mientras que Cubiio está trabajando. No se ven en la radiación de láser, incluso con las gafas.
  • Cerradura con contraseña: Contraseña es necesaria antes de cada tiempo de funcionamiento. Sólo las personas autorizadas pueden utilizar Cubiio.
  • Indicación de proceso del laser: Un brillante LED indica cuando el láser está energizado y funcionamiento.
  • Detección de movimiento: Dispone de un acelerómetro de 3 ejes sensible. Mientras que el movimiento accidental ocurre durante la marcha, Cubiio se apaga inmediatamente.
  • Parada por sobrecalentamiento : Cubiio debería funcionar en el ambiente con suficiente disipación de calor. Si la temperatura interna se acerca al umbral de daño, Cubiio se apaga.
  • CubiioShield: Ofrecen protección mejorada para los usuarios que tienen mayor nivel de seguridad.

 

Uso

Cubiio es controlado por la aplicación Cubiio sin cables. Después de recibir Cubiio, por tanto debe descargarse la  Cubiio App de Apple Store o Google Play a continuación, seguir 4 sencillos pasos:

  1. Elegir un cuadro G-Código del archivo o escribir algo en Cubiio App.
  2. Emplaar  el elemento que desea grabar en la zona de Cubiio de trabajo.
  3. Cubiio también proporcionan la función de previsualización para mejor experiencia de usuario. Durante la vista previa,  se mueve a lo largo de la trayectoria prevista o el rectángulo de límite. Los usuarios pueden ajustar fácilmente el tamaño, la posición y el ángulo de rotación.
  4. Pulse iniciar y disfrutar.: Una vez asegurándo que se desea grabar, basta con pulsar en el grabado grabar realmente.

Operator by app

G-code es un lenguaje común de máquinas que permite  convertir, desde gráficos vectoriales a todo tipo de imágenes  que puede ser procesada por el software libre de código abierto – INKSCAPE, en el cual usted puede diseñar gráficos vectoriales y generar sus propios archivos G-Code. Ejecute los archivos G-Code Cubiio como en  otros grabadores láser.

A continuación en la siguiente tabla ponemos los materiales con que se  puede grabar con  Cubiio:

En las siguientes imágenes  podemos ver precisamente el resultado del grabado en diferentes materiales:

work on cupwork on phone case

work on are holderwork on chair

En definitiva  hay muchos ejemplos para lo que puede usarse este grabador láser como por ejemplo para hacer un regalo especial,elevar el valor del producto con su propia insignia o grabar literalmente en todas partes, incluso en curvas y vertical superficie

Especificaciones

Veamos por ultimo algunas de las especificaciones de este original  y sobre todo seguro grabador láser:

    • Peso: 1,3 Kg (láser módulo 150 gramos)
    • Fuente de laser: OSRAM semiconductor azul color láser
      estimación de vida útil 10000 horas
    • Salida del laser: 100 nivel ajustable
      max 800 mW con CubiioShield; máxima de 500 mW sin CubiioShield
    • Velocidad de fresado: 2000 mm/min máximo
    • Resolución: 152-254 dpi ajustable
    • Acabado: aluminio anodizado
    • Opción del color: rojo, negro, bronce, oro y azul
    • Tornillo de montaje: 1/4″-20 UNC para trípodes estándar
    • ENTRADA-salida: Tarjeta Micro SD
    • Formato de archivo apoyado: bmp y G-Code
    • Conexión de la aplicación: BLE (Bluetooth Low Energy)
    • Aplicación sistema operativo: iOS 4.4 + 10 + / Android
    • Filtro: Carbón activo + zeolita
    • Entrada de energía: AC 85-264 v, 47-63Hz
    • Requisito de energía de la fuente de láser: micro USB DC 5V, 2A
      Banco de alimentación (5V, 2A) apoyado, pero no incluido
    • Detalles del módulo del Laser: