sábado, 24 de marzo de 2018

Utilizando Scratch en Raspberry Pi

La versión de Scratch que dispone Raspbian es la 2.0, evidentemente podríamos utilizar Scratch 2.0 online de la misma manera que con cualquier sistema que no sea Raspberry a través del navegador, pero perderíamos la posibilidad de utilizar el GPIO (General Purpose Input/Output, puerto de entrada y salida de propósitos generales) para computación física conectando sensores y actuadores. La ventaja que tenemos con Raspberry Pi es que disponemos de esa conexión de puertos de entrada/salida a través de pines individuales.
La versión online de Scratch 2.0 no contempla esos pines de Raspberry puesto que puede ser utilizado desde cualquier ordenador Window, Linux o Mac/Apple, y ellos disponen de esa posibilidad.
Una vez introducida la microSD con Raspbian instalado tan sólo hay que darle alimentación a Raspberry Pi para que arranque. Una vez veamos el escritorio de Pixel, entorno gráfico de Raspbian, deberemos acceder al menú de la esquina superior izquierda con el logo de Raspberry Pi.
Una de las opciones es “Programming“, pulsar y seleccionar Scratch 2.
scratch en raspberry raspbian

En ese momento se abrirá Scratch en Raspberry en su versión 2.0. Si tienes curiosidad la otra selección que pone Scratch es la 1.4 y no dispone de la extensión para utilizar el GPIO de Raspberry Pi.
Una buena idea al iniciar Scratch es seleccionar el idioma pulsando en el icono de la esfera.
scratch en raspberry idioma

Ahora debemos añadir a Scratch la extensión que nos va a permitir utilizar los pines de entrada/salida. Seleccionar “More Blocks” en el menú de bloques y luego “Añadir una Extensión”.
scratch en raspberry extension

Seleccionamos la extensión “PI GPIO” y pulsamos abajo a la derecha “OK”.
Ahora si tienes instalado Scratch en Raspberry Pi con la función para utilizar los pines de entrada y salida para computación física.
Mediante el bloque “set gpio X to” vamos a poder poner un pin de salida del GPIO de Raspberry Pi en estado alto o bajo, es decir a 1 o 0.
Mediante el bloque “gpio X is high” vamos a poder leer si un pin de entrada del GPIO de Raspberry Pi está activado o desactivado, es decir si tengo un 1 o un 0 en esa entrada.
Puede parecer poco, pero mediante estos dos bloques vamos a poder interactuar con el medio físico, tomando lectura de lo que ocurre externamente a la Raspberry a través de sensores y pulsadores y tomando acción en el exterior por medio de actuadores como pueden ser desde simples luces a relés que me permitan accionar casi cualquier cosa.

Fuente:
https://juegosrobotica.es/scratch-en-raspberry/

lunes, 19 de marzo de 2018

Pinout del GPIO de Raspberry

GPIO (General Purpose Input/Output) es un sistema de E/S (Entrada/Salida) de propósito general, es decir, una serie de conexiones que se pueden usar como entradas o salidas en el Raspberry para usos múltiples. Los GPIO representan la interfaz entre la Raspberry y el mundo exterior. Y con ellos se puede hacer multitud de proyectos, desde hacer titilar un LED hasta otros mucho más sofisticados.
Todos los pines son de tipo “unbuffered”, es decir, no disponen de buffers de protección, así que deberás tener cuidado con las magnitudes (tensiones y corrientes) cuando conectes componentes para no dañar la placa. Como podrás apreciar en las imágenes posteriores, no todos los pines tienen la misma función:
  • Pines de alimentación: puedes apreciar pines de 5V, 3,3V (limitados a 50 mA) y tierra (GND o Ground), que aportan alimentación a estas tensiones para los circuitos. Te pueden servir como una fuente de alimentación, aunque también puedes utilizar otras fuentes (pilas, fuentes de alimentación externas, etc). Recuerda que son unbuffered y debes tener cuidado para no dañar la placa.
  • GPIO normales: son conexiones configurables que puedes programar para tus proyectos.
  • GPIO especiales: dentro de éstos se encuentran algunos pines destinados a una interfaz UART, con conexiones TXD y RXD que sirven para comunicaciones en serie, como por ejemplo, conectar con una placa Arduino. También podemos ver otros como SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, etc.
Esta es la distribución de los pines de la interfaz de Raspberry Pi3 incluyendo pines con tensión y de masa.

Definiciones:
Power – Estos suministran tensión (5V o 3,3V a 50 mA) directamente de la Raspberry Pi 3.
Ground – Pins utilizados para conectar a tierra los dispositivos. Puede utilizar cualquiera de ellos, ya que estén todos conectados a la misma línea.
UART (Universal Asynchronous Receiver/Transmitter) – pins en serie que se utilizan para comunicarse con otros dispositivos.
I2C o I2C (Inter-Integrated Circuit) – Pines que permiten conectarse y comunicarse con los módulos de hardware compatibles con el protocolo I2C.
SPI (Serial Peripheral Interface Bus) – Pines que permiten conectarse y comunicarse con los módulos de hardware compatibles con el protocolo SPI.
GPIO (General Purpose Input/Output) – Pines estándar que se pueden utilizar como Interruptores de los dispositivos de encendido y apagado.

 

Scratch y GPIO

Es muy importante tener en cuenta que para Scratch en Raspberry se debe utilizar el número de la entrada/salida, no de la posición que ocupa. Es decir, aunque la entrada/salida 5 (GPIO5) se encuentre en el pin 29, en los bloques de Scratch indicaremos el 5 para referirnos a esta entrada/salida.


Fuentes:
http://electronicayciencia.blogspot.com.ar/2016/11/conexion-gpio-de-raspberry-pi-3.html 
https://comohacer.eu/gpio-raspberry-pi/ 
http://vuxmi.com/raspberry-pi-3-gpio-pin-layout/amp/

miércoles, 7 de marzo de 2018

Actualización del sistema

Una vez instalado Raspabian en Raspberry Pi3 vamos a habilitar el sistema de wifi ingresamos al menú inicial y desplegamos "Preferencias" y hacemos clic en "Configuración de Raspberry Pi" vamos a la pestaña "Interfaces" y activamos SSH, así el dispositivo se habilitará la señal wifi, elegimos la red y colocamos la clave de la red.

Luego hacemos clic en LX Terminal y escribimos

sudo rpi-update
sudo reboot

Entonces, despues de reiniciar:
sudo apt-get update
sudo apt-get upgrade
sudo reboot

El comando sudo (super user do), ejecuta un comando como otro usuario, pero respetando una serie de restricciones sobre qué usuarios pueden ejecutar qué comandos en nombre de qué otros usuarios (usualmente especificadas en el archivo /etc/sudoers).  La ventaja de sudo respecto de su es que sólo ejecuta el comando solicitado simulando ser el otro usuario, sin cambiar verdaderamente el usuario actual.

Fuentes:
https://www.raspberrypi.org/documentation/raspbian/updating.md
https://blog.desdelinux.net/cual-es-la-diferencia-entre-sudo-y-su/
https://es.wikipedia.org/wiki/Sudo