Archivo de la categoría: Curso Raspberry Pi

Instalación de Raspbian

Software quickstart: https://www.raspberrypi.org/learning/software-guide/quickstart/ 

Guías de iniciación:

Formatear la tarjeta SD de la forma correcta.

Uno de los errores más frecuentes de los usuarios de tarjetas de memoria SD está en creer que este tipo de memorias funcionan igual que una memoria USB o un disco duro y se pueden formatear con las utilidades del sistema operativo. A diferencia de otros dispositivos de almacenamiento, las tarjetas SD incluyen una zona especial denominada “Protected Area”, empleada para temas de seguridad, que requiere un tratamiento especial. Adicionalmente – y dependiendo de la configuración y el tipo de tarjeta – es necesario un formateo ajustado al tipo de tarjeta.

Descargar e instalar la utilidad “SD Card Formatter” provista por la SD Association, los mismos que definen los estándares de este medio de almacenamiento. Después de instalada, se debe proceder a formatear la tarjeta SD antes de utilizarla. De esta forma se garantiza que se usará todo el espacio disponible de la tarjeta y se optimizará su desempeño y almacenamiento de acuerdo con las especificaciones del fabricante.

Descarga https://www.sdcard.org/downloads/formatter_4/eula_windows/index.html 

Instalar Raspbian en Disco Externo o Memoria USB

Con la capacidad de las Raspberry Pi de arrancar desde USB, es posible hacer funcionar una Raspberry Pi con una memoria USB o mejor aun con un disco externo.

Raspberry Pi con SSD: https://www.youtube.com/watch?v=gp6XW-fGVjo 

Documentación oficial: https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md 

Modos de arranque: https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/README.md

Instalar Imagen Raspbian

Descargar imagen Raspbian zip: https://www.raspberrypi.org/downloads/

Descargar Raspbian Buster with desktop desde: https://downloads.raspberrypi.org/raspbian_latest 

La versión por defecto de Raspbian es ahora una instalación mínima – le da el escritorio, el navegador Chromium, el reproductor multimedia VLC, Python, y algunos programas accesorios. Junto a esto se encuentra la imagen “Raspbian Full”, que también incluye todos los programas recomendados: LibreOffice, Scratch, SonicPi, Thonny, Mathematica y varios otros.

El programa de software recomendado se puede utilizar para instalar o desinstalar cualquiera de los programas adicionales que se encuentran en la imagen completa; si descarga la imagen mínima y comprueba todas las opciones en el software recomendado, terminará con la imagen completa, y viceversa.

Buster la nueva versión de Raspbian: https://www.raspberrypi.org/blog/buster-the-new-version-of-raspbian/

Descargar imagen Raspbian zip: https://www.raspberrypi.org/downloads/

Emular Raspberry Pi en Virtual Box: https://www.luisllamas.es/raspberry-pi-virtualbox/

Guia de instalación https://www.raspberrypi.org/documentation/installation/installing-images/README.md 

Para copiar la imagen a una SD usar:

Tutoriales de instalación de Raspbian:

Etcher

Etcher es una herramienta gráfica de escritura de tarjetas SD que funciona en Mac OS, Linux y Windows, y es la opción más fácil para la mayoría de los usuarios. Etcher también soporta la escritura de imágenes directamente desde el archivo zip, sin necesidad de descomprimirlas.

balenaEtcher es normalmente la opción más fácil para la mayoría de los usuarios de escribir imágenes en tarjetas SD, por lo que es un buen punto de partida. Si busca una alternativa en Windows, puede usar Win32DiskImager.

Descargar Etcher: https://www.balena.io/etcher/ y yscribir tu imagen con Etcher.

Pasos:

  • Descargar SO: Raspbian
  • Formatear microSD: SD Card Formatter 4.0
  • Flashear: Etcher
  • Acceder a la SD desde un PC: Partición “/boot” es accesible desde Windows, partición expandida no
  • Preconfiguración (recomendado para modo headless): SSH

