Scratch Blocks to Python Converter with Pydiode Evaluation
Obo Blocks is a project aimed at easing the transition from visual programming to text-based programming, specifically targeting students and teachers at Roboticgen Academy. This tool enables users to convert programs written in Scratch Blocks into Python code and provides code interpretation using Pydiode. Additionally, it supports micropython extensions for running Python code directly within the web interface.
- Block-to-Code Conversion - Convert Scratch Blocks programs into equivalent Python code.
- Code Modification - Modify generated python code without Backward Compatibility (python to scratch conversion)
- Code Evaluation - Interpret Python code within the platform using Pydiode for instant feedback.
- Micropython Extension - Emulate underlaying hardware for to run micropython code with in platform(With Completion of Coffee Code Research Project)
- Web Driven Code Uploader - Upload generated Code Snippet to generated Code Snippet to ESP32
- Blockly Workspace : Interface for building programs using Scratch Blocks.
- Code Converter : Converts Scratch Blocks programs into Python code.
- Code Interpreter : Executes Python code within the browser environment.
- Code Uploader : Uploads generated code to ESP32 Development Board (MagicBit).
- Error Handler : Handles errors and provides informative messages to users.
Diagram of the components and their communication is shown below:
Obo blocks will only interact with users on desktop-related devices.
- Blockly Workspace: Interface for building programs using Scratch Blocks.
- Code Viewer : Display Python code generated from Scratch Blocks and with read-only
- Output Console: Display execution output and errors when evaluating Python code.
Clone this repository using the following command:
git clone https://github.com/yasanthaniroshan/Obo-blocks.git
Install dependencies:
npm install
Serve the frontend using:
npm run dev
You can access the Obo Blocks platform by opening oboblocks in a web browser.
For detailed documentation, refer to the docs directory.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.