Week 13

Goal

For this week, I wanted to develop a front end for my final project.

Development

I decided to use tkinter for its simplicity. One of my goals for the semester was to start leveraging LLMs in my work more. The few attempts I had made had left me disappointed, but I figured for something like this, the LLMs should be very good. I asked ChatGPT. My prompt and its response can be found here. I have some personal issues with the coding style, but it worked pretty well!

I cleaned up the code a little bit to my liking. Then I added a speed-to-delay conversion, using the minimum delay in microseconds I had found in my stepper motor exploration. Finally, I used pyserial to pipe this delay to the dongle (running the main firmware). I left the serial port as a user-supplied argument.

Any time the user changes a value (using the slider, or the text box), a new delay value is written to the dongle over serial. The dongle then sends that values to The Luggage using the nRF24L01+, and the firmware on that side uses the value to set a delay for the stepper controller, thereby setting the speed.

The final product can be found here. Some screenshots:

Screencap 0 Screencap 0

Figure 1

Screencap 1 Screencap 1

Figure 1

Future Work

I wanted to write my final interface in Rust using eframe. Because by the time this week came up I was focusing on my final project, the work fell victim to my demand-side time management of that project. I have included Future Work for most weeks, but for this one, I do intend to circle back to it very soon – just as soon as I integrate the large box for my final project!

Sources