Aprender_Raspberry_Pi_con_100_ejercicios_practicos.pdf

November 16, 2017 | Author: ntonigar | Category: Raspberry Pi, Arduino, Linux Distribution, Usb, Hdmi
Share Embed Donate


Short Description

Download Aprender_Raspberry_Pi_con_100_ejercicios_practicos.pdf...

Description

Aprender

Raspberry Pi

con 100 ejercicios prácticos

Aprender

Raspberry Pi

con 100 ejercicios prácticos

Gracias a la editorial Marcombo por su confianza y su apoyo, a la comunidad de Raspberry Pi por su inspiración y a Manuela por estar a mi lado. Ferran Fàbregas

Aprender Raspberry Pi con 100 ejercicios prácticos © 2016 Ferran Fàbregas Segunda reimpresión, 2016 © 2016 MARCOMBO, S.A. www.marcombo.com Diseño de la cubierta: NDENU DISSENY GRÀFIC «Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra sólo 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-2253-9

Presentación APRENDER RASPBERRY PI CON 100 EJERCICIOS PRÁCTICOS Los 100 ejercicios prácticos que contiene este libro conforman un recorrido por las principales características y funcionalidades de la Raspberry Pi. Si bien es imposible recoger todas sus posibilidades, dado que éstas son prácticamente infinitas, hemos escogido las más interesantes y utilizadas. Una vez realizados los 100 ejercicios que componen este manual, el lector será capaz de utilizar su Raspberry Pi para las múltiples tareas que este diminuto ordenador es capaz de realizar. 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 ejercita mediante la realización de un ejercicio práctico. 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 de los pasos más importantes o de los resultados que deberían obtenerse y con recuadros marcados como IMPORTANTE que ofrecen información complementaria sobre los temas tratados en los ejercicios. Gracias a este sistema se garantiza que una vez realizados los 100 ejercicios que componen el manual, el usuario será capaz de desenvolverse cómodamente con la Raspberry Pi y sacar el máximo partido de sus múltiples prestaciones. A QUIÉN VA DIRIGIDO EL MANUAL Si se inicia usted en la práctica y el trabajo con Raspberry Pi, encontrará en estas páginas un completo recorrido por sus principales características y posibilidades. Pero si es usted un

7

experto, también le resultará muy útil para consultar determinados aspectos más avanzados o repasar funciones específicas que podrá localizar en el índice. Cada ejercicio está tratado de forma independiente, por lo que no es necesario que los realice por orden (aunque así se lo recomendamos, puesto que hemos intentado agrupar aquellos ejercicios con temática común). De este modo, si necesita realizar una consulta puntual, podrá dirigirse al ejercicio en el que se trata el tema y llevarlo a cabo con su propia Raspberry Pi. RASPBERRY PI Entre los aficionados y profesionales del mundo de la electrónica educativa, la robótica y el mundo maker en general, la Raspberry Pi se ha convertido en todo un referente gracias a su precio, su ingente comunidad y su gran flexibilidad en el ámbito del desarrollo, tanto a nivel de hardware como de software. En este libro encontrará un amplio abanico de ejercicios para que el lector pueda alcanzar una visión global de las posibilidades de la Raspberry Pi. Una de las grandes bazas de Raspberry Pi es la maravillosa comunidad de personas que tiene alrededor, siempre dispuestas a colaborar y compartir los conocimientos, y sin la cual este libro no sería posible. Le invitamos a que descubra la Raspberry Pi y entre en el apasionante mundo de la comunidad maker.

8 8

Cómo funcionan los libros “Aprender...” El título de cada ejercicio expresa sin lugar a dudas en qué consiste éste. De esta forma, si le interesa, puede acceder directamente a la acción que desea aprender o refrescar.

Los ejercicios se han escrito sistemáticamente paso a paso, para que nunca se pierda durante su realización.

El número a la derecha de la página le indica claramente en qué ejercicio se encuentra en todo momento.

Los recuadros Importante incluyen acciones que deben hacerse para asegurarse de que realiza el ejercicio correctamente y también contienen información que es interesante que aprenda porque le facilitará su trabajo con el programa.

En la parte inferior de todas las páginas puede seguir el ejercicio de forma gráfica y paso a paso. Los números de los pies de foto le remiten a entradas en el cuerpo de texto.

9

Índice 001 ¿Qué puedo hacer con una Raspberry Pi?............................ 14 002 Los diferentes modelos, usos y distribuciones..................... 16 003 Conexiones de la Raspberry Pi............................................. 18 004 Las diferencias entre Raspberry Pi y Arduino....................... 20 005 Conectando la Raspberry Pi................................................. 22 006 Formatear una SD con Windows o Mac............................... 24 007 Formatear una SD con Linux................................................ 26 008 Copiar una imagen de sistema a una tarjeta SD.................. 28 009 Instalación usando NOOBS.................................................. 30 010 Instalación de Raspbian........................................................ 32 011 Linux. Navegar por el sistema de archivos (I)...................... 34 012 Linux. Navegar por el sistema de archivos (II)..................... 36 013 Gestionando ficheros............................................................ 38 014 Gestionando usuarios........................................................... 40 015 Los servicios en Linux.......................................................... 42 016 Conectar la Raspberry Pi a un monitor VGA o DVI............. 44 017 Instalar bluetooth en la Raspberry Pi 2 o anteriores............ 46 018 Instalar bluetooth en la Raspberry Pi 3................................ 48 019 Conectar la Raspberry Pi a Internet con Ethernet................ 50 020 Conectar la Raspberry Pi a Internet con WiFi...................... 52 021 Configurar la Raspberry Pi con una IP estática.................... 54 022 Instalación de programas en entorno gráfico...................... 56 023 Instalación de programas desde terminal. Aptitude............ 58 024 Actualización del sistema..................................................... 60 025 Mejorando el rendimiento de la Raspberry Pi...................... 62 10 10

Aprender Raspberry Pi con 100 ejercicios prácticos

026 Instalación de un disco duro externo................................... 64 027 Edición básica de imágenes con Raspbian........................... 66 028 Ver videos con Raspberry Pi................................................. 68 029 Personalizando nuestro escritorio en Raspbian................... 70 030 LibreOffice: La suite ofimática de Raspbian......................... 72 031 Convertir la Raspberry Pi en una consola de juegos............ 74 032 La Pi Store............................................................................. 76 033 Instalando Open Arena........................................................ 78 034 Gráficos vectoriales. Inkscape............................................... 80 035 Servidor de impresión........................................................... 82 036 Conectar un cliente al servidor de impresión...................... 84 037 Instalar el servidor web en una Raspberry Pi....................... 86 038 Instalación de un servidor de bases de datos....................... 88 039 Conceptos generales de SQL................................................. 90 040 Instalación de WordPress en Raspberry Pi........................... 92 041 Crear un blog con WordPress............................................... 94 042 Punto de acceso WiFi con Raspberry Pi y DHCP.................. 96 043 Punto de acceso WiFi con Raspberry Pi (II).......................... 98 044 Instalar y configurar Samba. Compartir............................. 100 045 Acceso remoto a la Raspberry Pi......................................... 102 046 Servidor FTP........................................................................ 104 047 Instalar un servidor DLNA.................................................. 106 048 La Raspberry Pi como centro multimedia.......................... 108 049 Conectando el centro multimedia a un NAS..................... 110 050 Iniciación a Scratch............................................................ 112 11

Índice 051 Ejercicio sobre Scratch: Animando al cangrejo.................. 114 052 Ejercicio sobre Scratch: Laberinto...................................... 116 053 Ejercicio sobre Scratch: Aprender a sumar jugando................... 118 054 Iniciación a Python. Hola mundo con IDLE...................... 120 055 Python. Programando desde el terminal............................ 122 056 Python. Variables................................................................ 124 057 Python. Operadores............................................................ 126 058 Python. Condicionales....................................................... 128 059 Python. Bucles.................................................................... 130 060 Python. Funciones.............................................................. 132 061 Python. Listas..................................................................... 134 062 Python. Trabajando con cadenas de texto......................... 136 063 Python. Entrada/salida y gestión de archivos.................... 138 064 Python. Enviar un correo electrónico................................ 140 065 Iniciacióna Minecraft Pi..................................................... 142 066 Comenzar a programar con Minecraft Pi........................... 144 067 Minecraft Pi. Alterando el mundo...................................... 146 068 Minecraft Pi. Crear minijuegos.......................................... 148 069 Iniciación a Mathematica................................................... 150 070 Mathematica. Variables y funciones generales.................. 152 071 Operaciones con listas y matrices...................................... 154 072 Mathematica. Gráficos en 2D y 3D.................................... 156 073 Mathematica. Acceso al GPIO............................................ 158 074 Iniciación a Sonic Pi........................................................... 160 075 Sonic Pi: Iteraciones, bucles y condicionales..................... 162 12

Aprender Raspberry Pi con 100 ejercicios prácticos

076 Sonic Pi: Samples y sintetizadores...................................... 164 077 Sonic Pi: Efectos y ejemplo práctico................................... 166 078 Ubuntu Snappy Core. Instalar y configurar....................... 168 079 Ubuntu Mate. Instalar y configurar.................................... 170 080 Instalación de la placa Raspberry Pi Zero........................... 172 081 Instalación de Windows 10 en una Raspberry Pi............... 174 082 Desarrollo con Windows 10 y Visual Studio 2015............. 176 083 Introducción al GPIO. Instalación de Rpi.GPIO................ 178 084 Encender un LED................................................................ 180 085 Sensor de temperatura y humedad..................................... 182 086 Sensor de distancia mediante ultrasonidos........................ 184 087 El bus I2C............................................................................ 186 088 Sensor barométrico............................................................. 188 089 Usando un display de segmentos....................................... 190 090 Real Time Clock.................................................................. 192 091 Detector de intrusos. Sensor PIR........................................ 194 092 Sense Hat............................................................................ 196 093 Usar la Raspberry Pi con baterías........................................ 198 094 Conectar una cámara a tu Raspberry Pi............................. 200 095 Haciendo un timelapse con tu Raspberry Pi (I).................. 202 096 Haciendo un timelapse con tu Raspberry Pi (II) ............... 204 097 Instalación de un servidor de streaming de video............. 206 098 Como usar el bus SPI con Raspberry Pi.............................. 208 099 PyFirmata. Comunicar Raspberry Pi y Arduino................. 210 100 Encuentra tu camino experimentando.............................. 212 13

cil

Av Med an io za do



IMPORTANTE Actualmente, es posible conseguir una Raspberry Pi en tiendas especializadas en electrónica de muchas ciudades de España, pero si no podemos encontrar una tienda local que disponga de ella, nos resultará muy sencillo adquirirla en alguna de las muchas tiendas que la comercializan por Internet en España o Europa.

¿Qué puedo hacer con una Raspberry Pi? Bienvenidos a Aprender Raspberry Pi con 100 ejercicios prácticos. En este libro veremos, a través de 100 ejercicios, cómo sacar partido de nuestra Raspberry Pi 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 y enfocados a muy diversos aspectos de nuestro dispositivo, definiendo las bases que servirán posteriormente para que 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 las de Arduino. 3 Este libro ha sido posible también gracias a ella y, aunque es imposible citar a cada persona, blog o website, desde aquí 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 un orden prefijado, es muy recomen-

1

2

14

Aprender Raspberry Pi con 100 ejercicios prácticos dable, sobre todo en el caso de los lectores no iniciados, que se siga la estructura del libro, ya que ésta 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.

001

3. La Raspberry Pi es un ordenador de placa única (es decir, que tiene todos los componentes integrados en una sola placa) y de bajo coste desarrollado 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 (unos 35€), 4 y nos permitirá desarrollar, tanto proyectos de software, como, por ejemplo, un centro multimedia o un servidor web, como 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 de todo tipo de proyectos, llevando la posibilidades que nos brinda hasta los límites de nuestra imaginación. 3

4

15

cil

Av Med an io za do



IMPORTANTE Existe también un modelo bastante poco usual llamado módulo de computación. 3 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 a las placas diseñadas para sus proyectos mediante el uso de un conector SODIMM.

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 actualmente 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 Raspberry Pi 2. En la web oficial de la fundación Raspberry Pi puedes descargar diversas distribuciones (sistemas operativos) adaptadas a la Raspberry Pi, dependiendo siempre de los usos que le queramos dar. 1. La Raspberry Pi A+ 1 es la nueva 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, 256MB 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. Ésta dispone de 4 conectores USB, puerto Ethernet y 512MB 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 1GB de RAM, características que mejoran ampliamente el rendimiento, permitiendo instalar sistemas mucho más complejos como Ubuntu Mate o Windows 10 IoT.

1

4. La Raspberry Pi 3 1 mejora hasta un 60% el rendimiento de proceso de la Raspberry Pi 2, además de añadir un controlador WiFi 802.11n y Bluetooth 4.1 con lo que podremos conectarnos a redes inalámbricas sin necesidad de utilizar ningún accesorio. 2

16

Aprender Raspberry Pi con 100 ejercicios prácticos 5. A diferencia de la Raspberry Pi 3, la nueva Raspberry Pi Zero sacrifica funcionalidades y potencia a cambio de reducir su tamaño y precio. Esta placa tiene un coste que ronda los 5€ y tiene un tamaño mucho más reducido, de 65mm x 30mm x 5mm 1 .

002

6. Para ver el detalle de las especificaciones podemos consultar la siguiente tabla. 1 7. Una vez vistas las diferentes versiones de 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 de Linux Debian. 8. También podemos instalarle sistemas especialmente dedicados a servir de media center como OpenELEC o OSMC. Éstos 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 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. 3 4

17

cil

Av Med an io za do



IMPORTANTE El modelo A y A+ de Raspberry Pi no tienen puerto Ethernet.

Conexiones de la Raspberry Pi En este ejercicio analizaremos la Raspberry Pi en detalle y veremos las conexiones que nos brinda este dispositivo para poder aprovecharlo al máximo. Como hemos visto en el ejericio 2 existen diferentes modelos de Raspberry Pi con diferentes conexiones. En este capítulo hablaremos de todas ellas. 1. Lo primero que debemos hacer es tener una visión general de nuestra Raspberry Pi. 1 2. En la parte frontal vemos el puerto Ethernet. 2 Este puerto sirve para conectar la Raspberry Pi a la red mediante cable. 3. Al lado del puerto Ethernet 3 tenemos los puertos USB. Su número varía dependiendo del modelo. Así, pasamos 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 encuentran el puerto HDMI para conectar una televisión o monitor, 4 el conector de alimentación miniUSB 5 y la salida jack de audio. 6

1 2

18

Aprender Raspberry Pi con 100 ejercicios prácticos

003

5. En el lado contrario está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 encontramos la conexión para la PiCam, 8 la cámara de video oficial de Raspberry Pi, y un monitor con conexión DSI. 9 7. En la parte inferior tenemos la ranura para tarjetas SD/microSD. 10

4

IMPORTANTE Los modelos antiguos tienen también una salida RCA de video compuesto para televisores.

5

8

3

7

9

10 6

19

cil

Av Med an io za do



IMPORTANTE Un sistema en tiempo real (STR o RTS en inglés) es aquel sistema digital que interactúa activamente con un entorno con dinámica conocida en relación con sus entradas y salidas, para darle un correcto funcionamiento y que sea predecible y estable.

Las diferencias entre Raspberry Pi y Arduino 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 ésta y Arduino, ya que, 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 comporta como un portátil o un ordenador de sobremesa y se puede 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 está centrado en unas tareas muy específicas que básicamente serán leer y escribir datos utilizando sus pines de entrada y salida.

1 2

20

Aprender Raspberry Pi con 100 ejercicios prácticos

004

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

4

6. La baza más importante con la que cuenta la Raspberry Pi es 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, siendo estos proyectos mucho más variados de lo que serían con Arduino u otro microcontrolador, sobre todo en el campo del desarrollo de software. 4

3

21

cil

Av Med an io za do



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.

Conectando la Raspberry Pi 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 como ir haciendo todas las conexiones para finalizar con nuestra Raspberry Pi lista para trabajar. 1. Aunque la Raspberry Pi puede funcionar con cualquier tipo de televisor o monitor (VGA/DVI/HDMI), 1 por defecto sólo trae un conector HDMI, por lo que deberemos hacernos con un adaptador si queremos usar otro tipo de conexión. En el caso de que tengamos un monitor o televisor con HDMI lo conectaremos directamente a nuestra Raspberry Pi. 2. Deberemos conectar un teclado y un ratón a los puertos USB. 2 También podríamos usar un teclado y ratón bluetooth para minimizar el uso de puertos. 3. En el caso de que dispongamos de una una PiCam 3 aprovecharemos para conectarla al conector superior de nuestra Raspberry Pi. 4. Introduciremos nuestra tarjeta SD/micro SD con el sistema operativo 4 (si hemos comprado la Raspberry Pi con tarjeta,

1

22

Aprender Raspberry Pi con 100 ejercicios prácticos la introducimos en la ranura. En caso contrario seguiremos los pasos de los ejercicios del 6 al 10). 5. Cuando todo esté conectado correctamente, usaremos un cargador con conector micro USB para alimentar nuestra Raspberry Pi. 5 Se trata del mismo utilizado por los teléfonos móviles (excepto Iphones). 6. La Raspberry Pi no tiene botón de encendido/apagado, por lo que en el momento de conectarla al cargador, ésta arrancará, y si queremos apagarla deberemos desconectarla de la corriente después de hacer un shutdown del sistema. 2

005 IMPORTANTE Si quieres arrancar rápidamente y sin complicaciones la Raspberry Pi puede ser interesante comprar la tarjeta SD oficial, ya que su precio es razonable y nos ayudará en los primeros pasos.

3

4 5

23

cil

Av Med an io za do



IMPORTANTE Para poder formatear una tarjeta SD/microSD debemos disponer de un lector de tarjetas en nuestro PC. Actualmente la mayoría de ordenadores y portátiles llevan lectores de tarjetas incorporados pero, en caso de que no sea así, deberemos adquirir un lector de tarjetas de memoria externo.

Formatear una SD con Windows o Mac Uno de los primeros pasos que deberemos realizar para poner nuestra Raspberry Pi en marcha es preparar la tarjeta SD o microSD para que funcione correctamente en nuestra Raspberry Pi o Raspberry Pi 2. Aunque a menudo las tarjetas ya están preparadas para trabajar, siempre es recomendable formatearlas para evitar la posibilidad de problemas. 1. El método para formatear las tarjetas será diferente dependiendo del sistema operativo que usemos. En este ejercicio vamos a hablar de cómo formatearlas con Windows o MacOSX. 2. Iremos al sitio de SD Association (http://www.sdcard. org/). 1 1

2

24

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Abriremos el menú Download y clicaremos en SD Card Formatter. 2 4. Escogeremos la versión a descargar (Windows o Mac OS X) de la aplicación SD Card Formatter y aceptaremos los términos de la licencia para poder descargarla. 5. Descargaremos e instalaremos la aplicación según nuestro sistema operativo. 6. Introduciremos la tarjeta SD/microSD en el lector de tarjetas y arrancaremos el programa SD Card Formatter. 3 7. En la opción Drive escogeremos el dispositivo asignado a nuestra tarjeta SD/micro SD, definiremos el nombre del volumen y, para finalizar, pulsaremos sobre el botón Format. 4

006 IMPORTANTE Si formateas una tarjeta SD/microSD de capacidad superior a 32GB deberás seguir las instrucciones del siguiente sitio web: https:// www.raspberrypi. org/documentation/ installation/sdxc_ formatting.md.

3

4

25

cil

Av Med an io za do



IMPORTANTE Aunque este sistema debe funcionar en todos los casos, existen algos tipos raros de tarjetas que pueden tener 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 el comando a de fdisk.

Formatear una SD con Linux 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. Aun así, para usarla para cargar NOOBS si que es necesario tenerla previamente formateada. 1. Lo primero que debemos hacer es encontrar el dispositivo que asigna nuestro sistema a la tarjeta SD / microSD, para hacerlo ejecutaremos el comando sudo fdisk -l antes de introducir la tarjeta y repetiremos el proceso después de introducirla, para localizar nuestro dispositivo deberemos observar las diferencias entre las dos salidas. 1 2 2. Introduciremos la tarjeta en nuestro ordenador y nos aseguraremos que el dispositivo no se monte automáticamente, si eso ocurre lo más recomendable es desmontar las particiones con el comando sudo umount /dev/sdXY donde X es la letra del dispositivo asignado y la Y es el número de partición que está montado.

1

2

26

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Cuando conocemos el dispositivo asignado haremos un sudo fdisk /dev/sdX, donde sdX es 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, podremos ver todas las opciones de fdisk. 3

007

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. 4 7. Con el comando w guardaremos los cambios. 8. Para finalizar formateamos la tarjeta mediante el comando sudo mkfs.vfat /dev/sdX. Con este último paso la tarjeta está lista para ser usada. 3

4

27

Copiar una imagen de sistema a una tarjeta SD

cil

Av Med an io za do



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, ya que podemos copiar un sistema operativo previamente instalado y configurado a nuestra SD directamente sin ser estrictamente necesario ningún proceso de instalación posterior. Esto significa que podriamos 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 imagenes genéricas que existen tienen unos pequeños pasos post-instalación para la personalización del sistema y para brindar flexibilidad de configuración al usuario . En este ejercicio veremos la manera de hacerlo en tres sistemas operativos, Windows, Mac OSX y Linux.

IMPORTANTE Cuando hablamos de imagen en este contexto no nos referimos a una fotografía como en la mayoría de otros contextos, sino que en este caso una imagen es una copia exacta bit a bit de un sistema o de un conjunto de información.

1. Lo primero que tendremos que hacer, es conseguir es una imagen del sistema que queremos instalar, las más conocidas se pueden descargar de: https://www.raspberrypi.org/ downloads/ 1 2. Descomprimiremos el archivo si es necesario para conseguir la imagen original del sistema que deseamos instalar. En el caso de usar Windows: 3. Descargaremos el programa Win32DiskImager de http:// sourceforge.net/projects/win32diskimager/ 2

1

28

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Lo instalaremos siguiendo las instrucciones del programa. 5. Introduciremos la tarjeta SD formateada en nuestro lector de tarjetas 6. Ejecutaremos el programa, seleccionaremos el archivo que contiene la imagen y pulsaremos sobre Write

IMPORTANTE

En el caso de usar MacOsX: 7. Abriremos el terminal.

008

3

8. Introduciremos la tarjeta SD y despues la desmontaremos usando el comando sudo diskutil unmount /dev/disk1s1 donde disk1s1 será el dispositivo asignado a la tarjeta (Ver nota Importante en esta página) 9. Cuando tengamos el dispositivo desmontado, vamos a descubrir el nombre del dispositivo base eliminando el s1 y sustituyendo disk por rdisk (ej: /dev/disk1s1 -> /dev/rdisk1) 10. Ejecutaremos la instrucción siguiente: sudo dd bs=1m if=~/ Image.img of=/dev/rdisk1 donde después del if introduciremos la ruta de nuestra imagen y después del of el dispositivo asignado.

Para conocer el dispositivo asignado a la tarjeta SD, deberemos ejecutar desde la consola un df -h antes de introducir la tarjeta y volver a ejecutarlo con la SD introducida. Al analizar las salidas de los dos comandos nos fijaremos en el nuevo dispositivo para conocer el nombre asignado por el sistema.

En el caso de usar Linux: 11. La opción más sencilla para copiar una imagen en una tarjeta SD es mediante la consola. El procedimiento es parecido al del Mac OSX, primero descubriremos el dispositivo asignado, lo desmontaremos (sudo umount /dev/sdx) y para finalizar ejecutaremos el comando siguiente, donde /path/to/image es la ruta a nuestra imagen del sistema: sudo dd if=/dev/sdx of=/path/to/image bs=1M 2

4

3

29

cil

Av Med an io za do



IMPORTANTE Aunque la Raspberry Pi permite instalar muchos sistemas operativos, tal como veremos en ejercicios posteriores, recomendamos utilizar Raspbian para seguir los ejercicios correctamente a menos que se indique lo contrario.

Instalación usando NOOBS La fundación Raspberry Pi nos ofrece diferentes opciones de software para poner en marcha nuestro dispositivo. La más sencilla es mediante el uso de NOOBS (New Out Of the Box Software). NOOBS es un instalador de sistemas operativos que contiene Raspbian, además de brindarnos 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 del sitio web 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/microSD con las herramientas adecuadas según el sistema operativo que utilicemos siguiendo las instrucciones de la lección 7. 3. Extraeremos el contenido del archivo zip directamente dentro de la tarjeta SD/microSD. Al finalizar el proceso de copia, quitaremos la tarjeta de nuestro PC 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.

1

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 marcareSi al arrancar observamos un marco negro alrededor de la imagen deberemos ir a raspi-config y desactivar el overscan en Advanced Options.

30

Aprender Raspberry Pi con 100 ejercicios prácticos mos 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á. 3 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)

009 001 IMPORTANTE El usuario y el password por defecto en Raspbian pueden cambiarse en raspi-config, pero por defecto son [usuario: pi] [password: raspberry]

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).

2

3

31

cil

Av Med an io za do



IMPORTANTE El tamaño de la tarjeta SD debe ser de al menos 4GB, pero es recomendable que llegue a los 8GB para poder trabajar con el sistema cómodamente.

Entrar en Excel y abrir un documento Instalación de Raspbian En el ejercicio anterior instalamos un sistema operativo en la Raspberry Pi usando NOOBS. 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 el fichero imagen (.img) que contiene. 3. En este punto, deberemos seguir las instrucciones del ejercicio número 8, donde vimos cómo copiar una imagen en una tarjeta SD dependiendo del sistema operativo que estemos usando.

1

32

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.

Aprender Raspberry Pi con 100 ejercicios prácticos 5. Al arrancar el sistema nos aparecerá la pantalla del raspi-config, un sistema de configuración de Raspbian. 6. 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. 7. 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. 8. Si queremos que Raspbian nos 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 9. En el menú de 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.

010 IMPORTANTE Es importante que las tarjetas SD sean de categoría 10 o superior, ya que la velocidad de lectura y escritura de las mismas es un factor crucial en el rendimiento de nuestro sistema operativo. Por eso es posible que al utilizar tarjetas SD antiguas el sistema pueda ir lento.

10. Al acabar con nuestra configuración básica, pulsaremos la opción de finalizar y... reiniciaremos nuestra Raspberry Pi. 2

3

4

33

cil

Av Med an io za do



IMPORTANTE El núcleo (kernel) de un sistema operativo es la parte fundamental del sistema y la que se encarga de proporcionar acceso del software al hardware y gestionar los recursos de la manera más óptima posible.

Linux. Navegar por el sistema de archivos (I) Actualmente, prácticamente todos los sistemas operativos que funcionan con Raspberry Pi estan 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 es el núcleo, 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 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 indica que el sistema está listo para aceptar comandos. 1 2. La mayor parte de comandos de un sistema operativo sirven para recorrer la estructura de directorios y la manipulación de los ficheros que se pueden encontrar en ellos. En este ejercicio haremos un repaso a los comandos más tipicos para cumplir este objetivo.

