¿QUÉ SON LOS MÓDULOS?
Los módulos son “bibliotecas” de funciones y clases, almacenadas en ficheros separados, con extensión .py
, para realizar tareas comunes. Nos sirven para extender las funcionalidades, ampliando las funciones integradas –que son las que siempre están disponibles en el intérprete de Python (MicroPython, en nuestro caso)-.
Hay tres tipos principales de módulos:
- Los módulos preinstalados, se denominan –biblioteca estándar-.
- Los módulos que se pueden instalar de fuentes externas. Muchos de ellos están almacenados en el Índice de Paquetes de Python (PyPI – Python Package Index).
- Los módulos que puedes escribir tú mismo.
LOS MÓDULOS DE LA BIBLIOTECA ESTÁNDAR DE MICROPYTHON
Los módulos de la biblioteca estándar, al estar preinstalados están disponibles directamente en el interprete, pero necesitamos importarlos (o importar sus funciones o clases) para poder utilizarlos.
La mayor parte de los módulos de la biblioteca estándar de Python han tenido que ser simplificados en MicroPython, para adaptaros a las limitaciones de recursos de los microcontroladores, aunque se respetan sus funcionalidades principales. Las versiones para MicroPython de estos módulos generalmente llevan el prefijo u «micro» (utime, ujson, ubinascii, etc.).
En la WEB oficial de MicroPython (http://www.micropython.org/ > DOCS > MicroPython libraries), podemos encontrar documentación relativa a:
- las versiones de MicroPython de los módulos estándar de Python,
- los módulos específicos de MicroPython y
- los módulos específicos para los microcontroladores ESP8266 y ESP32.
Los módulos específicos de MicroPyton y módulos específicos para los microcontroladores ESP8266 y ESP32 SON MUY IMPORTANTES, ya que permiten el control del hardware del microcontrolador:
machine: es un módulo específico de MicroPython que contiene funciones y clases que permiten obtener acceso directo y sin restricciones sobre el hardware del microcontrolador (CPU, pines, temporizadores, ADC, buses –UART, SPI, I2C, OneWire…-, etc.).esp
: es un módulo común a los microcontroladores ESP32 y ESP8266 que contiene funciones específicas de la memoria flash.esp32
: es un módulo específico del microcontrolador ESP32 que contiene funciones y clases para realizar mediciones utilizando los sensores internos de temperatura y campos magnéticos –Hall-. También permite acceder al coprocesador de Ultra Bajo Consumo (ULP – Ultra Low Power), que se utiliza cuando los procesadores principales están en modo sueño profundo.
IMPORTANDO UN MÓDULO
La forma básica de importar un módulo es mediante la instrucción import
, seguida del nombre_del_módulo (sin el .py
).
La primera vez que un módulo es importado el intérprete lo inicializa (solo lo hará una vez, independientemente del número de veces que se importe) y podremos acceder a las funciones (o clases) escribiendo el nombre_del_módulo, nombre_de_la_función_o_clase y las variables o atributos con la siguiente estructura: nombre_del_módulo.nombre_de_la_función_o_clase(variables_o_atributos)
Probemos un ejemplo, importando el módulo esp32 de la biblioteca estándar para obtener:
- el valor de la temperatura en el microcontrolador utilizando la función raw_temperature() y
- el valor del campo magnético perpendicular al microcontrolador utilizando la función hall_sensor().
import esp32 temp = esp32.raw_temperature() # lee la Tª del microcontrolador en ºFarenheit print(temp) # imprime la Tª hall = esp32.hall_sensor() # lee el campo magnético perpendicular al # microcontrolador (1.5uds = 1mT) mT = miliTesla print(hall) # imprime el valor del campo magnético
La ejecución en Thonny nos quedará así:
IMPORTANDO UNA FUNCIÓN O UNA CLASE
Podemos importar únicamente las funciones o clases que necesitemos, en vez de importar todo el módulo.
La forma de importar una función o clase es utilizando la instrucción: from nombre_del_módulo (sin el .py
) import
nombre_de_la_función_o_clase.
Podremos acceder a la función o clase escribiendo el nombre_de_la_función_o_clase(variables_o_atributos)
Probemos un ejemplo, importando la función raw_temperature() del módulo esp32 de la biblioteca estándar:
from esp32 import raw_temperature temp = raw_temperature() # lee la Tª del microcontrolador en ºFarenheit print(temp) # imprime la Tª
La ejecución en Thonny nos quedará así:
Únicamente podremos acceder a las funciones o clases que hayamos importado. El resto no estarán disponibles. Si intentamos utilizar funciones o clases que no se hayan importado, se producirá un error.
Leave a Reply
Tu correo electrónico está seguro.
You must be logged in to post a comment.