Entradas de la categoría ‘Desarrollo’
Manual de desarrollo en MicroPython para la placa BBC micro:bit
El autor de este humilde blog se complace en presentarles su libro ‘Manual de desarrollo en MicroPython para la placa BBC micro:bit‘, una obra de consulta y aprendizaje ideal para todos aquellos que se quieran iniciar o deseen profundizar en la programación de tarjetas micro:bit en lenguaje MicroPython.
La placa o tarjeta micro:bit es un sistema de hardware integrado, de código abierto, basado en la arquitectura informática ARM y diseñado por la BBC británica con un objetivo eminentemente educacional. Es una computadora de bolsillo que te introducirá en el mundo del desarrollo informático, interactuando de manera conjunta con el software y el hardware.
Python es un lenguaje de programación interpretado simple, de propósito general y orientado a objetos. Además, es también de código abierto. Por su lado, MicroPython es una implementación ágil y eficiente de Python 3.0 —su última versión mayor, por el momento— que incluye un pequeño subconjunto de las bibliotecas estándar del lenguaje padre, la sintaxis y funcionalidad completa, y que, además, está optimizado para ejecutarse en microcontroladores y en entornos restringidos, como en el interior de micro:bit, entre otros.
Con este ‘Manual de desarrollo en MicroPython para la placa BBC micro:bit’ aprenderás de una forma sencilla e intuitiva cómo programar una tarjeta micro:bit para que haga lo que tú quieras. Las posibilidades son infinitas, desde un sensor de humedad para tus plantas hasta un detector de CO2 para controlar el aire que respiras, pasando por un timbre inalámbrico, un medidor de pasos, un generador de voz, mover un motor o encender luces led. ¡Y mil cosas más!
Estás ante el manual de programación en MicroPython para micro:bit en español más completo del mercado. Cuenta con 284 páginas, fotografías, esquemas gráficos, ejemplos de código fuente y aplicaciones prácticas:
- Explicaciones detalladas, amenas y muy completas de todas y cada una de las características de la tarjeta micro:bit y de sus componentes, así como del lenguaje MicroPython.
- Infinidad de ejemplos prácticos de código fuente en MicroPython que sirven de explicación a cada uno de los capítulos, epígrafes y apéndices de información contenida en el libro.
- Rigurosos esquemas de conexión que explican los pormenores de la interacción de micro:bit con elementos externos, cables, pinzas, placas protboard, placas de pruebas, etcétera.
- Descripción minuciosa de proyectos completos de aplicación con fotografías, código fuente, explicaciones, conexiones y hojas de especificaciones de componentes.
Disponible, en Amazon, en tres formatos, a saber: Tabla blanda, tapa dura y versión Kindle.
CONTENIDO GENERAL DE CAPÍTULO PRINCIPALES.
CAPÍTULO 1. La placa BBC micro:bit
CAPÍTULO 2. Programando la placa micro:bit
CAPÍTULO 3. Lenguaje Python para principiantes
CAPÍTULO 4. ¡Hola, mundo!
CAPÍTULO 5. El objeto display
CAPÍTULO 6. El objeto accelerometer y la gravedad
CAPÍTULO 7. Orientación: el objeto compass
CAPÍTULO 8. Los botones de micro:bit, la clase Button y sus dos instancias
CAPÍTULO 9. Generando sonido (los módulos audio y music) y captándolo
CAPÍTULO 10. El módulo speech, porque micro:bit habla y canta.
CAPÍTULO 11. Manejando el tiempo: el módulo utime
CAPÍTULO 12. El sistema de archivos local de micro:bit
CAPÍTULO 13. Administración del sistema de archivos local: el módulo os
CAPÍTULO 14. Los pines de entrada y salida: analógicos, digitales, I2C, SPI y UART
CAPÍTULO 15. Temperatura y otros asuntos internos de micro:bit
CAPÍTULO 16. Comunicación entre dispositivos: redes cableadas y redes inalámbricas
CAPÍTULO 17. Entorno de programación REPL
APÉNDICE A. Referencia del lenguaje Python
APÉNDICE B. Secuencias de escape
APÉNDICE C. Conectividad Bluetooth
APÉNDICE D. El runtime de micro:bit
APÉNDICE E. Actualizar el firmware de micro:bit y compilar MicroPython
APÉNDICE F. WebUSB en micro:bit
APÉNDICE G. Especificaciones técnicas de micro:bit V2 (frente a V1)
APÉNDICE H. Economizar memoria a la hora de programa
BIBLIOGRAFÍA
¡Disfrútalo, y a desarrollar para micro:bit!
El concurso retro BASIC 10Liners
Uno de los aspectos más destacados de la escena retroinformática es el concurso BASIC 10Liners, una competición promovida por la web alemana HOMEPUTERIUM que pretende llevar a la máxima expresión la programación en cualquier dialecto de BASIC de los antiguos sistemas de 8 bits. Hace unas horas se acaba de anunciar su séptima edición.
Este año, los organizadores han cambiado algunas reglas basándose en los comentarios y quejas recibidas en la edición anterior. El cambio más importante es para la categoría ‘PUR-80’, donde sólo se permitirán las variantes de BASIC integrado (built-in BASIC), decisión que, probablemente, afectará más a los programadores de Atari Turbo Basic XL. Se puede visualizar el conjunto total de reglas en la web del concurso (en alemán y en inglés).
Las tres categorías principales son ‘PUR-80‘, ‘PUR-120‘ y ‘EXTREME-256‘. ‘PUR-80’ consiste en programar un juego en 10 líneas con un máximo de 80 caracteres por línea lógica; en ‘PUR-120’ hay que programar un juego en 10 líneas con un máximo de 120 caracteres por línea lógica; y en ‘EXTREME-256’ tenemos que programar un juego en 10 líneas con un máximo de 256 caracteres por línea lógica. En todas las modalidades se permiten abreviaturas.
Existen otras dos categorías anejas: ‘FREE‘ y ‘WILD‘. La primera de ellas es la única en la que se permite utilizar código máquina, siempre que se pueda escribir con un editor de BASIC. La segunda, por su lado, admite otro tipo de programas que no sean juegos. En ambas, el máximo de líneas es también de diez.
La fecha límite para las presentaciones es el sábado, 24 de marzo de 2018, a las 18:00 CET. La ceremonia de entrega de premios tendrá lugar dos semanas después, el sábado 7 de abril, en la ciudad alemana de Lübeck.
En los seis años anteriores del BASIC 10Liners se han recibido 246 contribuciones de 10 líneas, todas ellas pequeñas obras de arte jugables (se pueden descargar desde el sitio web del consurso). Además, son piezas de código increíbles que podemos analizar, admirar, disfrutar, y de las que podemos aprender a condensar código en un continente minúsculo.
¡No te lo puedes perder!.
El código fuente que llevó al hombre a la Luna (y dónde descargarlo)
Cuando los programadores del laboratorio de instrumentación del MIT se dispusieron a desarrollar el software de vuelo para el programa espacial Apollo 11 —a mediados de los años sesenta del siglo pasado—, la tecnología necesaria no existía, por lo que tuvieron que inventarla. Así pues, se les ocurrió una nueva manera de almacenar programas informáticos en dispositivos ROM, a la que llamaron «memoria de núcleos cableados«, y que era un paso siguiente a la memoria ordinaria de núcleos magnéticos de ferrita del momento.
También, tuvieron que inventar una versión especial del lenguaje ensamblador que llevaba en su interior miles de líneas de código; y todo ello para el computador Apollo Guidance Computer (AGC), el alma de la misión, esencial para la navegación del módulo de mando y, también, del módulo lunar; y uno de los primeros ordenadores basados circuito integrados.
En la siguiente imagen podemos ver a Margaret Hamilton, directora de ingeniería de software del proyecto, mostrando la montaña de listados de código que conformaban los archivos fuente de las distintas aplicaciones.
El código del AGC ha estado disponible para el público general desde hace bastante tiempo, concretamente desde el año 2003, cuando el investigador en tecnología Ron Burkey se preocupó de colgarlo en Internet después de haber transcrito (mecanografiado), a mano, una a una las líneas que aparecían en las imágenes escaneadas de las copias impresas originales del MIT. Aquellas copias fueron digitalizadas originalmente —en Colorado— por un piloto aeronáutico llamado Gary Neff. Posteriormente, el MIT se hizo con aquellos documentos y los puso en línea en forma de imágenes de página, pero la falta de fortuna quiso que muchas de ellas quedaran mutiladas al punto de ser ilegibles en algunos lugares de las fotografías. Burkey reconstruyó manualmente las partes que se podían rescatar, utilizando sus habilidades en ingeniería para rellenar los huecos en blanco. Algo después, consiguió reunirse con Gary Neff y logró hacerse con los escaneos originales, completando el paquete de documentos al cien por cien.
Aunque esta documentación de tan enorme proyecto ha estado un poco escondida y confinada a reductos universitarios, a mediados del año 2016, el extrabajor de la NASA Chris Garry comenzó a colgar completamente en GitHub la totalidad de los archivos fuente del software espacial. Estos archivos se han ido actualizando hasta hace un par de meses, y podemos asegurar que la integridad del proyecto está hoy a la disponibilidad del total de los internautas que deseen consultarlo.
Una de las cosas que más ha llamado la atención de este código fuente es la ristra de comentarios humorísticos que acompañan al código del ACG a modo de chistes, mensajes y referencias locales a los sesenta estadounidenses. Un buen ejemplo se corresponde con los comentarios iniciales del archivo llamado BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc
(imagen siguiente).
O el fichero denominado LUNAR_LANDING_GUIDANCE_EQUATIONS.agc
, en el que parece que dos líneas de código destinadas a ser temporales acabaron siendo permanentes, en contra de las esperanzas de un desolado programador.
Todo un ejemplo de ingeniería e ingenio de los primeros programadores espaciales. Ron Burkey, incluso, utilizó el código para crear un simulador del ACG. Podemos, pues, y para terminar, verlo y disfrutarlo en el siguiente vídeo.
Los ochenteros libros de Usborne para aprender a programar
Corrieron entre las manos de miles de niños de todo el mundo en los años ochenta, incluso en nuestro país aparecieron algunos en castellano. Hoy, Ediciones Usborne sigue existiendo y maneja un catálogo infantil muy amplio en nuestro idioma, pero lo que a nosotros nos interesa es aquella colección de quince libros que llenó nuestros ZX Spectrum o nuestros Commodore PET de listados interminables de juegos apasionantes. Por cierto, todos ellos se pueden descargar, en formato PDF, de manera gratuita desde la propia web de Usborne. [Hemos puesto también el enlace de los que hemos encontrado en castellano (y en portugués)].
‘Programming Tricks & Skills‘ (Lisa Watts y Les Howarth, 1984) era un compendio de trucos, consejos y pistas propuestos por los autores para ayudarnos a escribir mejores programas en el BASIC de la época. Contenía, por ejemplo, truquillos para que los programas corrieran más rápido, ideas para ahorrar espacio de memoria o modos de bloquear nuestro código para que otras personas no pudieran ejecutarlo.
‘Machine code for beginners‘ (Lisa Watts y Mike Wharton, 1983) tenía la intención de ser una sencilla guía para programar en código máquina. Orientado a ordenadores con procesadores Z80 y 6502, el libro llevaba, poco a poco, al lector a través de los principios básicos de este lenguaje de programación que corría mucho más rápido en aquellas máquinas que el viejuno BASIC. [En castellano].
‘Introduction to computer programming. BASIC for beginners‘ (Brian Reffin Smith, 1983) era una referencia para escribir programas de ordenador en BASIC para principiantes absolutos sin ningún tipo de conocimiento. Es curioso que en la portada apareciera un letrero que rezaba No computer needed (no se necesita ordenador), y es que este libro, aunque contaba con bastantes listados en formato corto, era eminentemente teórico.
‘Practical things to do with a microcomputer‘ (Judy Tatchell y Nick Cutler, 1983) nos introducía en la computación explicándonos de modo práctico todas aquellas cosas que se podían hacer con un ordenador de 8 bits. Traía un montón de programas, mucha información útil, proyectos para construir circuitos electrónicos simples que conectar a un ordenador e, incluso, una guía para construir un robot.
‘Computer BattleGames‘ (Daniel Isaaman y Jenny Tyler, 1982) contenía un conjunto de programas escritos en un BASIC estándar para Commodore 64, VIC-20, máquinas de Apple, TRS-80, BBC Micro, Acorn Electron, ZX Spectrum y ZX81. Aún así, y esto era una tónica en los libros de Usborne que enseñaban a programar juegos, incluía una serie de códigos gráficos que marcaban determinadas líneas de los listados como específicas de según qué máquinas. Los juegos eran muy simples y se basaban todos ellos en la temática de batallas y juegos de guerra.
Los libros ‘Computer SpaceGames‘ (Daniel Isaaman y Jenny Tyler, 1982), ‘Computer Spy Games‘ (Jenny Tyler y Chris Oxlade, 1984) [éste lo hemos encontrado en portugués], ‘Creepy Computer Games‘ (Jenny Tyler y Chris Oxlade, 1983) [en portugués] y ‘Weird Computer Games‘ (Jenny Tyler y Chris Oxlade, 1984) [en portugués] estaban todos ellos basados en las mismas premisas que los anteriores pero cambiando de temática videojueguil, en estos casos naves espaciales, juegos de espías y juegos del género de terror. El ZX81 no estaba incluido en estos títulos.
En otro tipo de línea, apareció una pequeña colección de cuatro títulos orientada a desarrollar juegos de aventuras. La filosofía era la misma que los libros anteriores, con listados genéricos preparados para teclear y marcas y conversiones de instrucciones específicas de ciertos microcomputadores. Los volúmenes, que contenía una aventura gráfica o conversacional completa de principio a fin, eran ‘Write your own adventure programs for your microcomputer‘ (Nenny Tyler y Les Howarth, 1983), ‘Write your own Fantasy Games‘ (Les Howarth y Cheryl Evans, 1983), ‘Island of Secrets‘ (Jenny Tyler y Les Howarth, 1983) y ‘The mistery of Silver Mountain‘ (Chris Oxlade y Judy Tatchell, 1984).
Por último, dos títulos orientados a los más pequeños de la casa que aparecieron en el año 1984, ambos escritos por Gagy Waters: ‘Simple BASIC‘ [en castellano] y ‘Computer fun‘ [en castellano]. El primero era una guía en toda regla para principiantes que enseñaba a escribir programas en BASIC; el segundo, contenía un compendio de listados completos de programas para escribir y ejecutar en nuestros ordenadores.
Cuando Arturo enseñó a programar a los niños de mi generación
En los años 1984 y 1985, respectivamente, la emblemática editorial Paraninfo, especializada desde sus orígenes en la edición de libros de formación profesional y técnica, hizo que vieran la luz dos de los títulos más simbólicos y representativos de la programación informática ochentera: ‘BASIC para niños‘ y ‘BASIC avanzado para niños‘. Escritos por Sofía Watt y Miguel Mangada, nos descubrían y presentaban a Arturo, una suerte de muñeco de trapo naranja, de ojos grandes y zapatones blancos, que hacía las veces de nuestro eminente profesor del lenguaje de desarrollo BASIC.
Dirigido, especialmente por su contenido y presentación, a los más jóvenes de la casa (de 8 a 14 años), ambos libros nos conducían poco a poco por los entresijos de la programación en BASIC: órdenes e instrucciones, variables, entrada y salida de datos, bucles, estructuras condicionales, subrutinas, almacenes de datos, operadores aritméticos, operadores lógicos, estructuras de ordenación, manejo de cadenas y un largo etcétera. Todo ello, por supuesto, escrito y presentado de una forma excepcionalmente amena y divertida, haciendo uso del humor y de multitud de ejemplos, de manera sencilla, progresiva y muy intuitiva.
Asimismo, los libros contenían notas y apuntes para los adultos del hogar con instrucciones claras y concisas para complementar el aprendizaje. Aquella implicación, de manera común, terminaba por hacer aprender a programar a los propios padres o educadores, porque eran ellos quienes debían explicar conceptos más abstractos al niño, jugar con ejemplos nuevos o ayudar a comprender el comportamiento de las diversas instrucciones BASIC.
No obstante, aquellos padres o tutores que quisieran profundizar más en el aprendizaje y la didáctica de BASIC, tenían acceso también a otro título de la editorial llamado ‘BASIC para maestros‘. Además de ello, el lenguaje BASIC que se utilizaba para enseñar era de una estructura muy genérica y podía ser probado en todos los sistemas más populares de la época, como Sinclair ZX Spectrum, Commodore 64, MSX, Amstrad CPC, etcétera.
Yo aprendí a programar con Arturo aporreando las gomas de un Spectrum 48K, y todavía conservo ambos libros como un pequeño y viejuno tesoro del que nunca voy a deshacerme. Sin embargo, el que desee un hálito de nostalgia, que sepa que aún pueden conseguirse en formato PDF (e incluso comprarse, también) por ahí, por entre las entrañas digitales. No puedo decir dónde, porque Ediciones Paraninfo es una empresa que aún existe y, además, no es muy amiga de que se publiquen estas cosas.
Un lujazo de libros y miles de millones de recuerdos infantiles.