{"id":22642261,"url":"https://github.com/masterpluster/esp32-s3-geek-micropython","last_synced_at":"2026-04-18T02:31:58.927Z","repository":{"id":264549740,"uuid":"840791163","full_name":"masterPlusTer/esp32-s3-GEEK-micropython","owner":"masterPlusTer","description":"Intento de libreria novato friendly  para el esp32-s3-GEEK - MICROPYTHON","archived":false,"fork":false,"pushed_at":"2024-12-30T14:41:02.000Z","size":186,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-03T16:57:57.880Z","etag":null,"topics":["esp32","esp32s3","micropython","waveshare"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masterPlusTer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-10T17:37:06.000Z","updated_at":"2024-12-30T14:41:05.000Z","dependencies_parsed_at":"2024-11-25T01:24:38.615Z","dependency_job_id":"df8a3a12-b127-4e72-9de7-b7f03cb85f9e","html_url":"https://github.com/masterPlusTer/esp32-s3-GEEK-micropython","commit_stats":null,"previous_names":["masterpluster/esp32-s3-geek","masterpluster/esp32-s3-geek-micropython-","masterpluster/esp32-s3-geek-micropython"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Fesp32-s3-GEEK-micropython","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Fesp32-s3-GEEK-micropython/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Fesp32-s3-GEEK-micropython/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterPlusTer%2Fesp32-s3-GEEK-micropython/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masterPlusTer","download_url":"https://codeload.github.com/masterPlusTer/esp32-s3-GEEK-micropython/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246145016,"owners_count":20730493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","esp32s3","micropython","waveshare"],"created_at":"2024-12-09T05:05:47.733Z","updated_at":"2026-04-18T02:31:58.898Z","avatar_url":"https://github.com/masterPlusTer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"intentando incluir todo lo necesario para poder controlar el esp32-s3-geek. \n\nHasta ahora estoy trabajando en la parte del display, ya hay una interface novato friendly para empezar a dibujar formas , figuras y escribir texto.\n\nHe logrado corregir el temita de los colores, por algun motivo el codigo de ejemplo proporcionado por Waveshare venia con el display inicializado en BRG ( si, no es un typo, BRG, primero azul, luego rojo y luego verde) yo no se si esto fue por un error o si habia detras una intencion muy bien orquestada para dominarnos a todos, quizas sea lo segundo pero era muy incomodo trabajar con los colores asi, ademas me parecia un desperdicio de recursos tener que estar convirtiendo a nivel de bits cada vez que habia que hacer algo con los colores, entonces aqui esta, RGB como Dios manda.\n\neste dispositivo es muy vistoso pero programarlo es una pesadilla, y lo que funciona en micropython no funciona en circuitpython y se hace imposible integrar en un unico programa todo lo que el esp32s3-geek tiene para ofrecer.\n\n\nTO DO LIST:\nmi intencion es agregar modulos para trabajar con la conectividad wifi y bluetooth y quizas tambien integrar un modulo para trabajar con la tarjeta SD aunque no prometo nada porque ya he estado intentandolo por todos los medios y no hay con que darle...\npor ahora esto es lo que hay. \nme voy a poner a adaptar esto mismo para circuit python ya que alli quizas si sea posible mostrar en el display datos de la sd ... en fin...\nen principio con descargar todo este paquete y subirlo a la raiz del esp32-s3-geek en micropython deberia funcionar.\n\nEn el main.py hay varios ejemplos de funciones posibles , descomenta y comenta lineas y mira lo que pasa, ademas hay un intento de documentacion mas abajo.... \nesto esta en construccion, sepan disculpar el desorden...\n\n################################################################################################################################################################\n\n\n# Librería para el Control de Pantalla en ESP32-S3-GEEK\n\nEsta librería ha sido desarrollada para controlar la pantalla, dibujar gráficos y escribir texto en el dispositivo ESP32-S3-GEEK utilizando el lenguaje de programación MicroPython. A continuación, se explica el uso de cada módulo y sus funciones.\n\n## Módulos Importados\nLa librería se divide en varios módulos principales:\n\n### 1. `display`\nEste módulo maneja la inicialización y configuración de la pantalla del ESP32-S3-GEEK.\n\n- **`init_display()`**: Inicializa el display. Debe llamarse antes de cualquier otra operación en la pantalla.\n- **`fill_screen(color)`**: Llena toda la pantalla con un color dado. El color debe proporcionarse en formato RGB565.\n- **`set_rotation(rotation)`**: Configura la rotación de la pantalla. Los valores posibles son 0 (normal), 1 (90 grados), 2 (180 grados) y 3 (270 grados).\n\n### 2. `draw`\nEste módulo proporciona funciones para dibujar en la pantalla, como píxeles, líneas, círculos y polígonos.\n\n- **`draw_pixel(x, y, color)`**: Dibuja un píxel en las coordenadas `(x, y)` con el color especificado en formato RGB565.\n- **`draw_line(x0, y0, x1, y1, color)`**: Dibuja una línea entre los puntos `(x0, y0)` y `(x1, y1)` con el color especificado en formato RGB565.\n- **`draw_rectangle(x0, y0, x1, y1, color, filled=False)`**: Dibuja un rectángulo. Si `filled=True`, el rectángulo se rellena con el color dado.\n- **`draw_circle(x, y, radius, color, filled=False)`**: Dibuja un círculo. Si `filled=True`, el círculo se rellena con el color dado.\n- **`draw_polygon(color, filled=False, *vertices)`**: Dibuja un polígono usando una lista de vértices. Si `filled=True`, el polígono se rellena.\n\n### 3. `write`\nEste módulo proporciona funciones para escribir texto en la pantalla.\n\n- **`text(x, y, text, color, bg_color, size=8)`**: Dibuja un texto en la posición `(x, y)` usando la fuente especificada. El tamaño de la fuente puede ajustarse a 8x8, 10x10 o 12x12, con un valor predeterminado de 8x8.\n\n### 4. `image`\nEste módulo permite mostrar imágenes BMP en la pantalla.\n\n- **`show_bmp(file_path, x_offset=0, y_offset=0)`**: Muestra un archivo BMP en la pantalla. El archivo BMP debe estar en formato de 24 bits (RGB888). Los valores `x_offset` y `y_offset` permiten ajustar la posición de la imagen en la pantalla.\n\n## Uso Básico\n### Inicialización de la Pantalla\nAntes de comenzar a dibujar, debemos inicializar la pantalla y configurarla:\n```python\nimport display\n\n# Inicializar el display\ndisplay.init_display()\n\n# Llenar la pantalla con un color (azul en este caso)\ndisplay.fill_screen(0b0000000000011111)  # Color azul (RGB565)\n```\n\n### Configuración de Colores\nLos colores deben ser especificados en formato RGB565 (5 bits para el rojo, 6 bits para el verde y 5 bits para el azul). Ejemplo:\n```python\nred = 0b1111100000000000    # Rojo puro\ngreen = 0b0000011111100000  # Verde puro\nblue = 0b0000000000011111   # Azul puro\nyellow = 0b1111111111100000 # Amarillo\nblack = 0b0000000000000000  # Negro\nwhite = 0b1111111111111111  # Blanco\n```\n\n### Dibujar en la Pantalla\nUsamos el módulo `draw` para dibujar formas como píxeles, líneas, rectángulos, círculos y polígonos:\n```python\nimport draw\n\n# Dibujar píxeles en la pantalla\ndraw.draw_pixel(134, 0, red)  # Esquina superior derecha\ndraw.draw_pixel(120, 150, blue)  # Un punto en el medio\n```\n\n### Escribir Texto\nEl módulo `write` se utiliza para escribir texto en la pantalla:\n```python\nimport write\n\n# Escribir texto en la pantalla\nwrite.text(10, 20, 'Hola Mundo!', white, black)\n```\n\n### Mostrar una Imagen BMP\nPara mostrar una imagen BMP en la pantalla, usamos el módulo `image`:\n```python\nimport image\n\n# Mostrar una imagen BMP desde un archivo\nimage.show_bmp('/ESP32-S3-GEEK.bmp', x_offset=0, y_offset=0)\n```\n\n## Fuentes de Texto\nLa librería incluye tres tamaños de fuente (8x8, 10x10 y 12x12). El tamaño de la fuente puede especificarse en la función `write.text` utilizando el parámetro `size`. El valor predeterminado es 8x8, pero puede configurarse como 10x10 o 12x12 para un texto más grande:\n```python\nwrite.text(10, 60, 'Texto 10x10', white, black, size=10)\nwrite.text(10, 100, 'Texto 12x12', white, black, size=12)\n```\n\n## Conclusión\nEsta librería permite controlar la pantalla del ESP32-S3-GEEK de manera sencilla, ofreciendo herramientas para dibujar gráficos y mostrar texto con diferentes fuentes y tamaños. Es útil para proyectos interactivos donde se necesita una interfaz visual con gráficos y texto.\n\n## Archivos del Proyecto\nLos archivos que debes incluir en tu proyecto son:\n- `display.py`: Controla la pantalla y sus configuraciones.\n- `draw.py`: Funciones para dibujar en la pantalla.\n- `write.py`: Funciones para escribir texto en la pantalla.\n- `image.py`: Función para mostrar imágenes BMP en la pantalla.\n\n\n\n# Conectividad del ESP32-S3-GEEK\n\nel modulo connectivity.py  abarca wifi, blutooth y ESP - NOW\nIMPORTANTE wifi y ESP NOW comparten la misma antena, por lo cual se generan conflictos al intentar inicializar ambos protocolos y no funciona ni el uno ni el otro\nESP - NOW puede ser usado simultaneamente con bluetooth sin problemas ( I think ) todavia estoy trabajando en el desarrollo de este modulo.\n\n\n## he incluido un ejemplo de interface interfaceUI.py\n\n\nrecuerda que la orientacion se configura con display.set_rotation() y acepta parametros del 0 al 3\n\n\n\n![IMG_1882](https://github.com/user-attachments/assets/df68ff27-4022-4d0e-901a-21abf9b9b07e)\n![IMG_1881](https://github.com/user-attachments/assets/cd6c3893-b11c-4a10-a58c-c938ec3d052f)\n![IMG_1879](https://github.com/user-attachments/assets/e176c2e7-3a4a-4ce4-924d-26effd9efd2a)\n![IMG_1878](https://github.com/user-attachments/assets/de036cd3-ae57-4a32-ad78-3d5947d1dcdc)\n\n\n\n\n\n\n¡Disfruta programando tu ESP32-S3-GEEK!\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterpluster%2Fesp32-s3-geek-micropython","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasterpluster%2Fesp32-s3-geek-micropython","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterpluster%2Fesp32-s3-geek-micropython/lists"}