LECTRICAL

Overview

The electrical system provides the movement of the cubes through cube motors that rotate the cube to solve it. It consists of motors (5 cube motors, 3 secondary motors and 1 motor for the rack-and-pinion), motor drivers, and Arduinos.

Electrical Components

Arduino Uno R4 Wifi

We use three Arduino Uno R4s to control the motors. The Arduinos receive commands from the Raspi through Serial input via USB cable. The commands from the Raspi are in the form of a 3-digit integer. The first digit corresponds to the Arduino board ID, the second identifies the motor, and the third digit informs of the direction to rotate.

Cube Motors (NEMA17)

We use NEMA17 motors with mounts and inserts to attach to the cube. We set the basic unit of movement for the cube motors to be a single 90 degree turn, which translates to 200 microsteps for the driver we use.

Secondary Motors (NEMA17)

We use NEMA17 motors for these as well. For the two pulley motors, we use 90 degree turns to move it in and out; for the bottom motor with the lead screw, we use twenty 90 degree turns to bring the bottom cube motor up and down.

Motor Drivers (TB6600)

We use TB6600 drivers to drive our motors, microstepped to 200.

Power Supply

The Raspi derives its power from a power supply (5.1V, 2.5A) and powers the Arduinos. The motors are powered by a 12V, 4A power supply, fed in by the drivers.

Key Design Decisions

Two-motor set up

We started with testing two motors controlled by one Arduino to determine timing and latency. After experimenting with a variety of delay mechanisms in the code, we were able to finalize the delay between microsteps and between the two motors moving.

Five-motor set up

Expanding to 5 motors required adding a second Arduino and communication with the Raspi. In Phase 2 and 3 we iteated on communication protocols (as seen in the software page).

Final wiring

Pictured here is the final wiring setup without the motors pugged in. We use 8 drivers and 2 arduinos that connect to the raspi and the power rail.