Python Y Raspberry Pi para Electrónicos PDF
Python Y Raspberry Pi para Electrónicos PDF
Acerca de la Autora
INDICE
Acerca de la Autora ..................................................................................................................3
INDICE......................................................................................................................................4
1. INTRODUCCIÓN ...............................................................................................................6
4. PYTHON ..........................................................................................................................27
1. INTRODUCCIÓN
1.1. RASPBERRY PI
Raspberry Pi es un dispositivo excepcional: un ordenador totalmente funcional en
un formato pequeño y de bajo coste. Tanto si quieres un dispositivo para navegar en
Internet como si es para jugar, o si quieres aprender a escribir tus propios programas o
crear tus propios circuitos y dispositivos físicos, Raspberry Pi (y su increíble comunidad)
te ayuda en cada paso.
1.2. PYTHON
En términos técnicos, Python es un lenguaje de programación de alto nivel,
orientado a objetos, con una semántica dinámica integrada, principalmente para el
desarrollo web y de aplicaciones informáticas.
Cada pin del puerto GPIO tiene su propósito, varios pines trabajando en conjunto
pueden formar un circuito particular. El diseño del puerto GPIO sobre una Raspberry Pi
4 puede verse en la figura 2.1.
La numeración de los pines del puerto GPIO está dividida en dos columnas, la
columna de la derecha toma los números pares y la columna de la izquierda toma los
números impares.
Cuando un pin es una entrada, el programa puede leer si este tiene un nivel alto o
bajo de voltaje. Cuando, por el contrario, el pin es una salida, el programa puede
generar un voltaje alto o bajo en ese pin.
3. PREPARANDO LA RASPBERRY PI 4B
3.1. ELEMENTOS NECESARIOS
Vamos a utilizar la Raspberry Pi comunicándola con un PC mediante la interfaz
VNC, para esto solo se necesitan los siguientes elementos:
Haga clic en SI
Sale una advertencia que se van a borrar todos los datos de la tarjeta micro sd.
Haga clic en YES
Haga clic en SI
Con la flecha hacia abajo nos ubiquese en Inteface Options y teclee <Entyer>
Teclee <Enter>
Haga clic en la casilla de verificación para Aceptar los términos del contrato de
licencia y luego haga clic en Siguiente
Haga clic en SI
Haga clic en SI
Debe escribir el nombre del host que escribió al configurar la Raspberry Pi y haga clic
en Aceptar
4. PYTHON
Python es un lenguaje de programación de alto nivel creado a finales de los 80 /
principios de los 90 por Guido van Rossum, holandés que trabajaba por aquella época
en el Centro para las Matemáticas y la Informática de los Países Bajos. Sus instrucciones
están muy cercanas al lenguaje natural en inglés y se hace hincapié en la legibilidad
del código. Toma su nombre de los Monty Python, grupo humorista de los 60 que
gustaban mucho a Guido. Python fue creado como sucesor del lenguaje ABC
4.1.1. Ventajas
• Alto nivel.
• Multiplataforma. Portable.
• Librerías extensivas.
• Extensible (C++, C, …)
• Interpretado.
4.1.2. Desventajas
• Consumo de memoria.
• Desarrollo móvil.
Al abrir IDLE con el acceso directo Inicio > Programming > IDLE (using Python-3.9), se
abrirá la ventana principal de IDLE, como muestra la imagen siguiente.
Alt+p para ver la instrucción anterior (supongo que p es por previous, en español,
anterior)
Alt+n para ver la instrucción siguiente (supongo que n es por next, en español,
siguiente)
Para crear un archivo de programa con IDLE, abra una nueva ventana mediante el
menú File > New File (o el atajo de teclado Ctrl+N).
Observará que, en esta ventana, cuando pulsa <Enter>, no se ejecuta la orden como
ocurre en el entorno interactivo, sino que simplemente se pasa a la línea siguiente.
Para guardar el programa, elija la opción del menú File > Save o File > Save As ...
(también puede utilizar el atajo de teclado Ctrl+S).
Una vez guardado el programa, el nombre del archivo aparece en la barra de título
de la ventana.
Las palabras reservadas de Python (las que forman parte del lenguaje) se muestran
en color naranja.
Las cadenas de texto se muestran en verde.
Las funciones se muestran en púrpura.
Los resultados de las órdenes se escriben en azul.
Los mensajes de error se muestran en rojo.
Una vez abierto el programa en IDLE, ejecútelo pulsando F5 o mediante el menú Run
> Run module.
5. PROGRAMANDO LA RASPBERRY PI 4B
Para programar los puertos GPIO de nuestra Raspberry Pi, debemos ir a inicio >
Programming > IDLE (using Python-3.9)
El siguiente paso es abrir el editor de programa, para eso debe ir al menú File > New
File (o el atajo de teclado Ctrl+N).
En nuestro programa lo primero que hay que hacer es importar las librerías que
necesitaremos, la primera de ellas es RPi.GPIO as GPIO, la cual permite controlar los
pines GPIO desde el código.
La segunda librería que vamos a utilizar es time, la cual permite realizar retardos de
tiempo en nuestro programa.
Se define la función principal del programa con la instrucción def main ():
Una vez importadas las librerías a utilizar, se debe establecer la librería GPIO al modo
de Board o al modo BCM, para eso se utiliza la instrucción GPIO.setmode(GPIO.BCM)
Seguidamente establecemos los pines GPIO como salida con la instrucción GPIO.OUT,
la instrucción general es GPIO.setup(pin, configuración); donde pin es el número del
GPIO y configuración es GPIO.OUT, si el pin es salida o GPIO.IN, si el pin es entrada.
Recordemos que lo primero que hay que hacer es importar las librerías que
necesitaremos, RPi.GPIO as GPIO, time
Se define la función principal del programa con la instrucción def main ():
El leer el estado de un GPIO sirve para tomar decisiones, para esto se utiliza la
sentencia condicional if-else
Lo mejor de todo, es que este bloque lo podemos llamar todas las veces que
queramos.
La sentencia def en python es una definición la cual es empleada para poder crear
funciones propias programadas por el usuario para la modularización y reutilización
de códigos. Su sintaxis se muestra a continuación:
Por lo tanto, como puedes ver en la función, inmediatamente después del definir el
nombre, viene el docstring que va a describirle al usuario la finalidad de la función y
le mostrará como usar la misma. Es decir, como hacer el llamado.
Con return también podemos retornar el valor esperado de la función para que
pueda ser usado posteriormente por el programa que realizó la llamada de la función.
Por posición es la forma típica con la que se asignan valores a una función y consiste
en colocar los parámetros de entrada en el mismo orden en el que fueron definidos
dentro de la función:
la resta es 11
Vamos a crear una función de configuración de los GPIO y en vez de configurar los
GPIO en la función principal, simplemente escribimos las instrucciones de
configuración en la función creada.
empty_list = []
languages = [‘Python’, ‘Ruby’, ‘Javascript’]
fibonacci = [0, 1, 1, 2, 3, 5, 8, 13]
data = [‘Tenerife’, {‘cielo’: ‘limpio’, ‘temp’: 24}, 3718, (28.2933947, -16.5226597)]
Las listas están ordenadas: Una lista no es únicamente un arreglo de varios objetos. Es
una colección ordenada de objetos. Es decir que el primer elemento comenzará
siempre con la dirección o índice cero (0), el segundo elemento con 1 y así
sucesivamente.
De manera de ejemplo, usamos el siguiente ciclo for en python para crear una
secuencia de números del 0 al 100 e imprima cada elemento en la secuencia:
Veamos el siguiente ejemplo con ciclo for en python mostrando una secuencia de
números de 10 hasta 1000 con incrementos de 10 en 10.
En este caso, estamos viendo como con la identación o sangría estamos definiendo
un bloque de código exclusivo para el condicional if.
Recordar siempre usar el mismo número de espacios en todo su código, caso deseen
usar la barra espaciadora para identar.
Cuando se anidan varios niveles de enunciados if/else, puede ser difícil determinar
cuáles expresiones lógicas deben ser verdaderas (o falsas) con la finalidad de ejecutar
cada conjunto de enunciados. La función elif le permite comprobar criterios múltiples
mientras se mantiene el código fácil de leer.
La estructura del ciclo while debe respetar la siguiente sintaxis, la cual siempre en
Python debe respetar la identación, dado que una vez la identación vuelve a la
misma línea del comando while, esto le indica el cierre del ciclo While a Python.
A continuación, se presenta un ejemplo del uso del bucle while el cual contiene un
acumulador número que irá incrementando hasta que la suma acumulada sea mayor
que 100
VDD
R9R10
R11
R12
R13
R14
R15
R16
10K
10K
10K
10K
10K
10K
10K
10K
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
10
12
13
14
15
16
11
9
DSW1
OFF
DIPSW_8
ON
8
7
6
5
4
3
2
1
Leds: dispositivo electrónico que emite luz. Se utiliza para visualizar la presencia de
corriente, para mostrar si una salida está en “1” o está en “0”.
PD7
R8
150R
D8
LED-GREEN
Para nuestros proyectos con DipSwitch y Leds con la Raspberry Pi 4B, nos basaremos
en el circuito esquemático.
Bit 7 6 5 4 3 2 1 0
GPIO.IN 19 13 6 5 22 27 17 4
GPIO.OUT 21 20 16 12 25 24 23 18
Utilizamos el condicional if- else para comprobar el estado del GPIO de entrada, si el
GPIO esta en estado ALTO, escribimos un ALTO en el GPIO de salida, si el estado del
GPIO esta en estado BAJO, escribimos un BAJO en el GPIO de salida, nos guiaremos
del siguiente diagrama de flujo.
Inicio 1
NO
SI
GPIO18 = 0 GPIO13 = 1? GPIO20 = 1
NO
SI
GPIO20 = 0
GPIO17 = 1? kk GPIO23 =
NO SI
GPIO19 = 1? GPIO21 = 1
GPIO23 = 0
NO
SI GPIO21 = 0
GPIO27 = 1? GPIO24 = 1
NO
FIN
GPIO24 = 0
SI
GPIO22 = 1? GPIO25 = 1
NO
GPIO25 = 0
SI
GPIO5 = 1? GPIO12 = 1
NO
GPIO12 = 0
Ahora crearemos otra lista para almacenar los estados de los GPIO de entrada y de
salida, esto con el fin de crear una función que lea todos los bits de los GPIO de
entrada y escriba en todos los bits de salida
Creamos una función que nos permita escribir todos los bits en los GPIO de salida
Creamos una función que nos permita leer todos los bits de los GPIO de entrada
Queda de parte del lector pasar las funciones creadas a una librería, la cual no es
objeto de explicación en este libro.