Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hzl_robotics_esp32-0.1.1.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hzl_robotics_esp32-0.1.1-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file hzl_robotics_esp32-0.1.1.tar.gz.

File metadata

  • Download URL: hzl_robotics_esp32-0.1.1.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

Hashes for hzl_robotics_esp32-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8745ac001a90257ef3ef1a1dc7497b02f3e70e049ad3c5f9b9719f36e1a55840
MD5 871ff0988635508391293736daa15f23
BLAKE2b-256 e5bed1aa46339d029aced21e64b0001296c12d92829b34b1b11d4c618c1ca7dc

See more details on using hashes here.

File details

Details for the file hzl_robotics_esp32-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for hzl_robotics_esp32-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d7aed848507f29fd02b2d932cb4b67f61816e96ab228c9b59bfec54b75cf8f79
MD5 56e3e067457e2ea45feceb386d770ee8
BLAKE2b-256 e961ddc0c59c3ae2a9b52c85d9f6820957c9e14a5bc2993861acf9d5954ea6b3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page