In this week, I built an application interface program for my final project.

I was travelling the week of thanksgiving, and didn't get to work on it until the end of this semester, after final project. I didn't have access to my boat/motors while working on it, but I did have both printed circuit boards (transmitter + receiver) available, both of which contained the necessary code to run.

While I couldn't formally test if the program would control the motors as I'd like, I was able to check if commands from my GUI were being received, and if they were able to switch an LED on or off.
The LED is part of my boat. It switches ON whenever the user goes 'u', 'l', or 'r', and OFF otherwise.

I found that communicating with the serial port was dramatically easier over pyserial than over javascript counterparts. I chose to therefore use Flask as my backend, while using an HTML skeleton file with embedded CSS/Javascript.

My code can be found at serial_UI.py, which is attached serial_UI, and at index.html which is supposed to be stored inside a "public" directory. It can be found here

Essentially whenever the user clicks a button, then the event listener OnClick sends the relevant command depending on the button they clicked (whether it's u, l, r, or 0 to stop).
This happens through sendCommand, which calls sendSerialCommand. The command is then sent over wireless radio to the receiver (from the plugged-in transmitter), and a success/failure response is returned from the transmitter to the receiver over serial comm.
Here's a demo of the UI working for an LED, and proving that we can send u/l/r/0 commands and receive a response. The code on the transmitter/receiver boards are identical to what they are in my final project, and have not been changed. Backup video link is here