Week 11 - Application Interface
-
GUI for controls
This week's project was iterating on my final project, prosthetic arm. While my perfect case scenario includes reading signal from EMG sensors for control, as the work of week 8 shows (input devices), EMG can be pretty tricky, and not so reliable for controls of the robotic hand.
-
Process and Bugs
The video above already shows the resulting control of one finger with the GUI. However, let me cycle back on the process of making.
My biggest reference resource was this Medium post that builds a simple GUI for controlling an LED (only two states to handle). I mainly reuse the code from the article, while adapting it to my microcontroller and application.
This week's project was pretty much only software, so I didn't have much hardware to debug. Some of the interesting observations about the code in my case:- It's pretty easy to adapt the code, the only points to worry about are the pins, serial port. In my case serial port kept changing every once in a while, so I had to retry sometimes if it flipped. For example, it could switch from '/dev/cu.usbmodem14101' to '/dev/cu.usbmodem14100' and back, but not every run, I imagine it has something to do with my computer communicating with microcontroller and establishing new connection.
- While the button code is just on and off, my Arduino code was iterating through rages of motion from 0 to 180 or back, so it was giving a funny bug of twitching (see video on the right) when I was trying to repeatedly press the same button.
-
-
Conclusions
In the future this project could be extended for control of more things, like all fingers, LEDs, or even more complex motions.
Thank you to ChatGPT and Github Copilot for helping me with writeup!