The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

1238 MANUAL - PYTHON CON RASPBERRY PI - CENALTEC CHIHUAHUA

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by CENALTEC, 2023-03-21 17:06:37

MANUAL - PYTHON CON RASPBERRY PI

1238 MANUAL - PYTHON CON RASPBERRY PI - CENALTEC CHIHUAHUA

PYTHON CON RASPBERRY PI


PYTHON CON RASPBERRY PI 1 INDICE OBJETIVO GENERAL......................................................................... 2 Introducción......................................................................................... 2 ¿Por qué usar Python?........................................................................ 3 ¿Por qué usar Raspberry Pi? .............................................................. 4 Hardware Raspberry Pi ....................................................................... 4 Entorno de desarrollo .......................................................................... 6 Variables y tipos de datos.................................................................... 7 Función print() ..................................................................................... 8 Operadores ......................................................................................... 9 Palabras reservadas...........................................................................11 Funciones...........................................................................................12 Ciclos .................................................................................................13 Condiciones........................................................................................16 Errores ...............................................................................................17 Estructuras de datos...........................................................................18 Clases ................................................................................................21 RPi.GPIO............................................................................................23 Librería Tkinter ...................................................................................25


PYTHON CON RASPBERRY PI 2 OBJETIVO GENERAL Proporcionar a los estudiantes las herramientas y habilidades necesarias para utilizar la plataforma Raspberry Pi y el lenguaje de programación Python en el desarrollo de proyectos de software capaces de interactuar con componentes electrónicos. Introducción Python es un lenguaje de programación de alto nivel, interpretado y de código abierto. Se ha convertido en uno de los más populares y utilizados en la actualidad debido a su versatilidad y facilidad de uso. Python se encuentra disponible en múltiples sistemas operativos y, por consiguiente, puede ser utilizado en una gran variedad de dispositivos. Entre estos dispositivos se encuentra Raspberry Pi, una pequeña computadora de placa única muy popular en la enseñanza de la informática y, gracias a sus salidas digitales, la electrónica. Con Python y Raspberry Pi es posible crear proyectos de todo tipo, desde proyectos educativos hasta proyectos más avanzados de internet de las cosas (IoT, por sus siglas en inglés) y robótica. Además, gracias a su bajo costo, su capacidad de procesamiento, y a su pequeño tamaño; la Raspberry Pi se ha convertido en una herramienta muy accesible para la creación de prototipos e incluso para la implementación de soluciones en campo. La comunidad Python es una de las más grandes y activas en el mundo del software de código abierto. Cuenta con una gran cantidad de librerías y herramientas desarrolladas y mantenidas por miembros de la comunidad, permitiendo a los desarrolladores utilizar el lenguaje en una amplia variedad de proyectos. Con Python, se pueden controlar las entradas y salidas de propósito general (GPIO, por sus siglas en ingles) de la Raspberry Pi, lo que permite interactuar con diferentes dispositivos electrónicos como sensores y actuadores.


PYTHON CON RASPBERRY PI 3 La Raspberry Pi fue desarrollada por la Fundación Raspberry Pi con sede en Reino Unido, y fue lanzada en febrero de 2012. El equipo de desarrollo se compuso por Eben Upton, Rob Mullins, Jack Lang y Alan Mycroft. Su propósito fue desarrollar una plataforma de bajo costo para la enseñanza de la informática. Por su parte, Python fue creado por Guido van Rossum en 1989 mientras trabajaba en el Centro para las Matemáticas y la Informática en los Países Bajos. Van Rossum se inspiró en e l lenguaje de programación ABC. Su propósito era crear un lenguaje fácil de leer, escribir y mantener. ¿Por qué usar Python? A continuación, se listan algunas de las ventajas principales del lenguaje de programación Python: • Sintaxis legible y clara: La sintaxis de Python se asemeja al lenguaje natural o seudocódigo, por consiguiente, es fácil de entender y aprender, sobre todo para aquellos que inician en el área de la programación. • Amplia biblioteca estándar: Cuenta con una amplia biblioteca estándar desarrollada tanto en C como en Python, proporcionando una amplia gama de funciones permitiendo el desarrollo rápido y eficiente de aplicaciones. • Multiplataforma: Python es compatible con múltiples plataformas, incluyendo Windows, Mac y Linux, • Desarrollo continuo: Debido a la gran comunidad que trabaja en torno al lenguaje Python, este se encuentra en constante desarrollo, agregándole nuevas capacidades constantemente. • Orientado a objetos: Python es un lenguaje orientado a objetos, lo que lo hace ideal para el desarrollo de aplicaciones complejas y escalables.


PYTHON CON RASPBERRY PI 4 • Inteligencia artificial: Python es uno de los lenguajes de programación más populares para el aprendizaje automático y la inteligencia artificial, gracias a sus bibliotecas (como TensorFlow y PyTorch) y su facilidad de uso. ¿Por qué usar Raspberry Pi? A continuación, se listan algunas de las ventajas principales de utilizar Raspberry Pi: • Precio asequible: Raspberry Pi es una placa de ordenador de bajo costo, ideal para los estudiantes que deseen desarrollar proyectos o aprender conceptos de programación y electrónica sin invertir mucho dinero. • Tamaño reducido: Raspberry Pi es una placa de ordenador de tamaño reducido, fácil de transportar y almacenar. Ideal para proyectos móviles. • Bajo consumo de energía: Raspberry Pi utiliza muy poca energía, su consumo está entre los 1.3 y 6 watts, dependiendo del uso y de la versión. Es ideal en proyectos con fuente de alimentación limitada o que utilicen baterías. • Comunidad: Raspberry Pi cuenta con una comunidad activa de desarrolladores que ofrecen soporte y recursos para los usuarios de Raspberry Pi. • Integración: Raspberry Pi se integra fácilmente con otros dispositivos y sensores, con los que se pueden crear sistemas más complejos. Hardware Raspberry Pi Procesador: Cuenta con un procesador ARM que varía según el modelo de la placa, desde ARMv6 para los modelos Raspberry Pi Zero y Zero W, hasta ARMv8 para los modelos Raspberry Pi 3 y 4.


PYTHON CON RASPBERRY PI 5 RAM: Cuenta con diferentes configuraciones de memoria RAM, que van desde 256 MB hasta 8 GB, según el modelo de la placa. Almacenamiento: No tiene almacenamiento interno. Sin embargo, gracias a sus puertos y ranuras disponibles se puede utilizar una tarjeta MicroSD o un dispositivo de almacenamiento USB para el sistema operativo y los archivos. Conectividad: Cuenta con conectividad inalámbrica Wi-Fi y Bluetooth, además de puertos Ethernet, HDMI y USB. Pines GPIO: Cuenta con un conjunto de pines GPIO, que permiten la conexión con otros dispositivos y sensores. Alimentación: Cuenta con un puerto micro-USB o USB-C para la alimentación. Video: Cuenta con un puerto HDMI para la conexión a un monitor o televisión. Audio: Cuenta con un puerto de audio de 3.5 mm para la conexión de auriculares o altavoces.


PYTHON CON RASPBERRY PI 6 Configuración de salidas GPIO Entorno de desarrollo Como se comentó previamente se pueden utilizar varios sistemas operativos en la Raspberry Pi. Sin embargo, el sistema operativo oficial se conoce como Raspberry Pi OS (anteriormente Raspbian). Raspberry Pi OS es una distribución GNU/Linux basada en Debian orientada a la enseñanza. Esta, en su versión oficial incorpora las librerías necesarias para trabajar con los puertos GPIO utilizando Python. Ademas agrega un Entorno de desarrollo para aplicación Python llamado Thonny. Sin embargo, este es solo uno de los múltiples IDEs existentes con los que se puede programar en lenguaje Python sobre Raspberry Pi OS. Algunos otros IDEs son: Mu, Pycharm, Visual Studio Code, entre otros. Sin importar el IDE elegido, la mayoría incorpora mecanismos para edición y depuración de código. Las herramientas más comunes cambian el color de las


PYTHON CON RASPBERRY PI 7 funciones o variables. Y a menudo permiten auto completar parte del código en tiempo de desarrollo. Por esta razón es importante decidir adecuadamente el IDE a utilizar. Variables y tipos de datos Los tipos de datos en programación se refieren a las diferentes categorías utilizadas para representar y almacenar información. Los tipos de datos permiten a los programadores asignar un valor a una variable o constante, y determinan el tipo de operaciones que se pueden realizar. Por ejemplo, tanto los tipos de datos enteros como de punto flotante, permiten operaciones aritméticas, mientras que las cadenas de texto no. Sin embargo, estas últimas permiten operaciones de concatenación y seccionado. Los tipos de datos básicos en Python son: Tipo de Dato Ejemplo Enteros (int) 1, 2, 3, 2000, 5500 Punto flotante (float) 1.75, 2.1158, 589.256 Cadena de texto (Str) “Texto”, “123”, “Cadena de texto” Booleanos True, False Imaginarios 4 + 2j, 5.1j, 1 + 7j


PYTHON CON RASPBERRY PI 8 Para definir una variable basta con darle valor e inicializarla. Si no se especifica el tipo de dato a almacenar en una variable, el intérprete se encargará de asignar el tipo de dato adecuado. Sin embargo, puede especificarse el tipo de dato del lado derecho de la igualdad. Como su nombre lo dice, las variables pueden cambiar de valor durante la ejecución del programa. Para cambia el valor de una variable solo hace falta reasignarle un valor. En el ejemplo anterior, el valor final de a será 25. Función print() La función print() en Python se utiliza para imprimir valores en la consola o en la salida estándar. La sintaxis básica de la función print() es la siguiente: Los parámetros valor1, valor2, valor3, … , hasta valor n, hacen referencia a los valores que el usuario le pedirá a la función imprima en la consola o en la salida (puede ser un archivo) especificado en el parámetro “file”. El parámetro “sep” especifica el tipo de separación que deberá utilizarse entre cada uno de los


PYTHON CON RASPBERRY PI 9 valores enviados a la función. El parámetro “end” especifica el carácter que utilizara la función cuando termine de imprimir los valores solicitados. El valor por defecto es “\n” (salto de línea). Operadores Los operadores son símbolos o palabras que se utilizan para realizar operaciones matemáticas o lógicas sobre una o más variables. Son una parte fundamental para realizar cálculos y tomar decisiones. Los operadores más utilizados son: Aritméticos: Son aquellos que nos permiten realizar operaciones matemáticas, como sumar, restar, multiplicar, dividir, obtener el módulo, entre otros. Algunos ejemplos de operadores aritméticos son:


PYTHON CON RASPBERRY PI 10 Operadores de asignación: se utilizan para asignar valores a variables. El operador de asignación más común en Python es el signo igual (=). Operadores de comparación: se utilizan para comparar dos valores y determinar si son iguales, diferentes, mayores o menores que el otro. Algunos ejemplos de operadores de comparación son: Operadores lógicos: se utilizan para combinar valores booleanos y evaluar condiciones complejas. En Python los operadores lógicos son and, or, y not.


PYTHON CON RASPBERRY PI 11 Palabras reservadas Las palabras reservadas son palabras que tienen un propósito especifico en el lenguaje y por lo tanto no se pueden utilizar como nombres de variables, funciones o clases. Algunas de las palabras reservadas más comunes en Python son: • if: ejecuta un bloque de código si se cumple la condición que le sigue. • else: Ejecuta un bloque de código si la condición en el if no se cumple. • elif: Agrega una nueva condición después de un if y antes de un else. • while: Crea un bucle que se ejecuta mientras se cumple una condición. • for: Crea un bucle que se ejecuta un número específico de veces. • in: Verifica si un valor se encuentra en una estructura de datos. • True: Valor verdadero. • False: Valor falso. • None: Valor nulo o vacío. • def: Define una función. • return: Devuelve el valor de una función. • class: Definie una clase. • import: se utiliza para importar una libreria.


PYTHON CON RASPBERRY PI 12 Funciones Las funciones representan bloques de código que se pueden ejecutar múltiples veces en un programa. Las funciones se utilizan para realizar una tarea específica o para realizar un cálculo, y pueden aceptar argumentos de entrada y devolver uno o más resultados. En Python se definen con la palabra "def", seguida del nombre de la función. Si la función requiere parámetros de entrada, el nombre de estos deberá especificarse dentro de los paréntesis. El bloque de código dentro de la función se ejecuta cuando se llama a la función desde otro lugar del programa. Ejemplo función sin parámetros de entrada y salida: Ejemplo de funciones con parámetros de entrada:


PYTHON CON RASPBERRY PI 13 Ejemplo de funciones con parámetros de entrada y salida. Ciclos Los ciclos o bucles son estructuras de control que permiten repetir una sección de código varias veces. Los ciclos son útiles para realizar tareas repetitivas de manera eficiente. En Python existen dos tipos de ciclos, el ciclo for y


PYTHON CON RASPBERRY PI 14 el ciclo while. El ciclo while se ejecuta mientras la condición que le sigue se cumpla. En cambio el ciclo for se ejecutara un numero de terminado de veces. Ejemplo de ciclo while infinito. Debido a que la condición es una variable que siempre sera verdadera este ciclo se ejecutara infinitamente. Ejemplo de ciclo while que se ejecuta mientras x sea menor a 5. Ejemplo de ciclo for que se ejecuta 10 veces. En Python la funcion range(inicio, fin, paso) se utiliza para generar una secuencia de números en un rango especificado. Donde "inicio" es el primer número en la secuencia, "fin" es el último número en la secuencia (no se incluye en la secuencia) y "paso" es el incremento entre cada número en la secuencia. Si se omite el valor inicial, la secuencia iniciara en cero. Si se omite el paso, el paso sera de 1. Ejemplos de ciclos for con diferentes valores para la funcion range.


PYTHON CON RASPBERRY PI 15 Como vimos, la cantidad de veces que se ejecuta un ciclo for esta relacionado con la cantidad de elementos proporcionados. Por ende, si utilizamos una lista con valores aleatorios esta se ejecutara una cantiadad de veces igual a la cantidad de elementos contenidos, y podremos obtener los números de la lista con la variable del ciclo (i en este caso). Los ciclos pueden contener otros ciclos. A este proceso se le conoce como anidación.


PYTHON CON RASPBERRY PI 16 Condiciones En Python, como en otros lenguajes, las condiciones son expresiones que se evalúan como verdaderas o falsas. Las condiciones se utilizan en las estructuras de control para determinar qué acción tomar en función del resultado de la evaluación de la condición. Las condiciones se construyen utilizando operadores de comparación, que comparan dos valores y devuelven un valor booleano (verdadero o falso). Ademas se pueden utilizar operadores lógicos para combinar múltiples condiciones. Ejemplos de condiciones con operadores de comparación:


PYTHON CON RASPBERRY PI 17 Ejemplo de condiciones con operadores de comparación y operadores lógicos. Errores Cuando se presenta un error el programa se detiene, sin embargo, se pueden utilizar bloques para el manejo de errores que eviten que el programa se detenga. En Python se utilizan los bloques “try” y “except”. La estructura es la siguiente: Cuando el código dentro del bloque “try” produce un error, el código dentro del bloque “except” se ejecutara. El código dentro de “finally” se ejecutará se produzca o no un error dentro del bloque “try”. También se puede especificar el tipo de error esperado, e incluso definir un bloque para cada tipo de error. Existe un conjunto de Excepciones especificadas por el lenguaje, algunas de estas son: ArithmeticError (errores aritméticos), BufferError (errores operaciones en el buffer), LookupError (clave o índice inválido), ValueError(error en los tipos de datos). Para conocer más excepciones se recomienda visitar https://docs.python.org/es/3/library/exceptions.html#Exception.


PYTHON CON RASPBERRY PI 18 Ejemplo de excepciones. Note que en el primer intento el programa se detuvo al intentar convertir una cadena de caracteres en entero. En el segundo intento, el error fue manejado Ejemplo de múltiples excepciones: Estructuras de datos Las estructuras de datos se pueden utilizar para almacenar y manipular datos. A continuación, se describen los principales tipos de estructuras de datos en Python:


PYTHON CON RASPBERRY PI 19 Listas: Una lista es una colección ordenada y modificable de elementos, que pueden ser de diferentes tipos de datos. Se define con corchetes y los elementos se separan por comas. Ejemplo: Ejemplos de listas: Tuplas: Una tupla es similar a una lista, pero no se puede modificar una vez creada. Se define con paréntesis y los elementos se separan por comas. Ejemplo de tuplas:


PYTHON CON RASPBERRY PI 20 Conjuntos: Un conjunto es una colección no ordenada y sin elementos duplicados. Se define con llaves o con la función set(). Ejemplo de conjuntos: Diccionarios: Un diccionario es una colección de pares clave-valor, donde cada clave es única y está asociada con un valor. Se define con llaves y los pares clave-valor se separan por comas. Mientras que la clave y valor se separan por dos puntos.


PYTHON CON RASPBERRY PI 21 Ejemplo de diccionarios: Clases Una clase es una plantilla que define las propiedades y métodos que tendrán los objetos creados a partir de ella. En una clase, los atributos representan las características de un objeto y los métodos representan las acciones que puede realizar el objeto. A partir de una clase se pueden crear múltiples objetos. Por ejemplo, una clase de "Perro" podría tener atributos como nombre, raza, color, etc., y métodos como ladrar, correr, saltar, etc. Para definir una clase se utiliza la palabra “class”, seguida del nombre de la clase.


PYTHON CON RASPBERRY PI 22 En el ejemplo anterior se creo una clase perro que incorpora 3 métodos (o funciones de la clase): __init__, getNombre, y getRaza. La función __init__ se conoce como constructor, ya que esta es la función que se llama cuando se crea un objeto nuevo. Por esta razón, y debido a que en el ejemplo se le especificaron dos parámetros de entrada (nombre y raza), para crear una instancia de la clase deben especificarse esos valores. En el ejemplo anterior perro1, perro2, y perro3 son instancias (u objetos) de la clase Perro. Por convención los nombres de las clases se inician con una letras mayúscula, mientras que los nombres de las funciones y variables se inician con una letra minúscula. Las clases pueden incorporar estructura de otras clases, a este se le conoce como herencia.


PYTHON CON RASPBERRY PI 23 En el ejemplo anterior, la clase Perro hereda de la clase Canino, por ello, la instancia perro1 puede acceder a los métodos de la clase Canino. Cuando definimos métodos dentro de nuestras clases, estos se deben inicializarse con la palabra reservada “self”, Esto le indica al compilador que ese es un método de la clase. Esta palabra también nos permite definir variables de instancia dentro de nuestros objetos. Estas variables son únicas para cada uno de los objetos. Las variables self.nombre y self.raza pueden ser utilizadas por cualquier método de la clase, mientras que los parámetros de entrada (nombre y raza) solo pueden ser utilizados por el método __init__. RPi.GPIO Para poder acceder a los puertos de nuestro Raspberry Pi utilizamos una librería llamada RPi.GPIO. Esta librería nos permite definir los puertos que queremos utilizar como puertos de salida (para imprimir valores lógicos) y los puertos que queremos utilizar como entrada (para leer valores lógicos).


PYTHON CON RASPBERRY PI 24 Para utilizar los puertos primero es necesario agregar la librería, después deben de especificarse el modo en que se leerán los puertos, y por ultimo se deben de leer o escribir los valores requeridos. En el ejemplo anterior se agregó la librería RPi.GPIO con el seudónimo de GPIO. Después se configuro el modo en que se utilizaran las salidas como BCM. Existen dos posibles opciones para el modo en que se utilizan las salidas GPIO: BCM y BOARD. En BCM se utiliza la numeración especificada por el diseño, mientras que en modo BOARD se utiliza la numeración de 1 a 40 correspondientes a los conectores. Después se definió el puerto del led como el 23, y se creó un ciclo que enciende y apaga el led con pausas de 1 segundo indefinidamente.


PYTHON CON RASPBERRY PI 25 Ejemplo lectura de puerto GPIO Librería Tkinter Tkinter es una librería de Python utilizada para crear interfaces gráficas de usuario (GUI, por sus siglas en inglés). Esta biblioteca proporciona herramientas y “widgets” que permiten crear ventanas, botones, cuadros de texto, menús, entre otros elementos gráficos. Algunos de los widgets principales de Tkinter son: • Label: Se utiliza para mostrar texto en una ventana. • Button: Crea un botón. Puede incluir una etiqueta de texto o una imagen. • Entry: Crea un cuadro para introducir texto. • Text: Crea un cuadro de texto grande en una ventana con capacidad de scroll. • Checkbutton: Crea una casilla de verificación. • Radiobutton: Crea un botón de opción.


PYTHON CON RASPBERRY PI 26 • Menu: Crea un menú desplegable. • Scrollbar: Crea una barra de desplazamiento. • Canvas: Crea una zona de dibujo. Ejemplo de código tkinter utilizando las librerías RPi.GPIO:


PYTHON CON RASPBERRY PI 27 BIBLIOGRAFÍA https://docs.python.org/ https://www.raspberrypi.com/documentation/ TABLA DE CONTENIDO (al final) Fecha Responsable: Revisión / Motivo de la revisión MARZO 2023 POR DEFINIR CREACIÓN DE CONTENIDO MARZO 2023 RODOLFO QUIROZ REVISIÓN Y AJUSTES


Click to View FlipBook Version