Win32DiskImager

Con Win32DiskImager no solo se puede copiar una imagen sino guardar una imagen de una tarjeta SD, pero el uso de Etcher es más sencillo.

Descarga https://sourceforge.net/projects/win32diskimager/

Con Win32DiskImager no solo se puede copiar una imagen sino guardar una imagen de una tarjeta SD.

Post Instalación

Una vez instalado raspbian, conectar un monitor, teclado y ratón a Raspberry Pi para seguir con su configuración.

En caso de no tener un monitor, se puede hacer una instalación headless:

Una vez entramos en Raspberry Pi, seguimos los pasos que nos indica para cambiar contraseña, cambiar el nombre (hostname), configurar y actualizar Raspberry Pi.

Luego es posible hacer más configuraciones desde “Configuración de  Raspberry Pi” o desde comando “sudo raspi-config”:

Para ejecutar el wizard de configuración otra vez:

  • sudo piwiz
  • sudo raspi-config

Más información:

Conexión a la Red

La forma general de conectar a Internet la Raspberry Pi es mediante 

  • Conexión a Ethernet por DHCP
  • Conectar a Wifi por DHCP

Por este motivo no es necesario configurar nada si conectamos a un router con DHCP configurado para ethernet y en WiFi solo deberemos configurar la red wifi.

DHCP:

La propia Raspberry Pi podría hacer de servidor DHCP: https://www.raspberrypi.org/learning/networking-lessons/lesson-3/plan/ 

La Raspberry Pi 3 es la primera de la familia en incluir WIFI estándar de serie, lo que es un gran avance de salida y garantiza que se normalice las conexiones, a diferencia de las versiones previas en las que había que comprar un módulo WiFi y configurar la WIFI en función del modelo de adaptador que usasemos.

En el caso actual, la configuración de la WIFI se reduce a listar las redes disponibles y elegir la nuestra, para después proporcionar la contraseña de acceso. 

Detalle seleccion WIFI

Aquí tienes iconos para la configuración de varios elementos, como el volumen de audio la WIFI y hasta el Bluetooth, que recuerda viene de serie en la Nueva Raspi3. Para configurar la WIFI pincha y selecciona el icono y selecciona la WiFi a conectarse.

Desplegando wifi

Una vez configurado comprobar que se puede navegar.

Aunque hayas conectado correctamente a Internet hay mil razones por las que necesitas conocer más información de tus conexiones IP, especialmente saber la IP para que al actuar como servidor saber a qué IP conectarnos.

Con el comando “ifconfig” podemos saber qué interfaces están conectados y que DNS usan o que Gateway o router estas usando como salida.

ifconfig 0

Para obtener los datos de ethernet teclea ifconfig eth0 y para wifi teclea ifconfig wlan0

Con el comando route -ne se pueden ver las rutas configuradas

Más información: https://www.prometec.net/conectar-a-internet/ 

Para obtener más información de las redes ver los directorios:

  • /sys/class/net/eth0
  • /sys/class/net/wlan0

Por ejemplo en el fichero address está la dirección MAC del controlador de red

En algunas ocasiones nos puede interesar asignar una IP fija, para ello seguir el tutorial:https://www.luisllamas.es/raspberry-pi-ip-estatica/ 

Los fichero de configuración de IP son:

  •  /etc/dhcpcd.conf
  • /etc/network/interfaces

Más información: https://raspberrypi.stackexchange.com/questions/39785/dhcpcd-vs-etc-network-interfaces 

También es conveniente cambiar el hostname, seguir este tutorial: https://www.howtogeek.com/167195/how-to-change-your-raspberry-pi-or-other-linux-devices-hostname/ 

Acceso Remoto

Una vez instalado vamos a asegurarnos el acceso remoto para no tener que tener conectado a un monitor y un teclado y ratón y podamos manejarlo.

