Week 17:Applications and Implications

May 23, 2024

Project Document

What will it do?

The project “ToGO: Find Your Path” is an interactive and educational tool designed to teach algorithmic thinking and problem-solving skills. It involves a game where users place physical cubes on a board to find the shortest path from a starting point to a finishing point. The game uses ArUco markers for cube recognition and provides real-time feedback via a web interface, making it an engaging way to learn about algorithms.

Who’s done what beforehand?

Robot Garden Project Focus: Computational thinking and programming logic. Description: A multi-robot system with robot flowers, sheep, and ducks. It uses LEDs and pouch motors to visualize algorithms like BFS, DFS, and graph coloring. The garden integrates rapid design and fabrication technologies with distributed systems software techniques, emphasizing human-computer interaction through a simple graphical interface.

Anki Cozmo Focus: Cognitive robotics and AI. Description: A robot toy with built-in AI algorithms, primarily using vision for sensing. It includes capabilities like face and object recognition, map building, and path planning.

Blinks Focus: Algorithmic principles and puzzle gameplay. Description: A puzzle gameplay system that demonstrates algorithmic principles through interactive play using magnetic, hexagonal programmable tiles.

These examples highlight the innovative approaches in the field of educational tools and games, providing valuable context for the “ToGO: Find Your Path” project.

What will you design ?

I will design an interactive pathfinding game called “ToGO: Find Your Path,” which includes the following components:

Physical Game Board: A 10x10 grid board equipped with sensors and LEDs to interact with the game cubes and provide real-time feedback.

Game Cubes: Each cube will have an embedded ESP32 microcontroller, LEDs, an OLED display, and ArUco markers for identification. These cubes will be placed on the game board to create the path from the starting point to the finishing point.

Embedded Systems: Custom-designed PCBs and electronic circuits to integrate all components, ensuring seamless communication between the cubes, the game board, and the web interface.

Web Interface: A web-based application that allows users to monitor and control the game board in real-time, providing an additional layer of interaction and educational content.

Software and Algorithms: Development of algorithms for ArUco marker recognition, shortest pathfinding, and network communication between the Raspberry Pi and ESP32 microcontrollers. The software will also handle the game’s logic and provide a user-friendly interface.

This design aims to create an engaging and educational tool for teaching algorithmic thinking and problem-solving, with a strong emphasis on Human-Computer Interaction (HCI).

What materials and components will be used?

Cube Components:

ESP32-C3 Microcontroller: To handle the operations and communications of each cube. WS2812B SMD RGB LEDs: For visual feedback and interactive lighting. OLED Display (0.96"): To display information such as game instructions and status. Tactile Button: For user input and interaction with the game. SMD LEDs: Additional indicators for cube status. Capacitors and Resistors: For stabilizing power supply and controlling current to LEDs and other components. LiPo Battery (3.7V, 1000mAh): To power the cube’s electronics. Step-Up Voltage Converter: To boost the voltage from the LiPo battery to the required level for the components. PCB (Printed Circuit Board): Custom-designed for mounting and connecting electronic components.

Board Components:

Raspberry Pi 4: The central processing unit for the project, managing overall game logic and communication. Raspberry Pi Camera Module 2: For capturing images and recognizing ArUco markers on the cubes. WS2812B Addressable LED Strip: For visual feedback on the game board. Power Supply Units: To provide consistent power to the Raspberry Pi, LEDs, and other components.

Other Materials:

20mm x 20mm Sigma Profile: For constructing the game board frame, providing a sturdy and modular structure. Plexiglass Sheets: For the base and surfaces of the game board, ensuring durability and a smooth finish. Screws and Nuts: To assemble the sigma profiles and plexiglass components securely. Connecting Wires and Cables: For connecting various electronic components and ensuring stable communication and power distribution. Power Cables: To connect and power the LED strips and other components. Adhesives and Fasteners: For assembling and securing the physical components.

Where will the materials and components come from?

The materials and components for the ToGO project will be sourced from:

School’s FabLab: Utilizing 3D printers, laser cutters, and other available equipment to fabricate custom parts. Local Electronics Stores: Common components like resistors, capacitors, and wires. Online Retailers: Specialized components such as ESP32 microcontrollers, WS2812B LEDs, and OLED displays from sources like Amazon, Adafruit, and SparkFun. Local Hardware Stores: Materials for the game board, including sigma profiles, plexiglass sheets, screws, and nuts. Electronics Suppliers: Key components like the Raspberry Pi and camera module from suppliers like Digi-Key or Mouser.

Bill of Materials (BOM)

Cube Components

Component Quantity Cost per Unit (USD) Total Cost (USD) Source
ESP32-C3 Microcontroller 1 $5 $5 Samm
WS2812B SMD RGB LEDs 1 $1 $1 Robolink
OLED Display (0.96") 1 $7 $7 Robotistan
Tactile Button 1 $0.50 $0.50 Digikey
SMD LEDs 3 $0.20 $0.60 Digi-Key
Capacitors and Resistors 5 $0.10 $0.50 Digikey
LiPo Battery (3.7V, 1000mAh) 1 $8 $8 Pilburada
Step-Up Voltage Converter 1 $3 $3 Pihut
PCB (Printed Circuit Board) 1 $5 $5 Direnc

Total Cost for One Cube: $30

Board Components

Component Quantity Cost per Unit (USD) Total Cost (USD) Source
Raspberry Pi 4 1 $35 $35 Samm
Raspberry Pi Camera Module 2 1 $25 $25 Samm
Raspberry Pi SD Card 16GB 1 $5 $5 Samm
WS2812B Addressable LED Strip 1 $10 $10 Robotistan
Power Supply Units 1 $15 $15 Ledfon

Total Cost for Board Components: $85

Other Materials

Component Quantity Cost per Unit (USD) Total Cost (USD) Source
20mm x 20mm Sigma Profile 4 meters $20 $20 Robolink
Plexiglass Sheets 1 sheet $10 $10 Pleksi
Screws and Nuts 1 pack $5 $5 Robolink
Connecting Wires and Cables 1 pack $5 $5 [Robolink](https://www.robolinkmarket.com/ara?q=20awg%20kablo
Power Cables 1 pack $2 $2 Robolink
Adhesives and Fasteners 1 pack $5 $5 Hepsiburada

Total Cost for Other Materials: $50

Total Estimated Cost: $165

What parts and systems will be made?

For the ToGO project, the following parts and systems will be created: Cube Components:

Custom PCBs: Designed and fabricated to integrate all electronic components within each cube. 3D Printed Cube Housing: Custom-designed enclosures with magnetic covers for quick access. The design ensures users only see the OLED display and not the internal electronics. Openings are included for LED light diffusion, and all surfaces are equipped with ArUco markers. Embedded Systems: Each cube will include an ESP32-C3 microcontroller, LEDs, OLED display, tactile button, LiPo battery, and a step-up voltage converter.

Game Board:

Physical Board Structure: Constructed using 20mm x 20mm sigma profiles and plexiglass sheets for a sturdy, robust, and visually appealing design. Integrated LED System: WS2812B addressable LED strips embedded in the board to provide visual feedback and enhance the interactive experience. LED Holders: 3D printed holders developed to ensure each LED reflects light uniformly and is securely positioned on the board. Camera Module: Mounted on the board to capture images and recognize ArUco markers on the cubes for real-time interaction.

Software and Algorithms:

Pathfinding Algorithms: Developed to compute the shortest path on the game board using algorithms like BFS and DFS. ArUco Marker Recognition: Implemented using OpenCV to detect and identify markers on the cubes. Web Interface: A Flask-based web application to monitor and control the game, providing users with an intuitive and interactive experience. Network Communication: Established between the Raspberry Pi and the ESP32 microcontrollers in the cubes to facilitate data exchange and control signals.

System Integration:

Power Management: Designed to ensure stable and efficient power distribution to all components, including the use of LiPo batteries and step-up converters. Communication Protocols: Implemented to manage data transfer between the cubes, the game board, and the web interface.

These parts and systems will come together to create a cohesive and interactive educational tool aimed at teaching algorithmic thinking and problem-solving through hands-on, tangible experiences. The cube design allows for quick access and modification, while the robust sigma profile board ensures durability and easy assembly and disassembly.

What processes will be used?

The ToGO project will utilize a variety of processes to design, fabricate, and assemble the components: Design Processes:

2D and 3D Design: Software: Onshape: For designing the cube housings and related components. Fusion 360: For designing and assembling the game board structure. Prototyping: Iterative design and prototyping to refine the components based on functionality and user feedback.

Fabrication Processes:

3D Printing: Components: Cube housings, LED holders, and other custom parts. Machines: Utilization of 3D printers available in the school’s FabLab to create durable and precise components.

Laser Cutting: Components: Plexiglass sheets for the base and surfaces of the game board. Machines: Laser cutters in the FabLab to ensure accurate and clean cuts.

PCB Manufacturing: Design: Using KiCad to design the PCBs for the cubes. Fabrication: Using a Roland SRM-20 milling machine with the ModsProject online program to fabricate the PCBs. Assembly: Soldering electronic components onto the PCBs.

Assembly Processes:

Mechanical Assembly: Processes: Assembling the sigma profile structure, attaching plexiglass sheets, and integrating 3D printed components. Tools: Screwdrivers, wrenches, and other hand tools to secure the components together.

Electronic Assembly: Processes: Soldering components, connecting wires and cables, and integrating power supplies. Tools: Soldering iron, multimeter, and other electronic assembly tools.

Programming and Integration:

Software Development: Processes: Python: For ArUco marker detection and algorithm development. Arduino C: For programming the ESP32 microcontrollers. Flask: For communication between the ESP32 and Raspberry Pi camera. HTML, CSS, JavaScript: For developing the web interface. Testing: Extensive testing and debugging to ensure functionality and user experience.

System Integration: Processes: Integrating all hardware and software components to ensure seamless operation. Testing: Extensive testing and debugging to ensure functionality, reliability, and user experience.

Project Management and Problem-Solving:

Completing a project of this scale requires disciplined project management and adherence to timelines. Throughout the process, numerous challenges and errors will arise, and resolving these issues will constitute a significant portion of the work. This experience underscores the importance of meticulous planning, systematic troubleshooting, and iterative improvements to achieve a successful outcome.

By employing these processes, the ToGO project will bring together various disciplines, including mechanical design, electronics, software development, and system integration, to create a comprehensive and functional educational tool.

What questions need to be answered?

For the Fab Academy project “ToGO,” the following questions need to be addressed to ensure its successful completion and functionality:

Technical Feasibility: How accurate and reliable is the ArUco marker recognition system under various lighting conditions? How effective and fast are the pathfinding algorithms (such as BFS, DFS) in computing the shortest path? Is the communication between the Raspberry Pi and the ESP32 microcontrollers stable and efficient? How can multithreading optimization be improved to enhance overall system performance? How can synchronization between the LEDs on the board and the cubes be improved for clearer and more precise operation?

Design and Usability: Are the 3D printed cube housings and LED holders durable and user-friendly? Do the magnetic covers on the cubes provide easy access while securely holding the components? How intuitive and engaging is the web interface for users, particularly students? How can the cubes be further miniaturized while maintaining functionality and durability?

Integration and Assembly: How well do the components fit together, and are there any assembly challenges? Is the sigma profile structure of the game board robust enough to withstand regular use and handling? How easy is it to disassemble and reassemble the components for maintenance or updates? Can the game boards be designed to magnetically connect for larger, more complex setups?

Power Management: Are the LiPo batteries providing sufficient power for the cubes, and how long is their operational duration? Is the step-up voltage converter effectively maintaining the required voltage levels for the components? Can both the Raspberry Pi and LED strip adapters (one 5V 3A and the other 5V 2A) be managed with a single cable for better efficiency?

Educational Value: Are students able to understand and apply the algorithmic concepts being taught through the game? How effective is the game in improving students’ problem-solving and critical thinking skills? How can the ToGO project be adapted for different K-12 grade levels to ensure it is educational and engaging for all students?

Scalability and Extensibility: Can the system be scaled up to include more cubes or a larger game board without significant modifications? How easy is it to update the software or hardware components to incorporate new features or improvements? Can the boards and cubes be used as a programming interface for teaching and simulating algorithms like DFS, BFS, and A*? How can additional sensors be integrated into the cubes for future enhancements?

Testing and Debugging: What common issues or bugs are encountered during testing, and how can they be systematically resolved? How effective are the testing protocols in ensuring the reliability and performance of the system?

How will it be evaluated?

The ToGO project will be evaluated based on several criteria to ensure it meets its educational and technical objectives:

Functionality: ArUco Marker Recognition: The accuracy and reliability of detecting and identifying ArUco markers on the cubes. Pathfinding Algorithms: The effectiveness and efficiency of the algorithms in computing the shortest path. Communication Stability: The stability and efficiency of communication between the Raspberry Pi and ESP32 microcontrollers.

Design and Usability: Durability: The robustness and durability of the 3D printed cube housings and LED holders. Ease of Use: How easy it is for users to interact with the cubes and game board, including the magnetic covers and quick access features. User Interface: The intuitiveness and engagement level of the web interface for students and educators.

Integration and Assembly: Component Fit: How well the components fit together and the ease of assembly and disassembly. Board Structure: The robustness of the sigma profile structure of the game board and its ability to withstand regular use.

Power Management: Battery Life: The operational duration of the LiPo batteries in the cubes. Voltage Stability: The effectiveness of the step-up voltage converter in maintaining required voltage levels. Single Cable Management: The efficiency and practicality of managing both the Raspberry Pi and LED strip adapters with a single cable.

Educational Value: Concept Understanding: The extent to which students are able to understand and apply algorithmic concepts through the game. Skill Improvement: The effectiveness of the game in improving students’ problem-solving and critical thinking skills. Adaptability: The ability to adapt the game for different K-12 grade levels and its educational impact across various age groups.

Scalability and Extensibility: System Scalability: The ease with which the system can be scaled up to include more cubes or a larger game board. Feature Updates: The ability to update software or hardware components to incorporate new features or improvements. Additional Sensors: The potential for integrating additional sensors into the cubes for future enhancements.

Testing and Debugging: Issue Resolution: The identification and resolution of common issues or bugs encountered during testing. Reliability: The overall reliability and performance of the system under various conditions.