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.0.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.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

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

Hashes for hzl_robotics_esp32-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5b88101a0690e6148c75978817d3f249c491c90e44ec55727051df12d016afc2
MD5 b2acc2103f0dea9b278753eeef91c343
BLAKE2b-256 e808f725a351e8934eb4049fadf9d2adc918758ecca78f8934437992c479fad9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hzl_robotics_esp32-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8877c0543bfd02ec91650ba1ac49bb9355687566e092dac1fa5bfae0fb0b608
MD5 928666808294b7bea24f840674260221
BLAKE2b-256 8e4abde2e39f12c82921942d9cb8f9937b0097ecbc2bd6bbd21bc3931ed03806

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