High speed ESP32 IO framework for robotics
Project description
hzl_robotics-esp32
hzl_robotics-esp32 Aquí tienes la traducción al español de la documentación, manteniendo el formato Markdown y la estructura técnica original.
hzl_robotics-esp32 hzl_robotics-esp32 es un framework de Python diseñado para interactuar con un ESP32 a través de USB Serial.
Permite controlar los pines GPIO del ESP32 utilizando una sintaxis de Python limpia y familiar, manteniendo al mismo tiempo una API estilo Arduino.
Este proyecto está diseñado como un puente pedagógico entre la programación en Python y el desarrollo de sistemas embebidos.
🎯 Propósito
Este framework NO pretende reemplazar el desarrollo de firmware nativo o C++.
En su lugar, está construido para:
- Reducir la barrera de entrada para principiantes.
- Enseñar fundamentos de electrónica sin la complejidad de C++.
- Mantener nombres de funciones estilo Arduino para una transición fluida.
- Permitir la integración con herramientas basadas en PC como OpenCV, bots de Discord, APIs, etc.
El ESP32 actúa como un coprocesador de E/S (I/O), mientras que Python ejecuta la lógica de alto nivel en la computadora.
📦 Instalación
pip install hzl-robotics-esp32
🚀 Ejemplo
from src.hzl_robotics_esp32 import ESP32
import time
import math
esp32 = ESP32("COM5")
@esp32.setup
def setup():
esp32.pinMode(2, 1)
esp32.ledcAttach(4, 1000, 8)
@esp32.loop
def loop():
for i in range(256):
corrected = int((i / 255) ** 2.2 * 255)
esp32.ledcWrite(4, corrected)
time.sleep(0.01)
for i in range(255, -1, -1):
corrected = int((i / 255) ** 2.2 * 255)
esp32.ledcWrite(4, corrected)
time.sleep(0.01)
try:
esp32.start()
while True:
time.sleep(1)
except KeyboardInterrupt:
esp32.stop()
Este ejemplo controla progresivamente el brillo de un LED usando PWM con corrección gamma.
🔧 Funciones de Configuración (Setup)
# Configurar pin
esp32.pinMode(pin, mode)
# Configurar pin PWM
esp32.ledcAttach(pin, freq, res)
🔁 Funciones de Bucle (Loop)
#digitalRead:
value = esp32.digitalRead(pin)
# digitalWrite:
esp32.digitalWrite(pin, value)
#analogRead:
value = esp32.analogRead(pin)
#analogWrite:
esp32.ledcWrite(pin, value)
🧵 Control de Hilos (Threads)
# Inicia el hilo del bucle y la configuración del esp32
esp32.start()
# Detiene el hilo del bucle
esp32.stop()
Para mantener el bucle en ejecución, incluya siempre:
try:
esp32.start()
while True:
time.sleep(1)
except KeyboardInterrupt:
esp32.stop()
⚠️ Limitaciones Importantes
Este framework introduce:
- Latencia de USB serial.
- Jitter (inestabilidad) en la comunicación.
- Temporización no determinista debido a la programación del sistema operativo.
Debido a esto:
❌ NO usar para robots de producción.
❌ NO usar para control de motores en tiempo real.
❌ NO usar para sensores de tiempo crítico (ultrasónicos, encoders precisos, etc.).
Este framework es ideal para:
✅ Experimentos con LEDs y PWM.
✅ Botones y sensores simples.
✅ Potenciómetros.
✅ Aprendizaje de lógica digital.
✅ Integración de ESP32 con visión artificial (Computer Vision) o APIs web.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hzl_robotics_esp32-0.1.0.tar.gz.
File metadata
- Download URL: hzl_robotics_esp32-0.1.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b88101a0690e6148c75978817d3f249c491c90e44ec55727051df12d016afc2
|
|
| MD5 |
b2acc2103f0dea9b278753eeef91c343
|
|
| BLAKE2b-256 |
e808f725a351e8934eb4049fadf9d2adc918758ecca78f8934437992c479fad9
|
File details
Details for the file hzl_robotics_esp32-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hzl_robotics_esp32-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8877c0543bfd02ec91650ba1ac49bb9355687566e092dac1fa5bfae0fb0b608
|
|
| MD5 |
928666808294b7bea24f840674260221
|
|
| BLAKE2b-256 |
8e4abde2e39f12c82921942d9cb8f9937b0097ecbc2bd6bbd21bc3931ed03806
|