- Aprenda a programar en Python con Raspberry Pi
Certificado de Actualización Profesional - Programación en Python con Raspberry Pi
Certificado de Formación del Profesorado
Saca partido de este curso y actualízate!!
Matrícula
Enlace a la página de matrícula on-line
Presentación y objetivos
Raspberry Pi es un computador monoplaca en miniatura del tamaño aproximado de una tarjeta de crédito, con unos puertos de conexión que lo hacen muy atractivo (USB, Ethernet, HDMI, pines de entrada/salida de propósito general, etc.) y un coste que no excede unos 40 €. Desde su aparición a comienzos de 2012 se han vendido más de veintidós millones de unidades en sus diferentes modelos (al final del 2018). Respaldado por una comunidad de usuarios que no para de crecer y que cada día le encuentra nuevas aplicaciones, desde las más lúdicas (juegos, servidores de medios, etc.) hasta otras avanzadas en el campo de la información y las comunicaciones, es la herramienta ideal para la enseñanza de la programación en los distintos niveles del sistema educativo, comenzando en los colegios con Scratch o Processing y terminando en los institutos con Python o C.
El curso se plantea como una introducción práctica al manejo de Raspberry Pi, desde la primera puesta en marcha hasta los fundamentos de la programación en Python.
Los objetivos específicos que pretenden alcanzarse son:
- Conocer las características principales comunes a los diversos computadores monoplaca que se encuentran en el mercado.
- Conocer las características específicas del computador monoplaca Raspberry Pi.
- Conocer las características de una distribución Linux para Raspberry Pi, así como ser capaz de instalarla y configurarla junto con sus principales aplicaciones.
- Conocer las principales características de Python como lenguaje de programación de alto nivel.
- Ser capaz de desarrollar aplicaciones en Python para el entorno Raspberry Pi con Linux.
- Conocer otros usos y aplicaciones interesantes para Raspberry Pi.
Programa
Módulo 1. Raspberry Pi
- Introducción
- Elección e instalación del sistema operativo
- Acceso remoto
- El simulador de Raspberry Pi
Módulo 2. Linux Raspbian
- Línea de comandos
- Gestión de paquetes
- Aplicaciones adicionales
Módulo 3. Programación en Python
- Introducción a Python y su entorno de programación
- Tipos de datos
- Control de flujo
- Funciones
- Programación Orientada a Objetos
- Módulos y la biblioteca estándar
- Entrada/Salida y trabajo con ficheros
Módulo 4. Otros usos y aplicaciones de interés
- Sense Hat
- Puerto GPIO
- Sonido, vídeo y fotografía
- Iniciación a OpenCV
Contenido
El programa propuesto se desarrolla en cuatro módulos. A continuación, haremos una breve descripción de los contenidos de cada uno de ellos.
Módulo 1. Raspberry Pi
Este primer módulo constituye una toma de contacto inicial con Raspberry Pi, desde que se saca de la caja por primera vez, se instala el sistema operativo, hasta que se dispone de un equipo plenamente operativo con el que poder trabajar de manera satisfactoria.
1.- Introducción, Bibliografía y Documentación
Aquí se presenta Raspberry Pi y se comparan sus distintos modelos, atendiendo a sus principales características. También se repasan las características de otras placas alternativas tales como Arduino o BeagleBone.
Afortunadamente, la bibliografía y documentación sobre Raspberry Pi es muy extensa y no para de crecer, gracias principalmente a su amplia comunidad de usuarios. Aquí daremos las principales referencias y fuentes de información que incluyen libros, revistas, muchos de ellos gratuitos, así como sitios web.
3.- Elección e instalación del sistema operativo
La elección e instalación del sistema operativo es un paso de vital importancia en la puesta en marcha de Raspberry Pi, si bien es muy sencillo y directo. Aquí se comentarán las distintas alternativas disponibles (todas gratuitas) y se explicará detalladamente la obtención e instalación de Raspbian, el sistema operativo más frecuentemente empleado en Raspberry Pi y el que utilizaremos en este curso.
También se explicará la instalación de varias aplicaciones y utilidades de las que conviene disponer a la hora de trabajar con Raspberry Pi.
4.- Acceso remoto
Aquí se explicará cómo trabajar con Raspberry Pi de manera remota a través de Internet, accediendo tanto a la línea de comandos como en modo gráfico al escritorio.
5.- El simulador de Raspberry Pi
Para aquellos estudiantes que no dispongan físicamente de una Raspberry Pi se ha dispuesto un simulador que permite hacer uso de la mayor parte de sus características salvo, obviamente, el acceso a dispositivos físicos como la cámara o el GPIO.
Módulo 2. Linux Raspbian
Si bien el manejo de Raspberry Pi no difiere demasiado del de cualquier sistema Windows o Mac OS X es conveniente estar familiarizado con algunos comandos de Linux y herramientas de administración específicas. No se debe olvidar que Raspbian es un sistema operativo ligero basado en Debian, una de las distribuciones de Linux más potentes y populares.
Módulo 3. Programación en Python
En este módulo se estudiará el lenguaje de programación Python. Para ello lo hemos estructurado en ocho temas:
1.- Introducción a Python y su entorno de programación
En este primer capítulo se hará una introducción al origen y características principales de este lenguaje de programación. Se explicarán sus diferentes versiones y la brecha entre ellas.
A continuación, se explicará el proceso de instalación del intérprete de Python desde Linux y desde Windows y las diferentes maneras de ejecutar código Python. Escribiremos y ejecutaremos nuestro primer programa.
Finalmente, se introducirá la guía de estilo y consejos para escribir código en Python.
2.- Tipos básicos
En este capítulo se explicará que es una variable y como se le asigna un valor. También se describirán los tipos de datos básicos (números, booleanos y cadena de caracteres) y sus operadores.
3.- Secuencias: Listas, Tuplas, Diccionarios y Conjuntos
En Python tenemos otros tipos de datos que nos permiten almacenar colecciones de datos o sucesión de elementos. Se diferencian por su sintaxis y por la forma en la que se manipulan los datos. Este capítulo estará dedicado a su estudio. En concreto, se estudiarán las listas, las tuplas, los diccionarios y los conjuntos.
4.- Control de Flujo
En este capítulo se estudiarán, por un lado, las sentencias condicionales que nos permiten ejecutar un código u otro dependiente de que se cumpla una determinada condición y, por otro lado, los bucles o sentencias iterativas, que nos permiten ejecutar un fragmento de código un cierto número de veces mientras se cumpla una determinada condición.
5.- Funciones
En este tema se tratarán las funciones, fragmento de código con un nombre asociado que realiza una tarea concreta y puede devolver un valor, de forma que permite reutilizar código. Estudiaremos su definición, los parámetros que se necesitan y el retorno de valores.
6.- Programación Orientada a Objetos
Python es un lenguaje de programación multiparadigma. Después de una visión procedimental, en este capítulo se dará una introducción a su uso según el paradigma de la programación orientada a objetos, en el que los conceptos del mundo real se modelan a través de clases y objetos y el programa consiste en interacciones entre los objetos.
7.- Módulos y la biblioteca estándar
Este capítulo se centra en el uso de los módulos, entidades que permiten la organización y división lógica del código. Para tener acceso a las variables y funciones de un módulo hay que importarlo a nuestro programa. Python tiene una biblioteca de módulos estándar.
8.- Entrada/Salida y trabajo con Ficheros
En este capítulo se introduce la forma más sencilla de obtener información por parte del usuario mediante la función input()y la forma de mostrar la información en la salida estándar que, normalmente, se corresponde con la pantalla de un ordenador, mediante la función print(). Además se explican los diferentes modos de acceso (lectura, escritura,…) a un archivo.
Módulo 4. Otros usos y aplicaciones de interés
Este último módulo se dedicará al estudio de diversas aplicaciones actuales que hacen uso de las características propias de la Raspberry Pi. Unos ejemplos de éstas son: Visión, Sonido, Streaming de Vídeo por Internet, etc. Para la programación de las mismas se hará uso del lenguaje Python.
Haremos una distinción entre aquellas aplicaciones que sólo requieren los recursos hardware de la Rasberry Pi o periféricos emulados como el Sense Hat y las que necesitan montajes hardware adicionales u otros periféricos, ya que estas últimas no pueden correr en un emulador software y necesitan físicamente la placa Raspberry Pi.
Material didáctico
El material didáctico se podrá descargar del curso desde la plataforma virtual (guía del curso, apuntes específicos elaborados por el equipo docente, enlaces de interés, artículos…). Además, el equipo docente recomendará una extensa bibliografía en el curso virtual para que el estudiante disponga de material auxiliar si lo desea. Todo el software necesario para el curso será software libre.
Metodología
Este curso se llevará cabo a través del uso de una comunidad virtual creada en los servidores de la UNED. Además de foros para la comunicación entre los estudiantes y el equipo docente, en la plataforma los estudiantes se encontrarán para su descarga los materiales didácticos específicos, que constituyen el material necesario y suficiente para seguir el curso.
También el estudiante encontrará un planificador que le irá guiando poco a poco en la temática del curso.
Casi todas las actividades se podrán realizar sobre un emulador del sistema Raspberry Pi que funciona sobre Windows, haciendo uso exclusivo de aplicaciones de software libre, se recomienda que los estudiantes dispongan de su propio equipo Raspberry Pi que es mucho más rápido, aunque no es imprescindible.
En resumen, los medios necesarios para el aprendizaje estarán disponibles en el curso virtual, donde el estudiante encontrará:
- Bibliografía Básica. El estudio se realizará a través de los materiales publicados por el equipo docente y de la guía oficial del lenguaje.
- Bibliografía complementaría. El alumno puede encontrar en ella información adicional para completar su formación.
- Esta guía de la asignatura.
- Enunciado de las actividades prácticas propuestas.
- El planificador con la distribución temporal de los temas propuesta por el Equipo Docente y con las fechas de entrega de las actividades prácticas que el alumno tiene que realizar
- Los foros organizados de la siguiente manera:
- Tablón de anuncios. Desde este foro el profesor dirigirá el curso, introducirá los distintos temas, anunciará las diferentes actividades y materiales que se vayan incorporando en la Web, recordará los plazos de entrega de las actividades, dará recomendaciones e indicaciones relevantes para el estudio, etc.
- Foro de guardia virtual. Este foro estará dedicado a consultas de tipo académico: sobre el contenido de la signatura, las tareas a realizar, etc.
- foro de consultas generales: En él se plantearán consultas puntuales no directamente relacionadas con los contenidos sino relacionadas con otros aspectos del curso (dudas de carácter administrativo, relacionadas con la gestión del curso, la metodología, el uso de la plataforma educativa, etc).
- Foro de estudiantes: Se trata de un foro no moderado, es decir, que no requiere la supervisión del profesor. Los alumnos lo utilizarán para citas, intercambios, consultas…
Actividades a realizar
Asociado a cada módulo de estudio, se deberá realizar una serie de actividades. Este trabajo le permitirá al estudiante por un lado profundizar en la temática que acaba de aprender, desarrollar sus nuevas capacidades, recapacitar ante las dudas y finalmente afianzar lo aprendido.
Estas actividades vendrán pautadas en el planificador junto con el tema de estudio. En general serán una serie de pequeños programas donde desarrollarán lo aprendido. Estas actividades vendrán descritas en un archivo pdf y se entregarán de la misma forma. Además, también se propondrán sencillos test de autoevaluación para que el estudiante vea el progreso en su aprendizaje.
Finalmente, el estudiante deberá realizar una aplicación que recoja el mayor número posible de conceptos aprendidos.
Durante todo el curso, será trabajo del estudiante consultar los enlaces indicados, participar en los foros,…