Acceso Remoto: https://www.raspberrypi.org/documentation/remote-access/

SSH

La mejor forma de acceder a Raspberry Pi remotamente en modo comando en línea estando en la misma red es usando SSH. 

SSH sigue un modelo cliente-servidor. El cliente inicia una petición al servidor, que autentifica la comunicación e inicia el entorno Shell. Múltiples clientes pueden conectarse a un mismo servidor. Por defecto SSH emplea el puerto TCP 22 aunque puede cambiarse fácilmente. 

SSH dispone de más usos muy interesantes. por ejemplo, podemos copiar archivos de forma segura entre dos dispositivos, o tunelizar cualquier conexión de otra aplicación a través de un canal seguro SSH.

Para activar el servidor SSH en Raspberry Pi comprobar que estás activado en menu – Preferencias- Configuración de Raspberry Pi – Interfaces

Esta conexión sólo funciona en red local. Para poder acceder desde fuera, a través de Internet, hay que configurar un mapeo de puertos en el router. El proceso completo depende del router,.

Para conectarnos desde Windows a SSH, deberemos emplear un cliente SSH para conectarnos con Raspberry Pi. El cliente más utilizado en Windows es Putty, que es Open Source y está disponible en https://www.putty.org/

Descargamos y ejecutamos Putty y nos aparece una ventana donde podemos introducir la dirección IP (o el nombre) de la Raspberry Pi. Al conectarnos se nos preguntará el nombre del usuario y la contraseña.

Más información:

VNC

La mejor forma de acceder a Raspberry Pi remotamente en modo escritorio estando en la misma red es usando VNC.

VNC es un programa de software libre basado en una estructura cliente-servidor que permite observar las acciones del ordenador servidor remotamente a través de un ordenador cliente. VNC no impone restricciones en el sistema operativo del ordenador servidor con respecto al del cliente: es posible compartir la pantalla de una máquina con cualquier sistema operativo que admita VNC conectándose desde otro ordenador o dispositivo que disponga de un cliente VNC portado.

Seguir este tutorial: https://www.raspberrypi.org/documentation/remote-access/vnc/README.md

La conexión de VNC de RealVNC se incluye con Raspbian. Consiste en el servidor de VNC, que permite controlar Raspberry Pi remotamente, y el VNC viewer, que permite que controlar ordenadores remotamente de su Raspberry Pi.

El servidor VNC debe habilitarse para poder conectarse remotamente, para ello ir a menu – Preferencias- Configuración de Raspberry Pi – Interfaces y asegurarse que VNC está activado.

Una vez activado establecer la conexión desde el ordenador instalando el VNC viewer: https://www.realvnc.com/en/connect/download/viewer/ y conectarse a la IP de nuestra Raspberry:

Con VNC también se puede establecer una conexión en la nube.

Más información:

Team Viewer

En el caso que queramos conectarnos a nuestra Raspberry Pi estando en cualquier parte del mundo, una buena opción es TeamViewer.

TeamViewer es un software informático privado de fácil acceso, que permite conectarse remotamente a otro equipo. Entre sus funciones están: compartir y controlar escritorios, reuniones en línea, videoconferencias y transferencia de archivos entre ordenadores.Team Viewer es gratuito para uso personal.

Web: https://www.teamviewer.com/es/ 

La instalación es muy simple solo hay que descargarse TeamViewer Host para raspberry Pi desde https://www.teamviewer.com/es/descarga/linux/ y acerse una cuenta en la web de TeamViewer https://www.teamviewer.com/es/ 

Enlace de descarga: https://download.teamviewer.com/download/linux/teamviewer-host_armhf.deb 

Instalar el fichero teamviewer-host_xxx_armhf.deb, simplemente haciendo doble click o con el comando “sudo dpkg -i filename.deb”

Si hay dependencias solucionarlo con  “sudo apt-get update” y “sudo apt-get -f upgrade”

Una vez instalado ejecutar TeamViewer en Raspberry Pi y poner las credenciales de la cuenta de TeamViewer

Una vez instalado, acceder a https://login.teamviewer.com/LogOn con la cuenta de TeamViewer y ya podemos acceder a nuestra Raspberry Pi. Necesitaremos instalar el cliente de TeamViewer o la app de Chrome:

Solo para controlar la Raspberry Pi remotamente ejecutar el cliente “TeamViewer_Setup.exe” de esta forma:

Más información:

Más de TeamViewer

Otras Alternativas al Acceso Remoto

Logmein: https://www.logmein.com/es 

Otra opción de acceso remoto es el xrdp:

Alternativa opensource interesante para acceso remoto

http://www.instructables.com/id/Controlling-your-raspberry-pi-mouse-and-keyboard-r/?ALLSTEPS. Ver el código en: https://github.com/piBoard

Si queremos un acceso remoto por consola pero no hay acceso directo a la IP es posible usar https://remote.it/

Conectar a Unidades de Red

Ver tutoriales:

Configuración Headless (sin monitor)

Configurar raspbian para que no haga falta conectarse al monitor y teclado.

Tutorial: https://www.luisllamas.es/como-configurar-raspberry-pi-sin-monitor-ni-teclado/ 

Un servidor DHCP interesante en caso de no tener uno puede ser: http://www.vercot.com/~serva/ usandolo de forma temporal para asignar IPs

Cambiar la ip por comando (ip fija) una vez accedemos por SSH: http://raspberryparatorpes.net/instalacion/poner-la-direccin-ip-fija-en-raspbian/

Es posible usar una configuración de failback, que en caso que falle el DHCP dar una fija. Ver este ejemplo: https://wiki.archlinux.org/index.php/Dhcpcd#Static_profile

Buen tutorial para Raspberry Pi Zero W de confguración headless: https://www.internetdelascosas.cl/2017/10/30/configurando-una-raspberry-pi-zero-wifi-sin-un-monitor/

Clonado de Imágenes Raspberry Pi

Si clonamos imágenes de Raspberry Pi nos podemos encontrar algunos problemas si la imagen es mayor que la capacidad de la tarjeta donde clonar.

Proceso de clonado:

Solución si la imagen es mayor que el tamaño de la tarjeta SD, básicamente se trata de encoger la imagen puesto que parte de la imagen es espacio libre:

Cambiar el tamaño de la partición en un fichero imagen:

Otras aplicaciones para hacerlo:

Si es una SD mayor que el de la imagen, habrá que expandir el file system para poder usar todo el espacio la tarjeta SD

Raspberry Pi Zero W

Getting started:

Configuración headless RAspberry Pi Zero:

Configurar por USB: https://www.raspberrypi.org/blog/programming-pi-zero-usb/

Conectar raspberry Pi zero W por usb

Interesante tutorial para raspberry Pi zero y usarlo con USB: https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/overview 

Otros tutoriales para la zero w:

Control Remoto Raspberry Pi Zero

En caso que no usemos entorno gráfico, algo no recomendable con Raspberry Pi Zero, podemos conectarnos remotamente consola pero sin hay acceso directo a la IP mediante https://remote.it/

GPIO Raspberry Pi

Del mismo modo que Arduino dispone de una serie de pines que podíamos conectar al mundo exterior para leer o escribir, Raspberry dispone de otra serie de pines homólogos que en la jerga habitual de la RPI se llaman GPIO (General Purpose Input Output).

GPIO: https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.md

La cantidad de pines disponibles en el GPIO ha variado de unas versiones a otras, manteniendo la compatibilidad con las versiones anteriores para evitar problemas, y a grandes rasgos ha habido dos versiones de GPIO. La gran variación fue de la Raspi 1 a la Raspi 2 que aumentó el número de pines disponibles y que básicamente se pueden ver aquí:

