Project Overview: PlottyBot - CodeClubLuxembourg/plottybot-toolkit-web GitHub Wiki
Project Overview: PlottyBot
What it is: PlottyBot is an educational XY plotter designed to be controlled through a combination of Scratch (visual programming language) and a web-based interface. It allows users, especially children and learners, to create drawings and engage with basic coding concepts interactively.
Key Project Components and Progress
-
Layers and Interconnections:
-
Frontend (Scratch Interface): A customized version of Scratch is used to send drawing commands to PlottyBot. When users create lines or shapes, commands are transmitted to the hardware.
-
Backend (Raspberry Pi): The Raspberry Pi acts as the control hub, running essential scripts that handle Scratch commands and execute motor movements accordingly.
-
System Configuration: Key system files (like /etc/rc.local and various setup scripts) configure the Raspberry Pi to boot with the necessary services, manage GPIO for motor control, and enable network connectivity.
-
-
Current Progress on Scratch:
-
Modified Scratch Repositories: The Scratch source is customized with a preloaded plugin that captures drawing commands as XY start and end points, which are then sent to the Raspberry Pi for execution.
-
Deployment Locations:
-
GitHub: Core Scratch modifications are version-controlled on GitHub for collaboration and backup.
-
Linux Server (Nestor): Scratch is also set up on a Linux server named "Nestor," where specific npm versions and dependencies are managed for consistency and compatibility with Scratch’s customization.
-
-
-
Development Environment:
-
Primary Editor: Development primarily takes place on Windows using Visual Studio Code as the IDE.
-
Version Control: GitHub is used to manage multiple repositories, with specific repositories dedicated to different aspects of the PlottyBot setup (e.g., plottybot-driver, plottybot-toolkit-web, plottybot-scratch-bridge).
-
Hardware Control: Raspberry Pi serves as the main controller, interfacing with motor hardware and GPIO through the plottybot-driver and system configuration scripts.
-
-
Hardware and System Configuration:
-
Raspberry Pi: Receives commands via a Python server script and communicates with motor controllers to execute drawing commands.
-
WiFi and Boot Configuration: The system is set to auto-start essential services at boot and can create a local WiFi network for easier connectivity and control access.
-
PlottyBot Repositories: Multiple repositories manage different project layers, such as plottybot-system-files for system configuration and plottybot-toolkit-web for the web interface.
-
Quick Points for Session Continuity:
-
Project Goal: Develop an educational, interactive plotter controllable via Scratch and a web interface.
-
Development Tools: Visual Studio Code on Windows; GitHub for version control.
-
Deployment & Testing: Scratch source and customizations are hosted on a Linux server (Nestor) and Raspberry Pi for hardware interfacing.
-
Current Needs: Assistance in finalizing interconnections, optimizing Scratch commands, or potentially automating parts of the setup.