1

34

ls: el comando ls permite listar el contenido de un directorio o fichero. 2 La sintaxis es: 2

Aprender Raspberry Pi con 100 ejercicios prácticos

011

$ ls directorio El comando ls tiene varias opciones que permiten organizar la salida, lo que resulta particularmente útil cuando es muy grande. Por ejemplo, puedes usar -a para mostrar los archivos ocultos y -l para mostrar los usuarios, permisos y la fecha de los archivos. Estas opciones pueden combinarse también de la siguiente forma: $ ls -la /home/pi pwd: pwd es un comando que imprime nuestra ruta o ubicación al momento de ejecutarlo, Así evitamos perdernos si estamos trabajando con múltiples directorios y carpetas. Su sintaxis es: $ pwd clear: clear es un sencillo comando que limpiará nuestra terminal por completo dejándola como recién abierta. Para ello ejecutamos:

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

$ clear cat: cat es una utilidad que nos permite visualizar el contenido de un archivo de texto 3 sin la necesidad de un editor. Para utilizarlo solo debemos mencionarlo junto al archivo que deseamos visualizar: $ cat prueba.txt

4

touch: 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, seria: $ touch /home/pi/prueba1.txt 5 3

35

cil

Av Med an io za do



IMPORTANTE Existe un comando llamado man 3 que nos permite mostrar la documentación completa de cada comando. Como ejemplo, si queremos ver todos los detalles y opciones del comando ls, escribiremos: $ man ls

Linux. Navegar por el sistema de archivos (II) Continuando con el ejercicio anterior, en este seguiremos viendo los comandos básicos para navegar por el sistema de archivos 1 de Linux y aprendiendo su uso. 1. mkdir: 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, sería: $ mkdir /home/pi/ejercicios 2. mkdir tiene una opción bastante útil que permite crear un árbol de directorios completo que no existe. Para eso usamos la opción -p: $ mkdir -p /home/pi/ejercicios/prueba/uno/dos/tres 3. cd: cd es, como su nombre indica, el comando que necesitarás para acceder a una ruta distinta de la que te encuentras. Por ejemplo, si estás en el directorio /home y deseas acceder a / home/pi/ejercicios, sería: $ cd/home/pi/ejercicios 4. Si estás en /home/pi/ejercicios y deseas subir un nivel (es decir ir al directorio /home/pi), ejecutas: $ cd .. 5. cp: cp 2 copia un archivo o directorio origen a un archivo o directorio destino. Por ejemplo, para copiar el archivo prueba.txt ubicado en /home/pi a un directorio de respaldo, podemos usar:

1

$ cp /home/prueba.txt /home/respaldo/prueba.txt 2

36

Aprender Raspberry Pi con 100 ejercicios prácticos 6. En la sintaxis siempre se especifica 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 cuenta con la opción -r que copia no sólo el directorio especificado sino todos sus directorios internos de forma recursiva. 3 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, ejecutamos: $ cp -r /home/pi/ejercicios /home/pi/respaldos/ 7. mv: mv mueve un archivo a una ruta específica y, a diferencia de cp, lo elimina del origen finalizada la operación. Por ejemplo: $ mv /home/pi/prueba.txt /home/pi/respaldos/prueba2.txt

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

8. Al igual que cp, en la sintaxis se especifica primero el origen y luego el destino. 4 Si indicamos un nombre de destino diferente, mv moverá el archivo o directorio con el nuevo nombre. 9. rm: rm es el comando necesario para borrar un archivo o directorio. Para borrar el archivo prueba.txt ubicado en / home/pi, ejecutamos: $ rm /home/prueba.txt 10. Este comando también presenta varias opciones. La opción -r borra todos los archivos y directorios de forma recursiva. Por otra parte, -f borra todo sin pedir confirmación. Estas opciones pueden combinarse causando un borrado recursivo y sin confirmación del directorio que se especifique. Para realizar esto en el directorio respaldos ubicado en el /home/pi, usamos:

4

$ rm -fr /home/respaldos 3

37

cil

Av Med an io za do



IMPORTANTE En este ejercicio se comentan conceptos referentes a los usuarios y los grupos, aunque esto lo abordaremos con más detalle en el ejercicio 14 dedicado a la gestión de usuarios.

Gestionando ficheros 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. Este usuario tiene garantizado 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 sólo 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 son los atributos. Para entender su funcionamiento seguiremos el siguiente esquema: • •

El primer carácter define si el archivo es un directorio (d), un enlace (l) o un fichero (-). Los siguientes atributos son nueve caracteres agrupados de 3 en 3 donde cada símbolo significa:

1 2

38

Aprender Raspberry Pi con 100 ejercicios prácticos



• r (read): Permiso de lectura. • w (write): Permiso de escritura • x (execute): Permiso de ejecución Los primeros 3 caracteres corresponden 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.

013

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 sólo 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 refiere a si queremos modificar los permisos para el propietario [u], el grupo [g], el resto de usuarios [o] o a todos [a]. El segundo valor indica los permisos a modificar: el símbolo más [+] indica que queremos añadir los permisos y el símbolo menos [-] que los eliminamos. 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.

4

3

39

cil

Av Med an io za do



IMPORTANTE Por encima de todos los usuarios del sistema existe el llamado superusuario o root. Este usuario tiene todos los privilegios y puede hacer cualquier cosa en el sistema. En el día a día no hace falta que accedamos al sistema con este usuario, ya que éste sólo es 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).

Gestionando usuarios Aunque normalmente, a nivel doméstico, utilicemos Linux como un ordenador de sobremesa donde sólo hay un usuario (nosotros) conectado al mismo tiempo, en realidad el sistema está pensado para servidores donde pueden 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 usuario nuevo ejecutaremos el siguiente comando: sudo adduser nuevousuario Donde nuevousuario es el nombre del usuario que vamos a añadir en el sistema. 3. El sistema nos hará una serie de preguntas requiriendo datos sobre el usuario para crear una cuenta. 1 1

40

Aprender Raspberry Pi con 100 ejercicios prácticos

014

4. Después de crear el usuario podemos 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 podemos hacer para ver las diferencias es comprobar los grupos a los que pertenece pi: groups pi

IMPORTANTE El usuario y el password por defecto en Raspbian pueden cambiarse en raspi-config, pero por defecto son [usuario: pi] [password: raspberry]

2

y los grupos a los que pertenece nuevousuario: groups nuevousuario

3

6. Para añadir un usuario a un grupo ejecutaremos lo siguiente: sudo adduser 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 haremos sudo deluser , y si queremos eliminar el usuario haremos sudo deluser . 2

3

41

cil

Av Med an io za do



Los servicios en Linux En todas las distribuciones de Linux, y en este caso Raspbian no es una excepción, existen los llamados servicios, una serie de programas que están preparados para arrancar en el momento que arranca el sistema y que se quedan residentes en 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 podría ser el servidor web, que está pendiente de la solicitud de conexiones por parte de los usuarios y se encarga de atenderlas.

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, es decir, que se ejecuta en segundo plano en vez de ser controlado directamente por el usuario.

1

42

Aprender Raspberry Pi con 100 ejercicios prácticos 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á algo parecido a esto: [ [ [ [ [ [ [ [

1

+ ] apache2 + ] apparmor + ] apport + ] avahi-daemon ? ] umountfs ? ] umountnfs.sh ? ] umountroot - ] urandom

015 IMPORTANTE Podemos consultar los scripts que ejecuta el comando service en el directorio / etc/init.d/ 3 de nuestra Raspberry Pi.

3. Con el comando service, en general, podemos 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:

2

sudo service [servicio] start 5. Desactivar un servicio con el comando: sudo service [servicio] stop 6. Recargar 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 3 con la lista de comandos aceptados.

2

3

43

cil

Av Med an io za do



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, y no adquirirlo en una tienda de informática común, puesto que nos arriesgamos a que no funcione correctamente.

Conectar la Raspberry Pi a un monitor VGA o DVI Como vimos en los primeros ejercicios del libro, para conectar la Raspberry Pi a una pantalla únicamente contamos con una salida HDMI disponible, a excepción de los modelos obsoletos, que también disponían de una salida RCA para televisores antiguos con entradas analógicas. El hecho de que sólo 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 sólo disponga de entradas VGA y/o DVI. 1. La Raspberry Pi modelo B dispone de una salida de tipo RCA 1 para video 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

1

44

Aprender Raspberry Pi con 100 ejercicios prácticos 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 que transmite tanto video como 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 sólo disponen de entrada VGA 3 (analógica) y DVI 4 (digital). Sin embargo, si nuestro monitor es 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 transfieren la información de manera digital no hace falta electrónica para la conversión y son económicos.

016 IMPORTANTE Si formateas una tarjeta SD/microSD de capacidad superior a 32GB deberás seguir las instrucciones del siguiente sitio web: https:// www.raspberrypi.org/ documentation/installation/ sdxc_formatting.md.

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 son más sofisticados y más caros, puesto que necesitan un circuito electrónico para hacer la conversión digital/analógica, y dan algunos problemas en la conexión.

4

3

45

cil

Av Med an io za do



Instalar bluetooth en la Raspberry Pi 2 o anteriores El bluetooth es una herramienta útil para interconectar dispositivos que se comunican de forma inalámbrica entre ellos directamente, sin utilizar otras tecnologías más complejas como WiFi. De este modo, si queremos que nuestra Raspberry Pi intercambie información con un teclado, un ratón, un teléfono móvil o unos altavoces inalámbricos, deberemos usar la tecnología bluetooth para ello. Dado que la Raspberry Pi 2 y los modelos anteriores no incorporan de serie conexión bluetooth, en este ejercicio hablaremos de cómo instalarlo y usarlo. 1. Lo primero que deberemos hacer es conseguir un dispositivo bluetooth compatible con la Raspberry Pi. 1 Aunque la mayoría de dispositivos funcionarían, lo más recomendable es comprobar previamente en internet si el modelo que estamos pensando en comprar es compatible, o acceder a listas de compatibilidad como las que podemos encontrar en: http://elinux.org/RPi_USB_Bluetooth_adapters

1

2. Cuando tengamos nuestro dispositivo bluetooth compatible, como en muchos otros ejercicios, lo primero que deberemos 2

46

2

Aprender Raspberry Pi con 100 ejercicios prácticos hacer será actualizar nuestro sistema mediante los comandos: sudo apt-get update sudo apt-get upgrade 3. Seguidamente instalaremos los paquetes que necesita Raspbian para interactuar con los dispositivos bluetooth: 3

017

sudo apt-get install bluetooth bluez-utils blueman 4. Para comprobar si el dispositivo bluetooth está correctamente instalado podemos ejecutar el comando lsusb, 4 y veremos en la salida alguna línea parecida a: Bus 001 Device 005: 1D 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HC1 mode) 5. Podemos comprobar y modificar el estado del dispositivo con el comando: /etc/init.d/bluetooth status Donde status puede ser ‘start’, ‘stop’, ‘restart’ o ‘force-reload’ 6. Cuando todo esté correctamente configurado, iremos a Menu > preferencias > bluetooth manager, que abrirá una ventana donde podremos ver los dispositivos bluetooth que están cerca de nuestra Raspberry Pi, y podremos conectarnos con ellos.

3

4

47

cil

Av Med an io za do



IMPORTANTE Cada dispositivo bluetooth es diferente y puede tener sus particularidades, por lo que es imposible cubrir todas las posibilidades. En este ejercicio hemos visto el ejemplo más genérico, que debería cubrir la mayoría de casos comunes.

Instalar bluetooth en la Raspberry Pi 3 A diferencia del resto de placas Raspberry, el nuevo modelo Raspberry Pi 3 incorpora el chip BCM43438 1 que integra red WiFi 2.4GHz 802.11n, Bluetooth Low Energy y Bluetooth 4.1. Este añadido era una novedad muy demandada por la comunidad de Raspberry ya que nos facilitará mucho la vida a nivel de interconexión a diferentes redes y el acceso al IoT (Internet de las cosas). 1. Para comenzar, deberemos estar seguros de que tenemos la última versión de nuestro sistema operativo, en este caso Raspbian, que es la distribución oficial de Raspberry Pi. Para ello ejecutaremos los clásicos: sudo apt-get update sudo apt-get upgrade 2. A diferencia del ejercicio anterior, donde utilizamos una interfaz gráfica llamada blueman, esta vez configuraremos el bluetooth mediante la línea de comandos. Para ello instalaremos el programa bluetoothctl:

1

48

sudo apt-get install pi-bluetooth

2

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Si queremos utilizar un altavoz bluetooth también deberemos instalar pulse audio: sudo apt-get install pulseaudio pulseaudio-module-bluetooth 4. Ejecutaremos el programa bluetoothctl consola de gestión.

2

y entraremos en la

5. Dentro de la consola de bluetoothctl activaremos el bluetooth: power on 6. Activaremos el agente: agent on 7. Le pediremos al sistema que descubra los dispositivos bluetooth cercanos que están disponibles: 3 scan on 8. Nos fijaremos en la dirección MAC (ver nota) de nuestro dispositivo y emparejaremos los mismos mediante el comando: pair [DIRECCION_MAC] En este momento es posible que se nos pida un código para comprobar que el emparejamiento está autorizado. 9. Le diremos al sistema que confíe en nuestro dispositivo con el comando:

018 IMPORTANTE Las direcciones MAC, 4 a diferencia de las direcciones IP, son identificadores únicos de las que disponen todos y cada uno de los dispositivos con funcionalidades de red que existen en el mundo. Cada dispositivo comercializado en cualquier lugar del mundo tiene una única dirección MAC que se asigna en el momento de la fabricación (independientemente de si se conecta a internet o sólo lo usamos en un lugar aislado) y que nunca se repetirá, ni ahora ni en el futuro, por lo que nos sirve como método ideal para asociar nuestros dispositivos bluetooth de manera unívoca.

trust [DIRECCION_MAC] 10. Finalmente conectaremos nuestros dispositivos con el comando: connect [DIRECCION_MAC]

3

4

49

cil

Av Med an io za do



IMPORTANTE Ethernet es un estándar de redes de área local para ordenadores. Su nombre viene del concepto físico de ether. Ethernet define las características de cableado y señalización de nivel físico y los formatos de los datos.

Conectar la Raspberry Pi a Internet con Ethernet Aunque no sea estrictamente necesario disponer de conexión a Internet para disfrutar de nuestra Raspberry Pi, la realidad es que una de las primeras cosas que querremos hacer después de poner en funcionamiento nuestro dispositivo será conectarlo a Internet. En la mayoría de casos la conexión a Internet debería ser una tarea sencilla, pero en este ejercicio veremos cómo hacerlo en detalle. 1. Hasta la versión 3, la Raspberry Pi no disponía de conexión WiFi incorporada, por lo que la manera más directa de conectar nuestra Raspberry Pi a Internet era utilizando el puerto Ethernet. 1 La nueva Raspberry Pi 3 incorpora un módulo WiFi integrado, pero en este ejercicio hablaremos de como conectar nuestro dispositivo utilizando la conexión Ethernet ya que nos puede ser muy útil en algunos casos. 2. Para conectar nuestra Raspberry Pi a la red usando la conexión Ethernet necesitaremos disponer de un router conectado a Internet y con conectores Ethernet disponibles cerca de nuestra Raspberry Pi. 3. También necesitaremos un cable con un conector RJ45 2 de la longitud adecuada para conectar la Raspberry Pi con el router. 4. Normalmente los routers tienen activado el servicio de DHCP. DHCP es un protocolo de red que permite a los clientes de una

1 2

50

Aprender Raspberry Pi con 100 ejercicios prácticos red IP obtener sus parámetros de configuración automáticamente. Gracias a esta característica, en el momento de conectar el cable Ethernet entre el router y nuestra Raspberry Pi deberíamos disponer de conexión, aunque es recomendable reiniciar la Raspberry Pi con el cable ya conectado mediante el comando. En caso de que nuestro router no tenga activado el servicio de DHCP, deberemos acceder a él para activarlo o configurar la red mediante una IP estática siguiendo el ejercicio 20. sudo reboot

5. Para comprobar si realmente el servidor DHCP está funcionando después de conectar el cable, será necesario ejecutar el comando ifconfig y deberemos ver nuestra IP en la configuración. 3

019 IMPORTANTE RJ-45 es una interfaz física comúnmente utilizada para conectar redes de ordenadores mediante el uso de cableado. Posee ocho pines que normalmente se usan como extremos de cables de par trenzado.

6. Si nuestro sistema dispone de una IP válida, deberemos comprobar la conexión a Internet mediante el siguiente comando: ping www.google.com

Si obtenemos una respuesta 4 significará que nuestra Raspberry Pi está conectada correctamente a Internet.

3

4

51

cil

Av Med an io za do



IMPORTANTE El WiFi es un mecanismo de conexión de dispositivos electrónicos de forma inalámbrica. Los dispositivos habilitados con WiFi pueden conectarse a Internet a través de un punto de acceso de red inalámbrica. Dicho punto de acceso tiene un alcance de unos veinte metros en interiores, distancia que es mayor al aire libre. 3

Conectar la Raspberry Pi a Internet con WiFi En el ejercicio anterior hemos visto la manera más simple de conectar nuestra Raspberry Pi a Internet mediante cable. A partir de la nueva versión 3, la Raspberry Pi incorpora WiFi integrado, pero es muy posible que tengamos un modelo anterior que no disponga de WiFi, de todas maneras, eso no será ningún impedimento para que no podamos utilizar un adaptador inalámbrico WiFi USB y dotar de esta manera nuestra Raspberry Pi de conexión inalámbrica. 1. En el caso de disponer de una Raspberry Pi 3, nuestro sistema reconocerá automáticamente las redes inalámbricas disponibles y podremos conectarnos a nuestra red preferida sin ninguna intervención por nuestra parte ya que los controladores están integrados en la distribución de Raspbian oficial. (saltar al punto 4) 2. En el caso de disponer de una Raspberry Pi 2 o anterior, lo primero que deberemos hacer es adquirir un adaptador inalámbrico WiFi compatible con nuestra Raspberry Pi. 1 La mayoría lo son, pero será recomendable asegurarnos en los foros de Raspberry Pi en Internet de que el modelo que tenemos en mente sea compatible. 3. La mayoría de adaptadores económicos (10€-15€) funcionarán, ya que entre ellos es muy común el chipset RTL8192cu.

1

52

2

Aprender Raspberry Pi con 100 ejercicios prácticos

020 001

4. Cuando tengamos nuestro adaptador compatible, lo conectaremos a un puerto USB e iniciaremos nuestra Raspberry Pi. 5. La manera más sencilla de comprobar que la Raspberry Pi ha reconocido el adaptador inalámbrico es utilizando la herramienta de configuración de redes WiFi que trae por defecto Raspbian. 2 6. Si vemos una lista de redes inalámbricas 3 es que todo funciona correctamente. En este caso lo que deberemos hacer es escoger nuestra red WiFi de la lista y seleccionarla. 7. El programa nos pedirá que introduzcamos el password de la red, 4 que normalmente está escrito en el router que nos brinda la conexión a Internet. 8. Otra manera de configurar la red WiFi es utilizar el programa wpa_gui 5 que nos permite analizar la red y la configuración WiFi de una manera más avanzada. 9. Cuando tengamos la red configurada, el router nos asignará la configuración de la red vía DHCP y podremos comenzar a navegar de manera inalámbrica. 10. También podemos comprobar la conexión WiFi desde la consola haciendo un ping a los servidores de google y comprobar si responde.

IMPORTANTE Como programa, ping es una utilidad diagnóstica de redes que comprueba el estado de la comunicación del host local con uno o varios equipos remotos de una red IP por medio del envío de paquetes de solicitud y de respuesta. Mediante esta utilidad puede diagnosticarse el estado, velocidad y calidad de una red determinada.

5

ping www.google.com

4

53

cil

Av Med an io za do



IMPORTANTE En este ejercicio vamos a asumir que estamos conectándonos a la red mediante Ethernet. También es posible conectarse a la red con una IP estática mediante WiFi, pero es mucho menos habitual.

Entrar en Excel y abrir Configurar la Raspberry uncon documento Pi una IP estática En general cuando configuramos nuestra Raspberry Pi y la conectamos a nuestra red, se le asigna una IP dinámica de manera automática. Este procedimiento es el más habitual en entornos domésticos y también es frecuente en entornos profesionales, pero a veces necesitamos configurar nuestro sistema con una IP estática, puesto que no existe un servidor de DHCP en nuestra red. 1. Dado que vamos a cambiar la configuración de la red, será necesario que tengamos la Raspberry Pi conectada a una pantalla y a un teclado, pues necesitaremos una acceso físico al sistema para modificar los parámetros de la red. 2. Lo primero que deberemos descubrir es la IP de nuestro gateway o puerta de acceso, que en general coincide con la de nuestro router. 1 3. Deberemos escoger la IP que queremos asignar a nuestra Raspberry Pi. Para conocer esa IP es importante conocer la configuración de nuestra red y saber qué rangos están disponibles. La mejor manera de conocer este dato es conectarnos al router 2 o preguntar a nuestro administrador de la red.

1

54

Aprender Raspberry Pi con 100 ejercicios prácticos

021

4. Haremos una copia de seguridad del archivo /etc/network/ interfaces mediante el comando sudo cp /etc/network/ interfaces interfaces.old. 5. Editaremos el archivo /etc/network/interfaces mediante el comando sudo nano -w /etc/network/interfaces. 3 Este comando nos abrirá el archivo en el editor de texto nano, que es un editor básico pero simple de usar. 6. Buscaremos la línea:

iface eth0 inet dhcp

Y la sustituiremos por: iface eth0 inet static address [Nuestra IP] netmask 255.255.255.0 gateway [La IP de nuestro Router]

IMPORTANTE Si no estamos accediendo a la Raspberry Pi de manera física desde un teclado y monitor (por ejemplo, usando una conexión remota con SSH), en el momento de hacer un sudo ifdown eth0 perderemos la conectividad y no la podremos recuperar hasta reiniciar nuestro dispositivo.

7. Para salir del editor nano debemos pulsar la tecla Ctrl y al mismo tiempo la letra x. Nos preguntará si queremos salvar los cambios, a lo que debemos responder que sí escribiendo una letra s y clicando Enter. 8. Para que los cambios tengan efecto deberemos desactivar y reactivar la interfaz de red mediante un sudo ifdown eth0 y después un sudo ifup eth0. 2

3

55

cil

Av Med an io za do



IMPORTANTE Los paquetes ya instalados se marcan con un icono de color verde, y si además son paquetes con soporte oficial para la distribución veremos a su lado una estrella amarilla.

Instalación de programas en entorno gráfico El proceso más común de instalación de una aplicación en Windows o Mac implica la descarga del programa deseado de una web, la ejecución del instalador y todo el consecuente proceso de instalación. Actualmente esto está variando con las aparición de tiendas de aplicaciones importadas de los dispositivos móviles. Sin embargo, es importante destacar que este sistema, donde el usuario simplemente escoge la aplicación deseada de un repositorio centralizado (conocidos actualmente como tiendas de aplicaciones) y ésta se instala inmediatamente sin ningún requisito más, existe desde hace décadas en Linux y es la manera más común de instalar aplicaciones. Synaptic, por lo tanto, es un front-end gráfico para el sistema de gestión de paquetes que incorpora Raspbian, que nos permite instalar, eliminar, configurar o actualizar los paquetes de software, buscar en la lista de paquetes de software disponibles, gestionar repositorios, o actualizar todo el sistema. Synaptic informará acerca de las dependencias (paquetes adicionales requeridos por el paquete de software elegido), así como de los conflictos con otros paquetes que ya están instalados en nuestro sistema.

3

2

1

56

Aprender Raspberry Pi con 100 ejercicios prácticos

022

1. En el caso de que no esté instalado, instalaremos Synaptic con el comando: sudo apt-get install synaptic 2. Arrancaremos la aplicación desde el menú de Raspbian. Al iniciarse nos pedirá el password del superusuario (root). 1 Si no lo hemos modificado previamente será raspberry. 3. Después de acceder a la aplicación veremos la pantalla principal 2 de Synaptic. En la sección de la izquierda podemos ver la lista de categorías en las que se agrupan los diferentes paquetes, y en la sección de la derecha la relación de aplicaciones disponibles. 4. Es importante que antes de comenzar a buscar el paquete que nos interesa, utilicemos la opción reload 3 para actualizar la lista de paquetes disponibles. 5. Mediante la herramienta search podemos buscar un paquete en particular dentro del repositorio. 4 6. Cuando tengamos seleccionado el paquete deseado, con el botón derecho podremos marcarlo para ser instalado en nuestro sistema. Este proceso, además, nos permitirá instalar las dependencias del mismo. 5 7. Al finalizar el proceso le daremos al botón apply y se iniciará el proceso de instalación de manera totalmente transparente al usuario. 6

IMPORTANTE Una de las filosofías de Linux es su funcionamiento modular para evitar tener información redundante en el sistema, por lo que cada paquete lleva sólo el código mínimo que es exclusivo de esa aplicación sin incorporar el resto de componentes necesarios para que funcione. Por este motivo, al instalar un nuevo paquete en general el sistema nos requiere instalar otros paquetes de los cuales depende y que no tenemos instalados (que son las llamadas dependencias).

6

4

5

57

cil

Av Med an io za do



IMPORTANTE Debian es una de las distribuciones con más historia y más reputación dentro del mundo de GNU/Linux. Ubuntu, Linux Mint y Raspbian son distribuciones que se basan en Debian.

Instalación de programas desde terminal. Aptitude Tal como hemos visto en el ejercicio anterior con el instalador gráfico Synaptic, también existe un instalador simple de usar desde terminal. Aptitude es lo que podríamos llamar un front end basado en ncurses del conjunto de comandos apt, que es el gestor de paquetes oficial de Debian. 1. Aptitude puede funcionar en dos modos, el modo interactivo y el modo manual. El modo interactivo nos permite acceder a un entorno de menús basado en ncurses 1 y el modo manual tiene un funcionamiento muy parecido a apt-get. 2 2. En el modo interactivo la manera de funcionar será la siguiente: F10 para acceder al menú de uso de Aptitude. Ésta es la tecla principal. ? para ayuda. Las teclas arriba, abajo, izquierda, derecha para desplazarse. Enter para seleccionar.

1 2

58

Aprender Raspberry Pi con 100 ejercicios prácticos + o - para instalar, actualizar o eliminar un paquete. g para vista previa y para confirmar acciones. q para quitar –esto cierra la ventana (g avanza, q retrocede) 3. El uso común de Aptitude en el entorno interactivo es: ejecutar Aptitude; presionar u (actualizar la lista de paquetes disponible); presionar U (selecciona todos los paquetes actualizables para actualizar); presionar g (para ver las acciones pendientes y modificarlas en caso necesario); presionar g (de nuevo, para descargar). A veces, cuando necesitemos resolver conflictos o cuando se descubre un error, podemos usar Cancelar acciones pendientes desde el menú Acciones.

023

