Arrakis

Microcontroller Programming & Mechatronic Design

Project Overview

Arrakis (named after the spice planet in Dune) is a touchscreen-controlled mechatronic device that stores up to 10 spices and dispenses precise amounts of each spice according to desired user input.

Upon startup, Arrakis zeros its position by rotating until it hits the limit switch twice. Using the touchscreen, the user selects either a desired spice or a pre-set combination of spices as well as the desired amount and presses “Dispense!”, sending a command of spice position(s) and amount(s) to the machine. For each spice, the motor rotates the spice wheel to the desired position and the solenoid actuates to open the corresponding cartridge and dispense spice. This repeats for the desired amount and number of spices selected by the user.

My Contributions

I was in charge of Arrakis' graphical user interface, which involved designing and programming the touchscreen as well as its integration with the ESP32 microcontroller and the rest of the assembly. I designed a mockup of the GUI layout in Photoshop, then implemented it on a 3.5" TFT LCD touchscreen display with an ILI9488 driver using Arduino C++ code and the TFT_eSPI library. To avoid over-registering touches, I also implemented timer interrupts to add a cooldown for registering successive touches.

In addition, I contributed to integrating the motor, solenoid, and limit switch by programming hardware interrupts and the reading of digital inputs to actuate individual and pairs of components as well as designing the wiring and pinout diagram of the microcontroller.

Project Highlight

Arrakis won the Electronics and Controls award in the Fall 2022 Mechatronics Design class, selected by a panel of judges out of the 30 projects presented!

Introducing... Arrakis!

Touchscreen in development

Demonstrating the spice capsule to spectators on Showcase Day

"I would totally love to use this!"

The Arrakis team