Skip to content

Middleware between the web page Scratch_For_Education and Arduino_For_Education. Updates and changes in this fork were made by the TinyCoders team.

License

Notifications You must be signed in to change notification settings

TinyCodersPUJ/Python_For_Education_TinyCoders

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👋 Python for Education 👋

👨‍💻👩‍💻 Proyecto Desarrollado Originalmente por 👨‍💻👩‍💻

Nuevos Cambios Realizados Por:

  • Equpo de TinyCoders: Cambios a la interfaz gráfica de usuario original:
    • Retiro del botón que era usado para instalar las librerias.
    • Flujo de usuario usando únicamente interfaces gráficas.
    • Pantallas de carga para el proceso de creación de los websockets.
    • Pantallas de verificación y terminación de la conexión.
    • Alerta en caso de no poder generar la conexión.

👨‍🏫👩‍🏫 Bajo la dirección de 👨‍🏫👩‍🏫

  • Ing. MsC. Martha Cano Morales
  • Ing. MsC. PhD. Jairo Alberto Hurtado
  • Ing. MsC. Eduardo Mejía Rodríguez

🙋‍♀️ Descripción 🙋‍♀️

Proyecto enfocado en el desarrollo de una plataforma hardware que interactúe con el entorno de programación visual Scratch® a través de sensores y elementos de salida, con fines educativos tecnológicos.

Específicamente este proyecto está enfocado en el código que se ejecuta en el computador que tiene como objetivo ser el intermediario entre el Scratch® modificado y el Arduino UNO, traduciendo los mensajes enviados por este a mensajes del protocolo Firmata para ser intrepetados por el programa de Arduino.

Proyecto desarrollado en el marco del trabajo de grado como un requisito para optar por el título de ingenier@ electrónic@ de la Pontificia Universidad Javeriana, Bogotá, Colombia en el año 2022 por parte de los integrantes del grupo resaltados anteriormente.

💻 Estructura del repositorio 💻

Proyecto basado en el desarrollo realizado por Alan Yoriks en la serie de publicaciones realizadas en su blog Bots in pieces bajo el nombre de Creating a Scratch3 Extension For GPIO Control en varias partes.

El repositorio contiene los distintos archivos desarrollados en Python para realizar la conexion entre el Scratch® modificado y el programa de Arduino. Los archivos principales se encuentran en la carpeta python_for_education fuera de esta carpeta se encuentran los archivos relacionados con la interfaz grafica (imagenes y codigo) y los archivos de licencia correspondiente.

Dentro de la carpeta python_for_education se encuentran los archivos correspondientes a la ejecucion de este programa:

  • El archivo s3a.py es el programa principal.
  • El archivo install.py es un script para la instalacion de las librerias requeridas para la ejecucion del programa principal.
  • El archivo websocket.py es aquel programa que crea la conexion entre el Scratch® modificado y el programa de Python.
  • El archivo backplane.py es aquel archivo que sirve de interconexion entre el WebSocket y el Arduino Gateway.
  • El archivo gateway_base_aio.py es aquel archivo que lleva dentro las funciones que debe ejecutar cada gateway para cada dispositivo de conexion.
  • El archivo arduino_gateway.py es aquel que define las funciones propuestas en el archivo gateway_base_aio.py para el caso del Arduino.
  • La carpeta pymata_express_H4E contiene distintos modulos que definen constantes y estructuras comunes para los demas programas.

La carpeta images contiene las imagenes requeridas en este y los demas archivos de explicacion de este repositorio.

⚒ Funcionamiento ⚒

En la siguiente imagen se presenta una breve explicacion grafica de como los distintos archivos descritos anteriormente se ejecutan para cumplir la funcion de interconectar el Scratch® modificado y el programa de Arduino.

Como bien se puede observar anteriormente, el Scratch® modificado envia sus mensajes a traves del programa websocket.py hacia el backplane.py este direcciona la comunicacion hacia el gateway correspondiente, en este caso el gateway es el programa arduino_gateway.py. Este ya es el punto que envia los mensajes al programa de Arduino a traves del protocolo Firmata.

Ahora bien, la ejecucion de este proyecto ocurre desde el archivo interfaz.py y este a su vez ejecuta el archivo s3a.py. Este dentro de su ejecucion llama los programas backplane.py, websocket.py y arduino_gateway.py. La siguiente imagen presenta este comportamiento de ejecucion.

⚒ Funcionamiento interno ⚒

en la carpeta notes se encuentran distintos archivos de informacion con respecto al funcionamiento y ejecucion de los distintos archivos principales de este proyecto.

  • En el archivo funcionamiento_s3a.md se puede encontrar mayor informacion con respecto al funcionamiento interno del archivo correspondiente y que modificaciones se pueden realizar.
  • En el archivo funcionamiento_websocket.md se puede encontrar mayor informacion con respecto al funcionamiento interno del archivo correspondiente y que modificaciones se pueden realizar.
  • En el archivo funcionamiento_backplane.md se puede encontrar mayor informacion con respecto al funcionamiento interno del archivo correspondiente y que modificaciones se pueden realizar.
  • En el archivo funcionamiento_arduino_gateway.md se puede encontrar mayor informacion con respecto al funcionamiento interno del archivo correspondiente y que modificaciones se pueden realizar.

💿 Creacion ejecutable 💿

Un aspecto importante de este proyecto es la creacion del ejecutable de todo el proyecto. Para esto se realizo una guia que se puede encontrar en el archivo crear_ejecutable.md

📚 Información relevante 📚

Se puede encontrar mayor información con respecto al desarrollo de la extensión OneGPIO desarrollada para Arduino por Alan Yorinks en

  • Scratch 3 OneGPIO Extensions Especificamente en la seccion Preparing Your Computer donde se detalla la instalacion de Python y del paquete S3-extend que es el proyecto desarrollado por Alan Yoriks
    • Cabe resaltar que este paquete que se instala en este tutorial no contiene las mismas funcionales presentes en este proyecto. Para instalar este proyecto, los pasos se encuentran detallados en ⚠ Puesta en marcha ⚠

About

Middleware between the web page Scratch_For_Education and Arduino_For_Education. Updates and changes in this fork were made by the TinyCoders team.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%