4. Al revisar las acciones pendientes: a aceptar una acción (presionamos de nuevo para no aceptar) r rechazar una acción g nuevamente para seguir adelante con las acciones pendientes 5. En el entorno manual utilizaremos sudo aptitude update 3 para actualizar los repositorios, sudo aptitude search ‘paquete’ 4 para buscar un paquete, sudo aptitude install ‘paquete’ para instalar un paquete y sudo aptitude remove ‘paquete’ para eliminarlo del sistema. 3

4

59

cil

Av Med an io za do



IMPORTANTE En el entorno de Linux hay diferentes sistemas de gestión de paquetes, pero los dos más extendidos son los llamados deb y los llamados rpm. Los primeros son los utilizados por la distribución de Debian y todas sus variantes, como Ubuntu o la misma Raspbian. El sistema de paquetes rpm es el utilizado por Red Hat y sus derivados como Fedora/ Pidora o CentOS.

Actualización del sistema Una de las tareas más importantes que se debe tener en cuenta para que la Raspberry Pi funcione correctamente son los procesos de mantenimiento del sistema. En este ejercicio veremos cómo actualizar nuestra Raspberry Pi para mantenerla al día. Es muy importante recalcar que el proceso de actualización será diferente según el sistema operativo que estemos utilizando, pero en este ejercicio nos centraremos en Raspbian, el sistema operativo basado en Debian más popular en la Raspberry Pi. 1. Hay muchas maneras de actualizar Raspbian (y por extensión, cualquier sistema operativo basado en Debian). Para comenzar, abriremos una ventana de terminal. 2. Tal como hemos visto en los ejercicios 21 y 22, podemos utilizar las aplicaciones para instalar paquetes y para actualizar el sistema, pero en este ejercicio lo haremos con el programa raíz en el que se basan los otros: apt-get. 3. Lo primero que haremos es actualizar los repositorios de paquetes con el comando sudo apt-get update. 1 1

60

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Al finalizar la actualización de los repositorios, ejecutaremos el comando sudo apt-get upgrade 2 para instalar las nuevas versiones de todos los paquetes previamente instalados. 5. El proceso de actualización no sólo se basa en los paquetes, sino que también es importante actualizar el kernel y el firmware del sistema. 6. Ejecutaremos el programa rpi-update 3 con el comando sudo rpi-update para actualizar el kernel y el firmware. Si queremos actualizar el sistema es importante tener en cuenta que debemos disponer de una conexión a internet. 7. Para verificar que la actualización del firmware y del kernel ha funcionado podremos ejecutar el comando /opt/vc/bin/ vcgencmd version para comprobar la versión del firmware, y el comando uname -a para ver la versión del kernel.

024 IMPORTANTE El kernel de un sistema operativo es la parte del mismo que tiene las funciones más vitales y conjuntamente con el firmware implementa el grupo de instrucciones de bajo nivel para comunicarse con el hardware de nuestro dispositivo.

2

3

61

cil

Av Med an io za do



IMPORTANTE La práctica conocida como overclocking pretende alcanzar una mayor velocidad del procesador por encima de las especificaciones del fabricante. La idea es conseguir un rendimiento más alto gratuitamente, o superar las cuotas actuales de rendimiento, aunque esto pueda suponer una pérdida de estabilidad o acortar la vida útil del componente.

Mejorando el rendimiento de la Raspberry Pi En este ejercicio veremos cómo podemos mejorar el rendimiento de nuestra Raspberry Pi utilizando la técnica del overclocking. El procesador de la Raspberry Pi permite modificar su velocidad por parte del usuario por lo que podremos aplicar diversas técnicas para mejorar su rendimiento. 1. Dado que la Raspberry Pi (en todos sus modelos) y la Raspberry Pi 2 tienen un procesador diferente, los valores de configuración serán también diferentes en el caso de intentar una configuración personalizada del rendimiento del mismo. Los modelos de Raspberry Pi tienen un single-core ARM1176JZFS a 700 MHz y la Raspberry Pi 2 dispone de un procesador ARM Cortex-A7 quad-core a 900 MHz. 1 2. Hay dos maneras de modificar la velocidad del procesador de nuestra Raspberry Pi. La más sencilla y que no anula la garantía de la Raspberry Pi es utilizar el comando raspi-config. Para ello ejecutaremos el comando sudo raspi-config e iremos a la opción overclock. 2 3. Dentro del menú de overclock podremos escoger el grado de modificación de la velocidad del procesador. Después de seleccionar nuestra opción, deberemos reiniciar la Raspberry Pi. Es

1 2

62

Aprender Raspberry Pi con 100 ejercicios prácticos

025

importante tener en cuenta que el aumento de la velocidad del procesador puede significar que el sistema se vuelva inestable 3 y a buen seguro aumentará la temperatura y acortará la vida del dispositivo. 4. El sistema de seguridad de la Raspberry Pi deshabilitará el overclock en caso de superar los 85º centígrados. 5. Las últimas versiones del firmware de la Raspberry Pi contienen una versión mejorada del sistema de overclock que monitoriza la temperatura del chip y establece la velocidad del chip y el voltaje de manera dinámica. Como ejemplo, las opciones de configuración de la Raspberry Pi B+ son (en el caso de usar una Raspberry Pi 2 se añade una opción más, pero el concepto es el mismo): • • • • •

none: 700 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0 overvolt, modest: 800 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0 overvolt, medium: 900 MHz ARM, 250 MHz core, 450 MHz SDRAM, 2 overvolt, high: 950 MHz ARM, 250 MHz core, 450 MHz SDRAM, 6 overvolt, turbo: 1000 MHz ARM, 500 MHz core, 600 MHz SDRAM, 6 overvolt.

6. Una opción mucho más agresiva (y poco recomendable a menos que seas un experto) de modificar la configuración del chip es modificar manualmente todos los parámetros de configuración del SoC editando el archivo /boot/config.txt. Es importante recalcar que tocar estos parámetros puede estropear la Raspberry Pi y hacernos perder la garantía. 4

4

3

63

cil

Av Med an io za do



IMPORTANTE Normalmente los discos duros comerciales vienen preformateados para funcionar en Windows o MacOsX. Linux usa otro sistema de archivos diferente y no compatible con Windows, pero a diferencia de este sistema operativo, que no pueden entender de manera nativa las particiones de Linux, Linux desde hace un tiempo puede acceder a discos preparados para funcionar en Windows sin problemas.

1

Instalación de un disco duro externo En este ejercicio veremos cómo instalar un disco duro externo en nuestra Raspberry Pi. Aunque en general una tarjeta SD/micro SD de 32GB suele ser suficiente para la mayoría de usos que le podemos dar, hay veces que nos puede hacer falta disponer de más espacio, como, por ejemplo, si queremos utilizar la Raspberry Pi como servidor de almacenamiento en red o centro multimedia. 1. Desde nuestro punto de vista, deberemos diferenciar dos tipos de discos duros externos: los que requieren alimentación externa 1 y los que no. 2 Los que requieren alimentación externa acostumbran a ser mucho más grandes y menos portátiles, pero en nuestro caso resultan interesantes ya que la Raspberry Pi tiene una capacidad eléctrica muy limitada, y el uso de alimentaciones externas alivian su consumo. 2. Los discos duros que no requieren alimentación externa pueden ser mucho más prácticos, puesto que sólo hace falta conectarlos al puerto USB para que funcionen, pero debemos ir con mucho cuidado, ya que, como se ha comentado en el punto anterior, la Raspberry Pi no está preparada para alimentar discos duros externos, así que, en este caso, es muy recomendable utilizar un Hub USB 3 externo con alimentación.

2

64

Aprender Raspberry Pi con 100 ejercicios prácticos

026

3. Si estamos utilizando Raspbian en un entorno gráfico, después de conectar el disco duro correctamente, éste debería aparecernos directamente en nuestro gestor de archivos, 4 de la misma manera que aparece un pen drive. 4. En el caso de que usemos la Raspberry Pi como servidor, y sólo tengamos acceso a la consola, lo primero que haremos será comprobar si el disco está bien conectado con el comando sudo blkid. 5 Deberemos buscar en el listado nuestro disco duro y localizar el dispositivo que tiene asignado (en este caso /dev/sda1) 5. Asumiendo que el disco tiene un sistema de particiones reconocido por Linux (actualmente es prácticamente 100% seguro que sea así), montaremos el disco en el directorio /mnt con el comando sudo mount /dev/sda1 /mnt 6. Para dar permisos de escritura el en disco ejecutaremos el comando sudo chmod 755 /mnt 7. Si queremos que el disco se monte cada vez que arranquemos el sistema, deberemos editar el archivo /etc/fstab (sudo nano /etc/fstab) y añadir la siguiente línea:

4

/dev/sda1 /mnt /ntfs defaults 0 0

3

5

65

i2

Rasp

cil

Av Med an io za do



IMPORTANTE Este libro no está dedicado al tratamiento de imágenes, por lo que en el ejercicio nos centraremos en la instalación, y solamente abordaremos algunas funcionalidades básicas del proceso de edición de la imagen.

Edición básica de imágenes con Raspbian Cuando se habla de edición de imágenes a mucha gente se le pasan por la cabeza programas como Adobe Photoshop. Aunque este programa no está disponible en Linux ni en Raspbian existen multitud de alternativas perfectamente válidas para editar imágenes de manera profesional en estos entornos. Una de estas alternativas es GIMP (acrónimo de GNU Image Manipulation Program). Actualmente GIMP está reconocido como el programa de edición de imágenes más completo disponible en Linux y rivaliza en funcionalidad con el mismo Adobe Photoshop. 1. Para instalar GIMP en nuestro sistema, lo primero que haremos será actualizar nuestro repositorio de paquetes con el comando sudo apt-get update && sudo apt-get upgrade. 2. Cuando el sistema esté actualizado instalaremos GIMP con el comando sudo apt-get install gimp. 1 Este comando instalará GIMP en nuestra Raspberry Pi con todas sus dependencias. 3. Después de instalarlo arrancaremos GIMP 2 y esperaremos hasta que aparezcan los paneles de herramientas. 3

1

3

2

66

Aprender Raspberry Pi con 100 ejercicios prácticos

027

4. Ahora veremos algunas funciones básicas para entender cómo funciona GIMP. Para comenzar cargaremos una imagen. Para ello iremos a la ventana principal, pulsaremos sobre Archivo>Abrir y seleccionaremos una imagen. 4 5. Lo primero que haremos será escalar la imagen. Para ello iremos a Imagen>Escalar la Imagen, 5 y en la ventana definiremos el nuevo tamaño que deseemos para la imagen. El icono de la cadena que tenemos al lado de los valores del tamaño nos permite indicar si queremos mantener el ratio de aspecto al escalar (la relación entre el ancho y el largo). Si decidimos no respetar el ratio de aspecto original lo que haremos será deformar la imagen.

IMPORTANTE Al escalar debemos tener en cuenta que si hacemos la imagen más grande ésta perderá calidad.

6. Otra funcionalidad interesante de la que hablaremos es la transformación (Imagen->Transformar). Esta nos permitirá modificar la imagen y rotarla o voltearla en cualquier dirección. 6 7. Por último, veremos la manera de recortar la imagen. Para ello iremos a Herramientas->Herramientas de transformación->Recortar y seleccionaremos la parte que queremos recortar de nuestra imagen. Al finalizar pulsaremos ENTER y nuestra imagen se recortará dejando solo la parte seleccionada.

6

4

5

67

i2

Rasp

cil

Av Med an io za do



IMPORTANTE VLC media player es un reproductor y framework multimedia libre y de código abierto desarrollado por el proyecto VideoLAN. Es un programa multiplataforma con versiones disponibles para muchos sistemas operativos. Es capaz de reproducir casi cualquier formato de video sin necesidad de instalar codecs externos, y puede reproducir videos en formatos DVD, Bluray, a resoluciones normales, en alta definición, e incluso en ultra alta definición o 4K.

Ver videos con Raspberry Pi Existen muchas maneras de poder ver videos usando una Raspberry Pi. Seguramente la más recomendable es la instalación de una distribución específicamente dedicada a la reproducción de video, como OSMC o openELEC. Sin embargo, si lo que deseamos es ver videos sin cambiar nuestra Raspbian por otra distribución, también lo podremos hacer. 1. La manera más natural a la que podríamos optar para ver videos en Raspbian, sería utilizar uno de los programas más comunes (y más potentes) que existen para ver videos: VLC 2. Para instalar VLC

1

ejecutaremos el comando siguiente:

sudo apt-get install vlc 3. Es muy importante tener en cuenta que VLC por defecto no incorpora aceleración por hardware, con lo que el rendimiento en nuestra Raspberry Pi puede no ser estable o puede ser demasiado lento. 4. Para solucionar el problema de rendimiento de VLC, existe 1

68

Aprender Raspberry Pi con 100 ejercicios prácticos

028

una alternativa llamada omxplayer. Para instalarla ejecutaremos los siguientes comandos: sudo apvt-get update sudo apt-get -y install omxplayer 5. Omxplayer 2 es un reproductor de video basado en consola, por lo que será recomendable no tener arrancado el servidor gráfico. Para ello deberemos ejecutar el comando: sudo raspi-config 6. Vamos a la opción Enable boot the Desktop/Scratch 3 y le indicamos que queremos arrancar sólo en modo consola. 7. Reiniciaremos nuestra Raspberry Pi (sudo reboot) 8. Si queremos reproducir un video ejecutaremos el comando: omxplayer myvideo.mp4 9. Si queremos, por ejemplo, reproducir el video por la salida HDMI, cosa que es muy común en el caso de la Raspberry Pi, deberemos especificarlo: omxplayer -o hdmi myvideo.mp4 2

3

69

cil

Av Med an io za do



IMPORTANTE Una de las grandes ventajas de Linux respecto a otros sistemas como Windows, es que podemos escoger el servidor de ventanas a utilizar. Raspbian utiliza un entorno ligero LXDE/Openbox. Los más extendidos en Linux son Gnome y KDE, pero por temas de rendimiento, se determinó que era mejor usar un escritorio que no cargase tanto el sistema para Raspberry Pi.

Personalizando nuestro escritorio en Raspbian De la misma manera que se hace con otros sistemas operativos, como Windows o Mac OS X, el escritorio de Raspbian se puede personalizar para adaptarlo a nuestras necesidades y nuestra comodidad. En este ejercicio veremos cómo modificar el aspecto del mismo para que se adapte a nuestras preferencias personales. 1. Para comenzar a personalizar nuestra Raspbian, haremos clic en el botón derecho sobre cualquier punto del escritorio e iremos a la opción ‘preferencias de escritorio’. 1 2. En la opción Apariencia->Fondo podremos modificar la imagen y el color del escritorio. 3. En la opción Apariencia->Texto podremos cambiar el tamaño, color y el tipo de letra de los textos de nuestro escritorio. 4. Estas opciones también pueden cambiarse desde Menu>Preferencias->Appearance Settings. 2

2 1

70

Aprender Raspberry Pi con 100 ejercicios prácticos 5. En la opción de Iconos de escritorio podremos definir si queremos ver la papelera de reciclaje y si queremos mostrar los volúmenes conectados en el escritorio. 6. Si ejecutamos desde la consola el comando obconf podremos entrar en el Administrador de Configuración de OpenBox, 3 donde tendremos la posibilidad de instalar nuevos temas completos, entre otras muchas opciones.

029

7. Si vamos a Menu->Preferencias->Teclado y ratón podremos definir el comportamiento del ratón y del teclado (velocidad, retardo de repetición, etc.). 4 8. Es posible también hacer modificaciones más avanzadas. A través de Menu->Preferencias->Ajustes de monitor podremos modificar la resolución de la pantalla, y mediante Menu>Preferencias->Audio device Settings modificaremos los parámetros de la salida de audio de la Raspberry Pi. 5 4

3

5

71

i2

Rasp

cil

Av Med an io za do



IMPORTANTE Aunque cada día que pasa LibreOffice es más compatible con Microsoft Office, es importante recalcar que, si utilizamos las opciones más avanzadas, es posible que los resultados finales en ambas versiones puedan diferir. Aun así son compatibles con el 99% de las herramientas más utilizadas por los usuarios comunes.

LibreOffice: La suite ofimática de Raspbian De la misma manera que Microsoft tiene en Office su suite ofimática para Windows y MacOs X, donde podemos encontrar aplicaciones clásicas como Word, Excel o PowerPoint, Raspbian dispone de una suite ofimática compatible con Office llamada LibreOffice. LibreOffice nos brinda la posibilidad de poder leer y escribir documentos para Word o Excel sin utilizar el Office de Microsoft y además está disponible, no sólo para Raspbian, sino también para todas las plataformas como MacOs X o el mismo Windows. 1. Lo primero que haremos, en el caso de que nuestra distribución de Raspbian no tenga LibreOffice instalado de manera predeterminada, será proceder a la instalación de la suite ofimática. 1 sudo apt-get update sudo apt-get install libreoffice 2. Después de instalarlo podremos acceder a todas las aplicaciones de la suite desde el menú de Raspbian (Menu->Oficina).

1

3. Al arrancar LibreOffice nos aparecerá un menú para seleccionar la aplicación que deseemos (Write, Calc, Impress, Draw). 2 3

2

72

Aprender Raspberry Pi con 100 ejercicios prácticos

001 030

4. Write 3 es un procesador de texto con funciones avanzadas compatible con Word. 5. Calc 4 es una hoja de cálculo con características parecidas a Excel y que permite leer y escribir documentos en formatos compatibles. 6. Impress 5 es una aplicación pensada para hacer presentaciones compatible con PowerPoint. 7. Draw 6 nos permite crear gráficos e ilustraciones que posteriormente podremos incorporar al procesador de texto, las hojas de cálculo o las presentaciones. 8. Al grabar un documento podremos escoger entre los formatos abiertos, que usa por defecto LibreOffice, o los propietarios de Microsoft Office.

6

4

5

73

cil

Av Med an io za do



IMPORTANTE Una imagen ROM (Read Only Memory), es un archivo informático que contiene una copia de los datos de un chip de memoria de sólo lectura, a menudo de cartuchos de videojuegos. El término es usado frecuentemente en el contexto de emulación, en la cual videojuegos son copiados a archivos ROM en ordenadores con la finalidad de poder ser abiertos usando un tipo de software conocido como emulador.

1

74

Entrar en laExcel y abrirPi Convertir Raspberry un una documento en consola de juegos Una de las posibilidades más populares que nos brinda la Raspberry Pi es convertirla en una consola de juegos retro que, mediante el uso de emuladores, nos permitirá jugar a juegos de otras épocas y otras plataformas como Atari, SEGA, Nintendo, SuperNintendo, NeoGeo, MS-DOS, entre muchas otras. 1. La manera más sencilla de convertir nuestra Raspberry Pi en una consola de videojuegos es descargar una distribución previamente adaptada para tal uso. En este caso vamos a descargar la distribución RetroPie. 2. Iremos a la sección de descargas de la web de RetroPie:

1

http://blog.petrockblock.com/retropie/retropiedownloads/ Y escogeremos la versión que nos interese, dependiendo de si tenemos una Raspberry Pi o una Raspberry Pi 2.

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Descargaremos la imagen y después la grabaremos en una tarjeta SD/micro SD, tal como se explica en los ejercicios 6, 7 y 8, y posteriormente arrancaremos la Raspberry Pi con la tarjeta insertada. 4. Aunque no es obligatorio, es recomendable conseguir un mando de consola USB 2 para poder jugar más cómodamente a los juegos. 5. Al arrancar con la tarjeta SD, veremos los menús de RetroPie. Para configurar el mando de la consola, iremos a la opción Exit para acceder a ésta. 6. Iremos al directorio RetroPie/emulators/RetroArch/tools cd RetroPie/emulators/RetroArch/tools 7. Ejecutaremos el comando: ./retroarch-joyconfig >> ~/RetroPie/configs/all/ retroarch.cfg Para configurar nuestro mando de consola, reiniciaremos nuestra Raspberry Pi, y ya estará todo listo para comenzar a jugar. 3 Lo único que faltarán serán las ROM’s con los juegos. Para ello deberéis aseguraros de que os hacéis con ROM’s legales (ver nota importante) que podréis copiar en los directorios dentro de Retropie/roms

031 IMPORTANTE Debemos tener en cuenta que aunque el uso de emuladores de videoconsolas y sistemas antiguos es legal, muchos de los juegos siguen teniendo derechos de autor y, aunque ya no se comercialicen, está prohibido hacer uso de sus ROMS para los emuladores. Eso no significa que no existan excepciones de ROMS totalmente legales, por lo que sería conveniente que, antes de descargar cualquier ROM, nos aseguremos de que su uso es legal.

3 2

75

cil

Av Med an io za do



IMPORTANTE Aunque la Pi Store es muy cómoda para instalar aplicaciones, es importante destacar que, en comparación con el repositorio de Raspbian (con miles de aplicaciones), la cantidad de software que podemos encontrar en la Pi Store es limitada (unos centenares).

La Pi Store Desde que apareció la Raspberry Pi mucha gente se ha interesado en desarrollar software específico para ésta. Aunque existen los repositorios de paquetes, la fundación Raspberry Pi juntamente con IndieCity y Veocix decidieron lanzar la Pi Store para facilitar la posibilidad de que desarrolladores independientes pudiesen compartir sus proyectos con el resto de la comunidad. La Pi Store es actualmente la manera más sencilla de instalar software en tu Raspberry Pi del mismo modo que en una tienda de aplicaciones de smartphone. 1. La Pi Store corre como una aplicación más de Raspbian y permite a los usuarios descargar aplicaciones y subir su propio contenido permitiendo que se pueda conocer en la comunidad. 2. Para usar la Pi Store primero deberemos registrarnos 1 en la tienda. Para ello es necesario introducir nuestro correo y un password de nuestra elección.

1 3

2

76

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Después de registrarnos nos validaremos en la tienda mediante la pantalla de login. 2 Así podremos acceder a todos los contenidos de la Pi Store. 4. Accederemos a la pantalla principal de la Pi Store. En ella podremos ver diferentes secciones como Juegos, Aplicaciones, Tutoriales, Herramientas de desarrollo o Multimedia. 3 5. Al escoger una aplicación ésta se instalará automáticamente.

4

6. Al finalizar el proceso de instalación veremos en nuestra biblioteca todas las aplicaciones instaladas en el sistema. 5 4

032 IMPORTANTE En general, la Pi Store está instalada por defecto en la Raspbian, pero en caso de que queramos o debamos instalarla o reinstalarla deberemos hacer lo siguiente: sudo apt-get update && sudo apt-get install pistore

5

77

i2

Rasp

cil

Av Med an io za do



IMPORTANTE En el ámbito del desarrollo de software, un fork es la creación de un proyecto en una dirección distinta de la principal u oficial, tomando el código fuente del proyecto ya existente. Comúnmente se utiliza el término inglés. Como resultado de la bifurcación se pueden llegar a generar proyectos diferentes que cubren necesidades distintas aunque similares.

Instalando Open Arena Uno de los juegos que es un claro ejemplo de hasta donde puede llegar la potencia de la Raspberry Pi 2 es Open Arena. Open Arena es un fork del motor del quake 3 de id tech donde se ha reemplazado el contenido propietario por nuevo contenido de acceso libre. Nos proporciona muchos tipos de juegos, incluido el juego en red. 1. Lo primero que haremos antes de instalar cualquier aplicación, es actualizar el sistema y nuestro repositorio sistema con los comandos: sudo apt-get update sudo apt-get upgrade 2 3

1

78

Aprender Raspberry Pi con 100 ejercicios prácticos 2. Para descargar e instalar Open Arena iremos a la Pi Store, en la sección de juegos y navegaremos hasta encontrar el juego. 1 3. Es posible que cuando busquemos un juego éste no aparezca, ya que está clasificado para mayores de 17 años, por lo que deberemos aceptar una cláusula asegurando que somos mayores de edad para instalarlo. 2 Después de aceptar las condiciones podremos ver la información del juego. 3 4. Iremos a la opción de free download y nos validaremos con nuestro usuario de la Pi Store para descargar el juego. 4 En el caso de que el sistema falle podemos utilizar la consola e instalarlo con el comando: sudo apt-get install openarena 5. Para arrancar el juego iremos a la pestaña de la Pi Store My Library, seleccionaremos Open Arena y después haremos clic en el botón Launch. 5 6. Open Arena se ejecuta sin el entorno gráfico para mejorar el rendimiento, por lo que para ejecutar el juego nuestra Raspberry Pi se reiniciará para arrancarlo sin el servidor X (servidor gráfico) 7. Al finalizar el juego, el sistema volverá a arrancar el servidor gráfico de la raspbian para que podamos seguir trabajando de la manera habitual.

4

033 IMPORTANTE El Sistema de Ventanas X es un software que fue desarrollado a mediados de los años 1980 en el MIT para dotar de una interfaz gráfica a los sistemas Unix. Este protocolo permite la interacción gráfica en red entre un usuario y una o más computadoras, haciendo transparente la red para éste. Generalmente se refiere a la versión 11 de este protocolo, X11, que es el que está en uso actualmente. X es el encargado de mostrar la información gráfica de forma totalmente independiente del sistema operativo.

5

79

i2

Rasp

cil

Av Med an io za do



IMPORTANTE A diferencia de los programas como GIMP (ver ejercicio 26), que es un programa de edición de imágenes digitales, en forma de mapa de bits, el objetivo de Inkscape es crear y editar gráficos vectoriales. La diferencia entre una imagen digital y una imagen vectorial es que la primera está representada por una sucesión de bits que definen los colores de cada píxel, mientras que la segunda es un conjunto de formas geométricas representadas por sus atributos matemáticos, y no la imagen en sí misma tal como pasa con los mapas de bits. 1

80

Gráficos vectoriales. Inkscape En este ejercicio vamos a hablar de Inkscape. Inkscape es un programa de diseño vectorial. Podríamos decir que es la versión libre del conocido Adobe Illustrator que encontramos en otros sistemas operativos. Como en otros ejercicios de este tipo, el objetivo no será ver en profundidad el funcionamiento de Inkscape (cosa imposible en 2 páginas), sino dar a conocer las posibilidades de las herramientas de las que dispone Raspbian para que, en el caso de que el lector esté interesado en sus posibilidades, éste pueda ser un punto de inicio a una profundización posterior de la herramienta en base a tutoriales y documentación en internet o libros especializados. 1. Lo primero que haremos será abrir una ventana de terminal y actualizar los repositorios y el sistema mediante los comandos: sudo apt-get update sudo apt-get upgrade 2. Instalaremos Inkscape con el comando sudo apt-get install inkscape desde la consola.

Aprender Raspberry Pi con 100 ejercicios prácticos

034

3. Para arrancar el programa iremos a Menú->Gráficos>Inkscape y se arrancará el programa. 1 4. En el centro de la pantalla vemos el lienzo o canvas, que será donde podremos dibujar o editar el archivo vectorial (llamados, en general, archivos SVG), 2 y en la parte superior tenemos el menú de opciones.

IMPORTANTE

5. En la parte izquierda encontraremos la barra de herramientas 3 que ofrece una selección de figuras geométricas que podemos añadir a nuestro dibujo.

Una de las grandes ventajas de las imágenes vectoriales respecto a las imágenes de mapas de bits es que, dado que no estamos guardando la imagen sino sus elementos geométricos mediante funciones matemáticas, se pueden escalar a cualquier tamaño y resolución sin perder detalle, a diferencia de los mapas de bits, que pierden calidad si los ampliamos excesivamente.

6. A la derecha tenemos a nuestra disposición dos barras de herramientas: la de comandos, con la que disponemos de una serie de accesos directos a los comandos más usados (como grabar, o crear un nuevo documento) y la barra de ajustes, con la que podremos hacer modificaciones detalladas sobre las figuras que hemos creado con la barra de herramientas. 4 7. En la zona superior encontraremos la barra de control, la cual nos permite ordenar las capas de nuestra ilustración y sus tamaños. 5 8. En la zona inferior encontraremos la paleta de colores y rellenos, y la barra de estado, con las notificaciones e información general sobre el archivo. 6

2

3

4

5

6

81

cil

Av Med an io za do



Servidor de impresión Es posible que en nuestra casa u oficina tengamos una impresora que no disponga de conexión de red, y este hecho nos impide disponer de un sistema cómodo para imprimir desde todos nuestros dispositivos. Con la Raspberry Pi podemos crear un servidor de impresion que controle todas nuestras impresoras y nos permita imprimir remotamente desde todos nuestros dispositivos. 1. Lo primero será actualizar el software de nuestra Raspberry Pi con los comandos sudo apt-get update && sudo apt-get upgrade 2. Instalaremos el programa llamado Cups con el comando sudo apt-get install cups. 1 Este programa nos permite compartir las impresoras por la red. 3. Cuando la instalación haya terminado, tendremos que dar permisos a nuestro usuario para poder administrar las impresoras. sudo usermod -a -G lpadmin pi

1

82

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Editaremos el archivo de configuración (sudo nano /etc/ cups/cupsd.conf) 2 para permitir la configuración de nuestras impresoras de forma remota. Para hacerlo comentaremos la línea siguiente:

035

#Listen localhost:631 y añadiremos las siguientes: Listen *:631 Listen /var/run/cups/cups.sock 5. Seguiremos editando el archivo para modificar las siguientes líneas de los diferentes apartados ( ) 3 del archivo: (debemos recordar que el rango de IP 192.168.1.* es el más común, pero en el caso de que nuestro rango de IP no sea este, lo deberemos modificar para que el sistema de impresión funcione): # Restrict access to the server... Order allow,deny Allow 192.168.1.* # Restrict access to the admin pages... Order allow,deny Allow 192.168.1.* # Restrict access to configuration files... AuthType Default # Require user @SYSTEM Allow 192.168.1.* Order allow,deny 6. Para finalizar, reiniciamos el servicio: sudo service cups restart 2

3

83

cil

Av Med an io za do



IMPORTANTE Common Unix Printing System (Sistema de Impresión Común de Unix, abreviado CUPS) es un modo de impresión modular para sistemas operativos de tipo Unix que permite que un computador actúe como servidor de impresión. Un ordenador que ejecuta CUPS funciona como un servidor que puede aceptar tareas de impresión desde otros ordenadores clientes y los procesa.

Conectar un cliente al servidor de impresión En el ejercicio anterior instalamos el servidor de impresión CUPS en nuestra Raspberry Pi y lo dejamos todo listo para poder hacer la configuración desde cualquier ordenador de la red con acceso a un navegador web. En este ejercicio vamos a realizar dicha configuración. 1. El primer paso será abrir un navegador y acceder a la IP de nuestra Raspberry Pi en el puerto 631. 2. Al cargar la web, podremos ver la página principal de CUPS 1 donde encontraremos instrucciones detalladas de cómo configurar el sistema. 3. Lo primero que haremos es ir a la pestaña de configuración e introducir el usuario y password de nuestra Raspberry Pi 2 (por defecto es siempre pi como usuario y raspberry como password).

1

2

84

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Asumiendo que tenemos alguna impresora conectada mediante USB a nuestra Raspberry Pi, después de validarnos, deberíamos verla como una impresora local. 3 5. La añadiremos definiendo un nombre y asegurándonos de que la opción ‘share this printer’ está activa.

036

6. En la ventana de impresoras (Printers) podremos consultar el estado de la impresora y si tiene trabajos pendientes. 4 7. Al finalizar este proceso, podremos ir a nuestro ordenador (ya sea Windows, Linux o Mac OS X) y agregar una impresora de red. El sistema deberá detectar el servidor de CUPS y la impresora o impresoras asociadas a él. 8. Para asegurarnos de que está funcionando, usaremos la opción, que tienen todos los sistemas, de imprimir página de prueba de la impresora. 3

4

85

cil

Av Med an io za do



IMPORTANTE El lenguaje PHP es uno de los lenguajes más utilizados en el desarrollo de páginas web, ya que nos permite generar de manera sencilla contenido dinámico y crear páginas mucho más ricas e interactivas. Actualmente se usa en millones de sitios online, entre los cuales se encuentran la Wikipedia o Facebook.

Instalar el servidor web en una Raspberry Pi Una de las muchas posibilidades que nos brinda la Raspberry Pi es utilizar nuestro dispositivo como un servidor web mediante la instalación de los paquetes necesarios. Disponer de un servidor web en local puede ser muy útil, ya sea como servidor de pruebas o para el aprendizaje de las tecnologías relacionadas con la web. En nuestro caso usaremos uno de los servidores web más populares y usados en internet: Apache. 1. Lo primero que deberemos hacer es modificar la configuración de la red para que nuestra Raspberry Pi disponga de una IP estática. Para hacerlo seguiremos las instrucciones del ejercicio 20. 2. El siguiente paso será crear el grupo www-data y agregar nuestro usuario a ese grupo; www-data es el grupo que usa apache para los documentos del servidor web. sudo groupadd www-data sudo usermod -a -G www-data www-data 3. Actualizaremos los repositorios y los programas de nuestra Raspberry Pi. sudo apt-get update sudo apt-get upgrade 4. Instalaremos el servidor web Apache

1

sudo apt-get install apache2 1

86

2

Aprender Raspberry Pi con 100 ejercicios prácticos

037

5. Comprobaremos que el servidor está funcionando abriendo nuestro navegador y apuntando a localhost o la IP de nuestra Raspberry Pi. 2 6. Ahora instalaremos uno de los complementos de desarrollo más usados para crear páginas web dinámicas: PHP 3 sudo apt-get install php5 sudo apt-get install libapache2-mod-php5 libapache2mod-perl2 php5 php5-cli php5-common php5-curl php5dev php5-gd php5-imap php5-ldap php5-mhash php5mysql php5-odbc

5

7. Reiniciaremos el servicio Apache para que los cambios tengan efecto mediante el comando sudo /etc/init.d/apache2 restart 8. Crearemos un archivo llamado info.php en el directorio / var/www/ (sudo nano /var/www/info.php) con el contenido siguiente: 4 9. Para finalizar usaremos nuestro navegador para ir a la dirección: localhost/info.php. Si todo se ha instalado correctamente veremos una pantalla de información sobre PHP que nos indicará que el servidor está funcionando adecuadamente. 5 3

4

87

cil

Av Med an io za do



IMPORTANTE Existen muchos gestores de bases de datos en el mercado, desde los comerciales Oracle y SQL Server, que son usados mayoritariamente en entornos propietarios como Windows, a otros gestores igual de potentes pero de código abierto como MySQL o PostgreSQL.

Instalación de un servidor de bases de datos En este ejercicio procederemos a la instalación y configuración de un servidor de bases de datos en nuestra Raspberry Pi. En este caso hemos escogido MySQL ya que es uno de los servidores de bases de datos más extendidos. También instalaremos el paquete de PhpMyAdmin, que nos permitirá gestionar nuestras bases de datos de manera cómoda desde un gestor web. 1. En primer lugar actualizaremos el repositorio de paquetes y nuestro sistema con el comando sudo apt-get update && sudo apt-get upgrade 2. Procederemos a instalar el servidor de MySQL con sudo aptget install mysql-server. En el proceso de instalación nos preguntará por el password de root que deseemos usar. 1 Este proceso puede ser moderadamente largo ya que es posible que instale varias dependencias.

1

3

2

88

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Al finalizar la instalación del servidor, instalaremos el cliente y el módulo de PHP5, para que nuestro servidor web pueda comunicarse con la base de datos. sudo apt-get install mysql-client php5-mysql

038

4. Instalaremos el paquete PhpMyAdmin con el comando sudo apt-get install phpmyadmin 5. El instalador nos preguntará qué servidor web queremos configurar, y escogeremos apache2. 2 6. También nos dirá si ya tenemos una base de datos creada 3 y configurada para usarla con PhpMyAdmin y nos preguntará si queremos crear una. En el caso de que sea la primera vez que hacemos este procedimiento, le diremos que sí. 7. Le indicaremos la contraseña de root al instalador. 8. Abriremos el navegador y apuntaremos a http://localhost/ phpmyadmin/ 4 e introduciremos el usuario (root) y el password. 9. En nuestro navegador aparecerá la pantalla principal de PhpMyAdmin, desde donde podremos gestionar todas las bases de datos creadas en nuestra Raspberry Pi. 5

4

5

89

cil

Av Med an io za do



IMPORTANTE Para hacer un símil, Microsoft Access sería un programa de uso común que, con ciertas limitaciones, puede también considerarse un sistema de base de datos relacional. Si vamos un paso más allá, para entender el concepto de tablas, campos y registros, podríamos asociar las tablas con hojas de excel, los campos con las columnas y los registros con las filas.

Conceptos generales de SQL Después de instalar un servidor de bases de datos relacionales (MySQL) 1 y un gestor web de bases de datos (PhpMyAdmin), el siguiente paso es aprender las nociones básicas de cómo crear y modificar bases de datos. Las bases de datos relacionales se organizan en tablas. Cada tabla se puede relacionar con otras tablas y contiene columnas donde podemos almacenar diferentes tipos de datos. El lenguaje utilizado para llevar a cabo estas tareas se llama SQL (Structured Query Language). 1. El lenguaje SQL se basa en dos tipos de comandos, los llamados DLL, que sirven para crear la estructura de las tablas, y los DML, que sirven para modificar el contenido de las mismas. Comandos DLL: CREATE: Utilizado para crear nuevas tablas, campos e índices. ALTER: Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. DROP: Empleado para eliminar tablas e índices.

1

90

Comandos DML:

Aprender Raspberry Pi con 100 ejercicios prácticos SELECT: Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. INSERT: Utilizado para cargar lotes de datos en la base de datos en una única operación. UPDATE: Utilizado para modificar los valores de los campos y registros especificados. DELETE: Utilizado para eliminar registros de una tabla de una base de datos. 2. Más allá de los comandos existen las cláusulas (FROM, WHERE, GROUP BY, ORDER BY, …) que sirven para definir los elementos con los que queremos trabajar y los operadores (AND, OR, , =,,>=, ”valor1”), (“columna2”->”valor2”), etc ... 2

3

4

91

cil

Av Med an io za do



Instalación de WordPress en Raspberry Pi Después de haber instalado el servidor web, ahora es el turno de usar uno de los sistemas de gestión de contenidos más famosos: WordPress, un CMS (en inglés, Content Management System) enfocado a la creación de blogs (páginas web con una estructura cronológica que se actualiza regularmente). Los motivos más destacables de su éxito son su facilidad de instalación y uso, además de su gran flexibilidad para crear sitios web de nivel profesional. 1. Descargaremos WordPress de la web oficial http:// es.wordpress.org/. 1 En nuestro caso recomendamos descargar la versión tar.gz aunque no hay problema para descomprimir un archivo de tipo zip. 2. Descomprimiremos el paquete de WordPress en un directorio accesible para nuestro servidor web. (en general /var/www/) 3. Crearemos una base de datos para WordPress en nuestro servidor web, así como un usuario de MySQL que tenga todos los privilegios para acceder y modificarla siguiendo las instrucciones del ejercicio 37.

1

92

4. Renombraremos el archivo wp-config-sample.php con el nombre wp-config.php.

