Wizard Chess
Introduction: Wizard Chess
Wizard Chess is a form of chess originally invented by <PERSON> in Harry Potter and the Sorcerer's Stone. The characters give verbal commands to the chess pieces and they move by magic. Seems impossible right? Not anymore! Using an Arduino Uno, along with an XY plotter, Wizard Chess can be recreated in real life! You can now play a full game of chess using voice commands and the chess pieces will automatically react accordingly.
Created by <PERSON> in association with Berbawy Makers. <PERSON> is an ambitious high schooler looking to study further in computer science with a deep interest in microcontroller and microprocessing technologies
A special thanks to Ms. <PERSON> and her Principles of Engineering class that made this project possible!
Supplies
● Arduino Uno
● Arduino CNC Shield
● HC-05 Bluetooth Module
● 3 x NEMA17 Stepper Motors
● 3 x DRV8825 Stepper Drivers
● 3 x Idler Pulley
● 3 x 20 Tooth 5mm Bore Pulley
● 4 x 8mm by 500mm Linear Rod
● 4 x 8mm by 24mm Linear Bearing
● 2 mm Pitch Timing Belt
● 12V 3A Power Supply (Minimum)
● 32 x 6mm by 2mm Neodymium Disc Magnets
● 12 x M3x6mm screws
● 3 x M3x25mm screws
● 3 x M3 Nuts
● 2 Pin Jumper Caps
● Jumper Cables
● 5V Electromagnet
● 3D Printer (Ender 3 V2 & Prusa Mini Used)
● Caliper
● Wood Glue
● Laser Cutter
● CAD Software (OnShape Used)
● Adobe Illustrator
● 2 x 12" by 24" by 1/4" Plywood
● 2x 12" by 24" by 1/4" Plywood
● Wood Glue
● Sandpaper/Filer
Step 1: Electronics Assembly
After gathering all the materials and tools, start by fixing the CNC shield upon the Arduino. Insert the 3 DRV8825 stepper drivers into the X, Y, and Z labeled sections (Section A remains empty). Be sure to add the heatsinks to the stepper drivers prior to attaching to the CNC shield. Ensure the enable pin on the stepper driver aligns with the enable pin on the CNC shield.
Once all stepper drivers are connected, connect the power supply terminals to the power terminal blocks on the CNC shield and set the VREF values appropriately. The formula to solve for VREF on a DRV8825 is voltage_read * 2 = current_limit. 1000
This formula is different for various drivers, please check your driver's specifications before continuing as too much current will melt the coils and insufficient current will prevent the motor from moving. The current_limit is determined by the stepper motor specifications. Refer to the data sheets for your motors to ensure you do not over-power or under-power the stepper motors. Once the drivers are connected and set, connect the stepper motor cables to the 4 pins allocated. Once again, refer to the data sheet as many manufacturers may have changed the wiring for your stepper motors. Run a sample test program to determine if the stepper motors are connected properly and functioning.
Optional: Install jumper caps to enable micro stepping. (Must increase number of steps in code sample if FULL step is not desired).
Connect the following devices using the wiring below:
Stepper Motors: 4 wires from the stepper driver to the 4 pins located by the stepper driver. Repeat for X Y Z sections.
HC-05: RX -> TX, TX -> RX, VCC -> 5V, GND -> GND
Electromagnet: SIG -> SpnEn, VCC -> 5V, GND -> GND
Use the provided code below to test if all 3 stepper motors are working properly.
//Used to send the number of steps
#define motorXStep 2
#define motorYStep 3
#define motorZStep 4
//Used to determine the directions of the motors (clockwise or counterclockwise)
#define motorXDir 5
#define motorYDir 6
#define motorZDir 7
//Turned to HIGH by default. Recommend attaching a 2 pin jumper cap between EN and GND on the CNC Shield.
#define enableMotors 8
//motorStep = Step Pin on Driver
//steps = Amount of Steps to Travel (200 Steps = 1 Rotation given 1. 226