Читать книгу: «Aprender Raspberry Pi 4 con 100 ejercicios prácticos»


Aprender Raspberry Pi 4 con 100 ejercicios prácticos
© 2020 Ferran Fàbregas
© 2020 MARCOMBO, S.L.
www.marcombo.com
Diseño de la cubierta: ArteMio
Imagen de cubierta: Michael Henzler / Wikimedia Commons / CC BY-SA 4.0
Director de colección: Pablo Martínez Izurzu
Directora de producción: M.ª Rosa Castillo Hidalgo
Maquetadora: María Paz Mora Encinas
Corrector: Héctor Tarancón
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».
ISBN: 978-84-267-2776-3
Producción del ebook: booqlab.com
Presentación
APRENDER RASPBERRY PI 4 CON 100 EJERCICIOS PRÁCTICOS
La Raspberry Pi es actualmente uno de los dispositivos con mayor flexibilidad y proyección en el ámbito del desarrollo de proyectos de electrónica recreativa, robótica y el mundo maker en general. Además, es una herramienta crucial en el sector de la educación y la enseñanza.
Gracias a los 100 ejercicios prácticos que encontrará en este libro, aprenderá a sacar provecho a este pequeño pero potente ordenador y descubrirá sus posibilidades, tanto en el campo educativo y del desarrollo de software como en la creación de dispositivos de hardware.
A QUIÉN VA DIRIGIDO
Es un libro de iniciación accesible a todos los públicos, sin elementos complejos y sin requerimiento de conocimientos previos. Con él, conseguirá una visión amplia de las posibilidades que le brinda su placa Raspberry Pi y, en particular, el modelo 4.
También está dirigido a aquellos que ya hayan realizado sus primeros pasos con Raspberry Pi, pues en este libro encontrarán las respuestas a las dudas que les surjan y aquellas que no hayan podido resolver hasta ahora.
LA FORMA DE APRENDER
Nuestra experiencia en el ámbito de la enseñanza nos ha llevado a diseñar este tipo de manual, en el que cada una de las funciones se trabaja mediante la realización de una actividad práctica. Dicho ejercicio se halla explicado paso a paso y pulsación a pulsación, a fin de no dejar ninguna duda en su proceso de ejecución. Además, lo hemos ilustrado con imágenes descriptivas con los pasos más importantes, así como con los resultados que deberían obtenerse, y con recuadros titulados “Importante”, que ofrecen información complementaria sobre los temas tratados en los ejercicios.
LOS ARCHIVOS NECESARIOS
En la parte inferior de la primera página del libro encontrará el código de acceso que le permitirá descargar de forma gratuita los contenidos adicionales del libro en www.marcombo.info.
Cómo leer
los libros “Aprender...”

Los programas informáticos, como los seres vivos, están en constante evolución. Por eso, en esta edición se han utilizado las últimas versiones disponibles a fecha de febrero de 2020 o, en su omisión, las más recomendadas.
También me gustaría dar un agradecimiento a toda la comunidad, foros y webs relacionadas con Raspberry Pi. Es imposible citarlos a todas, pero sin sus contenidos online, recursos abiertos, e información pública este libro no hubiese sido posible. Gracias a todos.
Índice
001 Descubriendo la Raspberry Pi
002 Los diferentes modelos, usos y distribuciones
003 Conexiones de la Raspberry Pi 4
004 Conexiones de la Raspberry Pi. Modelos anteriores
005 Instalación de la placa Raspberry Pi Zero y Zero W
006 Las diferencias entre Raspberry Pi y Arduino
007 Puesta en marcha de nuestra Raspberry Pi
008 Formatear una SD con Windows o Mac
009 Formatear una SD con Linux
010 Copiar una imagen de sistema a una tarjeta SD
011 Instalación usando NOOBS
012 Instalación de Raspbian
013 Linux: Navegar por el sistema de archivos (I)
014 Linux: Navegar por el sistema de archivos (II)
015 Gestionando ficheros
016 Gestionando usuarios
017 Los servicios en Linux
018 Conectar la Raspberry Pi a un monitor VGA o DVI
019 Instalando bluetooth en nuestra Raspberry Pi
020 Raspberry Pi a Internet mediante Ethernet
021 Raspberry Pi a Internet mediante WiFi
022 Instalación de programas desde el entorno gráfico
023 Instalación de programas desde terminal. Aptitude
024 Actualización del sistema
025 Mejorando el rendimiento de la Raspberry Pi
026 Instalación de un disco duro externo
027 Edición básica de imágenes con Raspbian
028 Ver vídeos con Raspberry Pi
029 Personalizando nuestro escritorio en Raspbian
030 LibreOffice: La suite ofimática de Raspbian
031 Convertir la Raspberry Pi en una consola de juegos
032 Modificando el gestor de ventanas. XFCE4
033 Instalando Open Arena
034 Trabajando con gráficos vectoriales. Inkscape
035 Servidor de impresión
036 Configurando un cliente al servidor de impresión
037 Instalación de un servidor web en una Raspberry Pi
038 Instalación de un servidor de bases de datos
039 Conceptos generales de SQL
040 Instalación y configuración de WordPress
041 Creando un blog con WordPress
042 Crear un punto de acceso WiFi. El Servidor DHCP
043 Crear un punto de acceso WiFi con Raspberry Pi
044 Instalación de Samba. Compartir una carpeta
045 Acceso remoto a la Raspberry Pi: SSH
046 Acceso remoto a la Raspberry Pi: VNC
047 Instalar un servidor DLNA
048 Convertir la RPi en un centro multimedia. LibreElec
049 Conectando nuestro centro multimedia a un NAS
050 Servidor FTP
051 Iniciación a Scratch
052 Ejercicio sobre Scratch: Animando al cangrejo
053 Ejercicio sobre Scratch: Laberinto
054 Ejercicio sobre Scratch. Aprendiendo a sumar jugando
055 Introducción a Python. ¡Hola mundo!
056 Python. Programando desde el terminal
057 Python. Variables
058 Python. Operadores
059 Python. Condicionales
060 Python. Bucles
061 Python. Funciones
062 Python. Listas
063 Python. Trabajando con cadenas de texto
064 Python. Entrada/salida y gestión de archivos
065 Python. Ejemplo práctico: enviar un correo electrónico
066 Iniciación a Minecraft Pi
067 Comenzando a programar con Minecraft Pi
068 Minecraft Pi. Alterando el mundo
069 Minecraft Pi. Creando minijuegos
070 Iniciación a Mathematica
071 Mathematica. Tipos de variables y funciones generales
072 Mathematica. Operaciones con listas y matrices
073 Mathematica. Gráficos en 2D y 3D
074 Mathematica. Acceso al GPIO
075 Iniciación a Sonic Pi
076 Sonic Pi: Iteraciones, bucles y condicionales
077 Sonic Pi: Samples y sintetizadores
078 Sonic Pi: Efectos y ejemplo práctico
079 Instalación y configuración de Ubuntu Mate
080 Instalación de Ubuntu IoT Server
081 Configuraciones avanzadas de Ubuntu Server
082 Mozilla IoT. WebThings Gateway
083 La Raspberry Pi con otros sistemas operativos
084 El bootloader de la Raspberry Pi 4
085 Instalación de GPIO. GPIO en Python
086 Encender un LED
087 Sensor de distancia mediante ultrasonidos
088 Detector de intrusos: Sensor PIR
089 Real Time Clock
090 Los buses I2C y SPI
091 Librerías Adafruit CircuitPython
092 Sensor de temperatura y humedad: DHT
093 Sensor barométrico: BMP280
094 Sense Hat
095 Usar la Raspberry Pi con baterías
096 Conectar una cámara a tu Raspberry Pi
097 Haciendo un timelapse con tu Raspberry Pi (I)
098 Haciendo un timelapse con tu Raspberry Pi (II)
099 PyFirmata. Comunicar la Raspberry Pi y Arduino
100 Encuentra tu camino experimentando
001
Descubriendo la Raspberry Pi. ¿Qué puedo hacer con una Raspberry Pi?
Bienvenidos a Aprender Raspberry Pi 4 con 100 ejercicios prácticos. En este libro veremos, a través de 100 ejercicios, cómo sacar partido a nuestra Raspberry Pi –en general, de todos los modelos, pero con especial atención a la versión 4– de manera práctica y sencilla.
El objetivo de este libro es dar una visión general de las posibilidades que nos brinda la Raspberry Pi 1, tanto en software como en hardware. Para conseguirlo, desarrollaremos una serie de ejercicios de diferentes grados de complejidad enfocados a los diversos aspectos de nuestro dispositivo. Definirán, además, las bases para que, posteriormente, el lector pueda profundizar en los temas que le resulten más interesantes y provechosos.

1. Uno de los grandes valores de la Raspberry Pi, respecto a otras placas similares, es su gran comunidad 2, a la altura de otras grandes comunidades online, como la de Arduino 3. Este libro ha sido posible también gracias a ella y, aunque es imposible citar a cada persona, blog o web, desde aquí se repite el agradecimiento por parte del autor por contribuir con su esfuerzo, y conocimiento, a la comunidad de Raspberry Pi.


2. Aunque los ejercicios del libro Aprender Raspberry Pi con 100 ejercicios prácticos son independientes, y no hace falta que el lector los lea en el orden estándar, es muy recomendable, sobre todo en el caso de los no iniciados, que se siga la estructura del libro. Esta nos irá haciendo un recorrido de manera ordenada por los aspectos más importantes de la Raspberry Pi, y permitirá un aprendizaje escalonado y ordenado.
3. La Raspberry Pi es un ordenador de placa única (es decir, que tiene todos los componentes integrados en una sola placa) de bajo coste. Está desarrollada por la Fundación Raspberry Pi, en el Reino Unido, con el objetivo de potenciar la enseñanza de las ciencias en las escuelas. Con el tiempo, la Raspberry Pi, junto con la placa microcontroladora Arduino, se han convertido en un referente en el mundo maker y en el desarrollo de dispositivos para el llamado Internet de las Cosas (IoT).
4. La Raspberry Pi destaca por su gran flexibilidad y su reducido precio (a partir de unos 35 € en el caso de la Raspberry Pi 4, y unos 10 € en el de la Raspberry Pi Zero W) 4. Nos permitirá desarrollar proyectos de software, como por ejemplo un centro multimedia o un servidor web, y también proyectos de hardware, como un sistema de videovigilancia, o la construcción de una estación meteorológica casera.

5. La Raspberry Pi es un dispositivo increíble que permite, gracias a su facilidad de uso, sus infinitas capacidades de expansión y su activa comunidad, el desarrollo de todo tipo de proyectos expandiendo las posibilidades que nos brinda hasta los límites de nuestra imaginación.
IMPORTANTE
Actualmente, es posible conseguir una Raspberry Pi en tiendas especializadas en electrónica de muchas ciudades de España. Si no podemos encontrar una tienda local que disponga de ella, resultará más sencillo adquirirla en alguna de las muchas tiendas que la comercializan por Internet en España o Europa.
002
Los diferentes modelos, usos y distribuciones
En el mercado existen diferentes versiones de Raspberry Pi según las necesidades de los diferentes usuarios, aunque los principales modelos actuales son la Raspberry Pi Zero, Raspberry A+, Raspberry B+, Raspberry Pi 2 y la Raspberry Pi 3. Cada modelo cubre una serie de necesidades específicas, pero, actualmente, la Raspberry Pi 3 está sustituyendo al modelo B, B+ y Pi 2.
En la web oficial de la Fundación Raspberry Pi podemos descargar diversas distribuciones (sistemas operativos) adaptadas a la Raspberry Pi, que dependen del uso que le queramos dar.
1. La Raspberry Pi A+ 1 es la versión que sustituye a la antigua Raspberry Pi A. Este dispositivo es la versión más pequeña de Raspberry, dispone de un solo conector USB, 256 MB de RAM, y carece de puerto Ethernet, pero, a cambio, tiene un consumo muy reducido.

2. De la misma manera, la Raspberry Pi B+ sustituye al modelo Raspberry Pi B. Esta dispone de 4 conectores USB, puerto Ethernet, y 512 MB de RAM.
3. La Raspberry Pi 2 mantiene la base de la Raspberry Pi B+, pero con un procesador quadcore mucho más potente, y 1 GB de RAM. Estas características mejoran ampliamente su rendimiento, y permiten instalar sistemas mucho más complejos como Ubuntu Mate o Windows 10 IoT.
4. La Raspberry Pi 3 2 mejora hasta un 60 % el rendimiento de la Raspberry Pi 2, además de añadir un controlador WiFi 802.11n y Bluetooth 4.1, con los que podremos conectarnos a redes inalámbricas sin necesidad de utilizar ningún accesorio.

5. A diferencia de la Raspberry Pi 3, la nueva Raspberry Pi Zero/Zero W sacrifica funcionalidades y potencia a cambio de reducir su tamaño y precio. Esta placa tiene un coste que ronda los 5 €, en el caso de la Raspberry Pi Zero, y 10 € en el caso de la Raspberry Pi Zero W, y tiene un tamaño mucho más reducido (65 × 30 × 5 mm) 3.

6. La Raspberry Pi 4 modifica sustancialmente las especificaciones de los modelos anteriores.Más allá del aumento de potencia, incorpora un conector USB tipo C para la alimentación, dos salidas micro-HDMI para 2 monitores de resolución 4K, WiFi 5G, Bluetooth 5.0 BLE, y USB 3.0 como características más destacadas. La Raspberry Pi 4 puede adquirirse en varias configuraciones de RAM, que van desde 1 GB a 4 GB.
7. Una vez vistas las diferentes versiones de la Raspberry Pi, deberemos elegir qué sistema le deseamos instalar a nuestro modelo. El sistema más extendido y más flexible es Raspbian, una versión adaptada de la distribución Linux Debian.
8. También podemos instalarle sistemas especialmente dedicados a servir de media center, como OSMC o LibreElec. Estas distribuciones nos permitirán convertir nuestro televisor de casa en un potente centro multimedia de bajo coste.
9. Más allá de las distribuciones oficiales, que podemos encontrar en la web de la Fundación Raspberry Pi, existen multitud de desarrollos de terceros que nos permiten aprovechar una gran variedad de usos alternativos: desde la opción de convertir nuestra Raspberry Pi en una estación para radioaficionados a una consola de juegos antiguos.
IMPORTANTE
Existe, también, un modelo bastante poco usual llamado módulo de computación 4. Este módulo no dispone de conectores de entrada y salida comunes como USB o HDMI, y está preparado para los desarrolladores que quieren una integración total de la Raspberry Pi con las placas diseñadas para sus proyectos mediante el uso de un conector SODIMM.

IMPORTANTE
Aunque las versiones anteriores a la Raspberry Pi 4 se podrían considerar obsoletas, actualmente, se siguen distribuyendo por motivos de retrocompatibilidad con montajes anteriores preexistentes.
003
Conexiones de la Raspberry Pi 4
IMPORTANTE
La diferencia principal entre un puerto USB 3.0 y un puerto USB 2.0 es su velocidad de transferencia. Los puertos USB 3.0 pueden multiplicar por 10 la velocidad pasando de 60 MB/s a 600 MB/s. No olvidemos que el dispositivo que conectemos también debe ser compatible con USB 3.0 para aprovechar su potencial.
Para poder hacer un buen uso, y sacar el máximo partido de nuestro dispositivo, es muy importante conocer todas las conexiones de las que dispone. Si nos fijamos en nuestra Raspberry Pi 4 1, veremos que es bastante diferente a los modelos anteriores. En este ejercicio, vamos a estudiar todas sus conexiones en detalle.

1. De manera muy similar a las versiones anteriores de Raspberry Pi, en la parte frontal veremos el puerto Ethernet, que sirve para conectar la Raspberry Pi a la red mediante un cable.
2. A su lado encontraremos los 4 puertos USB. Es importante tener en cuenta que la Raspberry Pi 4 dispone de 2 puertos USB 3.0 y 2 puertos USB 2.0 2. Los puertos se pueden distinguir por su color, ya que los azules son 3.0, y los negros 2.0.

3. En el lateral se encuentran los dos puertos micro-HDMI para conectar una televisión o un monitor 3. Estos puertos soportan una resolución 4K nativa, y necesitan un adaptador mini-HDMI a HDMI para hacer las conexiones.

4. A la izquierda de los conectores mini-HDMI encontramos el conector de alimentación micro-USB de tipo C 4 y, junto a este, la salida jack de audio.

5. Para mantener la compatibilidad con los proyectos basados en versiones anteriores, los conectores GPIO están en el mismo lugar y con la misma distribución anterior. Estos pines nos servirán para conectar la Raspberry Pi a los sensores y actuadores.
6. Como podemos esperar, en la parte superior de la placa encontraremos la conexión para la Cámara de la Raspberry Pi (en adelante, RasPiCam), el medio de vídeo oficial de la Raspberry Pi (y de muchas otras compatibles), y el conector para un monitor con conexión DSI.
7. En la parte inferior tendremos la ranura para la tarjeta micro-SD, que hará las funciones de disco duro de nuestra Raspberry Pi.
IMPORTANTE
Muchas veces encontraremos tarjetas micro-SD con precios muy diferentes y con el mismo tamaño de almacenamiento. No deberemos confiar en las tarjetas baratas, ya que usualmente serán muy lentas y poco fiables. Deberemos buscar una tarjeta que, como mínimo, sea de categoría UHS-I A1 5 para disponer de un buen rendimiento en nuestra Raspberry Pi.

004
Conexiones de la Raspberry Pi. Modelos anteriores
IMPORTANTE
Los modelos A/A+ y Zero/Zero W de Raspberry Pi no tienen puerto Ethernet.
IMPORTANTE
Los modelos más antiguos tienen también una salida RCA de vídeo compuesto para televisores.
En este ejercicio, analizaremos los modelos antiguos de Raspberry Pi (anteriores a las Raspberry Pi Zero y Raspberry Pi 4) en detalle, y veremos las conexiones que nos brindará este dispositivo para poder aprovecharlo al máximo.
El motivo de comentar las versiones más antiguas de Raspberry Pi se debe a que existen centenares de miles de placas, de estos tipos, en funcionamiento. La Fundación de Raspberry Pi las sigue manteniendo, fabricando y vendiendo hoy en día, por lo que siguen siendo placas válidas actualmente.
1. Lo primero que deberemos hacer es tener una visión general de nuestra Raspberry Pi 1.

2. En la parte frontal veremos el puerto Ethernet 2. Este puerto servirá para conectar la Raspberry Pi a la red mediante un cable.

3. Al lado del puerto Ethernet tendremos los puertos USB 3. Su número varirá dependiendo del modelo. Así, pasaremos de los 4, en el caso de la Raspberry Pi 2 y Raspberry Pi B+, al único puerto USB del modelo A/A+.

4. En un lado se encontrarán el puerto HDMI para conectar una televisión o un monitor 4, el conector de alimentación micro-USB 5 y la salida jack de audio 6.



5. En el lado contrario estarán los pines GPIO 7, que nos servirán para conectar la Raspberry Pi a los sensores y actuadores.

6. En la parte superior de la placa encontraremos la conexión para la RasPiCam 8, la cámara de vídeo oficial de Raspberry Pi, y un monitor con conexión DSI 9.


7. En la parte inferior tendremos la ranura para tarjetas SD/micro-SD a.

8. En el caso de usar una Raspberry Pi Zero/Zero W, las conexiones serán considerablemente diferentes. Para más información podremos consultar el capítulo 5.
9. En el caso de usar una Raspberry Pi 4, en cualquiera de sus configuraciones, consultaremos el capítulo 7.
005
Instalación de la placa Raspberry Pi Zero y Zero W
IMPORTANTE
Con frecuencia, la Raspberry Pi Zero se vende con un paquete de accesorios para dotar a nuestra placa de conectividad, aunque muchas veces sean más caros que la placa misma. No obstante, será muy recomendable adquirirlos si se tiene la posibilidad, ya que nos solucionarán potenciales problemas.
IMPORTANTE
El USB OTG (USB On-The-Go) es una extensión de la norma USB 2.0 que nos permitirá mayor flexibilidad en la interconexión de dispositivos, ya que permitirá cambiar los roles de maestro y esclavo entre los dispositivos conectados.
Una de las últimas novedades de la Fundación Raspberry es la placa de bajo coste (5 €) llamada Raspberry Pi Zero 1, y su versión con WiFi integrado, la Raspberry Pi Zero W (10 €). Esta placa tiene unas funcionalidades y una potencia más limitada, pero es mucho más pequeña (65 × 30 × 5 mm) y económica que el resto, lo que la hace ideal para muchísimos tipos de proyectos. Dadas sus particulares características, la instalación de la Raspberry Pi Zero es un poco diferente a sus hermanas mayores.

1. La Raspberry Pi Zero dispondrá de un conector de tipo mini-HDMI en lugar de un conector HDMI estándar. Por este motivo, para poder conectarla a nuestra pantalla, o monitor, deberemos conseguir un adaptador mini-HDMI a HDMI.
2. El puerto GPIO de la Raspberry Pi Zero y Zero W es 100 % compatible con las otras placas Raspberry, pero no llevará el conector soldado (últimamente ha aparecido la versión llamada Raspberry Pi Zero WH, que sí que incorporará los conectores soldados), por lo que necesitaremos adquirir un conector 2 en cualquier tienda de electrónica, y soldarlo nosotros mismos en caso de querer usarlo.

3. El proceso para soldar el conector (ver nota Importante) a la placa es simple, pero delicado. Deberemos tener cuidado, ya que implicará hacer 40 soldaduras (tantas como pines posee el puerto GPIO) utilizando un soldador para componentes electrónicos 3 y estaño 4.


4. Igual que la Raspberry Pi A/A+, la Raspberry Pi Zero no llevará conector Ethernet, por lo que deberemos conectarla a Internet mediante un dongle WiFi por USB 5.

5. Otra de las características especiales que encontraremos en la Raspberry Pi Zero es que, debido a su pequeño tamaño, no dispondrá de un puerto de conexión USB estándar, sino de un puerto micro-USB (como el usado en los cargadores de teléfonos), por lo que tendremos que utilizar un adaptador USB-OTG 6 para conectar nuestros dispositivos USB a la Raspberry Pi Zero.

6. Dado que los conectores USB de carga y de datos son idénticos, y están uno al lado del otro, seráimportante no confundirse al hacer las conexiones para no estropear la placa.
006
Las diferencias entre Raspberry Pi y Arduino
IMPORTANTE
Un sistema en tiempo real (STR, o RTS en inglés) es aquel sistema digital que interactúa activamente con un entorno con una dinámica conocida, en relación con sus entradas y salidas, para darle un correcto funcionamiento y que sea predecible y estable.
Después de conocer la características de la Raspberry Pi, una de las dudas más frecuentes de las personas que se inician es entender las diferencias entre esta y Arduino. Aunque en algunos casos pueden dar respuesta a necesidades similares, en realidad son dispositivos totalmente diferentes y, muchas veces, complementarios.
1. La Raspberry Pi es un ordenador completo basado en un SoC (System on a Chip) 1 que contiene, entre otras cosas, el procesador y la memoria RAM. Esto implica que, a todos los efectos, una Raspberry Pi se comportará como un portátil o un ordenador de sobremesa, y se podrá usar para las mismas tareas, pero con ciertas limitaciones de potencia y memoria.

2. Arduino es una placa de prototipado 2 que contiene un microcontrolador. Eso significa que, a diferencia de la Raspberry Pi, su funcionamiento estará centrado en unas tareas muy específicas, que básicamente serán leer y escribir datos utilizando sus pines de entrada y salida.

3. Esta diferencia significará, por ejemplo, que con la Raspberry Pi podremos instalar un sistema operativo completo para navegar por Internet, jugar, programar o trabajar, cosa que será imposible con Arduino.
4. De la misma manera, podemos considerar que la Raspberry Pi será más flexible que un microcontrolador Arduino. Las placas Arduino, al dedicarse a una tarea mucho más específica, podrán funcionar como un dispositivo en tiempo real, y serán energéticamente más eficientes y menos propensas a fallos.
5. Si deseamos utilizar la Raspberry para que interactúe, exclusivamente, con el entorno mediante sensores y actuadores 3, deberemos meditar la posibilidad de adquirir un Arduino para complementarla, ya que dispondrá de un rango más amplio de salidas PWM, y entradas analógicas, de las que carece Raspberry Pi. Sin embargo, si buscamos un entorno de desarrollo mucho más flexible, que nos brinde fácilmente conexión a Internet, la elección más completa sería la Raspberry Pi.

6. La baza más importante con la que cuenta la Raspberry Pi será la flexibilidad, ya que, como veremos en los diferentes ejercicios de este libro, nos permitirá hacer infinidad de proyectos interesantes con una amplia y activa comunidad de usuarios y desarrolladores detrás. Estos proyectos serán mucho más variados de lo que serían con Arduino u otro microcontrolador, sobre todo en el campo del desarrollo de software 4.

007
Puesta en marcha de nuestra Raspberry Pi
IMPORTANTE
Aunque existen adaptadores de HDMI a VGA, a veces es difícil encontrar uno que funcione correctamente con la Raspberry Pi, por lo que recomendamos siempre usar HDMI o DVI.
IMPORTANTE
Si quieres arrancar rápidamente, y sin complicaciones, la Raspberry Pi puede ser interesante comprar una tarjeta SD oficial, ya que su precio será razonable, y nos ayudará en los primeros pasos.
Ahora que conocemos todas las partes que componen la Raspberry Pi, en este ejercicio vamos a conectarla y ponerla en marcha por primera vez. Para hacerlo, vamos a explicar paso a paso cómo hacer todas las conexiones para tener lista nuestra Raspberry Pi para trabajar.
1. Aunque la Raspberry Pi puede funcionar con cualquier tipo de televisor o monitor (VGA/DVI/HDMI) 1, por defecto, la Raspberry Pi (hasta el modelo 3) solo trae un conector HDMI. En el caso de que tengamos un monitor o televisor con HDMI, lo conectaremos directamente a nuestra Raspberry Pi.

2. Los modelos Raspberry Pi Zero/Zero W traerán conectores mini-HDMI y, por ello, deberemos disponer adicionalmente de un adaptador de mini-HDMI a HDMI, por lo que tendremos que hacernos con un adaptador si queremos usar otro tipo de conexión.
3. El modelo Raspberry Pi 4 traerá dos conectores micro-HDMI (que permiten conectar dos pantallas de resolución 4K). Debido a esto, deberemos disponer, adicionalmente, de un adaptador de micro-HDMI a HDMI para hacer la conexión a nuestro(s) monitor(es).
4. Deberemos conectar un teclado y un ratón a los puertos USB 2. También podremos usar un teclado y ratón Bluetooth para minimizar el uso de los puertos.

5. En el caso de que dispongamos de una una RasPiCam 3, aprovecharemos para acoplarla al conector superior de nuestra Raspberry Pi.

6. Introduciremos nuestra tarjeta SD/micro-SD con el sistema operativo 4 (si hemos comprado la Raspberry Pi con tarjeta, la introduciremos en la ranura. En caso contrario, seguiremos los pasos de los ejercicios que van desde el 8 al 12).

7. Cuando todo esté conectado correctamente, usaremos un cargador con conector micro-USB 5 para alimentar nuestra Raspberry Pi (hasta el modelo 3). Se trata del mismo utilizado por los teléfonos móviles (excepto iPhones).

8. En el caso de disponer de una Raspberry Pi 4, usaremos un cargador con USB de tipo C de un mínimo de 3 amperios. Se trata del mismo conector que usan los móviles de última generación (excepto iPhones).
9. La Raspberry Pi no tendrá un botón de encendido/apagado, por lo que en el momento de conectarla al cargador, esta arrancará y, si queremos apagarla, deberemos desconectarla de la corriente después de hacer un shutdown del sistema.
008
Formatear una SD con Windows o Mac
IMPORTANTE
Para poder formatear una tarjeta SD/micro-SD deberemos disponer de un lector de tarjetas en nuestro ordenador. Actualmente, la mayoría de ordenadores y portátiles llevarán lectores de tarjetas incorporados, pero, en caso de que no sea así, deberemos adquirir un lector de tarjetas de memoria externo.
IMPORTANTE
Si formateamos una tarjeta SD/ micro-SD de capacidad superior a 32 GB, deberemos seguir las instrucciones del siguiente sitio web: https://www.raspberrypi.org/documentation/installation/sdxc_formatting.md.
Uno de los primeros pasos que deberemos realizar para poner nuestra Raspberry Pi en marcha es preparar la tarjeta micro-SD para que funcione correctamente en nuestro dispositivo. Aunque, a menudo, las tarjetas ya están preparadas para ser usadas tal y como vienen de fábrica, siempre es recomendable formatearlas para evitar posibles problemas posteriores.
El método para formatear las tarjetas será diferente dependiendo del sistema operativo que usemos. En este ejercicio, vamos a hablar de cómo hacerlo en Windows o macOS X.
1. Iremos al sitio de SD Association (http://www.sdcard.org/). Aunque existan muchos otros sitios en los que podremos encontrar aplicaciones similares, este es el sitio web oficial que define los estándares de las tarjetas SD, por lo que será donde encontraremos el software más fiable para esta tarea.
2. Abriremos el menú Download de la página web y pulsaremos en la opción SD Card Formatter.
3. Escogeremos la versión a descargar 1 de la aplicación SD Card Formatter, según sea nuestro sistema operativo (Windows o macOS X), y aceptaremos los términos de la licencia para poder descargarla 2.


4. Descargaremos e instalaremos la aplicación basándonos en las indicaciones según nuestro sistema operativo. El proceso será simple y directo, independientemente de si estamos usando Windows o macOS X.
5. Cuando el software esté instalado correctamente, introduciremos la tarjeta SD/micro-SD en el lector de tarjetas (sea este integrado o externo), y arrancaremos el programa SD Card Formatter.
6. Una vez abierto, en la opción Drive escogeremos el dispositivo asignado a nuestra tarjeta SD/ micro-SD y, en el caso de que lo deseemos, definiremos el nombre de la etiqueta del volumen. Para terminar el proceso, pulsaremos sobre el botón Format 3.

7. Al finalizar, extraeremos la tarjeta, correctamente formateada, del lector de tarjetas 4.

009
Formatear una SD con Linux
IMPORTANTE
Aunque este sistema debe funcionar en todos los casos, existen algunas tarjetas podrán causar problemas al intentar arrancar en una Raspberry Pi después de formatearla de este modo. Si al intentar arrancar la Raspberry Pi no funciona, deberás volver a repetir el proceso, y modificar el arranque de la partición con con el comando a de fdisk.
IMPORTANTE
Otra manera de formatear una tarjeta SD/micro-SD consiste en usar software de terceros. Por ejemplo, en Ubuntu puedes descargar Gparted, que nos permitirá formatear la tarjeta mediante un entorno visual.
En general, para grabar una imagen en una tarjeta SD usando Linux, no es necesario formatear la misma, ya que el proceso de grabación elimina todo el contenido previo. Sin embargo, para usarla y luego cargar NOOBS (New Out Of the Box Software), sí que es necesario tenerla previamente formateada. De todas maneras, es muy importante aclarar que, en los sistemas de Linux modernos como Ubuntu, el formateo de una tarjeta micro-SD es muy sencillo, ya que solo debemos introducir la tarjeta, y usar el botón derecho del menú del gestor de archivos para poder formatearla 1. En este ejercicio vamos a explicar el método más genérico, que nos va servir en cualquier distribución de Linux, por muy antigua que sea, aunque también es el más complejo.

1. Lo primero que deberemos hacer es encontrar el dispositivo que asigna nuestro sistema a la tarjeta SD/micro-SD. Para hacerlo, ejecutaremos el comando sudo fdisk -l antes de introducir la tarjeta, y repetiremos el proceso después de hacerlo. Para localizar nuestro dispositivo deberemos observar las diferencias entre las dos salidas 2 3.


2. Introduciremos la tarjeta en nuestro ordenador, y nos aseguraremos de que el dispositivo no se monte automáticamente. Si eso ocurre, lo más recomendable será desmontar las particiones con el comando sudo umount /dev/sdXY, donde X es la letra del dispositivo asignado, e Y el número de partición que está montado.
3. Cuando conozcamos el dispositivo asignado haremos un sudo fdisk /dev/sdX, donde sdX será el nombre del dispositivo que hemos encontrado en el paso 1.
4. Utilizaremos el comando d para borrar las particiones de la tarjeta una a una. Para conocer las particiones de la misma, usaremos el comando p. Con el comando m, en cambio, podremos ver todas las opciones de fdisk 4.

5. Cuando todas las particiones estén eliminadas, crearemos una nueva partición con el comando n. Después, definiremos que sea una partición primaria asignada al número 1. Para finalizar, le asignaremos el tamaño máximo por defecto.
6. Con el comando p podremos ver que se ha creado la nueva partición correctamente, y después deberemos cambiar el tipo de la misma con el comando t. Elegiremos la partición 1 y el tipo b, que corresponde a W95 FAT32 5.

7. Con el comando w guardaremos los cambios.
8. Para finalizar, formatearemos la tarjeta mediante el comando sudo mkfs. vfat /dev/sdX. Con este último paso la tarjeta estará lista para ser usada.
010
Copiar una imagen de sistema a una tarjeta SD
IMPORTANTE
Cuando hablamos de imagen en este contexto, no nos referiremos a una fotografía, como en la mayoría de otros contextos, sino a una copia exacta bit a bit de un sistema, o de un conjunto de información.
IMPORTANTE
Grabar una imagen en una tarjeta SD siempre será un proceso delicado que debe ejecutarse con cuidado, ya que una confusión entre las diferentes unidades (si tenemos conectada más de una al mismo tiempo) podrá llevarnos a perder toda la información almacenada.
Una de las opciones más interesantes de la Raspberry Pi es que no es necesario usar el proceso de instalación clásico del sistema operativo en la misma. Podemos copiar un sistema operativo previamente instalado y configurado en nuestra SD, directamente, sin ser estrictamente necesario ningún proceso de instalación posterior. Esto significa que podremos guardar una imagen con un sistema totalmente configurado a nuestro gusto, y replicarlo en cualquier otro dispositivo.
También es importante recalcar que, aunque no sea estrictamente necesario, en general, las imágenes genéricas que existen tienen algunos pasos posinstalación para personalizar el sistema y brindar flexibilidad de configuración al usuario. En este ejercicio veremos la manera de hacerlo en tres sistemas operativos: Windows, macOS X y Linux.
1. Lo primero que tendremos que hacer es conseguir una imagen del sistema que queremos instalar. Las más conocidas se pueden descargar de https://www.raspberrypi.org/downloads/ 1.

2. Si es necesario, descomprimiremos el archivo para conseguir la imagen original.
3. Existen varias opciones para copiar de manera correcta una imagen del sistema, ya sea desde Windows, macOS X, Linux o Chromebook. En este caso, vamos a ver la manera más sencilla, que es compatible con todos los sistemas, a excepción de Chromebook.
4. Descargaremos el software BalenaEtcher 2 de https://www.balena.io/etcher/.

5. Introduciremos la tarjeta SD en nuestro lector de tarjetas.
6. Ejecutaremos el programa, seleccionaremos el archivo que contiene la imagen, la unidad SD de destino (sin equivocaciones de selección de unidad), y pulsaremos sobre Flash!
7. En el caso de usar Chromebook, o si queremos seguir métodos más elaborados para otros sistemas operativos, deberemos seguir las instrucciones de https://www.raspberrypi.org/documentation/installation/installing-images/README.md.
IMPORTANTE
Si la Raspberry Pi 4 no arranca, es posible que el bootloader esté corrupto. En estos casos, es posible que debamos reinstalarlo. Para ello, deberemos:
1. Descargar el bootloader de https://www.raspberrypi.org/downloads/.
2. Descomprimir y copiar el contenido del archivo en una tarjeta SD formateada (ver capítulos 8 y 9).
3. Arrancar nuestra Raspberry Pi 4 con esta tarjeta SD.
011
Instalación usando NOOBS
La Fundación Raspberry Pi ofrece diferentes opciones de software para poner en marcha nuestro dispositivo. La más sencilla será mediante el uso de NOOBS, un instalador de sistemas operativos que contiene Raspbian. Además, brinda también la posibilidad de instalar una selección de diferentes sistemas operativos alternativos de manera cómoda, y sencilla, para un usuario que se esté iniciando.
1. Descargaremos el archivo NOOBS de https://www.raspberrypi.org/downloads/, ya sea mediante el enlace directo al archivo zip, o usando la tecnología P2P con torrent 1.

2. Formatearemos la tarjeta SD/micro-SD con las herramientas adecuadas, según el sistema operativo que utilicemos, siguiendo las instrucciones del ejercicio 8 para Windows o Mac, o del 9 para Linux.
3. Descomprimimos el contenido del archivo zip directamente dentro de la tarjeta SD/micro-SD. Al finalizar el proceso de copia, extraeremos la tarjeta de nuestro ordenador de manera segura 2, y la insertaremos en la ranura de nuestra Raspberry Pi. Conectaremos un teclado, una pantalla y, posteriormente, iniciaremos el sistema conectando la alimentación a la Raspberry Pi.

NOTA. En las últimas versiones de Raspbian este proceso se ha simplificado notablemente, y ahora se realizan en un entorno gráfico, pero el concepto es el mismo, por lo que aquí exponemos la versión «larga» para mantener la compatibilidad con versiones anteriores.
4. La Raspberry Pi se iniciará, y aparecerá una ventana con una lista de los diferentes sistemas operativos que se pueden instalar. Recomendamos usar Raspbian, de manera que marcaremos la casilla junto a Raspbian, cambiaremos la configuración del teclado en la parte inferior de la pantalla (de gb a es), y haremos clic en Instalar.
5. Raspbian se ejecutará a través de su proceso de instalación, el cual puede tomar un tiempo.
6. Cuando el proceso de instalación se haya completado, el menú de configuración de Raspberry Pi, llamado raspi-config, se cargará.
7. Entraremos en la opción Internationalisation Options/Change locale, y marcaremos la casilla de nuestra configuración regional (en el caso de España es es_ES.UTF-8).
8. Entraremos a la opción Change Timezone y seleccionaremos la zona horaria de nuestro país.
9. Entraremos en Keyboard Layout para configurar nuestro teclado.
10. Si deseamos que al arrancar Raspbian cargue un entorno de ventanas (recomendado), activaremos la opción Enable Boot to Desktop en el menú principal de raspi-config.
11. Seleccionaremos finish, y reiniciaremos la Raspberry Pi (si no se reinicia sola escribiremos sudo reboot en la consola).
IMPORTANTE
Aunque la Raspberry Pi permite instalar muchos sistemas operativos, tal y como veremos en ejercicios posteriores, recomendamos utilizar Raspbian para seguir los ejercicios correctamente, a menos que se indique lo contrario.
IMPORTANTE
Si al arrancar observamos un marco negro alrededor de la imagen deberemos ir a raspi-config 3, o a la configuración disponible en el entorno gráfico 4, y desactivar el overscan en Advanced Options.


IMPORTANTE
El usuario y la contraseña por defecto en Raspbian pueden cambiarse en raspi-config, o desde la configuración en el entorno gráfico, pero por defecto son pi (usuario), y raspberry (contraseña).
012
Instalación de Raspbian
IMPORTANTE
El tamaño de la tarjeta SD debe ser, al menos, de 4 GB, pero es recomendable que llegue a los 16 GB para poder trabajar con el sistema cómodamente.
IMPORTANTE
Es importante que las tarjetas SD sean de categoría UHS I A1, o superior, ya que la velocidad de lectura, y escritura, de las mismas es un factor crucial en el rendimiento de nuestro sistema operativo. Debido a esto, es posible que al utilizar tarjetas SD antiguas el sistema vaya lento.
Enel ejercicio anterior instalamos un sistema operativo en la Raspberry Pi usando NOOBS. Es una herramienta interesante para poner en funcionamiento de manera sencilla nuestra Raspberry Pi, pero no es la manera más común, ni la más genérica y flexible. En este ejercicio, veremos cómo instalar una distribución en nuestra Raspberry de manera directa sin pasar por instaladores.
1. De manera similar a lo que hicimos con la instalación de NOOBS, descargaremos el archivo de Raspbian del sitio web https://www.raspberrypi.org/downloads/ 1, ya sea mediante el enlace directo al archivo zip, o un torrent.

2. Descomprimiremos el contenido del archivo para conseguir la imagen (.img) que contiene.
3. En este punto, deberemos seguir las instrucciones del ejercicio 10, donde vimos cómo copiar una imagen en una tarjeta SD dependiendo del sistema operativo que estemos usando.
4. Sacaremos la tarjeta SD de nuestro ordenador y la introduciremos en la Raspberry Pi. Después, conectaremos la Raspberry Pi a un monitor, un teclado, un ratón y, finalmente, a la corriente para encenderla.
NOTA. De igual manera que con la instalación de NOOBS, en las últimas versiones de Raspbian este proceso se ha simplificado notablemente, por lo que aquí exponemos la versión «larga» para mantener la compatibilidad con versiones anteriores.
5. a. En el caso de usar una versión de Raspbian antigua:
• Al arrancar el sistema nos aparecerá la pantalla raspi-config, un sistema de configuración de Raspbian.
• Lo primero que haremos será ir a la opción expand filesystem 2. Esta opción hará que podamos trabajar con todo el espacio disponible en nuestra tarjeta SD.

• En la opción change user password podremos modificar los datos de nuestro usuario si no deseamos tener los datos por defecto que trae Raspbian.
• Si queremos que Raspbian arranque directamente en una ventana de escritorio, y no en una consola de texto, se lo deberemos indicar en la opción Enable Boot to Desktop/Scratch 3.

• En el menú Internationalisation Options 4 podremos modificar la configuración regional de nuestra Raspberry Pi, como, por ejemplo, el idioma, la franja horaria y la distribución del teclado.

• Al acabar con nuestra configuración básica, pulsaremos la opción de finalizar, y reiniciaremos nuestra Raspberry Pi.
b. En el caso de usar una versión reciente (actualmente llamada Buster):
• Al arrancar el sistema se iniciará directamente el entorno gráfico, hará la expansión del sistema, y nos hará diversas preguntas sobre el país, la zona horaria y la configuración del teclado (lo que eran las antiguas Internationalisation Options).
• Nos preguntará los datos para la red WiFi en caso de usarla, y nos permitirá hacer automáticamente una actualización del sistema.
• Todas las opciones que desaparecen en esta nueva versión siguen estando disponibles desde el comando raspi-config, o la aplicación gráfica de configuración de Raspbian.
013
Linux: Navegar por el sistema de archivos (I)
Actualmente, prácticamente todos los sistemas operativos que funcionan con Raspberry Pi están basados en Linux. Por este motivo, es muy importante disponer de cierto dominio de este sistema al adentrarnos en el mundo de Raspberry Pi. Linux (en realidad, Linux sería el núcleo, ya que el nombre correcto del sistema completo es GNU/Linux) es un programa de software libre creado por Linus Torvalds en 1991. Aprender Linux en profundidad a nivel teórico y práctico exige mucho tiempo de práctica, pero dominar su uso a nivel de usuario, para llevar a cabo las tareas más habituales, es perfectamente asumible para el usuario medio. En este ejercicio, vamos a dar los primeros pasos ante un terminal de GNU/Linux, y aprenderemos sus conceptos básicos.
1. Para acceder al terminal de Linux desde el entorno gráfico de Raspbian deberemos ir a Menú/ Accesorios y abrir la aplicación LXTerminal. Al abrirla, nos encontraremos con el llamado prompt (pi@raspberrypi ~ $), que nos indicará que el sistema estará listo para aceptar comandos 1.

2. La mayor parte de los comandos de un sistema operativo servirán para recorrer la estructura de directorios, y la manipulación de los ficheros que se podrán encontrar en ellos. En este ejercicio haremos un repaso de los comandos más tipicos para cumplir este objetivo:
ls. El comando ls permite listar el contenido de un directorio o fichero 2. La sintaxis es:

$ ls directorio
El comando ls tiene varias opciones que permiten organizar la salida, lo que resultará particularmente útil cuando sea muy grande. Por ejemplo, podremos usar -a para mostrar los archivos ocultos, y -l para mostrar los usuarios, permisos y la fecha de los archivos. Estas opciones podrán combinarse también de la siguiente forma:
$ ls -la /home/pi
pwd. El comando pwd imprimirá nuestra ruta o ubicación al instante de ejecutarlo. Así, evitaremos perdernos si estamos trabajando con múltiples directorios y carpetas. Su sintaxis es:
$ pwd
clear. El comando clear limpiará nuestra terminal por completo. Para ello, ejecutaremos:
$ clear
cat. La utilidad cat nos permitirá visualizar el contenido de un archivo de texto 3 sin la necesidad de un editor. Para utilizarlo, solo deberemos mencionarlo junto al archivo que deseemos visualizar:

$ cat prueba.txt
touch. El comando touch 4 crea un archivo vacío. Si el archivo existe actualiza la hora de modificación. Para crear el archivo prueba1.txt en /home escribiremos:

$ touch /home/pi/prueba1.txt
IMPORTANTE
El núcleo (kernel) de un sistema operativo es la parte fundamental del sistema. Se encarga de proporcionar acceso del software al hardware, y gestiona los recursos de la manera más óptima posible.
IMPORTANTE
Software libre 5 es la denominación del software que respeta la libertad de todos los usuarios que adquirieron el producto y, por tanto, una vez obtenido el mismo, puede ser usado, copiado, estudiado, modificado, y redistribuido libremente de varias formas.

014
Linux: Navegar por el sistema de archivos (II)
Continuando con el ejercicio anterior, vamos a seguir viendo los comandos básicos con los que navegar por el sistema de archivos 1 de Linux, además de aprender su uso.

mkdir. El comando mkdir crea un directorio nuevo tomando en cuenta la ubicación actual. Por ejemplo, si estás en /home/pi, y deseas crear el directorio ejercicios ejecutaremos:
$ mkdir /home/pi/ejercicios
mkdir tiene una opción bastante útil que permite crear un árbol de directorios completo desde cero. Para ello, usaremos la opción -p:
$ mkdir -p /home/pi/ejercicios/prueba/uno/dos/tres
cd. El comando cd, como su nombre indica, lo usaremos para acceder a una ruta distinta de la actual. Por ejemplo, si estamos en el directorio /home, y deseamos acceder a /home/pi/ejercicios, escribiremos:
$ cd /home/pi/ejercicios
Si estamos en /home/pi/ejercicios, y deseamos subir un nivel (es decir, ir al directorio /home/pi) ejecutaremos:
$ cd ..
cp. El comando cp 2 copia un archivo o directorio de origen a un archivo o directorio de destino. Por ejemplo, para copiar el archivo prueba.txt, ubicado en /home/pi, a un directorio de respaldo, podremos usar:

$ cp /home/prueba.txt /home/respaldo/prueba.txt
En la sintaxis siempre se especificará primero el origen y luego el destino. Si indicamos un nombre de destino diferente, cp copiará el archivo o directorio con el nuevo nombre.
El comando también contará con la opción -r, que copia no solo el directorio especificado, sino todos sus directorios internos de forma recursiva. Suponiendo que deseamos hacer una copia del directorio /home/pi/ejercicios, que a su vez tiene las carpetas ejercicio1 y ejercicio2 en su interior, en lugar de ejecutar un comando para cada carpeta, ejecutaremos:
$ cp -r /home/pi/ejercicios /home/pi/respaldos/
mv. El comando mv mueve un archivo a una ruta específica y, a diferencia de cp, lo elimina del origen finalizada la operación. Por ejemplo, podremos escribir:
$ mv /home/pi/prueba.txt /home/pi/respaldos/prueba2.txt
Al igual que cp, en la sintaxis se especifica primero el origen y luego el destino. Si indicamos un nombre de destino diferente, mv moverá el archivo o directorio con el nuevo nombre.
rm. El comando rm borra un archivo o directorio. Para borrar el archivo prueba.txt, ubicado en / home/pi, ejecutaremos:
$ rm /home/prueba.txt
Este comando también presentará varias opciones. La opción -r borrará todos los archivos y directorios de forma recursiva. Por otra parte, -f borrará todo sin pedir confirmación. Estas opciones podrán combinarse causando un borrado recursivo y sin confirmación del directorio que se especifique. Para realizar esto en el directorio de respaldos ubicado en /home/pi usaremos:
$ rm -fr /home/respaldos
IMPORTANTE
Existe un comando llamado man 3 que nos permitirá mostrar la documentación completa de cada comando. Por ejemplo, si queremos ver todos los detalles y opciones del comando ls, escribiremos:
$ man ls

IMPORTANTE
Rm es un comando muy peligroso 4, ya que, mal usado, puede borrar todo nuestro sistema y nuestros documentos. Por tanto, es importante que nos documentemos bien acerca de los efectos de estas opciones en nuestro sistema para, así, evitar consecuencias nefastas.

015
Gestionando ficheros
IMPORTANTE
En este ejercicio se comentarán conceptos referentes a los usuarios y los grupos, aunque esto lo abordaremos con más detalle en el ejercicio 16, dedicado a la gestión de usuarios.
Después de aprender cómo movernos por la estructura de directorios, ahora vamos a explorar la gestión de ficheros desde la consola de Linux. En los sistemas Linux los archivos pertenecen al usuario que los crea y, por tanto, ese usuario es el único que puede usarlos (modificarlos, borrarlos, ejecutarlos, etc.). Sin embargo, existe una excepción, el llamado usuario root o superusuario, que tiene garantizado el acceso a todo el sistema sin restricciones.
1. Para conocer el propietario y los permisos de un archivo, o directorio, ejecutaremos el comando ls -la. Esto nos permitirá ver no solo el listado de archivos, sino todos sus atributos y su propietario 1.

La salida será del tipo: [Atributos] [Dueño] [Grupo] [Tamaño] [Fecha creación] [Nombre del fichero].
2. El primer campo serán los atributos. Para entender su funcionamiento seguiremos el siguiente esquema:
• El primer carácter definirá si el archivo es un directorio (d), un enlace (l) o un fichero (-).
• Los siguientes atributos serán nueve caracteres, agrupados de 3 en 3, donde cada símbolo significará:
• r (read). Permiso de lectura.
• w (write). Permiso de escritura.
• x (execute). Permiso de ejecución.
• Los primeros 3 caracteres se corresponderán a los permisos del dueño del archivo, los 3 siguientes a los miembros del mismo grupo definido, y los 3 últimos al resto de usuarios.
3. Vamos a ilustrar lo expuesto con un ejemplo. Imaginemos que tenemos un archivo llamado documento.txt con los siguientes atributos: (-rwxr-xr--). El propietario tiene permisos de lectura, escritura y ejecución (para poder borrarlo, por ejemplo). El grupo del propietario tiene permisos de lectura y ejecución (-rwxr-xr--), y el resto de usuarios solo de lectura (-rwxr-xr--).
4. Para cambiar el propietario de un fichero usaremos el comando chown [usuario] [fichero] 2, y para modificar el grupo usaremos el comando chgrp [grupo] [fichero] 3.


5. Si queremos cambiar los permisos de un archivo utilizaremos el comando chmod [u|g|o|a] [+|-] rwx. El primer valor se referirá a la modificación de los permisos para el propietario [u], el grupo [g], el resto de usuarios [o], o a todos [a]. El segundo valor indicará los permisos a modificar: el símbolo más [+] indicará que queremos añadir los permisos, y el símbolo menos [-] que los eliminaremos 4.

Veamos un ejemplo:
El comando chmod o+r-wx documento.txt nos indica que queremos modificar los permisos para el resto de usuarios (que no son propietarios ni pertenecen al grupo) añadiendo el permiso de lectura, y eliminando el permiso de escritura y ejecución.
016
Gestionando usuarios
IMPORTANTE
Por encima de todos los usuarios del sistema existe el llamado superusuario o root, que tiene todos los privilegios, y puede hacer cualquier cosa en el sistema. En nuestra rutina no hace falta que accedamos al sistema con este usuario, ya que este solo será requerido para acciones que impliquen modificaciones en el sistema (en general, fuera de nuestra carpeta de usuario /home/pi, de la que nosotros somos propietarios).
Aunque normalmente, a nivel doméstico, utilicemos Linux como un ordenador de sobremesa donde solo hay un usuario (nosotros) conectado al mismo tiempo, en realidad, el sistema está pensado para servidores en los que puedan existir multitud de usuarios trabajando simultáneamente en el mismo ordenador. Por este motivo, todo el sistema de gestión de usuarios está pensado para permitir tener a mucha gente conectada a la vez sin que se generen conflictos entre ellos.
1. Lo primero que haremos será crear un nuevo usuario. Para ello, nos conectaremos con el usuario por defecto de Raspbian llamado pi. Este usuario tiene los permisos adecuados para ejecutar comandos de superusuario mediante la instrucción sudo.
2. Para crear el nuevo usuario ejecutaremos el siguiente comando:
sudo adduser nuevousuario
En esa línea, nuevousuario será el nombre del usuario que vamos a añadir al sistema.
3. El sistema nos hará una serie de preguntas, requiriendo datos sobre el usuario, para crear la cuenta 1.

4. Después de crearlo, podremos cambiar su contraseña por defecto con el comando:
sudo passwd nuevousuario
5. Si queremos que el nuevo usuario tenga los mismos privilegios que el usuario pi deberemos añadirlo a su grupo. Lo primero que podremos hacer para ver las diferencias será comprobar los grupos a los que pertenece pi:
groups pi 2

Y también veremos los grupos a los que pertenece nuevousuario:
groups nuevousuario 3

6. Para añadir un usuario a un grupo ejecutaremos lo siguiente:
sudo adduser <nombreusuario> <nombregrupo>
Si queremos que el nuevo usuario tenga privilegios para ejecutar comandos de administrador, al igual que pi, deberemos añadirlo al grupo sudo o adm.
7. Si queremos eliminar a un usuario de un grupo ejecutaremos sudo deluser <nombreusuario> <nombregrupo>, y si queremos eliminar el usuario escribiremos sudo deluser <nombreusuario>.
IMPORTANTE
Podremos consultar los scripts que ejecuta el comando service en el directorio /etc/init.d/ 3 de nuestra Raspberry Pi.
Los servicios en Linux
IMPORTANTE
Un daemon (nomenclatura extendida en sistemas Unix), servicio (nomenclatura más usada en Windows), o programa residente (nomenclatura usada en MS-DOS) es un tipo especial de proceso informático no interactivo. Se ejecuta en segundo plano, en lugar de ser controlado directamente por el usuario.
En todas las distribuciones de Linux, y en este caso Raspbian no es una excepción, existen los llamados servicios. Son una serie de programas que están preparados para iniciarse en el momento que arranca el sistema para, luego, quedarse residentes en la memoria. Esta característica les permite estar escuchando los diferentes eventos generados por el sistema, o por el usuario, y responder a ellos. Un ejemplo de un servicio puede ser el servidor web, ya que está pendiente de la solicitud de conexiones por parte de los usuarios, y se encarga de atenderlas.
1. Para ver los servicios que están activos en nuestro sistema ejecutaremos el comando:
sudo service --status-all
2. La salida del comando será parecido a lo siguiente 1:

[ + ] apache2
[ + ] apparmor
[ + ] apport
[ + ] avahi-daemon
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
3. Con el comando service, en general, podremos activar, desactivar o recargar la configuración de un servicio, pero, en todo caso, eso dependerá de cada servicio y de su script asociado.
4. En general, podremos activar un servicio con el comando:
sudo service [servicio] start
5. También, desactivaremos un servicio con el comando:
sudo service [servicio] stop
6. Y recargaremos la configuración de un servicio con el comando:
sudo service [servicio] reload
7. Si intentamos ejecutar en un servicio un comando que no es reconocido por el mismo, en general, el sistema mostrará un mensaje de error 2 con la lista de comandos aceptados.

017

018
Conectar la Raspberry Pi a un monitor VGA o DVI
IMPORTANTE
La opción del conversor de HDMI a VGA es la menos recomendable, dado que hay bastantes modelos de fabricantes que no funcionan bien, y se han reportado muchos problemas en su uso. En el caso de que esta sea nuestra única opción, deberemos adquirir algún conversor garantizado para una Raspberry Pi en las webs especializadas. No deberemos, por tanto, adquirirlo en una tienda de informática común, puesto que nos arriesgamos a que no funcione correctamente.
Como vimos en los primeros ejercicios del libro, para conectar la Raspberry Pi a una pantalla únicamente contamos con una salida HDMI disponible (mini-HDMI en el caso de usar una Raspberry Pi Zero/Zero W, o dos salidas micro-HDMI en caso de la Raspberry Pi 4), a excepción de los modelos obsoletos, que también disponen de una salida RCA para televisores antiguos con entradas analógicas. El hecho de que solo dispongamos de una salida HDMI es perfecto, en el caso de que queramos conectar la Raspberry Pi a un televisor actual, o a un monitor con entrada HDMI, pero puede ser un problema si queremos conectarla a un monitor que solo disponga de entradas VGA/DVI.
1. La Raspberry Pi modelo B dispone de una salida de tipo RCA 1 para vídeo analógico. Aunque es una salida que se considera obsoleta, puede ser un recurso muy interesante si queremos conectar la Raspberry Pi a un televisor que no cuenta con entrada HDMI, o no disponemos del cable adecuado, ya que la gran mayoría de televisiones todavía conservan entradas de video analógicas RCA.

2. En la mayoría de televisiones, la manera más cómoda de conectarlos a la Raspberry Pi es usar un cable HDMI estándar 2, con un adaptador mini-HDMI/micro-HDMI a HDMI si fuera necesario (en el caso de usar una Raspberry Pi Zero W o Raspberry Pi 4). El cable HDMI transmitirá el vídeo y el audio de nuestro dispositivo al televisor.

3. En el caso de que queramos conectar la Raspberry Pi a un monitor, y no a un televisor, lo primero que deberemos hacer es comprobar si dispone de entrada HDMI. Actualmente, la mayoría de monitores no tienen esta entrada, ya que solo disponen de entrada VGA 3 (analógica) y DVI 4 (digital). Sin embargo, si nuestro monitor es lo bastante moderno, es probable que también disponga de entrada HDMI de serie.


4. Si nuestro monitor no dispone de entrada HDMI, el siguiente paso será optar por la entrada DVI. Para ello, deberemos adquirir un adaptador HDMI a DVI. Dado que los dos conectores transferirán la información de manera digital, no hará falta electrónica para la conversión, y son económicos.
5. La última opción será la entrada VGA. Si disponemos de un monitor antiguo que únicamente cuenta con una entrada VGA analógica, deberemos hacernos con un conversor HDMI a VGA. Estos conversores seránmás sofisticados y más caros, puesto que necesitarán un circuito electrónico para hacer la conversión digital/analógica, y darán algunos problemas en la conexión.
Бесплатный фрагмент закончился.