A esta forma de numerar se le suele conocer como modo GPIO, Pero surgió otra forma de numerar, no de acuerdo a la posición de los pines en la salida, sino a la posición de los pines correspondientes en el chip Broadcom que es la CPU de la Raspberry, y a esta segunda manera se la llama modo BCM.

Nos encontramos con dos formas distintas de referirse a los pines, GPIO según los números del conector externo o BCM según los pines del chip que revuelven las posiciones. No tiene por qué ser mejor una que otra pero es importante asegurarse de cuál de las dos se está usando.

Web: https://www.raspberrypi.org/documentation/usage/gpio/

Disposición de los pines en la placa:

En Raspberry Pi Zero:

Pinout: https://pinout.xyz/ 

Más información:

Especificaciones eléctricas GPIO

Los pines trabajan con una tensión de 3,3 V y un consumo máximo de corriente de 16 mA. Esto significa que podemos suministrar energía de forma segura desde un solo pin GPIO a través de una resistencia, uno o dos LEDs.

IMPORTANTE:Todos los IO ports son de 3.3V, así que se debe tener cuidado.

Para alimentar cualquier otra cosa que requiera más corriente, como un motor de corriente continua, es necesario utilizar componentes externos para evitar dañar el GPIO.

Salidas: Un pin GPIO designado como pin de salida puede ajustarse a alta (3V3) o baja (0V).

Entradas: Un PIN GPIO designado como PIN de entrada puede ser leída como alta (3V3) o baja (0V). Esto es más fácil con el uso de resistencias internas de pull-up o pull-down. Los pines GPIO2 y GPIO3 tienen resistencias pull-up fijas, pero para otros pines esto puede ser configurado en el software.

Especificaciones eléctricas del GPIO: http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi/gpio-pin-electrical-specifications

Plantilla GPIO: http://rasp.io/portsplus/

Iconos de alerta de firmware: https://www.raspberrypi.org/documentation/configuration/warning-icons.md 

Accesorio expansión GPIO:

Comprar: https://www.amazon.es/ASHATA-Accesorios-Expansion-Raspberry-Breadboard/dp/B07J1SBD6G/

Advertencia: aunque la conexión de componentes simples a los pines GPIO es perfectamente segura, es importante tener cuidado en la forma de cablear las cosas. Los LEDs deben tener resistencias para limitar la corriente que pasa a través de ellos. No use 5V para los componentes de 3V3. No conecte los motores directamente a los pines GPIO, en su lugar utilice un circuito de puente H o una placa controladora de motores.

Manejar GPIO

Se puede acceder a una referencia práctica de los GPIO abriendo una ventana de terminal y ejecutando el comando pinout. Esta herramienta es proporcionada por la librería GPIO Zero Python, que se instala por defecto en la imagen de escritorio de Raspbian, pero no en Raspbian Lite.

Para manejar los pines de GPIO la mejor manera de usarlos es en Python mediante el uso de librerías. Veremos más adelante cómo usarlo en el apartado de programación y manejo.

Pueden tener una dirección para recibir o enviar corriente (entrada, salida respectivamente) y todo esto es totalmente controlable por lenguajes de programación como Python, JavaScript, node-RED y otros.

Librería GPIOZero: https://gpiozero.readthedocs.io/en/stable/

Es posible controlar los pines de la GPIO usando un número de lenguajes y herramientas de programación. Vea las siguientes guías para empezar:

Para probar los pines del GPIO mediante línea de comandos: https://geekytheory.com/tutorial-raspberry-pi-gpio-parte-1-control-de-un-led

Simulador Raspberry Pi

Además puedes montar una máquina virtual con Raspbian. Puede crear un live disk, ejecutarlo en una máquina virtual o incluso instalarlo en el equipo. Descargar en https://www.raspberrypi.org/downloads/raspberry-pi-desktop/

Tutoriales instalar Raspbian en Virtualbox: