Zipiao’s Status Report for 4/20

This week, my primary focus was on the software component of our project, where I completed a significant feature: updating the game state based on the detection of new pieces by the hall effect sensors on the physical board. I achieved this through a two-step process involving a Django API, which is activated by our Flask server that handles the movements of the gantry system and monitors the sensors. When a new piece is detected, the API logs an event in our local SQLite database with a ‘consumed=false’ flag. On the front end, AJAX is used to periodically check for these unconsumed records, ensuring that the game state is updated with minimal latency.

This implementation confirms the completion of all major software components, although some minor UI issues remain. These will be addressed next week as we refine the interface for our final demonstration.

In terms of new knowledge acquisition, I found that thoroughly reading electronic component specifications and watching YouTube tutorials on stepper motors were extremely beneficial. This approach not only ensured that our hardware was assembled correctly but also facilitated a quicker practical application of theoretical knowledge.

Zipiao’s Status Report 0406

This week, I made great strides in my capstone project by optimizing the Magomoku game’s software, successfully integrating game logic with the Python-controlled gantry system and hall effect sensor data. I revamped the game state management, replacing the error-prone system with a more reliable JSON-style data structure for tracking game status, staying on track with my project timeline.

Next week, I’ll focus on enhancing the web app, adding user-friendly features like game state change notifications and illegal move alerts. I’ll also improve the UI to include real-time player turns, game history, and support for various game modes, aiming to boost user engagement and experience

Zipiao’s Status Report 3/30

This week, I mainly focused on the assembly as testing of the gantry system. I assembled the two NEMA 17 linear actuators and figured out the connection of the stepper motor, the CNC shield, arduino, and the A4988 motor drivers. I made sure that the actuators are tuned to a status that it can move smoothly. I also fine tuned the arduino code for driving the motors at a decent speed. This job to make sure that the two actuators can operate smoothly is a crucial milestone for us to move forward. We will demonstrate the simple movement of pieces onto the board with one actuator in the demo. The progress is as expected.

I will likely get the gantry work for more delicate control (i.e. moving the x-y gantry from (a, b) to (c,d) next week, and also connecting the interface (software) and route the piece placement to the motors.

 

Zipiao’s Status Report for 3/23

This week, my major contribution to the project is that I finished all the logic regarding the webapp gomoku logic, mainly the algorithmic side. Specifically, I designed the data structure to store the game state, completed the board integrity checks (checking if a move is legal) and the algorithm for checking the winning state using a Breadth First Search approach (for each new piece placed onto the board, a check for the four directions starting from that note (x,y) will be executed and if one of the directions (left_right, top_down, t_left_b_right, t_right_b_left) has >= 5 pieces of the same kind, that colored player will win and the game state will also change accordingly.

By now, the major logic for the software is complete, and the rest of the work will be to connect the arduino module of the hardware to make the move from one of the players and we will call it done for the software side. I would say that this week we have a major progress in the software side. Starting next week, I will start to develop the gantry system that we’ve left over due to the travel emergencies last week. The progress for our webapp is good, the only thing is to catch up with the gantry.

 

 

Zipiao’s Status Report for 3/16

This week, due to some unexpected issues, I was not able to return to the US from the spring break, making it not possible for me to develop the x-y gantry system with the stepper motors. In order to mitigate the situation, I had to reschedule the task so that the intended schedule is not falling behind. This week, I mainly focused on developing the software interface (web app) logic on the PC. I finished kickstarting the Django project, designed and implemented a basic user interface, and developed some basic logic for gomoku controls. Now it is able to place black and white pieces onto a board interchangeably.

Due to unforeseen obstacles, the schedule for this week (which is supposed to be the gantry development), is a bit falling behind. Starting next week, I will continue to develop the software to incorporate a complete game playing logic and start to explore the options to integrate with the hardware using PySerial. I will also use my time to assemble the x-y gantry system.

Zipiao’s Status Report for 3/9

This week, given that our implementation of the piece movement system using magnetic levitation is proven unfeasible, we designed our new solution using electro magnets that can drag the piece along the designated path.

Also, since the stepper motor kits arrived, I started assembling the NEMA 17 linear actuator gantry system. During the assembling process, there are some assembling tools missing, which makes the process a bit behind schedule, but can definitely be caught up in the upcoming week since it’s an easily solvable issue: I need to go to ansys hall to find an electronic screwdriver with enough power to mount end plates to the actuator. Besides that, I completed the process of driving a stepper motor with arduino and A4988 stepper motor driver. Due to the fact that the CNC shield module has not arrived, an integrated testing with 2 stepper motors with x-y gantry system is not feasible at the time.

On the week after spring break, my major task will be to integrate the stepper motor with the x-y gantry. Up on finishing, our team will have a solid basis on controlling the movement system. The rest is just to mount a electro magnet to the top of the xy gantry to make the movement system complete. I will finish assembling the two NEMA 17 linear actuators with stepper motor and experiment with more delicate control of the stepper motor using arduino code that satisfies our criteria for the movement system.

Zipiao’s Status Report for 2/24

This week, our major progress lies in the validation of magnetic levitation. With the commercial & pre-assembled magnetic levitation kit, we are able to successfully lift the magnet (piece) and drag it along the way, proving that the movement, once the piece is on the air floating, is feasible and stable. For interference, we’ve tested and figured out that if the interference is too high (placing lots of stacked magnets close), the floating magnet will be attracted, yet with a single small magnet, it remains stable for a distance. We may want to look deeper into the safe distance and make adjustments accordingly next week.

Schedule wise, we are a bit falling behind due to the delay in receiving the x-y gantry system, as planned from last week. Yet I still read some documentations on controlling the stepper motors with CNC shield module. I will likely get the xy-gantry to move and complete some testing with controlling two stepper motors next week. We will also continue to experiment with the magnetic levitation system to devise a way to stably move pieces in between without interference.

Chiev’s Status Report for 2.17

This week, I made progress on the specs of the xy-gantry system, as planned from last week. Specifically, I figured out the exact hardware needed for making the xy-gantry. Two V-Slot® NEMA 17 Linear Actuator Bundle are needed to form the basis of the x-y gantry. The stepper motors (NEMA 17) are included in the bundle with the track to move a platform in their axis. We only need to assemble the two bundles on top of each other in order to make the system move. Next, we will need two A4988 stepper motor drives that can seamlessly drive the two motors in the bundle. We will need another module CNC shield to act as the interface between our Arduino UNO board and the drives.

My progress remains on track according to the original schedule. Looking ahead to next week, I aim to focus on ordering and testing the movement of the x-y gantry system. I will start exploring the code to control the movement of the two axis. The final goal of this will be to write an Arduino interface program that can precisely control the stepper motor to move to a specific location given the location of the cross on the gomoku board, yet for next week, since we still need time to order and get the hardware, I will set the goal to successfully connect the hardwares (motors, drivers, cnc shield, and arduino uno), and leave the complete interface development to the week later.

Chiev’s Status Report for Feb.10

This week, I made progress on the capstone project by diving deep into the technical aspects of constructing an xy-axis gantry system for maneuvering game pieces on the board. My research led to a detailed implementation plan involving the use of two stepper motors (likely NEMA 17) equipped with actuator sets, which will facilitate the movement of the top-level magnetic levitation kit. These motors will be controlled by stepper motor controllers (A4988) that are, in turn, connected to an Arduino CNC shield module. This module is specifically designed for the Arduino UNO board, enabling precise control over CNC machines. The final piece of the puzzle involves programming an Arduino UNO board to create a control interface, ensuring the gantry can move efficiently from point A to point B.

My progress remains on track according to the original schedule. Looking ahead to next week, I aim to focus on identifying the necessary components for the xy-axis gantry, including the selection of specific SKUs that meet our project’s requirements. This phase will involve thorough investigation into the factors influencing component choice and culminate in the preparation of a comprehensive list of materials alongside a budget estimation. This next step is crucial for moving forward with the project and ensuring that all parts are ordered in a timely manner, keeping us aligned with our project timeline.