Aprender Raspberry Pi con 100 ejercicios prácticos 5. Abriremos wp-config.php en un editor de texto (por ejemplo, Gedit) 2 y añadiremos la información relativa a los datos de configuración de nuestra base de datos. 6. Ejecutaremos el script de instalación de WordPress accediendo a wp-admin/install.php en nuestro navegador web. Por ejemplo (http://localhost/wp-admin/install.php) 3 7. Seguiremos paso a paso el proceso de instalación respondiendo a una serie de preguntas como el nombre que deseamos dar a nuestro sitio, nuestro nombre de usuario, nuestro password y nuestro correo para que WordPress quede instalado en nuestro sistema. 4 2

3

040 001 IMPORTANTE Si queremos integrar WordPress en la raíz de nuestro dominio (ej. http://example.com/) moveremos o subiremos los contenidos de la carpeta donde WordPress fue extraído a la carpeta raíz de nuestro servidor web. Si en cambio queremos que la instalación tenga su propia subcarpeta en nuestro sitio web (ej. http://example. com/blog/) renombraremos la carpeta wordpress con el nombre que deseemos y la moveremos o subiremos a nuestro servidor web. Como ejemplo, si queremos nuestra instalación en la carpeta llamada blog deberemos renombrar la carpeta wordpress con el nombre blog y subirla a la carpeta raíz de nuestro servidor web.

4

93

cil

Av Med an io za do



IMPORTANTE Existen dos versiones de WordPress que pueden llevar fácilmente a confusión: wordpress.org y wordpress.com. Wordpress. org es el sitio web donde se puede descargar el software de WordPress de manera totalmente libre y gratuita. Éste es el que utilizamos en nuestros ejercicios. Wordpress.com es la versión comercial, mucho más fácil de usar, ya que no requiere de ningun tipo de instalación, de mantenimiento, ni de hosting, pero su versión gratuita es mucho mas limitada que la primera, y si quieres tener disponibles más opciones debes pagar una cuota. Aún así es una muy buena opción para iniciarse.

Entrar un en blog Excel y abrir Crear un documento con WordPress En el ejercicio anterior aprendimos cómo instalar WordPress en nuestra Raspberry Pi. En este ejercicio daremos un paso adelante y aprenderemos cómo configurar WordPress para comenzar a crear y publicar contenidos mediante las herramientas que nos brinda. 1. Lo primero que deberemos hacer para crear nuestro blog es acceder a la sección de administración de WordPress. Para ello iremos a la url donde se instaló (por ejemplo, si en el ejercicio anterior instalamos WordPress en el directorio /var/www/ wordpress, ahora abriremos el navegador e iremos a la url http://localhost/wordpress/wp-admin. 1 2. Introduciremos el usuario y password que escogimos en el ejercicio anterior y entraremos en el panel de control de WordPress 2 donde encontraremos todas las opciones para comenzar a crear nuestro blog. 3. Empezaremos escogiendo un tema para definir el aspecto de nuestro blog 3 en la opción Apariencia | Temas. Desde allí podremos instalar temas gratuitos que están disponibles o activar alguno de los que lleva WordPress por defecto.

2

1 3

94

Aprender Raspberry Pi con 100 ejercicios prácticos

041

4. Para personalizar la configuración de nuestro tema iremos a la opción de Apariencia | Personalizar. 4 Desde allí podremos modificar los colores, textos, widgets y otros parámetros de configuración del tema. 5. El siguiente paso será añadir las imágenes que deseamos publicar mediante la opción Medios | Añadir nuevo. Podremos subir las imágenes arrastrando los archivos o seleccionándolos de nuestro gestor de archivos. 5 Posteriormente podremos consultar todos los documentos disponibles en la opción Medios | Biblioteca. 6. Por último, iremos a la opción de Entradas, donde podremos gestionar todos los artículos (llamados posts) que publicaremos en el blog. Para continuar con el ejercicio escogeremos la opción de nueva entrada, donde podremos escribir nuestro primer artículo. Si queremos añadir una imagen que previamente hemos cargado, iremos a la opción añadir objeto y la seleccionaremos.

IMPORTANTE Los widgets son pequeñas secciones independientes y configurables de nuestro blog que permiten mostrar diferentes tipos de contenido personalizables.

7. Al finalizar nuestro artículo, podremos asignarle una categoría (que previamente habremos creado en la opción Entradas | Categorías), hacer clic en Vista Previa para ver cómo quedará nuestro post, y al final, cuando estemos satisfechos del resultado, presionar el botón de Publicar. 8. Iremos a la página principal de nuestro blog (http://localhost/wordpress) y podremos ver el resultado final. 6 4

6

5

95

cil

Av Med an io za do



IMPORTANTE DHCP es un protocolo de red que permite a los clientes de una red obtener sus parámetros de configuración automáticamente. Se trata de un protocolo que posee una lista de direcciones IP dinámicas y las va asignando a los clientes a medida que éstas van quedando libres, sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido, y a quién se la ha asignado después.

Punto de acceso WiFi con Raspberry Pi y DHCP En este ejercicio veremos cómo crear un punto de acceso WiFi con la Raspberry Pi. Esto nos permitirá disponer de conexión WiFi en lugares donde solamente disponemos de conexión a internet mediante un cable Ethernet sin tener que comprar un punto de acceso comercial. 1. Lo primero que haremos será actualizar el sistema antes de comenzar a trabajar con nuestro proyecto. Para ello haremos: sudo apt-get update && sudo apt-get upgrade 2. Instalaremos los paquetes que nos van a permitir montar nuestro punto de acceso: 1 sudo apt-get install hostapd isc-dhcp-server 3. Después de instalar el servidor de DHCP, editaremos su archivo de configuración con el comando sudo nano /etc/dhcp/ dhcpd.conf 2 4. Dentro del archivo, lo primero que deberemos hacer será comentar las siguientes líneas, poniendo una almohadilla (#) delante de éstas:

1

96

option domain-name “example.org”; option domain-name-servers ns1.example.org, example.org;

ns2.

Aprender Raspberry Pi con 100 ejercicios prácticos y descomentar la línea siguiente quitando la almohadilla: #authoritative; Para finalizar la edición del archivo, al final del mismo añadiremos la siguientes líneas, que darán la información a los clientes de cómo deben configurar su red:

042

subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.10 192.168.100.50; option broadcast-address 192.168.100.255; option routers 192.168.100.1; default-lease-time 600; max-lease-time 7200; option domain-name “local”; option domain-name-servers 8.8.8.8, 8.8.4.4; } 5. Guardaremos el archivo y editaremos otro archivo de configuración (sudo nano /etc/default/isc-dhcp-server) 3 modificando el parámetro INTERFACES para que quede de esta manera: INTERFACES=”wlan0” 6. Para finalizar reiniciaremos el servicio DHCP con el comando sudo service isc-dhcp-server restart 3

2

97

cil

Av Med an io za do



IMPORTANTE El SSID (Service Set Identifier) es un nombre incluido en todos los paquetes de una red inalámbrica para identificarlos como parte de esa red. El código consiste en un máximo de 32 caracteres, que la mayoría de las veces son alfanuméricos (aunque el estándar no lo especifica, así que puede consistir en cualquier carácter). Todos los dispositivos inalámbricos que intentan comunicarse entre sí deben compartir el mismo SSID.

Punto de acceso WiFi con Raspberry Pi (II) Después de configurar el servidor DHCP, nos dedicaremos a configurar nuestra red para que pueda funcionar como punto de acceso WiFi. 1. Lo primero que haremos será configurar la IP de nuestra red inalámbrica (wlan0) para que sea estática, editando el archivo /etc/network/interfaces (sudo nano /etc/network/ interfaces), dejándolo como muestra la imagen. 1 2. Ejecutaremos el comando sudo ifdown wlan0 && ifup wlan0 para que la red reconozca la nueva configuración. 3. Ahora configuraremos el punto de acceso, donde definiremos entre otras cosas el SSID de la red WiFi y su password. Para ello editaremos el archivo de configuración con el comando sudo nano /etc/hostapd/hostapd.conf y lo dejaremos tal y como muestra la imagen. 2 Lo único que deberemos modificar a nuestro gusto es el SSID (nombre de la red WiFi y su password)

1

2

98

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Editaremos el archivo /etc/default/hostapd para modificar la siguiente línea: DAEMON_CONF=”/etc/hostapd/hostapd.conf” 5. Para finalizar ejecutaremos una serie de instrucciones para configurar las redes e indicar a la Raspberry Pi cómo debe enrutar los paquetes entre ellas para que funcione correctamente el punto de acceso. sudo sh -c “echo 1 > /proc/sys/net/ipv4/ip_forward” sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT Lo más recomendable sería añadir estas líneas en un script 3 y ejecutarlo cada vez que arranquemos nuestra Raspberry Pi, ya que, de lo contrario, deberemos ejecutarlas nosotros manualmente para que ésta funcione como punto de acceso WiFi.

043 IMPORTANTE Si tenéis algún problema con el adaptador de WiFi, es posible que éste tenga algún conflicto de compatibilidad con el hostap. Para conocer si existe alguna clase de incompatibilidad deberéis recurrir a los foros de internet y la web de Adafruit, donde existen recursos para solucionar este tipo de situaciones.

6. En el caso de que no estén activos, activaremos los servicios con los comandos: sudo service hostapd start sudo service isc-dhcp-server start 7. Si todo está funcionando correctamente, en cualquier dispositivo con WiFi 4 podremos ver la red que hemos configurado y podremos conectarnos a ella y navegar por internet 3

4

99

Instalar y configurar Samba. Compartir

cil

Av Med an io za do



IMPORTANTE Para poder conectarnos a la unidad de red que hemos creado en nuestra Raspberry Pi, deberemos introducir como usuario pi, y como contraseña, la que hayamos escogido en el paso 7.

Una de las utilidades más conocidas para compartir archivos en red entre Linux y otros sistemas es Samba. Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows CIFS. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix se vean como servidores o actúen como clientes en redes de Windows, permitiendo también validar usuarios haciendo de Controlador Principal de Dominio (PDC), y siendo además capaz de servir colas de impresión, directorios compartidos y autentificar con su propio archivo de usuarios. 1. Lo primero que deberemos hacer es configurar nuestra Raspberry Pi para que tenga una IP fija siguiendo los pasos del ejercicio 20. 2. Desde la ventana de terminal, instalaremos Samba mediante el comando: sudo apt-get install samba samba-commonbin. 1 En este proceso el sistema instalará todos los paquetes requeridos, sus dependencias, y los configurará. 3. Haremos una copia de seguridad del archivo original /etc/ samba/smb.conf para evitar así posibles problemas posteriores con el comando sudo cp /etc/samba/smb.conf smb. old. 4. Utilizaremos la utilidad nano para editar el archivo de configuración: sudo nano -w /etc/samba/smb.conf. 2 Esto nos abrirá un archivo con cientos de líneas. Con los cursores nos moveremos al final del mismo. 1

100

Aprender Raspberry Pi con 100 ejercicios prácticos

044

5. Al final del documento añadiremos la siguiente configuración: [carpeta_compartida] comment =carpeta_compartida path = /path/carpeta writeable = Yes create mask = 0777 directory mask = 0777 browseable = Yes valid users @users force user = pi

IMPORTANTE Samba es un protocolo extremadamente potente y muy complejo. En este ejercicio hemos hecho una introducción para ver su funcionalidad más común, pero recomendamos explorar todas sus posibilidades.

Deberemos modificar la variable path y poner la ruta de la carpeta que deseamos compartir. Con esta configuración tendremos lista la configuración básica de Samba. 6. Para salir del editor nano se debe pulsar la tecla Ctrl y al mismo tiempo la letra x. Nos preguntará si queremos salvar los cambios, a lo que debemos responder que sí escribiendo una letra s y clicando Enter. 7. Añadiremos el usuario pi al grupo de Samba: sudo smbpasswd -a pi. 3 8. Reiniciaremos el servicio de Samba para que los cambios tengan efecto: sudo /etc/init.d/samba restart. 4 9. Comprobaremos que el sistema esté funcionando conectándonos remotamente a nuestra Raspberry Pi mediante su IP fija, usando, por ejemplo, la aplicación ES Explorer de Android, el explorador de Windows o el de Mac OS X. 2

3

4

101

cil

Av Med an io za do



IMPORTANTE VNC es un programa de software libre basado en una estructura cliente-servidor, el cual permite tomar el control del ordenador servidor remotamente a través de un ordenador cliente.

1

2

Acceso remoto a la Raspberry Pi Es muy común no disponer, o no desear el uso de una pantalla, un teclado y un ratón para trabajar con la Raspberry Pi. Esto se puede deber a multitud de situaciones. Si, por ejemplo, queremos utilizar nuestra Raspberry con un dispositivo que funcione de manera autónoma, no tendría sentido conectarle una pantalla, pero, al mismo tiempo, es necesario poder conectarnos a la misma para gestionarla. Son estos casos -entre otros- cuando nos resulta muy útil la posibilidad de acceder remotamente a nuestra Raspberry Pi. 1. Para tener un acceso a la consola de nuestra Raspberry Pi de forma remota, podemos utilizar un protocolo muy extendido, el SSH. Éste nos permitirá acceder a nuestra consola desde cualquier ordenador sin muchas dificultades. Para ello lo que haremos será ejecutar el comando sudo raspi-config, ir a la opción de SSH 1 y activar el servicio. 2. En nuestro ordenador deberemos descargar un cliente de SSH compatible. Existen muchos en el mercado, pero, para Windows, es recomendable uno simple y ligero como Putty (http://www.chiark.greenend.org.uk/~sgtatham/ putty/download.html), 2 y en el caso de Mac OS X, podemos utilizar directamente el comando ssh del terminal. 3. Si queremos tener acceso remoto a aplicaciones gráficas, SSH no nos será tan práctico, por lo que será mejor utilizar un servidor VNC (sudo apt-get install tightvncserver)

3

102

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Arrancaremos el programa tightvncserver, que nos preguntará un password para los clientes que se conecten a nuestro servidor. También nos pedirá un password para posibles clientes con sólo derechos para visualizar la pantalla, sin poder actuar en ella.

045

5. Para finalizar la configuración del servidor, ejecutaremos la siguiente línea: vncserver :0 -geometry 1920x1080 -depth 24 Esto nos permitirá configurar la resolución y la profundidad de color de la pantalla. 6. Una vez hecho todo esto, pasaremos a la parte de la configuración del cliente. Dependiendo del sistema operativo que tengamos deberemos utilizar uno u otro software. En el caso de Linux sólo necesitaremos instalar el cliente xtightvncviewer (sudo apt-get install xtightvncviewer) o usar el acceso remoto que llevan muchas distribuciones como Ubuntu. 3 7. En el caso de Windows, se puede descargar el programa http://www.tightvnc.com/download.php 4 8. Si usamos Mac OS X, se puede utilizar: http://www.realvnc. com/download/vnc/latest 5 4 5

103

cil

Av Med an io za do



IMPORTANTE Existen multitud de clientes y de servidores FTP, por lo que podemos usar cualquier combinación sin problemas, según nuestras preferencias y lo que nos haga sentir más cómodos, pero los que hemos utilizado en este ejercicio son dos de los más tipicos y fáciles de configurar.

Servidor FTP En este ejercicio vamos a ver cómo instalar un servidor FTP (File Transfer Protocol) en nuestra Raspberry Pi. Los servidores FTP sirven para almacenar archivos de manera remota. Actualmente son muy utilizados conjuntamente con los servidores web para poder actualizar y subir contenidos. 1. Existen multitud de servidores FTP. Para este ejercicio hemos escogido vsftpd. Para instalarlo, lo primero que haremos será actualizar los repositorios y el sistema con los comandos: sudo apt-get update sudo apt-get upgrade 2. Cuando el sistema esté actualizado instalaremos el servidor vsftpd: 1 sudo apt-get install vsftpd 3. Después de la instalación editaremos el archivo de configuración con el comando sudo nano /etc/vsftpd.conf. 2 4. Descomentamos las líneas siguientes para permitir la escritura de archivos: 2

1

104

Aprender Raspberry Pi con 100 ejercicios prácticos local_enable=YES write_enable=YES 5. Reiniciaremos el servicio FTP con el comando sudo service vsftpd restart.

046

6. Para ver si funciona instalaremos un cliente FTP, como por ejemplo Filezilla, con el comando: sudo apt-get install filezilla 7. Al abrir el programa Filezilla 3 crearemos una nueva conexión desde Archivo->Gestor de sitios 8. Los datos de la conexión serán: - servidor: será la IP de nuestra Raspberry Pi, que en general será del tipo 192.168.X.X - nombre de usuario: pi - contraseña: la contraseña del usuario pi (por defecto “raspberry”) 9. Una vez que tenemos todos los datos introducidos, le daremos a conectar. 3

105

cil

Av Med an io za do



IMPORTANTE DLNA (Digital Living Network Alliance), o “Alianza para el estilo de vida digital en red” en castellano, es una asociación de fabricantes de electrónica e informática sin ánimo de lucro fundada por Sony en junio de 2003. Su objetivo es definir directrices de interoperabilidad que permitan compartir medios digitales entre dispositivos de consumo como ordenadores, impresoras, cámaras, teléfonos móviles y otros dispositivos multimedia.

Instalar un servidor DLNA Actualmente está muy extendido el uso de sistemas DLNA en el hogar para compartir películas, música e imágenes. Muchos dispositivos, como televisores, aceptan conexiones a sistemas DLNA, por lo que puede resultar interesante convertir nuestra Raspberry Pi en un servidor DLNA para compartir contenidos multimedia. 1. Lo primero que haremos será actualizar nuestro sistema con los comandos sudo apt-get update y sudo apt-get upgrade 2. Instalaremos el paquete de Raspbian llamado Minidlna que nos permitirá poner en funcionamiento un servidor ligero de DLNA. 1 sudo apt-get install minidlna 3. Editaremos el contenido del archivo de configuración /etc/ minidlna.conf 2 sudo nano -w /etc/minidlna.conf 4. Definiremos los directorios donde estarán almacenados el audio y el video: media_dir=V,/storage/dlna/video media_dir=A,/storage/dlna/music Donde /storage/dlna/* serán las carpetas en nuestra Raspberry Pi donde almacenaremos los contenidos.

1

106

Aprender Raspberry Pi con 100 ejercicios prácticos

047

5. Definiremos la IP y el puerto con la línea siguiente: presentation_url=http://192.168.1.10:8200/ 6. Definiremos el nombre de nuestro servidor: friendly_name=MyRPi 7. Podremos determinar si el servidor DLNA estará enviando las actualizaciones de contenidos de manera regular o no inotify=no 8. Reiniciaremos el servicio con el comando:

3

sudo /etc/init.d/minidlna force-reload 9. A partir de ese momento podremos acceder al servidor mediante el nombre que hemos definido o la url: http://192.168.1.10:8200/

4

2

3

4

107

cil

Av Med an io za do



IMPORTANTE En la web oficial de Raspberry Pi encontraremos para descargar los centros multimedia OpenElec y OSMC (Open Source Media Center).

La Raspberry Pi como centro multimedia Un centro multimedia es un sistema que nos permite gestionar archivos de video, fotos y música de manera centralizada en un solo dispositivo. Existen multitud de centros multimedia comerciales, pero gracias a una serie de distribuciones especializadas, podemos transformar nuestra Raspberry Pi en uno sin coste alguno. 1. Aunque existen varias distribuciones, para este ejercicio nosotros vamos a utilizar OpenElec. 1 2. Descargaremos la imagen de OpenElec desde la web oficial http://openelec.tv/get-openelec 2 3. Iremos al apartado correspondiente a la Raspberry Pi y escogeremos la versión para Raspberry Pi (Modelo A/B/B+ 256/512MB) o Raspberry Pi 2 (Modelo B 1024MB) según el dispositivo que tengamos.

1

4. Copiaremos la tarjeta en nuestra SD/micro SD tal como hemos visto en los ejercicios del 6 al 8. 5. Arrancaremos nuestra Raspberry Pi conectada a un televisor para iniciar el centro multimedia. Si nuestro televisor es com-

2

108

Aprender Raspberry Pi con 100 ejercicios prácticos

048

patible con CEC no hará falta que usemos un ratón y un teclado para controlar el centro multimedia, ya que podremos hacerlo directamente con el mando a distancia de nuestro televisor. 6. Una vez arrancado el sistema, veremos que se dispone de cuatro apartados principales: Imágenes, Vídeos, Música y Programas, 3 los cuales serán los encargados de gestionar toda nuestra colección multimedia. 7. OpenElec también dispone de una serie de Add-ons, estos son añadidos hechos por terceros que aportan nuevas funcionalidades al centro multimedia como puede ser por ejemplo la televisión en streaming y la televisión a la carta. 4

8. Por último, es recomendable mantener actualizado nuestro centro multimedia mediante el menú sistema->opciones. Aunque en general nos interesará mantener nuestra distribución actualizada, es posible que por motivos de compatibilidad con alguno de nuestros add-ons no nos interese.

IMPORTANTE Consumer Electronics Control (CEC) es una función del HDMI diseñada para permitir al usuario controlar hasta 15 dispositivos que están conectados a través de HDMI utilizando sólo uno de sus mandos a distancia.

3

4

109

cil

Av Med an io za do



IMPORTANTE Los sistemas NAS (Network Attached Storage) son dispositivos de almacenamiento a los que se accede desde los equipos a través de la red. También se podría considerar un sistema NAS a un servidor que comparte sus unidades por red.

Conectando el centro multimedia a un NAS Después de instalar nuestro centro multimedia, quizás nos interesará conectarlo a un NAS para poder, de esta manera, acceder a nuestro repositorio de contenidos directamente y sin necesidad de copiarlos a la Raspberry Pi o usar un pen drive. 1. Para este ejercicio nos basaremos en un cliente que usa XBMC (ahora llamado Kodi), ya que es el que implementa OpenElec. 2. Después de introducir la tarjeta SD/micro SD en nuestra Raspberry Pi y encender el dispositivo, nos encontraremos con la pantalla principal del centro multimedia. 3. Vamos a aprender cómo incorporar una carpeta compartida mediante el protocolo samba a nuestro centro multimedia. Para ello deberemos tener configurado un dispositivo con samba. Éste puede ser, por ejemplo, una unidad compartida de Windows. En caso de querer usar otra Raspberry Pi o un dispositivo Linux para compartir los recursos, deberemos seguir

1

2

110

Aprender Raspberry Pi con 100 ejercicios prácticos las explicaciones del ejercicio 43 dedicado a la instalación de samba. 4. Iremos a la sección de tipo de recursos que queremos compartir 1 (vídeo, música, imágenes, etc.) e iremos a la opción de Archivos (Files) 5. Imaginemos que vamos a añadir vídeos. En este caso, iremos a la opción Files -> Add video. 6. Indicaremos al sistema que queremos añadir una nueva ubicación de red de tipo Windows Network (SMB) 2 e introduciremos la IP de nuestro NAS u ordenador de almacenaje. 7. En el caso de que esa carpeta compartida requiera un usuario y un password para acceder a él, lo introduciremos en las casillas correspondientes. 8. Buscaremos y seleccionaremos la carpeta en la que estén nuestros recursos multimedia, definiremos un nombre para identificar el recurso, y pulsaremos sobre ok para añadirla a nuestra biblioteca. 9. A partir de este momento, podremos acceder a los recursos de este directorio desde nuestro centro multimedia. 3 Este proceso se deberá repetir para cada carpeta y cada tipo de recurso que queramos añadir, para mantener así los contenidos ordenados y fáciles de encontrar.

049 IMPORTANTE Kodi (antes conocido como “Xbox Media Center” o XBMC) es un centro multimedia de entretenimiento multiplataforma bajo la licencia GNU/GPL.

IMPORTANTE El mundo de los centros multimedia evoluciona muy rápidamente. Por este motivo, algunos pasos pueden ser ligeramente diferentes en el momento en el que el lector lea este ejercicio, pero en líneas generales, el sistema seguirá siendo el mismo.

3

111

cil

Av Med an io za do



IMPORTANTE Aunque a primera vista Scratch pueda parecer un lenguaje de programación muy simple, existen muchas extensiones que permiten hacer desarrollos muy complejos.

Iniciación a Scratch Scratch es una herramienta que ha alcanzado gran relevancia en los últimos tiempos ya que permite acercar la programación a los más jóvenes de manera sencilla. Scratch se basa en una serie de piezas encajables que permiten, mediante un uso intuitivo, crear animaciones interactivas y hasta juegos totalmente funcionales, ya que entre sus elementos cuenta con todo tipo de estructuras de control y operadores al igual que cualquier otro lenguaje de programación. 1. Scratch viene por defecto instalado en Raspbian, así que lo único que deberemos hacer para arrancarlo es ir a Menú>Programación>Scratch. 2. Al inicar Scratch nos encontraremos con la ventana principal del programa. 1 A la izquierda tenemos la zona de piezas o elementos, 2 en el centro la zona de programación 3 y a la derecha la zona de objetos y escenario. 4

1

112

3. Si nos fijamos en la pantalla principal, podremos ver el gato característico de Scratch en el escenario y en la parte inferior veremos la lista de objetos. Al seleccionar cada uno (incluyendo el mismo escenario) accederemos al programa que definirá su comportamiento dentro de Scratch. 2

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Tal y como hacemos en otros ejercicios, para poder tener una primera toma de contacto con el proceso de desarrollo en un entorno de programación específico, haremos un pequeño programa de prueba para ver el funcionamiento del mismo. En este caso practicaremos para lograr que nuestro gato se desplace caminando hacia la derecha.

050 001

5. Para hacerlo iremos a la sección de elementos de Scratch, seleccionaremos la opción de Control e iniciaremos el programa arrastrando el elemento 5 a la zona de programación. Este elemento es el que nos permitirá iniciar el programa cuando esté acabado. 6. Seguiremos nuestro programa seleccionando el elemento de Control->Repetir. Si nos fijamos, veremos que este elemento tiene un espacio vacío en medio. Esto nos va a permitir que los elementos que se inserten dentro se repitan un número de veces que nosotros podemos definir en la casilla del elemento. 7. Dentro del espacio que ha dejado el elemento Repetir, añadiremos los elementos Movimiento->Mover pasos y Apariencia->Siguiente disfraz. Al finalizar, el esquema en la sección de programa debería ser como se muestra en la figura. 6 8. Pulsaremos sobre la bandera verde y podremos ver como el gato de Scratch anda hacia la derecha. ¡Felicidades! ¡Ya hemos acabado nuestro primer programa con Scratch! 3

4 5

6

113

cil

Av Med an io za do



IMPORTANTE Cada objeto (incluido el escenario) puede tener un programa asociado, ya que al escoger cada objeto tendremos una ventana de programación independiente.

Entrar ensobre Excel Scratch: y abrir Ejercicio un documento Animando al cangrejo Dado que Scratch es un lenguaje de programación básicamente orientado a los niños, y las explicaciones formales pueden llegar a ser tediosas, en este punto realizaremos una serie de 3 ejercicios prácticos con Scratch. Comenzaremos con un ejercicio básico, basado en mover el cangrejo por la pantalla de manera aleatoria. 1. Lo primero que haremos será ir a la sección de escenario y modificarlo para que sea azul. 1 2. Seguidamente iremos a objeto1 (donde por defecto está el gato de Scratch), borraremos y crearemos un nuevo objeto con el cangrejo (crab). Para ello utilizaremos la opción escoger nuevo objeto desde archivo y seleccionaremos crab dentro de la carpeta animales. 2 3. Cuando estemos listos, nos dispondremos a componer el código en la sección de programas asociada al objeto cangrejo. El código de este ejercicio se divide en tres partes:

1

114

2

Aprender Raspberry Pi con 100 ejercicios prácticos 4. La primera parte del código se encarga de que nuestro cangrejo se mueva alrededor y gire aleatoriamente de manera indefinida gracias al uso del control por siempre que nos permite repetir un bloque de programa hasta que deseemos. 3 5. La segunda sección del código se encarga de ir cambiando el disfraz de nuestro cangrejo. Cada disfraz corresponde a una expresión o un movimiento del mismo. Eso lo podemos ver mediante el uso de los bloques de cambiar a disfraz y siguiente disfraz dentro de un bucle infinito. 4 6. La tercera parte del código se encarga de poner sonido a la animación de entre un conjunto de sonidos que ya lleva la biblioteca de Scratch. 5

051 IMPORTANTE Todos las secciones de código en este ejemplo comienzan con la bandera verde. Esto es lo que indica al programa que debe comenzar a ejecutarse.

7. Cuando todas las secciones de código estén finalizadas, nuestra ventana de programación debería tener un aspecto similar a la imagen 6. 6 Para arrancar la animación deberemos pulsar sobre la bandera verde que tenemos encima del cuadro de animación. De la misma manera, para parar la ejecución pulsaremos sobre el boton rojo. 3 6

4

5

115

cil

Av Med an io za do



IMPORTANTE Para crear los gráficos podemos usar programas como GIMP (ejercicio 26) o Inkscape (ejercicio 33), sin embargo, la manera más práctica de crear los recursos gráficos es utilizar el editor de imágenes (4) de que dispone Scratch.

Ejercicio sobre Scratch: Laberinto Este segundo juego con Scratch lo hemos querido plantear como un reto artístico para los niños, además de ser un ejercicio de programación. El juego consiste en llevar una pelota por un laberinto hasta la meta. La dificultad radica, no sólo en la creación del programa, sino en el hecho de que los recursos gráficos no existen en Scratch, por lo que deberemos crearlos e importarlos a nuestro proyecto. 1. Los recursos gráficos que vamos a necesitar son: un laberinto 1 de un tamaño aproximado de 240x180 píxeles, una pelota, 2 y un objeto que marque la meta de diferente color que las paredes del laberinto. 3 2. Cuando tengamos los recursos creados, los insertaremos en el proyecto, 4 tal como hemos hecho en el ejercicio 50, cargando el fondo del laberinto como escenario y la pelota y la meta como objetos. 2

1

4

116

3

Aprender Raspberry Pi con 100 ejercicios prácticos

052

3. Ahora comenzaremos con las secciones del programa asociado al objeto pelota. La primera sección 5 se encarga de inicializar la posición de la pelota. 4. La segunda parte es la más interesante, 6 ya que se encargará de reconocer nuestras pulsaciones en el teclado y mover la pelota en la dirección que le indiquemos. 5. La tercera sección del programa se encarga de lo que se conoce como control de colisiones, es decir, que el programa debe detectar si la pelota está tocando la pared del laberinto y, en el caso de que así sea, no dejarla pasar. 7 6. De la misma manera, también deberemos crear un código asociado al objeto que define la meta. 8 Este código controlará si la pelota ha llegado a su objetivo y nos mostrará un texto para saber que hemos conseguido ganar la partida.

5

6

7

8

117

cil

Av Med an io za do



IMPORTANTE En estos 3 ejercicios hemos visto las posibilidades de Scratch para aprender a programar y generar las estructuras de los lenguajes de programación profesionales mientras jugamos creando animaciones y juegos. Scratch es una plataforma que ha inspirado muchos desarrollos más complejos, facilitando la programación en diversas plataformas y entornos a cualquier tipo de usuario.

1

118

Ejercicio sobre Scratch: Aprender a sumar jugando En este último ejercicio dedicado a Scratch veremos un interesante juego educativo para los más pequeños de la casa, que se podrán divertir y aprender, no sólo creándolo, sino también jugando con él. El juego nos irá proponiendo diversas sumas, y el jugador deberá contestar correctamente la mayor cantidad posible de éstas. 1. Lo primero que haremos será escoger un personaje y un escenario que nos guste de la biblioteca de que dispone Scratch, 1 tal como hemos visto en ejercicios anteriores. 2. En este caso, el código es un poco más complejo 2 ya que no se divide en subsecciones. De todas maneras, intentaremos hacer una aproximación al mismo por partes.

Aprender Raspberry Pi con 100 ejercicios prácticos 3. La primera parte la podríamos llamar de inicialización, y es donde el personaje que nos presentará el juego nos dará las indicaciones e inicializamos el marcador a cero. 3 4. La segunda parte es el bucle principal, donde el programa nos irá preguntando hasta 10 veces el resultado de una suma generada aleatoriamente, y nos mostrará un mensaje u otro basándose en si hemos acertado o no el resultado. 4 En el caso de acertar, también aumentará nuestro marcador.

053

5. En la sección final del código 5 veremos cómo el programa gestiona el proceso final después de que el personaje haya realizado las 10 preguntas. El programa nos mostrará la puntuación final y nos dará la posibilidad de volver a jugar. 3

2

4

5

119

cil

Av Med an io za do



IMPORTANTE Actualmente existen 2 versiones de Python en producción: Python 2.7 y Python 3.4. Cada una de ellas cuenta con ventajas e inconvenientes, pero lo más relevante a destacar es que los scripts hechos en una versión no funcionarán en la otra, por lo que deberemos elegir una y no cambiar hasta dominar bien lo que hacemos. Para estos ejercicios utilizaremos Python 2.7.

Iniciación a Python. Hola mundo con IDLE Uno de los lenguajes más recomendados actualmente para iniciarse en la programación es Python. Python es un lenguaje de script o interpretado (a diferencia de lenguajes como C, donde el código se compila) y permite que el código generado se pueda ejecutar sin cambios en prácticamente cualquier plataforma que disponga de un intérprete de Python (Windows, MacOSX, Linux…). Otra de las grandes ventajas de Python es la de disponer de una sintaxis sencilla y clara, muy cercana al lenguaje natural, que facilita el proceso de aprendizaje y, a la vez, es muy potente para el programador experto. 1. Si estás usando la distribución de Raspbian 1 —es la que recomendamos y en la que nos vamos a basar en los ejercicios dedicados a Python— podrás ver que Python está instalado por defecto en el sistema. En general en todas las distribuciones actuales Python está instalado por defecto. 2. En el escritorio de Raspbian veremos dos iconos, IDLE e IDLE3. 2 Cada uno corresponde al entorno de desarrollo de una versión de Python (ver nota IMPORTANTE). 3. Abriremos la aplicación de IDLE (no IDLE3) que corresponde a la versión 2.7 de Python.

1 2

120

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Cuando IDLE esté abierto, 3 nos encontraremos con el Python shell, identificado por la cadena de texto ‘>>>’ que nos indica que Python está listo para recibir una instrucción. Para probar el funcionamiento del mismo podemos escribir print (“Hola Mundo!”), pulsar Enter y ver la salida. Comprobamos así que el comando print nos permite escribir texto en la pantalla.

054

5. En general, nosotros necesitaremos guardar instrucciones para poder ejecutarlas varias veces sin tener que reescribirlas cada vez. A esto lo llamaremos programa o script. Para crear un script haremos click en File | New Window en el menú de IDLE (también podremos usar el atajo de teclado Ctrl+N). 6. Haremos click en File | Save As pa ra dar un nombre a nuestro futuro script. 4 7. Escribiremos de nuevo la instrucción print (“Hola Mundo!”). 8. Grabaremos el archivo desde el menú File | Save de IDLE y después lo ejecutaremos desde la opción Run Module del menú Run (o pulsando F5). 5 9. Si todo ha funcionado correctamente podremos ver como IDLE nos devuelve el saludo “Hola Mundo!”. ¡Felicidades! Ya has escrito y ejecutado tu primer script en Python.

5

3

4

121

cil

Av Med an io za do



IMPORTANTE Es posible utilizar Python de manera interactiva. Para ello escribiremos python en la línea de comandos y después introduciremos las sentencias que deseemos una tras otra. 4

Python. Programando desde el terminal En el ejercicio anterior hemos visto cómo hacer nuestro primer programa en Python con IDLE. IDLE es muy práctico pero a veces nos podemos encontrar que no tenemos disponible un entorno gráfico y debemos programar desde la consola del sistema. Por eso es importante conocer la manera de desarrollar nuestros programas sin ayuda de ningún IDE. 1. Los scripts de Python son archivos que llevan la extensión .py. Vamos a crear un archivo llamado holamundo.py con el comando nano holamundo.py y escribiremos la instrucción print “Hola mundo”. Para finalizar ejecutaremos el script con el comando python holamundo.py. 1 2. A diferencia de otros lenguajes clásicos, Python no utiliza corchetes ({ }) para definir los bloques de código sino que estos son definidos en función de las líneas y la indentación, que son requeridos de manera muy estricta. El número de espacios en la indentación es variable, pero todas las sentencias dentro de un bloque deben tener los mismos espacios. También es importante tener en cuenta que deberemos marcar el inicio del bloque con el simbolo ‘:’.

1 2

122

Aprender Raspberry Pi con 100 ejercicios prácticos Veamos un ejemplo: Este programa es correcto: if True: print “Verdadero” else: print “Falso” # El programa funcionará ya que están en diferentes bloques Pero este fallará:

055

2

if True: print “Respuesta:” print “Verdadero” else: print “Respuesta:” print “Falso” 3. Otro de los puntos básicos de cualquier lenguaje son los comentarios. En el caso de Python todas las líneas que comiencen por ‘#’ serán ignoradas por el intérprete de Python: 3 # Primer comentario print “Hello, Python!” # Segundo comentario

4

3

123

cil

Av Med an io za do



IMPORTANTE A veces nos puede resultar interesante hacer una conversión de tipos de datos. Para llevar a cabo esta tarea debemos utilizar el nombre del tipo como una funcion. Por ejemplo, si queremos convertir la variable x a un tipo de coma flotante haremos una conversión con float(x). Si deseamos convertir el elemento contenido en la variable y en una cadena de caracteres, usaremos la instrucción str(y).

Python. Variables Cuando en cualquier lenguaje hablamos de variables, en realidad nos estamos refiriendo a los nombres que asignamos a espacios de memoria reservados para almacenar el contenido de esa variable y, dependiendo del tipo de datos que queremos guardar, el programa reservará más o menos espacio en la memoria. En este ejercicio veremos cómo tratar con las variables en Python. 1. A diferencia de otros lenguajes, en Python no hace falta una declaración explícita de la variable para reservar el espacio de memoria, ya que esta reserva se produce de manera automática cuando asignamos el valor. 2. Para asignar un valor a una variable usaremos el signo ‘=’. Por ejemplo, la expresión elementos = 50 nos almacenará el valor 50 en la variable elementos. 3. Python tiene 5 tipos de datos: números, cadenas de caracteres,

1

124

Aprender Raspberry Pi con 100 ejercicios prácticos listas, tuplas y diccionarios. Dentro de los números existen 4 subtipos: números enteros (int), números largos (long), decimales (float) y complejos (complex): int

long

float

complex

114

-0x786323L

11.80

23.j

4. En Python los strings se definen como cadenas de caracteres entre comillas dobles (“) o comillas simples (‘). Podemos acceder a subconjuntos del string usando los operadores [] y [:] con los índices de 0 para el inicio y -1 para el final. El operador (+) sirve para la concatenación de cadenas. Veamos unos ejemplos: 1 2 str = ‘Hola mundo!’ print str # Imprime la cadena print str[0] # Imprime el primer carácter de la cadena print str[2:5] # Imprime los caracteres del 2 al 5 print str[2:] # Imprime los caracteres del segundo al final print str + “TEST” # Concatena la cadena con TEST

056 IMPORTANTE Cuando hablamos de una declaración explícita de variables, nos referimos a que en algunos lenguajes de programación antes de hacer una asignación debemos indicarle el tipo de datos que almacenará la variable. En los lenguajes donde esto no es necesario, podemos usar variables en cualquier punto sin que sea necesario declararlas antes.

2

125

cil

Av Med an io za do



Python. Operadores Si nos centramos en la definición formal, los operadores son un conjunto de símbolos que llevan a cabo una operación específica sobre sus operandos. Dado que esta explicación puede resultar un poco confusa, consideremos la expresión 7 + 2 = 9. En este caso el operador es el simbolo ‘+’ y su función es sumar los dos operandos (7 y 2). Hay un tipo particular de operadores llamados operadores lógicos, que nos permiten generar expresiones condicionales. 1. Comencemos con el operador más básico: el operador de asignación. Este operador asigna al operando izquierdo del operador el contenido del operando derecho. 1 Ejemplo: c=4+5 2. Continuemos con los operadores aritméticos: la suma (+), la resta (-), la multiplicación (*), la división (/), el módulo (%) y el exponente (**). 2 Ejemplo: a = 30 + b b=a%2

1

126

3. Los operadores de comparación nos van a permitir evaluar expresiones como ciertas o falsas, y, en base a éstas, ejecutar diferentes bloques de código. Podemos consultarlas en la tabla de la siguiente página.

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Es posible generar expresiones más complejas concatenando expresiones lógicas con un AND (and) o un OR (or). El operador AND (and) se utiliza cuando queremos que la expresión sea cierta cuando se cumplan las dos condiciones, y el operador OR (or) se utiliza cuando queremos que la expresión sea cierta cuando sólo una expresión lo sea. Veamos un ejemplo: 3

057

((5=

Cierto si el operando izquierdo es mayor o igual que el izquierdo. (5 >= 5) es cierto

Open y cargaremos el código en nuestra ventana. 8. Podremos ejecutar cada expresión con Shift+Enter, o también podremos evaluar todas las expresiones del archivo al mismo tiempo desde el menú Evaluation->Evaluate Notebook 3

4

5

151

cil

Av Med an io za do



IMPORTANTE Añadiendo un punto y coma al final de la línea evita que se muestre en pantalla la salida resultante de cada expresión.

Mathematica. Variables y funciones generales Después de haber visto qué es Mathematica en el ejercicio anterior, en este ejercicio seguiremos iniciándonos en sus características más relevantes y aprendiendo su funcionamiento. 1. Igual que otros lenguajes de programación, Mathematica hace uso de las variables para almacenar datos. Veamos un ejemplo: 1 radius = 5; diameter = 2 * radius; circumference = 2 * Pi * radius; area = Pi * radius^2; 2. Como se puede ver en el ejemplo anterior, en Mathematica existe el concepto de valores simbólicos, como por ejemplo Pi. Esto nos permite trabajar con valores sin redondear al utilizarlos en otras expresiones. 3. También podemos crear listas de valores: nums = {1, 2, 3, 5, 8} people = {“Alice”, “Bob”, “Charlotte”, “David”}

1

2

152

Aprender Raspberry Pi con 100 ejercicios prácticos 4. La función Range nos permite crear listas numéricas de manera automática: Range[5] (*Numeros del 1 al 5*) Range[2, 5] (*Numeros del 2 al 5*) Range[2, 5, 2] (*Numeros del 2 al 5, de 2 en 2*) 5. Podemos ver cómo usar cualquier función escribiendo su nombre con un ? al final y pulsando Shift+Enter. 2 In[9]:= ?Sqrt 6. Podemos buscar las funciones disponibles escribiendo parte del texto a buscar, comenzando por un ? y acabando por un *, al final pulsaremos Shift+Enter para ver el resultado. 3 In[15]:= ?Device* 7. Par añadir comentarios, vamos a ponerlos entre paréntesis ‘()’ y asteriscos ‘*’ Print[“Hello”] (*Imprime “Hello” en la pantalla*)

070 001 IMPORTANTE Al finalizar nuestro programa, lo podremos guardar como un script con extensión .m o .wl, para posteriormente ejecutarlo desde la línea de comandos añadiendo el parámetro -script. Por ejemplo, si guardamos un script con el archivo test.m, podremos ejecutarlo desde la línea de comandos de este modo: wolfram -script test.m

3

153

cil

Av Med an io za do



IMPORTANTE En el caso de las listas, las operaciones que nos devuelven un valor entero serán mostradas mediante el valor mismo, pero en el caso de que su valor sea irracional, el valor será mostrado simbólicamente.

Entrar en Excel y abrir Operaciones con listas documento yunmatrices En este ejercicio seguiremos avanzando en el tratamiento de las listas y matrices, viendo cómo operar con ellas. 1. Una de las características interesantes es que podemos operar con una lista como si fuese un operador más, 1 de manera que podemos realizar operaciones como las siguientes: In[21]:= 2 * {1, 2, 3, 4, 5} Out[21]: {2, 4, 6, 8, 10} In[22]:= {1, 2, 3, 4, 5} ^ 2 Out[22]: {1, 4, 9, 16, 25} In[23]:= Sqrt[{1, 2, 3, 4, 5}] Out[23]: {1, Sqrt[2], Sqrt[3], 2, Sqrt[5]} 2. Mathematica también nos permite crear matrices, que las podríamos definir como un tipo de listas bidimensionales. m = {{1, 2}, {3, 4}, {5, 6}};

1

2

154

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Si queremos ver esta lista bidimensional en forma de matriz ejecutaremos la siguiente expresión: 2 m // MatrixForm Donde m es la variable que contiene la matriz.

071

4. De la misma manera que podemos hacer operaciones con las listas, también las podemos hacer con las matrices. Veamos un ejemplo haciendo un producto de matrices: 3 m = {{1, 2}, {3, 4}, {5, 6}}; m2 = {{10, 20, 30}, {40, 50, 60}}; m . m2 // MatrixForm 5. También es posible hacer bucles en Mathematica. Para realizarlos deberemos utilizar la instrucción do: 4 Do[Print[“Hola”], {10}] (*Print “Hola” 10 times*) Do[Print[i], {i, 5}] (*Imprime los números del 1 al 5*) 3

4

155

cil

Av Med an io za do



Mathematica. Gráficos en 2D y 3D Una de las grandes ventajas de Mathematica es su gran potencia la representación gráfica de funciones tanto en 2D como en 3D. En este ejercicio veremos algunos ejemplos de generación de graficos con Mathematica para representar datos y funciones. 1. Comenzaremos el ejercicio representando una de las funciones más clásicas en el mundo de las matemáticas: una función sinusoidal. 1 Para ello definiremos la función que queremos representar y el rango de valores: Plot[Sin[x], {x, 0, 2 Pi}] 2. También podemos representar tablas de datos en un gráfico, de manera parecida a Excel u otras hojas de cálculo, pero añadiendo toda la potencia de Mathematica. Veamos un ejemplo de cómo representar una serie de puntos generados aleatoriamente. 2

1

datapts = Table[x + RandomReal[{-4, 4}], {x, 0, 20}]; ListPlot[datapts] En el caso de que no queramos un gráfico por puntos, y deseemos que estén unidos por líneas, deberemos cambiar la función ListPlot por ListLinePlot. 3 datapts = Table[x + RandomReal[{-4, 4}], {x, 0, 20}]; ListLinePlot[datapts] 2

3

156

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Ahora realizaremos gráficos en 3 dimensiones, para ello usaremos la función Plot3D que nos permite generar graficos con 3 ejes. 4 Plot3D[Sin[x] Cos[y], {x, 0, 5}, {y, 1, 10}]

072

4. Como curiosidad, podemos ver representaciones de funciones singulares, como, por ejemplo, la curva de Batman! 5 Plot[{With[{w = 3*Sqrt[1 - (x/7)^2], l = (6/7)*Sqrt[10] + (3 + x)/2 - (3/7)*Sqrt[10]*Sqrt[4 - (x + 1)^2], h = (1/2)*(3*(Abs[x - 1/2] + Abs[x + 1/2] + 6) - 11*(Abs[x - 3/4] + Abs[x + 3/4])), r = (6/7)*Sqrt[10] + (3 - x)/2 (3/7)*Sqrt[10]* Sqrt[4 - (x - 1)^2]}, w + (l - w)*UnitStep[x + 3] + (h - l)*UnitStep[x + 1] + (r - h)*UnitStep[x - 1] + (w - r)*UnitStep[x - 3]], (1/2)*(3*Sqrt[1 - (x/7)^2] + Sqrt[1 - (Abs[Abs[x] - 2] - 1)^2] + Abs[x/2] - ((3*Sqrt[33] - 7)/112)*x^2 - 3)*((x + 4)/Abs[x + 4] - (x - 4)/Abs[x - 4]) - 3*Sqrt[1 - (x/7)^2]}, {x, -7, 7}, AspectRatio -> Automatic] 5

4

157

Mathematica. Acceso al GPIO

cil

Av Med an io za do



En el último ejercicio sobre Mathematica veremos cómo podemos acceder al puerto GPIO. Aunque en muchos casos nos resultará más práctico acceder al puerto GPIO mediante otros lenguajes como Python o C / C++, y que para estos sistemas una gran variedad de módulos y controladores ya escritos, no está de más conocer la posibilidad de usar Mathematica para leer nuestros sensores y controlar los actuadores que tengamos conectados a la Raspberry Pi.

IMPORTANTE GPIO es el acrónimo de General Purpose Input/ Output y se refiere a los pines que permiten interactuar a la Raspberry Pi con el mundo exterior mediante sensores y actuadores.

1. Para acceder a los pines del puerto GPIO desde Mathematica usaremos las funciones DeviceWrite, para escribir datos en un pin específico, y DeviceRead, para leer la información. 2. Para acceder a los pines GPIO deberemos ejecutar Mathematica como superusuario (root). Para hacer eso deberemos ejecutar desde la consola 1 el comando: sudo wolfram En el caso de querer ejecutar la línea de comandos del entorno, o ejecutaremos el comando: sudo mathematica & Para ejecutar el entorno gráfico

2

de Mathematica.

3. En Mathematica, por defecto, se usan los pines del puerto GPIO con la numeración BCM (ver nota y el ejercicio de introducción a GPIO)

1

158

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Vamos a ver cómo activar el pin número 14 de nuestro GPIO escribiendo un uno: DeviceWrite[“GPIO”, 14 -> 1] Ahora escribiremos un cero en el pin 14 del GPIO para desactivar la salida del mismo: DeviceWrite[“GPIO”, 14 -> 0] La idea es que nosotros podríamos tener cualquier tipo de dispositivo digital conectado al pin 14 de nuestra Raspberry Pi, como, por ejemplo, una luz de tipo LED, y la podríamos apagar y encender desde Mathematica activando o desactivando la salida de ese pin. 5. De la misma manera, podremos leer la información de cualquier pin del puerto GPIO de nuestra Raspberry Pi con el comando DeviceRead: 3 button = DeviceRead[“GPIO”, 14] Gracias a esta función podemos leer cualquier señal digital recibida en el puerto GPIO. Un ejemplo podría ser un pulsador conectado al pin número 14. Al pulsarlo recibiríamos un 1, y al soltarlo un 0.

073 IMPORTANTE Existen dos modos de numerar los pines del puerto GPIO: el llamado modo BCM, y el modo BOARD. El modo BCM es el modo como Broadcom numera los pines, y cambian entre las diferentes versiones de Raspberry Pi. El modo BOARD numera los pines según la numeración externa de la placa. Para ver la diferencias lea el ejercicio de introducción al puerto GPIO.

2

3

159

cil

Av Med an io za do



IMPORTANTE Para evitar problemas con la configuración del sonido por HDMI, o en caso de conectar la Raspberry Pi a un monitor de ordenador, recomendamos usar unos altavoces externos para la salida de audio utilizando el Jack estéreo de 3.5 mm que incorpora la Raspberry Pi.

Iniciación a Sonic Pi Sonic Pi es un entorno de desarrollo de código abierto diseñado para crear sonidos mediante la elaboración de scripts en un entorno de programación. Ha sido ideado por el Doctor Sam Aaron en la Universidad de Cambridge. Nosotros vamos a hacer los ejercicios con la versión 2, que viene instalada de serie en la distribución Raspbian de Raspberry Pi. 1. Iremos al escritorio de Raspbian y arrancaremos el programa Sonic Pi. 1 2. Seleccionaremos el workspace 1 y escribiremos play 60, y después pulsaremos sobre el botón Play. Podremos escuchar como los altavoces conectados a la Raspberry Pi (ya estén conectados a la salida de Jack o a la del televisor mediante HDMI) emiten un sonido. 3. Ahora escribiremos la secuencia siguiente: play 60 play 67 play 69 Aunque Sonic Pi ejecute los comandos en orden (uno después de otro), el hecho de ejecutarlos muy rápido nos dará la sensación de que se ejecutan todos a la vez, y en nuestra Raspberry Pi sonará un acorde. 2

1

160

Aprender Raspberry Pi con 100 ejercicios prácticos

074

4. Si lo que buscamos es que suene una nota después de otra, deberemos utilizar la instrucción sleep seguida del número de segundos que queremos pausar el programa. 2 play 60 sleep 1 play 67 sleep 1 play 69 sleep 1 5. Podemos ver las equivalencias entre notas y códigos MIDI en la siguiente tabla: 3 Do

Do#

Re

Re#

Mi

Fa

Fa#

Sol

Sol#

La

La#

Si

:c4

:cs4

:d4

:ds4

:e4

:f4

:fs4

:g4

:gs4

:a4

:as4

:b4

60

61

62

63

64

65

66

67

68

69

70

71

6. El código anterior es equivalente a: play :c4 sleep 1 play :g4 sleep 1 play :a4 sleep 1

Recientemente Sonic Pi 2 está disponible para otras plataformas como Windows o MacOSX, por lo que podemos llevar nuestra música fuera del entorno de Raspberry Pi. 4

4

3

161

cil

Av Med an io za do



Sonic Pi: Iteraciones, bucles y condicionales Después de aprender cómo utilizar en Sonic Pi las instrucciones de play para hacer sonar una nota, y sleep, para hacer pausas, vamos a ver en este ejercicio cómo dar un paso más allá para enriquecer nuestras creaciones. 1. Imaginemos que hemos creado una secuencia de notas y queremos que se repita varias veces. No tiene mucho sentido que escribamos el código una y otra vez. En vez de eso lo que haremos será hacer una iteración. Ejemplo: queremos hacer sonar 3 veces la siguiente secuencia: 1 play 60 sleep 0.5 play 62 sleep 0.5 play 64 sleep 0.5

1

Para ello añadiremos las siguientes líneas, creando un bloque que se repetirá 3 veces: 2 3.times do play 60 sleep 0.5 play 62 sleep 0.5 play 64 sleep 0.5 end

162

2

Aprender Raspberry Pi con 100 ejercicios prácticos

075

2. Ahora pensemos en otra posibilidad: queremos que nuestro bloque de notas se repita indefinidamente. Una opción seria poner un número muy grande, pero eso sería muy poco elegante. En lugar de eso, lo que haremos será utilizar la instrucción loop. Ahora veremos el ejemplo anterior pero que se repite indefinidamente: 3 loop do play 60 sleep 0.5 play 62 sleep 0.5 play 64 sleep 0.5 end 3. Otra opción muy interesante es añadir condicionales a nuestro código. En Sonic Pi normalmente los condicionales se usan para determinar si se toca o no una nota en base a un elemento aleatorio. Para ello se ha implementado la función one_in(x), que nos genera un número aleatorio entre 1 y x. Para ilustrarlo seguiremos con el mismo ejemplo, pero, a diferencia de los anteriores, haremos que las notas suenen de manera aleatoria: 4 loop do if one_in(2) play 60 sleep 0.5 end if one_in(2) play 62 sleep 0.5 end if one_in(2) play 64 sleep 0.5 end end

4

3

163

Sonic Pi: Samples y sintetizadores

cil

Av Med an io za do



IMPORTANTE Para ver la lista de samples y synths, la manera más cómoda es usar el desplegable con todas las opciones que aparecen cuando escribimos la instrucción en Sonic Pi. 4 También es muy útil la ayuda de la parte inferior de la pantalla.

Hasta ahora con Sonic Pi sólo hemos podido escuchar beeps con diferentes tonos, cosa que al final nos puede resultar un poco aburrido. Sin embargo, Sonic Pi nos brinda también la posibilidad de utilizar sonidos pre-grabados, conocidos como samples, y generar sonidos mediante el uso de sintetizadores. 1. Sonic Pi incluye más de 90 sonidos pre-grabados de dominio público y además nos permite utilizar nuestros propios samples. Para reproducirlos usaremos el comando sample :[nombre del sample] Por ejemplo: 1 sample :ambi_lunar_land

1

2. 2. Sonic Pi también cuenta con un amplio rango de instrumentos llamados synths. A diferencia de los samples, que son sonidos pre-grabados, los synths son capaces de generar nuevos sonidos en base a nuestra configuración. Para seleccionar un synth usaremos el comando use_synth :[nombre del synth]. A partir de ese momento, cada comando play reproducirá una nota con el synth seleccionado. Por ejemplo:

2

use_synth :prophet play 38 sleep 0.25

3

164

2

Aprender Raspberry Pi con 100 ejercicios prácticos

076

play 50 sleep 0.25 play 62 sleep 0.25 3. Tanto los samplers como los synths tienen una serie de parámetros de configuración. Estos parámetros nos permiten configurar el comportamiento del sonido. Cada parámetro tiene dos elementos: el primero es su nombre y el segundo es su valor. Algunos de los parámetros que podemos variar son: la amplitud (amp:), que define el volumen, el panning (pan:), que controla por qué altavoz se escuchará el sonido, y el release time (release:), que nos marca el tiempo que durará el sonido. Tambíen nos encontramos con otros parámetros que modifican la forma de la onda, como attack, sustain o decay.

IMPORTANTE Live Coding es una interesante opción de Sonic Pi que nos permite hacer modificaciones del código en tiempo real, lo cual nos brinda la posibilidad de utilizarlo para hacer sesiones en vivo.

Como ejemplo podemos apreciar la diferencia entre ejecutar el sonido: play 60 o la misma nota modificada por los siguientes parámetros:

3

play 60, attack: 0.5, decay: 1, sustain: 2, release: 0.5 4

165

cil

Av Med an io za do



IMPORTANTE Podremos encontrar multitud de ejemplos de Sonic Pi en internet y en la ayuda del mismo programa.

Sonic Pi: Efectos y ejemplo práctico Como último ejercicio relacionado con Sonic Pi, hablaremos de los efectos y veremos un ejemplo de una composición donde se verán de manera práctica los conceptos anteriormente expuestos. 1. En el capítulo anterior vimos los samples y los sintetizadores. Ahora veremos la posibilidad de añadir efectos de estudio a nuestros sonidos. Sonic Pi nos permite añadir y parametrizar los efectos, e incluso encadenarlos para generar sonidos mucho más ricos y complejos. 2. Si queremos añadir un efecto a un bloque, lo haremos con la instrucción with_fx :[nombre del efecto] Por ejemplo, para añadir el efecto de reverberación a una nota haremos lo siguiente: 1 with_fx :reverb do play 50 end 3. De la misma manera que pasaba con los samples y los sintetizadores, existen muchos tipos de efectos y muchas maneras de

1

2

166

Aprender Raspberry Pi con 100 ejercicios prácticos parametrizarlos. Para explorar todos los detalles recurriremos a la ayuda de Sonic Pi. 4. Una de las características que hacen muy interesantes los efectos es que se pueden anidar, es decir, podemos encadenar efectos para generar sonidos mucho más complejos. Para ello haremos lo siguiente: 2

077

with_fx :reverb do with_fx :echo do end end

play 50

5. Ahora veremos una creación de una pieza de sonido real con Sonic Pi: 3 loop do with_fx :distorsion, rate: rrand(1,5) do sample :perc_bell, rate: rrand(0.125,1.5) sleep rrand(0.1,2) end end En esta pieza sonarán, en un bucle infinito, un conjunto de campanas con un toque fantasmagórico gracias al uso de la función rrand, que genera un número aleatorio entre los dos intervalos que tiene como parámetro. 3

167

i2

Rasp

cil

Av Med an io za do



IMPORTANTE Ubuntu Snappy Core para Raspberry Pi 2 está considerada actualmente una versión Alpha. Esto significa que no es usable a nivel de producción y que está en constante cambio y desarrollo. Este ejercicio se ha escrito con la versión Alpha 2 y puede contener diferencias con la versión que exista actualmente.

Ubuntu Snappy Core Instalar y configurar Una de las nuevas distribuciones que nos permite instalar la Raspberry Pi 2 es la llamada Ubuntu Snappy Core. Esta distribución de Ubuntu está orientada a servicios en la nube e IoT para desarrolladores. Una de las características más interesantes es el nuevo gestor de paquetes ‘Snappy’ que sustituye al tradicional sistema ‘apt’ y que además incorpora el concepto de actualizaciones transaccionales. 1. En primer lugar descargaremos la imagen original de Ubuntu Snappy Core desde la web de Raspberry Pi https://www.raspberrypi.org/downloads/snappy y al finalizar la descarga descomprimiremos el archivo zip, obteniendo así la imagen del sistema original. 1 2. Copiaremos el archivo que contiene la imagen del sistema en nuestra tarjeta microSD siguiendo las explicaciones que podremos encontrar en la lección 8. Se debe recordar que el proceso de copia de la imagen a la tarjeta microSD será diferente dependiendo del sistema operativo usado. 3. Introduciremos la tarjeta microSD en la Raspberry Pi, conectaremos un teclado, una pantalla y posteriormente iniciaremos el sistema conectando la alimentación a la Raspberry Pi.

1

4. Después del proceso de arranque, introduciremos el usuario y el password por defecto del sistema, que son los siguientes: [usuario: ubuntu] [password: ubuntu]. 2

168

Aprender Raspberry Pi con 100 ejercicios prácticos

078

5. Si queremos usar la red, deberemos conectar la Raspberry Pi 2 al puerto Ethernet, ya que en la versión actual (Alpha 2) no hay soporte de serie para WiFi. 6. Dado que la Raspberry Pi 2 no incorpora un reloj interno de tiempo real (RTC), se deberá configurar la hora y fecha del sistema antes de proceder a actualizarlo o instalar cualquier nuevo paquete. En el caso de que dispongamos de conexión a internet, deberemos escribir el siguiente comando en la consola: sudo timedatectl set-ntp true. En el caso contrario, deberemos modificar la fecha manualmente mediante el comando siguiente: sudo date -s “Sat Feb 7 09:57:32 GMT 2015” actualizando de esta manera la fecha y la hora con la actual.

IMPORTANTE El diseño y la estructura del sistema de actualizaciones transaccionales permite una distribución de aplicaciones más rápida y segura que los sistemas de paquetes tradicionales como apt.

7. Accederemos a la información de los paquetes instalados en el sistema usando el comando: sudo snappy info o el comando sudo snappy versions en caso de querer ver una información más detallada de cada paquete. 2 8. Actualizaremos el sistema con el comando: sudo snappy update 9. Instalaremos el gestor de paquetes vía web webdm mediante el comando: sudo snappy install webdm. Este paquete nos permitirá gestionar todos los paquetes desde una interfaz web. 10. Para poder acceder a la interfaz web primero deberemos descubrir la IP que está usando la Raspberry Pi con el comando ifconfig eth0 . La podremos encontrar en la sección eth0 al lado del texto Inet Addr. 3 11. Nos conectaremos con el navegador al puerto 4200 de la dirección IP de la Raspberry Pi para acceder a la interfaz web. 4 4 3

169

i2

Rasp

cil

Av Med an io za do



IMPORTANTE Para completar la instalación deberemos actualizar el sistema desde terminal mediante los comandos sudo apt-get update y sudo apt-get distupgrade.

Ubuntu Mate Instalar y configurar Ubuntu Mate 15.04 es otra de las distribuciones que nos permite instalar la Raspberry Pi 2. A diferencia de Ubuntu ‘Snappy’ Core, Ubuntu Mate 15.04 1 nos brinda una plataforma adecuada para el usuario final, ya que nos proporciona un entorno de escritorio perfectamente usable y con todas las ventajas a nivel de repositorios de una Ubuntu para PC. 1. Para comenzar a instalar la Ubuntu Mate 15.04 lo primero que deberemos hacer es bajar la imagen de la web https://ubuntu-mate.org/raspberry-pi/. El archivo que deberemos descargar se encuentra en la sección de descargas y su nombre en el momento de escribir este ejercicio es: ubuntu-mate-15.04desktop-armhf-raspberry-pi-2.img.bz2. 2. Descomprimiremos el archivo con el comando bunzip2 en Linux, WinRAR / 7-Zip o parecidos en otras plataformas. Después de descomprimir el archivo obtendremos la imagen original. 3. Copiaremos el archivo que contiene la imagen del sistema en nuestra tarjeta microSD siguiendo las explicaciones que podremos encontrar en las lecciones 6, 7 y 8. Se debe recordar

1

170

Aprender Raspberry Pi con 100 ejercicios prácticos

079

que el proceso de copia de la imagen a la tarjeta microSD será diferente dependiendo del sistema operativo usado. 4. Introduciremos la tarjeta microSD en la Raspberry Pi, conectaremos un teclado, una pantalla y posteriormente iniciaremos el sistema conectando la alimentación a la Raspberry Pi. 5. Al finalizar el proceso de arranque, Ubuntu Mate 15.04 iniciará un proceso de configuración semi automatizado donde nos hará una serie de preguntas básicas en relación a nuestra zona horaria, la configuración del idioma de nuestro teclado y los datos para generar nuestro usuario de sistema. 6. Al acabar el proceso de configuración, el sistema iniciará un nuevo proceso de instalación automática que puede durar unos 10 minutos. Al finalizar ésta, el sistema estará preparado para su uso. y dispondremos de todas las aplicaciones de un entorno de escritorio. 2

IMPORTANTE Mediante el monitor del sistema 3 podremos ver la información de rendimiento que nos brinda nuestra Raspberry Pi 2.

7. En el caso de que usemos una red Wi-Fi, deberemos configurarla en el gestor de redes inalámbricas buscando nuestro SSID e introduciendo nuestro password. 8. Dado que, a diferencia de Raspbian, la Ubuntu Mate 15.04 no se puede expandir automáticamente, desde el terminal deberemos hacer lo siguiente: sudo fdisk /dev/mmcblk0 seguido de la secuencia siguiente: (d,2,n,p,2,enter,enter,x). Reiniciaremos el sistema y después ejecutaremos el comando: sudo resize2fs /dev/mmcblk0p2.

3

2

171

cil

Av Med an io za do



IMPORTANTE Muy a menudo, la Raspberry Pi Zero se vende con un paquete de accesorios para dotar nuestra placa de conectividad, aunque muchas veces estos accesorios son más caros que la placa misma. Es muy recomendable adquirirlos si se tiene la posibilidad, ya que nos solucionarán potenciales problemas.

Instalación de la placa Raspberry Pi Zero Una de las últimas novedades de la Fundación Raspberry es la placa low cost de 5€ llamada Raspberry Pi Zero. 1 Esta placa tiene unas funcionalidades y potencia más limitada, pero es mucho más pequeña (65 mm x 30 mm x 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 dispone 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 es 100% compatible con las otras placas Raspberry, pero no lleva el conector soldado, por lo que necesitaremos adquirir un conector 2 en cualquier tienda de electrónica y soldarlo nosotros mismos en caso de querer usarlo.

1

3

2

172

Aprender Raspberry Pi con 100 ejercicios prácticos

080 001

3. El proceso para soldar el conector (ver nota) a la placa es simple pero delicado. Debemos 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 y A+, la Raspberry Pi Zero no lleva conector Ethernet, por lo que deberemos conectarla a internet mediante un dongle WiFi por USB. 5

IMPORTANTE El USB-OTG, acrónimo de USB On The Go, es una extensión de la norma USB 2.0 que nos permite mayor flexibilidad en la interconexión de dispositivos, ya que permite cambiar los roles de maestro y esclavo entre los dispositivos conectados.

5. Otra de las características especiales que encontramos en la Raspberry Pi Zero es que, debido a su pequeño tamaño, no dispone de un puerto de conexión USB estándar, sino 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, es importante no confundirse al hacer las conexiones y no estropear la placa.

5

4

6

173

i2

Rasp

cil

Av Med an io za do



IMPORTANTE Internet de las cosas (IoT, por su siglas en inglés) es un concepto que se refiere a la interconexión digital de objetos cotidianos con Internet. Alternativamente, Internet de las cosas es el punto en el tiempo en el que se conectarían a Internet más “cosas u objetos” que personas.

Instalación de Windows 10 en una Raspberry Pi Una de las novedades que han llegado con la Raspberry Pi 2 es la posibilidad de instalar una versión IoT de Windows 10 en nuestro dispositivo. Esto nos permitirá desarrollar aplicaciones para Raspberry Pi utilizando Visual Studio. Es importante tener en cuenta que para poder usar Windows 10 en nuestra Raspberry Pi deberemos disponer de un ordenador con Windows 7 como mínimo. 1. Descargaremos la ISO de Windows 10 de la web oficial http://go.microsoft.com/fwlink/?LinkId=616847

1

2. Haremos doble clic en el archivo para que se monte como un dispositivo virtual y podamos acceder a los archivos. 2 3. Instalaremos el archivo Windows_10_IoT_Core_RPi2.msi. Cuando la instalación esté finalizada 3 buscaremos el archivo flash.ffu que estara en C:\Program Files (x86)\Microsoft IoT\ FFU\RaspberryPi2 4. Insertaremos la tarjeta microSD en nuestro lector de tarjetas y ejecutaremos el programa IoTCoreImageHelper.exe 4

1

174

Aprender Raspberry Pi con 100 ejercicios prácticos 5. Seleccionaremos la unidad de nuestra tarjeta microSD, el archivo flash.ffu, y pulsaremos sobre el botón Flash. 6. Al finalizar 5 pulsaremos sobre la opción Quitar el dispositivo con seguridad de la barra de tareas y selecciona el lector de tarjetas. Este paso es muy importante, ya que, en caso de no quitar el dispositivo de forma segura, la imagen de la tarjeta microSD puede corromperse. 7. Introduciremos la tarjeta microSD en nuestra Raspberry Pi 2 y la arrancaremos como es habitual. 8. Una vez la Raspberry Pi 2 haya arrancado, veremos la aplicación por defecto (DefaultApp) mostrando la dirección IP de nuestra Raspberry Pi 2

081 IMPORTANTE Windows 10 IoT no dispone de entorno gráfico, por lo que deberemos aprender a interactuar con él mediante la consola.

9. Para aprender cómo usar la consola de Windows 10 deberemos familiarizarnos con el Power Shell (http://ms-iot.github. io/content/en-US/win10/samples/PowerShell.htm) 2

3

4

5

175

i2

Rasp

cil

Av Med an io za do



IMPORTANTE Con Visual Studio 2015 y la versión IoT de Windows 10 podemos no solo desarrollar para Raspberry Pi sino tambien para las placas MinnowBoard Max, pero no para la placa Galileo de intel.

Desarrollo con Windows 10 y Visual Studio 2015 Para desarrollar aplicaciones con Windows 10 en la Raspberry Pi es necesario disponer de un ordenador con Windows y el Visual Studio 2015 instalado. Por suerte existe una versión gratuita del software con la que podremos trabajar. En este ejercicio nos centraremos en la instalación de Visual Studio 2015 para que funcione con nuestra Raspberry Pi y veremos cómo hacer una aplicación para encender y apagar un LED. 1. Lo primero que deberemos hacer es instalar Visual Studio 2015 en nuestro ordenador, para ello iremos a la web: 1 https://www.visualstudio.com/es-es/products/visualstudio-community-vs.aspx y descargaremos el software. 2. Ejecutaremos el instalador caremos el programa. 3

2

y al finalizar la instalación arran-

3. Instalaremos los templates de Windows IoT Core Project, para ello iremos al menú Herramientas -> Extensiones y actualizaciones -> En línea -> Galería de Visual Studio 4 4. Descargaremos los ejemplos de desarrollo que nos suministra Microsoft desde la siguiente dirección: 1

176

Aprender Raspberry Pi con 100 ejercicios prácticos

082

https://github.com/ms-iot/samples/archive/develop.zip 5. Encontraremos el ejemplo de este ejercicio en samples-develop\Blinky, lo copiaremos en nuestro disco y abriremos el proyecto con Visual Studio. 6. Haremos la instalación del LED siguiendo las indicaciones de los primeros pasos del ejercicio 84. 7. Con la Raspberry Pi conectada a la red y la aplicación cargada en el Visual Studio, iremos a la opción de Arquitectura en el desplegable de Herramientas y seleccionaremos ARM 8. En la barra de herramientas , seleccionaremos Remote Machine 5 y en el dialogo de conexiones remotas deberíamos ver el nombre o la IP de nuestra Raspberry Pi 9. Cuando la conexión está realizada, podremos compilar y ejecutar la aplicación mediante el botón F5 de Visual Studio. En ese momento la aplicación se descargará en nuestra Raspberry Pi y podremos ver como el LED parpadea en nuestra protoboard.

2

3

4 5

177

cil

Av Med an io za do



IMPORTANTE Los chips y circuitos de nuestra Raspberry Pi funcionan con 3.3 voltios. Si conectamos un sensor que envíe señal a 5V a través de los GPIO seguramente estropearemos la Raspberry Pi.

Introducción al GPIO. Instalación de Rpi.GPIO Una de las características más interesantes de la Raspberry Pi es que, más allá de sus posibilidades como ordenador de bajo coste, tiene también la posibilidad de conectarse con dispositivos físicos externos (sensores, actuadores, motores, etc.) mediante sus puertos GPIO, que es el acrónimo de General Purpose Input Output. El GPIO está basado en una serie de pines cuyo comportamiento (incluyendo si es de entrada o salida) se puede controlar (programar) por parte del usuario en tiempo de ejecución. Gracias a estos puertos, podremos utilizar la Raspberry Pi para introducirnos en el llamado Internet de las cosas (IoT). 1. Lo primero que haremos será observar la Raspberry Pi y localizar el puerto GPIO 1 2. Existen diferentes configuraciones de pines en relación a la versión de la Raspberry Pi de que dispongamos. Actualmente hay 3 revisiones diferentes de GPIO, y cada una tiene una disposición diferente de pines. Los primeros modelos de Raspberry Pi tienen 26 pines, tanto en su revisión 1 2 como en su revisión 2. 3

1

178

Aprender Raspberry Pi con 100 ejercicios prácticos

083

3. A partir de la aparición de los modelos A+ / B+ y Raspberry Pi 2 se pasó de una configuración de 26 pines a una configuración de 40 pines. 4 4. Para programar el puerto GPIO vamos a utilizar el lenguaje Python y el módulo RPi.GPIO que nos permitirá un acceso simple a los pines. 5. En la mayoría de distribuciones de Raspbian el módulo RPi. GPIO está preinstalado, por lo que podremos hacer uso de él directamente sin más. Sin embargo, en algunas ocasiones nos podemos encontrar que, por algún motivo, no está disponible. Para solucionar este posible inconveniente lo que haremos será instalar directamente el módulo. 6. Descargaremos el módulo de Internet: wget https://pypi.python.org/packages/source/R/RPi. GPIO/RPi.GPIO-0.5.11.tar.gz

IMPORTANTE Existen dos maneras de enumerar los pines del GPIO: la llamada BCM, que es la numeración definida por el fabricante del chipset, y la llamada Board, que es la numeración definida por la fundación Raspberry Pi. En nuestros esquemas podemos ver la numeración de Board en los cuadros centrales.

7. Descomprimiremos el módulo y accederemos al directorio: tar zxf RPi.GPIO-0.5.11.tar.gz cd RPi.GPIO-0.5.11.tar.gz

4

8. Instalaremos el módulo en el sistema: sudo python setup.py install 9. Al finalizar, para cargar el módulo en nuestro script, añadiremos la siguiente línea al código: import RPi.GPIO as GPIO

3

2

179

cil

Av Med an io za do



IMPORTANTE Los sensores son dispositivos que nos permiten captar información del entorno (temperatura, humedad, luz, distancia, etc.) y los actuadores son los dispositivos que se encargan de modificar el entorno (luces, motores, servos, altavoces, etc.).

Encender un LED El primer ejercicio práctico que vamos a desarrollar para ver las posibilidades de la Raspberry Pi en relación al control de dispositivos externos será encender y apagar un LED de manera programática desde nuestra placa. Este ejemplo nos servirá de base conceptual para los ejercicios posteriores donde utilizaremos sensores y actuadores más complejos. 1. Para hacer este ejercicio asumiremos que tenemos la Raspberry Pi con el módulo de GPIO instalado (ver ejercicio 83), una protoboard, 1 una pequeña resistencia 2 (por ejemplo, de 330 Ohm), un LED 3 y cables 4 para hacer las conexiones. 2. Lo primero que haremos será construir un circuito básico para comprobar todos los componentes. Para ello conectaremos, con la Raspberry Pi apagada, la salida de 3.3v de la Raspberry Pi (pin número 1) a la pata positiva del LED (la larga) y la salida de masa (pin número 6) a la resistencia y ésta a la pata negativa (la corta) del LED. 3. Al encender la Raspberry Pi veremos que el LED se enciende. 4. Ahora vamos a modificar el circuito para que el LED se encienda o apague según nuestro programa. 5 Para ello cambiaremos la configuración del circuito, modificando la confi-

1

180

Aprender Raspberry Pi con 100 ejercicios prácticos guración del cable que va al pin 1 (3.3V) y conectándolo (por ejemplo) al pin 7 de nuestra Raspberry Pi. Con esta modificación conseguiremos que al activar la salida del pin 7 desde nuestro programa, el LED se encienda y al desactivarla el LED se apague. 5. Usaremos el programa IDLE (o si lo preferimos, directamente con nano en un terminal de texto) para introducir el siguiente código en Python: import RPi.GPIO as GPIO ## Import GPIO library import time GPIO.setmode(GPIO.BOARD) GPIO.setup(7, GPIO.OUT) ## Setup GPIO Pin 7 modo OUT speed= 2 While True: GPIO.output(7,True) ## Switch on pin 7 time.sleep(speed) ## Wait GPIO.output(7,False) ## Switch off pin 7 time.sleep(speed) ## Wait

084 IMPORTANTE Una protoboard es un tablero con orificios conectados eléctricamente entre sí, habitualmente siguiendo patrones de líneas, en el cual se pueden insertar componentes electrónicos y cables para el armado y prototipado de circuitos electrónicos y sistemas similares.

6. Este programa hará que el LED parpadee indefinidamente cada 2 segundos. 2

5

3

4

181

cil

Av Med an io za do



IMPORTANTE GIT es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Para instalarlo en nuestra Raspberry Pi ejecutaremos: sudo apt-get install gitcore

1

Sensor de temperatura y humedad En este ejercicio veremos cómo usar la Raspberry Pi para leer la información de un sensor digital de temperatura y humedad. Para hacerlo hemos escogido uno de los sensores digitales más usados y comunes para esta tarea: el DHT11 / DHT22. Este es un sensor ampliamente usado y con un coste razonable. 1. Para hacer el ejercicio necesitaremos un sensor DHT11 / DHT22, 1 una resistencia de 10K, 2 una protoboard 3 y cables 4 para hacer las conexiones con la Raspberry Pi. 2. Conectaremos nuestro sensor digital de humedad y temperatura a la Raspberry Pi según el siguiente esquema. 5 3. Para comunicarnos con nuestro sensor usaremos un programa escrito en C, ya que en este caso Python es demasiado lento para esta tarea y es recomendable usar lenguajes más rápidos. Este problema lo solucionaremos integrando el código en C en una biblioteca de Python.

3

2

182

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Descargaremos el código de Adafruit en nuestra carpeta personal mediante GIT: git clone https://github.com/adafruit/Adafruit_Python_ DHT.git cd Adafruit_Python_DHT 5. Nos aseguraremos de tener instalados algunos paquetes que serán requeridos en el proceso de instalación del controlador del sensor. sudo apt-get update sudo apt-get install build-essential python-dev pythonopenssl

085 IMPORTANTE Los tipos de sensores aceptados por este controlador son: ‘11’: Adafruit_DHT.DHT11 ‘22’: Adafruit_DHT.DHT22 ‘2302’: Adafruit_DHT.AM2302

6. El siguiente paso será instalar la biblioteca para que podamos acceder al módulo de Adafruit_DHT para Python. sudo python setup.py install 7. El último paso será comprobar si la instalación ha funcionado y podemos leer los datos del sensor de humedad y temperatura mediante el módulo de Python para DHT. Para ello iremos al directorio examples dentro del directorio de Adafruit_Python_DHT, y ejecutaremos el script: sudo ./AdafruitDHT.py [TIPO] [PIN] Donde TIPO es el modelo de sensor que tenemos y PIN es el pin donde tenemos conectado el sensor. 8. Después de ejecutar el programa podremos ver en nuestra terminal los datos de temperatura y humedad que nos devuelve el sensor. 5

4

183

cil

Av Med an io za do



IMPORTANTE La señal de salida del sensor (ECHO ) en el HC- SR04 tiene una potencia de 5V. Sin embargo, el pin de entrada en la Raspberry Pi GPIO tiene una potencia de 3.3V. El envío de una señal de 5V en un puerto de entrada de 3.3V sin protección podría dañar los pines GPIO, por lo que deberemos usar un pequeño circuito divisor de tensión, 3 que consta de dos resistencias, para bajar la tensión de salida del sensor.

Sensor de distancia mediante ultrasonidos En este ejercicio trabajaremos con un sensor de distancia mediante ultrasonidos. Un sensor ultrasónico se compone de un transmisor ultrasónico (básicamente altavoces), un receptor y un circuito de control. El transmisor emite un sonido ultrasónico de alta frecuencia que rebota en los objetos cercanos, el sonido se refleja y se detecta en el sensor. Esa señal de retorno se procesa mediante el circuito de control para calcular la diferencia de tiempo entre la señal que está siendo transmitida y recibida, y ésta se puede utilizar para calcular la distancia entre el sensor y el objeto. 1. Para el ejercicio necesitaremos 1 sensor ultrasónico HC-SR04 1 o compatible, 1 resistencia de 1KΩ , 1 resistencia de 2KΩ y cables. 2. El HC-SR04 es un sensor muy sencillo de utilizar, pero es necesario convertir los 5V a 3.3V para no dañar nuestra Raspberry Pi. Por este motivo deberemos aplicar algunos conceptos de electrónica básica en este tutorial, ya que no podemos conectar directamente el sensor a nuestra Raspberry Pi. 1

184

Aprender Raspberry Pi con 100 ejercicios prácticos

086

3. Para solucionar el problema de las tensiones usaremos lo que se llama un divisor de voltaje (ver esquema y nota) usando las resistencias. 4. Después de finalizar la instalación, siguiendo los esquemas expuestos, ya tendremos el sensor de ultrasonidos conectado a nuestra Raspberry Pi correctamente. 5. Crearemos el siguiente script en Python:

2

2

import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) TRIG = 23 ECHO = 24 print “Distance Measurement In Progress” GPIO.setup(TRIG,GPIO.OUT) GPIO.setup(ECHO,GPIO.IN) GPIO.output(TRIG, False) print “Waiting For Sensor To Settle” time.sleep(2) GPIO.output(TRIG, True) time.sleep(0.00001) GPIO.output(TRIG, False) while GPIO.input(ECHO)==0: pulse_start = time.time() while GPIO.input(ECHO)==1: pulse_end = time.time()

3

pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 distance = round(distance, 2) print “Distance:”,distance,”cm” GPIO.cleanup() 6. Pondremos el sensor cerca de un objeto, y al ejecutar el script veremos la distancia del sensor al obstáculo.

185

cil

Av Med an io za do



IMPORTANTE El comportamiento del bus I2C depende del modelo de Raspberry Pi que estemos usando. Como base podemos decir que los modelos más antiguos con 256 Mb de memoria RAM usan el bus número 0 (i2cdetect -y 0), y los modelos con 512 Mb, que son un poco más complejos de configurar, utilizan el bus 1 (i2cdetect -y 1).

El bus I2C El bus I2C es un estándar muy utilizado ya que está diseñado para permitir la comunicación entre diferentes componentes, de manera que nuestra Raspberry Pi puede estar conectada a multitud de dispositivos complejos en el mismo bus y, gracias al I2C, podemos comunicarnos de manera independiente con cada uno de los elementos. Por consiguiente, el bus I2C permite que varios dispositivos se conecten a nuestra Raspberry Pi utilizando una dirección única, que, en general, puede ajustarse cambiando la configuración de los jumpers en el módulo. Esto también nos permite revisar qué dispositivos están conectados a nuestra Pi como una forma de asegurarnos de que todo está conectado correctamente. 1. Para hacer funcionar el bus I2C en nuestra Raspberry Pi lo primero que haremos será instalar los paquetes de las herramientas I2C: sudo apt-get install python-smbus sudo apt-get install i2c-tools 2. Ejecutaremos el comando sudo raspi-config (que ya conocemos de ejercicios anteriores) e iremos a Advanced Options 1 y activaremos la interfaz del bus I2C y el módulo del kernel. 2

1

3

2

186

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Reiniciaremos la Raspberry Pi.

3

4. Es posible que si estás usando una Raspberry Pi con un kernel igual o superior al 3.18 debas modificar el archivo /boot/ config.txt. Para conocer la versión del kernel que tenemos deberemos ejecutar el comando uname -a. 4

087

5. En el caso de que sea necesario, deberemos ejecutar el comando sudo nano /boot/config.txt y añadiremos (o descomentaremos, si ya aparecen) las siguientes líneas: 5 dtparam=i2c1=on dtparam=i2c_arm=on 6. Editaremos el archivo /etc/modules con el comando sudo nano /etc/modules y añadiremos las líneas siguientes: i2c-dev i2c-bcm2708 7. Después de hacer estos cambios, reiniciaremos otra vez nuestra Raspberry Pi. 8. Al arrancar la Raspberry Pi de nuevo ejecutaremos el comando sudo i2cdetect -y 1 o sudo i2cdetect -y 0 (dependiendo de los modelos de Raspberry Pi) para comprobar que todo esté funcionando correctamente. 6 6

5

4

187

cil

Av Med an io za do



IMPORTANTE Existen multitud de sensores barométricos, y cada uno tiene sus propias especificaciones y, por consiguiente, sus propios controladores de software. Es importante que no utilicemos sensores comprados en tiendas de electrónica general no especializadas en Arduino y/o Raspberry Pi, ya que podemos tener dificultades para ponerlos en funcionamiento. Lo más recomendable es asegurarnos de la compatibilidad de los mismos antes de adquirirlos.

Sensor barométrico En este ejercicio vamos a aprender a utilizar un sensor barométrico con nuestra Raspberry Pi. Este sensor nos indicará la presión atmosférica en Pascales y también la altura sobre el nivel del mar. 1. Para poder hacer este ejercicio necesitaremos adquirir un sensor barométrico I2C con el chip BMP085 o con el chip BMP180. 1 Estos son los chips más comunes, económicos y fáciles de encontrar para este uso. 2. El sensor barométrico cuenta con 4 cables: masa, 3.3V, SC y SD. Conectaremos la masa al pin GND de nuestra Raspberry Pi, los 3.3V en el pin de 3.3V, el SC en el pin I2C_SCL y el SD en el pin I2C_SDA. 3. Después de conectar el sensor, ejecutaremos el comando sudo i2cdetect -y 1 para comprobar si la Raspberry Pi reconoce el sensor. 2 En caso que no funcione deberemos seguir los pasos de la lección 87 para configurar el bus I2C. 4. Si todo es correcto, haremos un sudo apt-get update para actualizar el repositorio de paquetes 5. Ejecutaremos el comando sudo apt-get install git build-

1

188

Aprender Raspberry Pi con 100 ejercicios prácticos essential python-dev python-smbus para asegurarnos de que tenemos todos los paquetes necesarios para compilar la biblioteca. 6. Clonaremos el repositorio de Adafruit para el sensor barométrico BMP085 / BMP180 con el comando git clone https:// github.com/adafruit/Adafruit_Python_BMP.git. 3 7. Accederemos al directorio Adafruit_Python_BMP: cd Adafruit_Python_BMP. 8. Instalaremos la biblioteca mediante el comando sudo python setup.py install. Este comando iniciará un breve proceso de instalación de las bibliotecas en nuestro sistema. 9. Accederemos al directorio examples: cd examples. 10. Para comprobar si el sensor y el software funcionan correctamente, ejecutaremos el script de ejemplo que trae la bilbioteca: sudo python simpletest.py 4 2

088 IMPORTANTE Es importante tener en cuenta el voltaje de cada dispositivo. En este caso el sensor funciona con 3.3V y al hacer las conexiones con nuestra Raspberry Pi debemos asegurarnos de que no usamos los pines de 5V.

4

3

189

cil

Av Med an io za do



IMPORTANTE NTP es el acrónimo con el que se conoce el protocolo Network Time Protocol, que es el que se encarga de sincronizar los ordenadores de los servidores por internet.

Usando un display de segmentos Aunque el nombre display de segmentos nos pueda parecer críptico y desconocido, es un tipo de dispositivo que todos conocemos perfectamente, y que estamos habituados a ver diariamente. 1 En este ejercicio veremos cómo usar un display de segmentos para mostrar información de nuestros sensores. 1. En este caso usaremos un display I2C de 7 segmentos y 4 dígitos con separador. 2 2. Como la mayoría de dispositivos que funcionan con I2C, el display de 7 segmentos cuenta con 4 cables: masa, 3.3V, SC y SD. Conectaremos la masa al pin GND de nuestra Raspberry Pi, los 3.3V en el pin de 3.3V, el SC en el pin I2C_SCL y el SD en el pin I2C_SDA.

1

3. Si todo es correcto, haremos un sudo apt-get update para actualizar el repositorio de paquetes

2

190

Aprender Raspberry Pi con 100 ejercicios prácticos

089 001

4. Ejecutaremos el comando sudo apt-get install git buildessential python-dev python-smbus para asegurarnos de que tenemos todos los paquetes necesarios para compilar la biblioteca. 5. Clonaremos el repositorio con la bilbioteca de Adafruit para controlar el display de 7 segmentos: git clone https:// github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git

4

6. Accederemos al directorio que se ha creado (Adafruit-Raspberry-Pi-Python-Code) 7. Accederemos al directorio Adafruit_LEDBackpack 8. Ejecutaremos el script sudo python ex_7segment_clock. py 3 para comprobar que todo funcione correctamente. Este script, en principio, convierte el display en un reloj digital, pero dado que la Raspberry Pi no tiene un RTC (Real Time Clock) deberemos introducir la hora actual de manera manual o sincronizarla por internet con el servicio NTP. 4

3

191

Entrar en Excel y abrir un documento Real Time Clock

cil

Av Med an io za do



Dado que la Raspberry Pi está pensada como un ordenador de bajo coste hay algunos dispositivos que han quedado excluidos, y uno de los más destacados es el reloj interno. Todos los ordenadores tienen un reloj interno que se encarga de recordar la fecha y la hora aunque estén apagados. Con la Raspberry Pi la única manera de disponer de la hora es conectándonos a internet y usando el servicio NTP (Network Time Protocol) que trae por defecto. Aun así, si queremos tener la hora actualizada en nuestra Raspberry sin estar conectados a internet, podemos instalar un RTC (Real Time Clock) 1 nosotros mismos.

IMPORTANTE Es importante que nos aseguremos de que nuestra Raspberry Pi tiene el módulo DS1307. Las versiones actuales de Raspbian lo tienen, pero es posible que si disponemos de una versión antigua no lo lleve incluido.

1. Para este ejercicio vamos a utilizar un RTC con el chip ds1307, ya que está muy extendido, es económico y es fácil de encontrar. 2. Las conexiones son parecidas a todos los dispositivos que usan el bus I2C.

1

192

Conectamos la entrada VCC del reloj al pin de 5.0V de la Raspberry Pi Conectamos la entrada GND del reloj al pin GND de la Raspberry Pi Conectamos la entrada SDA del reloj al pin SDA0 de la Raspberry Pi Conectamos la entrada SCL del reloj al pin SCL0 de la Raspberry Pi

Aprender Raspberry Pi con 100 ejercicios prácticos

090

3. Ejecutaremos el comando sudo modprobe rtc-ds1307 para comprobar si el módulo del kernel se carga correctamente 2 y añadiremos la línea rtc-ds1307 al archivo /etc/modules para que lo cargue cada vez que el sistema arranque. 4. Accederemos al usuario root con el comando sudo bash y después ejecutaremos el siguiente comando: Si tenemos una Raspberry Pi con 256 Mb de RAM: echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_ device Si tenemos una Raspberry Pi con más de 256 Mb de RAM: echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_ device 5. Con el comando sudo hwclock -r, leeremos la hora que nos indica el RTC. En este caso debería indicarnos una hora errónea ya que aún no lo hemos sincronizado.

IMPORTANTE Para establecer la fecha y hora del sistema se usa date seguido del siguiente patrón de entrada de datos: [MMDDhhmm[[CC]YY][.ss]] MM = mes, DD = día, hh = hora, mm = minuto, CC = siglo (Century), YY = año, ss = segundos

6. Comprobaremos la hora que tenemos en la Raspberry Pi con el comando date. Si estamos conectados a internet seguramente nos indicará la hora correcta, en caso contrario, deberemos configurarla manualmente. 7. Una vez la fecha esté configurada correctamente, con el comando sudo hwclock -w sincronizaremos el RTC con la fecha. 3

3

8. Para finalizar editaremos el archivo /etc/rc.local mediante el comando sudo nano /etc/rc.local y añadiremos la línea del apartado 4, seguida de hwclock -s antes del exit 0 9. Reiniciaremos el sistema para comprobar que todo funciona correctamente. 2

193

cil

Av Med an io za do



IMPORTANTE Hay muchos tipos de sensores PIR. La mayoría de los que podrás encontrar en una tienda de electrónica son sensores pensados para la videovigilancia y funcionan a 12 V en corriente continua o a 220 V en corriente alterna. Aunque técnicamente podríamos adaptar y usar éstos para nuestros proyectos, es más aconsejable usar sensores PIR pensados para microcontroladores que funcionan a 3.3 V o a 5 V, además son también mucho más económicos.

Detector de intrusos. Sensor PIR En este ejercicio veremos cómo montar un sensor PIR (sensor pasivo de movimiento por infrarrojos) con nuestra Raspberry Pi y mostrar un mensaje cuando detecte un intruso. Su funcionamiento se basa en el hecho de que todos los cuerpos emiten una radiación infrarroja, y cuanto más calientes, más radiación emiten. Los sensores PIR son capaces de detectar cambios en los niveles de radiación infrarroja en su entorno y, de esta manera, detectar su presencia. 1. Existen diferentes tipos de sensores PIR. 1 Los más comunes son sensores digitales de 3 pines: uno de masa, otro de alimentación de 3 V a 5 V, y un pin de datos digital. 2. El funcionamiento del sensor PIR es muy sencillo, ya que podríamos decir que funciona igual que un interruptor común. Cuando no detecta movimiento la salida digital se mantiene baja, pero al detectarlo, envía un pulso alto de 3.3 V por el pin de datos, y mediante la Raspberry Pi podemos recibir esta señal y procesarla. 3. Los sensores PIR más comunes tienen un rango de detección de entre 70º a 110º y un alcance de 7 metros. Ideal para detectar el movimiento cerca de una puerta.

1

194

2

Aprender Raspberry Pi con 100 ejercicios prácticos

091

4. Para el ejercicio necesitaremos un sensor PIR, nuestra Raspberry Pi y 3 cables jumper. Conectaremos el cable de masa al pin de masa del puerto GPIO (ver ejercicio 82), el cable de VCC al puerto de 3.3 V o de 5 V (dependiendo del modelo de sensor PIR que tengamos) y el pin de datos a cualquier entrada digital estándar del puerto, 2 como por ejemplo el GPIO 7 (pin 26). 5. Escribiremos el siguiente programa en Python, en el cual definiremos el pin de datos y, según las lecturas que hagamos de él, podremos ver si el sensor se activa con el movimiento: 3 import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) PIR_PIN = 7 GPIO.setup(PIR_PIN, GPIO.IN) time.sleep(2) while True: if GPIO.input(PIR_PIN): print “Presencia importante!” time.sleep(1) 3

195

cil

Av Med an io za do



Sense Hat El llamado Sense Hat 1 es un accesorio oficial de Raspberry Pi que nos permite tener acceso a multitud de sensores de manera simple y accesible. Esta placa será enviada al espacio a finales de 2015 para que los astronautas de la ISS hagan una serie de experimentos diseñados por niños de diferentes escuelas del Reino Unido. 1. Los componentes de esta placa son: Acelerómetro Giroscopio Magnetómetro Barómetro Sensor de temperatura Sensor de humedad Joystick Matriz de 8x8 LEDS RGB 2. Esta placa es totalmente compatible con la Raspberry Pi 2, la Raspberry Pi B+, y la Raspberry Pi A+. 3. Dado que es un producto oficial, no deberemos hacer uso de bibliotecas de terceros para descargar los controladores. De este modo, primero actualizaremos el sistema: sudo apt-get update && sudo apt-get upgrade 4. Instalaremos los paquetes requeridos para poder utilizar el 1

196

Aprender Raspberry Pi con 100 ejercicios prácticos

092

Sense Hat: sudo apt-get install sense-hat En caso de utilizar python 3 también deberemos ejecutar: sudo pip-3.2 install pillow 5. Para utilizar el Sense HAT, deberá estar activado el I2C, para ello deberemos seguir el ejercicio sobre I2C de este libro y cuando la instalación haya finalizado, reiniciaremos nuestra Raspberry Pi: sudo reboot 6. La manera más simple de acceder a los sensores del Sense Hat es utilizar la biblioteca para Python. Para ello primero deberemos importar la biblioteca en el script de Python: from sense_hat import SenseHat 7. Posteriormente deberemos instanciar el módulo como un objeto: sense = SenseHat() 8. A partir de este momento tendremos a nuestra disposición el acceso a toda la API del Sense Hat desde la web http:// pythonhosted.org/sense-hat/api/#sense-hat-api-reference. 2 Por ejemplo, con el siguiente código podremos leer la temperatura: 3 from sense_hat import SenseHat sense = SenseHat() temp = sense.get_temperature() print(“Temperatura: %s C” % temp)

2

3

197

Usar la Raspberry Pi con baterías

cil

Av Med an io za do



En general la manera más común de usar nuestra Raspberry Pi es conectada a la corriente mediante un cargador USB, pero si hemos desarrollado algún tipo de dispositivo autónomo, a veces nos puede resultar interesante poder utilizarlo en lugares donde no tenemos ningún enchufe disponible. En este ejercicio veremos cómo podemos utilizar la Raspberry Pi alimentándola con baterías, en aquellos casos en que nos encontremos en entornos sin acceso a una toma de corriente.

IMPORTANTE Si alimentamos nuestra Raspberry Pi vía USB tendremos mucha más seguridad de no estropear la Raspberry Pi en caso de error. La alimentación via GPIO no tiene ningún sistema de seguridad, por lo que en caso de disfunción eléctrica o error al conectarla es muy fácil estropearla.

1. Existen dos maneras principales de alimentar nuestra Raspberry Pi sin enchufarla a la corriente eléctrica. Una primera opción es la alimentación mediante USB, y la otra es usar directamente el puerto GPIO. Cada una de estas dos opciones tiene muchas variantes de las que dependerá el tiempo de funcionamiento de la Raspberry Pi. 2. Lo más importante a considerar es que la Raspberry Pi para funcionar necesita 5 V a unos 2 A, por lo que deberemos tener en cuenta estos requisitos al buscar la manera de alimentarla. 3. La manera más sencilla es usar una batería para cargar teléfonos móviles mediante USB, 1 conectada directamente a la

1 2

198

Aprender Raspberry Pi con 100 ejercicios prácticos

093

entrada micro USB de alimentación de la Raspberry Pi. Otra opción más elaborada es adquirir una batería para cargar teléfonos móviles con panel solar para recarga 2 que nos permitirá alargar el tiempo de funcionamiento de nuestra Raspberry Pi. 4. Una opción más sería usar las llamadas baterías de tipo lipo 3 o directamente pilas comunes, pero deberemos tener en cuenta que este tipo de baterías no nos darán el voltaje adecuado para la Raspberry Pi, por lo que deberemos conectarlas a un regulador de voltaje 4 para conseguir el voltaje requerido. 5. Existen diferentes tipos de reguladores de voltaje, y pueden tener una salida USB (es lo más recomendable) o directamente salida para conectar al puerto GPIO. 6. Si decidimos utilizar baterías recargables tipo lipo, también podemos conectarlas a un panel solar. Este montaje, con un regulador de voltaje, nos permitirá disponer de una versión mejorada y mucho más flexible de la propuesta expuesta en el punto número 3, aunque también sustancialmente más compleja y más cara. 7. Con una buena selección de componentes, se puede conseguir tener una Raspberry Pi aislada funcionando 24/7 mediante el uso de las baterías y los paneles solares adecuados.

4 3

199

cil

Av Med an io za do



IMPORTANTE Full HD o 1080p es la resolución máxima utilizada en los televisores de alta definición. Si queremos resoluciones más altas deberíamos saltar a la llamada UHD (ultra alta definición).

Conectar una cámara a tu Raspberry Pi Una de las muchas opciones que nos brinda la Raspberry Pi es la posibilidad de conectar una cámara. Dado que la Raspberry Pi es un ordenador, tenemos la posibilidad de conectarle una webcam de la misma manera que se la conectaríamos a un ordenador. Pero más allá de esta posibilidad, también nos brinda la oportunidad de usar su propia cámara, la RaspiCam. 1 La RaspiCam es una cámara de bajo coste especialmente diseñada para la Raspberry Pi con una resolución full HD y que puede ser controlada mediante Python. Teniendo en cuenta que este es un libro sobre Raspberry Pi y las ventajas que nos aporta esta última en relación a una webcam tradicional, en este y próximos ejercicios nos centraremos en el uso de la RaspiCam. 1. Lo primero que deberemos hacer es adquirir una RaspiCam. Ésta tiene un precio de entre 20€ y 25€ en muchas tiendas online y también en algunas tiendas físicas, sobre todo en grandes ciudades. 2. Para hacer la conexión, 2 el cable flexible se inserta en el conector situado entre los puertos Ethernet y HDMI, con los contactos de plata hacia el puerto HDMI. Tiraremos de las pestañas de la parte superior del conector hacia arriba, insertaremos firmemente el cable en el conector, con cuidado de

1

200

Aprender Raspberry Pi con 100 ejercicios prácticos no doblar mucho el cable, y después cerraremos otra vez las pestañas para fijar el cable al conector. 3. Actualizaremos el sistema desde un terminal con un sudo aptget update y posteriormente un sudo apt-get upgrade. 4. Ejecutaremos el configurador raspi-config con el comando sudo raspi-config 5. Iremos a la opción Camera y la activaremos seleccionando Enable. 3 Con este proceso activaremos los módulos que nos permitirán posteriormente habilitar la cámara. 6. Reiniciaremos el sistema, ya sea desde el mismo raspi-config o con un sudo reboot.

2

094 IMPORTANTE Las características de la RaspiCam son las siguientes: • 5 megapíxeles • Fotos 2592×1944 píxeles • Video 1080p a 30 frames por segundo • Video 720p a 60 frames por segundo • Video 640x480p a 60/90 frames por segundo • Interfaz CSi con cable de 150mm • Peso: 2.4 gramos • Las medidas son de 8.5 x 8.5 x 5mm

3

201

Haciendo un timelapse con tu Raspberry Pi (I)

cil

Av Med an io za do



Una de los proyectos más interesantes y divertidos que podemos llevar a cabo con la PiCam consiste en realizar un timelapse. Los timelapses son secuencias de imágenes con un intervalo de tiempo fijo entre ellas (puede ir de unos pocos segundos, a varios minutos). Al juntar todas las imágenes en un vídeo podemos conseguir el efecto de aceleración del tiempo.

IMPORTANTE Crontab es una aplicación que nos permite programar la ejecución de programas en nuestro sistema. Cada línea se asocia a un comando y su estructura tiene 6 elementos: minuto, hora, día del mes, mes del año, día de la semana y comando a ejecutar.

1. En este ejercicio asumiremos que hemos instalado la PiCam en nuestra Raspberry Pi, tal y como se explica en el ejercicio 94.

* * * * * comando a ejecutar

2. Comprobaremos el funcionamiento de la cámara con el comando raspistill -o cam.jpg. Este comando hará una foto y la guardará en el archiv cam.jpg. Para ver la imagen iremos a el explorador de archivos de Raspbian, 1 buscaremos la imagen en nuestro directorio y haremos doble clic para que se abra en el visor de imágenes por defecto de nuestra Raspbian.

El primer valor define día de la semana (0 - 7) El segundo valor define el mes (1 - 12) El tercer valor define día del mes (1 - 31) El cuarto valor define la hora (0 - 23) El quinto valor define el minuto (0 - 59)

3. Ahora que ya sabemos cómo hacer una fotografía con nuestra PiCam, el siguiente paso consistirá en desarrollar un script 2 para guardar las imágenes con la fecha del sistema y así evitar

1

202

Aprender Raspberry Pi con 100 ejercicios prácticos que se sobrescriban. Para ello crearemos: un directorio llamado camara en nuestro directorio personal (mkdir camara), un script llamado camara.sh (nano camara.sh) y copiaremos lo siguiente:

095

#!/bin/bash DATE=$(date +”%Y-%m-%d_%H%M”) raspistill -o /home/pi/camara/$DATE.jpg 4. Comprobaremos si el script funciona ejecutando ./camara. sh en el terminal. Este script debería hacer una foto con la PiCam y guardarla con la fecha actual. 5. El siguiente paso será programar el sistema para que haga una foto cada cierto intervalo de tiempo. En este ejemplo lo vamos a programar para que ejecute nuestro script cada minuto. Para ello ejecutaremos el comando sudo crontab -e, 3 e introduciremos la siguiente línea: * * * * * /home/pi/camera.sh 2>&1

3

Nota: El * es un comodín que indica que se ejecutará en todos los valores posibles del campo, por ejemplo si ponemos un * en el campo de los minutos significará que se ejecutará cada minuto.

2

203

cil

Av Med an io za do



IMPORTANTE FPS hace referencia a los fotogramas por segundo, y es la medida de la frecuencia a la cual un reproductor de imágenes reproduce distintos fotogramas (imágenes). El ojo humano necesita un mínimo de 24 FPS para que la imagen sea fluida.

1

Haciendo un timelapse con tu Raspberry Pi (II) En el ejercicio anterior hemos aprendido cómo hacer fotografías con nuestra Raspberry Pi y nuestra PiCam, y hemos creado una secuencia temporal de las mismas mediante un script y el uso de crontab. En este ejercicio aprenderemos a unir todas las fotografías para generar un vídeo y también cómo grabar vídeos directamente con nuestro dispositivo. 1. Así, con nuestro script corriendo en crontab, dejaremos pasar un tiempo adecuado para que nuestra PiCam tome las fotografías. Este tiempo irá en relación al intervalo fijado en el crontab y la longitud del vídeo que deseemos, teniendo siempre en cuenta que, para que el vídeo se vea fluido, es recomendable mantener un ratio de 24 FPS. 2. Cuando consideremos que ya tenemos suficientes imágenes almacenadas, iremos al directorio ‘camara’ y guardaremos todos los nombres de las imágenes en un archivo con el comando ls *.jpg > capturas.txt 1 3. Instalaremos el programa Mencoder, que se encargará de generar el vídeo en base a las imágenes guardadas, con el comando sudo apt-get install mencoder 2 4. Para finalizar, ejecutaremos el siguiente comando para generar el vídeo: 2

204

Aprender Raspberry Pi con 100 ejercicios prácticos

096

mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4: aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o timelapse.avi -mf type=jpeg:fps=24 mf://@capturas.txt 5. Este comando generará el archivo timelapse.avi que podremos visualizar sin problemas en nuestra Raspberry Pi siguiendo las instrucciones del ejercicio 27. 6. Con la Raspberry también podemos capturar vídeo directamente sin necesidad de generarlo mediante imágenes. Para ello usamos el comando raspivid 3 7. Por defecto, raspivid graba en formato h264. Este formato es uno de los más utilizados y extendidos actualmente. 8. Raspivid dispone de gran cantidad de parámetros, pero los más comunes son: el comando -t, que especifica los milisegundos de grabación, el comando -w, que especifica la resolución horizontal, y el comando -h, que especifica la resolución vertical. Veamos un ejemplo: raspivid -o myvid.h264 -w 1280 -h 720 -t 60000 Este comando grabará 60 segundos de vídeo con una resolución de 1290x720 en el archivo myvid.h264

3

205

cil

Av Med an io za do



Instalación de un servidor de streaming de video Una de las muchas utilidades que puede tener nuestra Raspberry Pi es utilizarla como cámara de videovigilancia. En este ejercicio vamos a ver cómo llevar a cabo este interesante proyecto. 1. Como en muchos otros ejercicios, lo primero será actualizar el software de nuestra Raspberry Pi con los comandos sudo apt-get update && sudo apt-get upgrade 2. Instalaremos el programa Motion con el comando sudo aptget install motion. Motion 1 es un programa de videovigilancia libre y muy completo. 3. Dado que Motion no soporta PiCam, en caso de usar ésta y no una webcam tradicional, deberemos ejecutar los siguientes comandos: 2 cd /tmp sudo apt-get install -y libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev

1

206

Aprender Raspberry Pi con 100 ejercicios prácticos

097

wget https://www.dropbox.com/s/xdfcxm5hu71s97d/ motion-mmal.tar.gz tar zxvf motion-mmal.tar.gz sudo mv motion /usr/bin/motion sudo mv motion-mmalcam.conf /etc/motion.conf 4. El siguiente paso será editar el archivo de configuración de arranque (sudo nano /etc/default/motion) y modificar la siguiente línea: start_motion_daemon=yes 5. Ejecutaremos los siguientes comandos para asegurarnos de que los permisos son correctos: sudo sudo sudo sudo

chmod 664 /etc/motion.conf chmod 755 /usr/bin/motion touch /tmp/motion.log chmod 775 /tmp/motion.log

6. Editaremos el archivo de configuración (sudo nano /etc/ motion.conf) 3 tal como se muestra: daemon on logfile /tmp/motion.log width 1280 height 720 framerate 2 pre_capture 2 post_capture 2 max_mpeg_time 600 ffmpeg_video_codec msmpeg4 stream_localhost off stream_auth_method 2 stream_authentication USUARIO:PASSWORD

3

7. Reiniciaremos nuestra Raspberry Pi con el comando sudo reboot 8. Ya podemos acceder a nuestro sistema de videovigilancia usando el navegador web y apuntando a la IP de nuestra Raspberry Pi en el puerto por defecto 8080 http://IP:8080

2

207

cil

Av Med an io za do



IMPORTANTE El modo SPI más común es el conocido como modo estándar, donde utilizamos 3 líneas para controlar el dispositivo: SCLK, MOSI y MISO.

Como usar el bus SPI con Raspberry Pi De manera similar al bus I2C, el bus SPI nos brinda una interfaz de comunicación serie síncrona para la trasmisión de información entre dispositivos cercanos. El interfaz SPi fue diseñado originalmente por Motorola, pero se acabó convirtiendo en un estándar de facto y actualmente se usa sobre todo en tarjetas digitales y pantallas, ya que es mucho más rápido que el I2C, aunque permite conectar menos dispositivos al mismo tiempo. 1. La Raspberry Pi dispone de un bus SPI que está desactivado por defecto. Para activarlo deberemos utilizar el programa raspi-config 1 y activar el módulo SPI o hacerlo manualmente desconectando el módulo spi-bcm2708 del archivo / etc/modprobe.d/raspi-blacklist.conf y reiniciando nuestra Raspberry Pi. 2. Si lo queremos probar de manera temporal, también podemos iniciar el módulo del kernel con el comando:

1

sudo modprobe spi-bcm2708 sudo chown `id -u`.`id -g` /dev/spidev0.*

2

208

Aprender Raspberry Pi con 100 ejercicios prácticos 3. Los pines asociados en la Raspberry Pi para el bus SPI son: SCLK - Serial CLocK. Pin 23 CE - Chip Enable/Select. Pines 24 y 26 MOSI - Master Out Slave In. Pin 19 MISO - Master In Slave Out. Pin 21

098

4. Hay diversas librerías para controlar de manera sencilla los dispositivos conectados al bus SPI. La manera más sencilla es utilizar el dispositivo spidev de Linux: # Envia 1, 2 y 3 al bus SPI echo -ne “\x01\x02\x03” > /dev/spidev0.0 5. La librería más extendida es wiringPi, y se puede instalar siguiendo estos pasos: 2 git clone git://git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi ./build 6. Podremos aprender como funciona wiringPi, todas sus características y prestaciones, accediendo a la web http://wiringpi.com/ 3 3

209

cil

Av Med an io za do



IMPORTANTE Teniendo en cuenta que este libro está dedicado a la Raspberry Pi, asumimos que el lector deberá tener unos mínimos conocimientos sobre Arduino para seguir correctamente el ejercicio.

Existe una gran variedad de modelos de dispositivos Arduino en el mercado. Aunque aquí se ha expuesto la metodología más genérica posible para establecer la conexión entre una Raspberry Pi y un Arduino, es imposible definir de manera sencilla un método general para conectarse a todos ellos, puesto que cada uno tiene sus pequeñas peculiaridades. En caso de problemas, la mejor solución es recurrir a la ingente comunidad online de la que disponen tanto Raspberry Pi como Arduino.

1

PyFirmata. Comunicar Raspberry Pi y Arduino Una posibilidad muy interesante que nos brindan Raspberry Pi y Arduino es poder conectarlas entre ellas, y poder controlar los pines de Arduino desde la Raspberry Pi, permitiéndonos así aprovechar las ventajas de cada una de las dos plataformas en un mismo proyecto. 1. Conectaremos nuestro Arduino al ordenador donde tengamos instalado el entorno de desarrollo IDE de Arduino. 1 En general será un PC con Windows, Linux o MacOSX, 2 pero también podría ser la misma Raspberry Pi con el IDE de Arduino instalado. 2. Asumiendo que tenemos el IDE correctamente configurado para nuestra versión de Arduino, cargaremos el programa que encontraremos en Archivo | Ejemplos | Firmata | StandardFirmata 3 en nuestro microcontrolador Arduino. Con este procedimiento tendremos nuestro dispositivo preparado para comunicarse con la Raspberry Pi. 3. Daremos permisos para el grupo dialout a nuestro usuario de la Raspberry Pi: sudo usermod -a -G dialout pi. Con este comando el usuario pi podrá usar el puerto serie para comunicarse con Arduino. Para que los cambios sean efectivos, deberemos cerrar la sesión y volver a abrirla. 3

2

210

Aprender Raspberry Pi con 100 ejercicios prácticos 4. Nos aseguraremos de que esté instalada la aplicación pip (instalador de paquetes para Python) mediante el comando: sudo apt-get install python-pip. 5. Instalaremos la biblioteca PyFirmata con el comando: sudo pip install pyfirmata. Con este paso ya tendremos el sistema preparado para conectarse con Arduino. 6. Conectaremos un cable USB entre la Raspberry Pi y Arduino. 4 Mediante el cable USB alimentaremos la placa Arduino y permitiremos la comunicación entre ellos. 7. Para poder tener acceso a las funciones de pyfirmata desde nuestro dispositivo Raspberry Pi deberemos importar el módulo pyfirmata 5 en nuestro script de Python

099 001 IMPORTANTE Como norma general, el dispositivo asignado por la Raspberry Pi a Arduino es /dev/USBx o /dev/ACMx.

from pyfirmata import Arduino, util Dada la destacable extensión de la biblioteca pyfirmata, abarcar todos los aspectos de la misma va más allà del objetivo de este ejercicio, pero se pueden consultar todos los detalles de las funciones que nos brinda la biblioteca en la siguiente dirección: https://pyfirmata.readthedocs.org/en/latest/

5

4

211

cil

Av Med an io za do



Entrar en Excel y abrir Encuentra tu camino un documento experimentando Después de estos 100 ejercicios donde hemos conseguido una visión general de las posibilidades que nos brinda la Raspberry Pi, tanto en software como hardware, es el momento de comenzar a experimentar, dejar volar la imaginación y liberar la creatividad para crear nuestros propios proyectos. En este ejercicio lanzaremos diversas propuestas basadas en los conocimientos adquiridos, pero que van un paso más allá, obligándonos a investigar y desarrollar nuestra creatividad. 1. Un proyecto muy interesante sería desarrollar un sistema de vigilancia automatizada. Tomando como base los ejercicios sobre la PiCam y el sensor de presencia (PIR) podríamos crear un sistema que hiciese una foto justo en el momento de detectar un movimiento y enviase la captura por Telegram a nuestro teléfono. 2. También podríamos crear una videoconsola, con mandos y botones conectados al puerto GPIO de la Raspberry Pi. Para ello deberíamos basarnos en el ejercicio sobre cómo convertir nuestra Raspberry Pi en una consola de videojuegos, y después investigar cómo añadir botones y un joystick para controlar los mandos. 1 https://learn.adafruit.com/retro-gaming-with-raspberry-pi/buttons 3. Otra propuesta de proyecto podría ser crear una estación meteorológica, uniendo los sensores de humedad, temperatura

1

212

2

Aprender Raspberry Pi con 100 ejercicios prácticos

100

y presión, y que mostrase la información ya sea de manera digital o analógica. 2 http://projectlog.ferranfabregas.info/how-to-build-aweather-station-using-raspberry-pi-and-arduino/ 4. Otra idea consistiría en hacer un marco digital que fuese pasando imágenes que tenemos almacenadas en nuestra tarjeta SD, usando nuestra Raspberry Pi y una pantalla pequeña que tengamos disponible. 3 http://www.wired.com/2012/12/more-raspberry-piplease/ 5. También podríamos hacer un sistema domótico que subiese o bajase las persianas de nuestro hogar en base a la cantidad de luz que tuviésemos en el exterior. 6. Por último, existen varios ejemplos de uso de la Raspberry Pi para hacer fotos desde el espacio. La idea se basa en juntar este dispositivo con una batería, una cámara, un GPS y un emisor de radio. Este conjunto de herramientas se une a un globo aerostático que, al ser menos denso que el aire, irá subiendo hasta llegar a una altura de unos 15 Km, donde explotará por la diferencia de presión. A partir de ese momento nuestro dispositivo caerá (debe estar debidamente protegido) al suelo, de manera que podremos encontrarlo con la ayuda del emisor de radio y el GPS. Es importante aclarar que este proyecto sólo se puede realizar solicitando los permisos necesarios a las autoridades correspondientes, ya que no es legal lanzar objetos a gran altura sin autorización previa, puesto que pueden provocar problemas con el tráfico aéreo. ¿Te atreves a intentarlo? 4 https://www.raspberrypi.org/blog/the-pi-balloon-aswiss-mystery/

4

3

213

Para continuar aprendiendo... SI ESTE LIBRO HA COLMADO SUS EXPECTATIVAS Este libro forma parte de una colección en la que se cubren los programas informáticos de más uso y difusión en todos los sectores profesionales. Todos los libros de la colección tienen el mismo planteamiento que éste que acaba de terminar. Así que, si con éste hemos conseguido que aprenda a utilizar este programa de edición de vídeo o ha aprendido algunas nuevas técnicas que le han ayudado a mejorar su conocimiento de Raspberry Pi, no se detenga aquí; en la página siguiente podrá encontrar otros libros de la colección que pueden ser de su interés.

Pídalos en su librería habitual... y, si no los encuentra, Solicítelos a MARCOMBO, Gran Via de les Corts Catalanes, 594, 08007 Barcelona - Tel. 933 180 079

214

RETOQUE FOTOGRÁFICO CON PHOTOSHOP CC 2014 “Aprender Retoque fotográfico con Photoshop CC 2014 con 100 ejercicios prácticos” le permitirá mejorar fácil y rápidamente el aspecto de sus fotografías. Photoshop es el programa de retoque fotográfico y tratamiento de imágenes por excelencia. Con este manual aprenderá a utilizar sus diferentes herramientas, filtros y funciones para mejorar el aspecto de sus fotografías digitales y para crear sorprendentes composiciones. Con este libro: • Aprenda a corregir los típicos defectos de sobreexposición, subexposición, desenfoques, keystoning, etc. • Descubra sencillas técnicas para retocar pequeños defectos en los retratos de personas (ojeras, manchas, arrugas, etc.) • Conozca el modo de eliminar personas u objetos sustituyendo el elemento eliminado por un contenido totalmente integrado con el fondo de la imagen. • Aprenda a aplicar correctamente los diferentes filtros para obtener fantásticos efectos en sus fotografías. 42 9 788

9 6 7217

2

MAQUETACIÓN Por otro lado si su interés está más cerca de la maquetación de libros, revistas, folletos, etc., entonces su libro ideal es “Aprender InDesign CC 2014 con 100 ejercicios prácticos”.

InDesign es el programa líder en el sector del diseño gráfico para diseñar y maquetar composiciones de todo tipo, desde libros hasta revistas, folletos publicitarios, etc. Con este manual aprenderá a utilizar este impresionante software, mejorado y ampliado, con sus propias creaciones. En esta versión de InDesign, Adobe ha incluido distintas novedades, tanto en su interfaz como en sus herramientas. Con este libro: • Diseñe fácilmente atractivas composiciones para la edición digital e impresa • Genere rápidamente documentos PDF interactivos • Obtenga elegantes composiciones de página • Cree documentos complejos con tablas, numeraciones... • Corrija errores durante la maquetación gracias a la Comprobación preliminar interactiva

42 9 788

2 6 7218

2

215

COLECCIÓN APRENDER...CON 100 EJERCICIOS PRÁCTICOS DISEÑO Y CREATIVIDAD ASISTIDOS • 3ds Max 2015 • 3ds Max 2015 Avanzado • 3ds Max 2014 • 3ds Max 2014 Avanzado • AutoCAD 2010 • AutoCAD 2012 • AutoCAD 2015 Básico • AutoCAD 2015 Avanzado • Flash CS6 • Flash CC • Illustrator CC • Illustrator CC 2014 • Indesign CC • Indesign CC 2014 • Dreamweaver CC • Dreamweaver CC 2014 • Photoshop CC • Photoshop CC 2014 • Retoque fotográfico con Photoshop CC • Retoque fotográfico con Photoshop CC 2014 EDICIÓN DE VIDEO • Final Cut Pro 7 • Premiere Pro CS5.5 • After Effects CS5.5 INTERNET • Internet Explorer 8 • Windows Live OFIMÁTICA • Access 2010 • Excel 2010 • Excel 2013 • Office 2013 • PowerPoint 2013 • Word 2013 • Outlook 2010 SISTEMAS OPERATIVOS • Las novedades de Windows 7 • Windows 8 • Windows 8.1

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF