Entorno de programación
Características de la Raspberry Pi
La Raspberry Pi 1, también llamada Raspberry Pi primera generación, existe en dos modelos: el modelo A y el modelo B. A su vez, estos dos modelos se presentan como dos revisiones: la revisión 1 y la revisión 2. La Raspberry Pi utilizada a lo largo de todo el libro es la Raspberry Pi 1 modelo B revisión 2.
Una Raspberry Pi se parece fundamentalmente a una placa madre en miniatura y reducida a su versión más minimalista:
Los componentes disponibles son numerosos:
-
512 MB de memoria RAM (Random Access Memory);
-
Un sistema sobre chip (SoC - System on Chip) Broadcom BCM2835;
-
Un procesador (CPU - Computer Processing Unit) ARM1176JZFS que funciona con una cadencia de 700 MHz;
-
Una tarjeta de vídeo integrada (GPU - Graphical Processing Unit) Broadcom VideoCore IV;
-
Un puerto Ethernet 10/100 Mbits;
-
Dos puertos USB 2.0;
-
Una salida de vídeo HDMI;
-
Una salida de vídeo RCA/SPDIF;
-
Una salida de audio jack 3.5 mm;
-
Una entrada de micro USB a 700 mA (3.5 W);
-
Un lector de tarjeta SD (Secure Digital);
-
34 clavijas GPIO (General Purpose Input Output);
-
Un conector DSI (Display Serial Interface) de 15 clavijas;
-
Un conector CSI (Camera Serial Interface) de 15 clavijas;
-
Cinco LED.
A continuación se muestra un plano de este modelo, que explica la posición de cada elemento dentro de la tarjeta de la Raspberry Pi:
Además de todos los componentes enumerados anteriormente, hay visible...
Inicio de Raspbian
1. Histórico
La distribución Raspbian es el fruto de un esfuerzo colaborativo dirigido por la Raspberry Pi Foundation y que principalmente está destinado a la Raspberry Pi. Para entender cómo Raspbian nació, es necesario remontarse 20 años atrás, a 1993 en la universidad de Purdue, en los Estados Unidos. En esta época, el sistema operativo Linux estaba en sus etapas más tempranas, era muy poco popular e instalarlo en una máquina requería un enorme esfuerzo. Para los lectores que han diseñado en esta época, el archivo del nodo Linux se distribuía en varios disquetes de 3,5 pulgadas. Un infierno cuando se tenía que actualizar el nodo.
Un joven estudiante llamado Ian Murdock decide crear la distribución Debian. Los principios de la distribución son sencillos: ofrecer una distribución Linux que se base únicamente en software libre y que no contenga ningún software propietario. Una decena de desarrolladores se unieron al proyecto y muy rápido la distribución ganó popularidad y se impuso rápidamente como inevitable en el mundo libre. Lo que ha hecho fuerte a Debian durante todos estos años es la simplicidad en su instalación y su uso. Esto se expresa fundamentalmente a través del administrador de paquetes aptitude, que hará famoso al proyecto. Rápidamente...
Entender el ecosistema Python: ¿qué versión utilizar?
Python es un lenguaje en constante evolución, y normalmente hay dos ramas principales que deben coexistir en un mismo sistema, a saber, las ramas 2.x y 3.x. Pero ¿por qué hay 2 versiones de Python disponibles y no una sola, como es el caso habitual en muchos lenguajes de programación?
En realidad, Python 3 es un cambio importante respecto a Python 2. Esta versión aporta muchas mejoras, pero desafortunadamente rompe la compatibilidad hacia atrás con Python 2. Esto significa que es muy probable que el código escrito para Python 2 no funcione con Python 3. Esta decisión, tomada por Guido van Rossum, el desarrollador principal del lenguaje, hizo mucho ruido cuando se anunció. De esta manera, no es raro tener instalados dos compiladores Python en un mismo sistema, con el objetivo de ejecutar las dos versiones del lenguaje.
¿Qué impacto tiene esta coexistencia para los desarrolladores? La PEP 373 - Python 2.7 Release Schedule, disponible en la dirección https://www.python.org/dev/peps/pep-0373/, indica que la versión 2.7 de Python será la última de la rama 2.x, con un mantenimiento para esta rama previsto hasta 2020, fecha en la cual quedará obsoleta. Esto significa que solo se corregirán los errores importantes y de seguridad, sin que se añada a esta rama nuevas mejoras...
Instalar las librerías Python
Una librería o módulo en la jerga Python es código escrito en Python y/o C, que permite extender las capacidades del lenguaje o agrupar un determinado número de funcionalidades. La librería estándar Python normalmente se describe a través de un eslogan muy utilizado por la comunidad anglófona: Python comes with battery included. En efecto, está muy provisto de funcionalidades y el abanico de módulos es muy amplio. Generalmente, para escribir programas sencillos o un poco más elaborados, basta con usar esta librería. Sin embargo, ¿cómo hacer si queremos ir más lejos y utilizar librerías no incluidas en la librería estándar?
Hay dos soluciones para paliar este problema:
-
aptitude y las APT tools proporcionadas por Raspbian.
-
pip, acrónimo que significa Python Installs Package, el administrador de módulos escrito en Python para Python.
1. Con aptitude
Con Raspbian, aptitude es la herramienta principal que permite administrar los paquetes que queremos instalar en la Raspberry Pi, y no únicamente los módulos Python. Por línea de comandos, aptitude representa una suite completa de herramientas, y cada herramienta realiza diferentes acciones. Estas herramientas permiten descargar los archivos desde Internet y trabajar con la base de datos de paquetes instalados en la Raspberry Pi, también llamada normalmente caché en algunas páginas de manuales y tutoriales. A continuación se muestra una revisión rápida de los comandos que aptitude ofrece:
-
aptitude: interfaz programada en ncurses que permite consultar la base de datos de paquetes. Resulta poco intuitiva, por lo que es poco aconsejable para los principiantes. Además, aptitude es muy lenta en una Raspberry Pi: una vez se ha iniciado aptitude, construye y reconstruye el árbol de dependencias de todos los paquetes instalados para presentar esta información a través de la interfaz, lo que necesita mucho tiempo de CPU y numerosos...
IDLE: el editor de código en Python para Python
Naturalmente, para escribir código es necesario un editor de texto. El entorno de desarrollo Python incorpora IDLE (Integrated Development and Leaning Environment), un editor en Python desarrollado con la librería gráfica tkinker. ¿Por qué utilizar IDLE? De hecho, ya hay varios editores de texto (Emacs, vim, Eclipse, por citar solo algunos). IDLE se desmarca por su simplicidad, su ligereza y, sobre todo, su uso: está exclusivamente diseñado para el desarrollo Python, beneficiándose del auto-completado, la coloración sintáctica así como de un depurador.
IDLE se abre pulsando en Menú - Programación - Python 3 (IDLE):
Una vez abierto, aparece una consola. REPL significa Read Eval Print Loop. Al contrario de lo que sucede con una consola tradicional, una consola REPL lee el código introducido (Read), interpreta el código (Eval), muestra el resultado (Print) y vuelve a la etapa 1 (Loop).
Gracias a REPL, es posible programar de manera interactiva: el usuario introduce una línea de código, después el código se lee, se ejecuta y el resultado se muestra o no en función de la validez del código introducido. Esta operación se repite en bucle hasta el cierre del REPL.
Pero para escribir código, es necesario trabajar en un editor de texto. Para abrir el editor, seleccione...
Conclusión
Este capítulo describe las herramientas principales para el desarrollo de programas Python, tales como aptitude, pip o IDLE. Dominar estas herramientas es capital para sentirse cómodo lo más rápidamente posible con el ecosistema que ofrece el lenguaje.