Wen Hui’s Status Report for 2/8

This week, I prepared for the proposal presentation and conducted research on answering potential QnA questions. In terms of our project, I conducted research on the different LCDs and compared their specifications.

For each of the components that we are using, I also researched about how to interface with them. We will likely be using I2C for the LCD, GPIO library for the buttons to detect a rising edge and UART to communicate with the block microcontroller. I also researched about the libraries to use for the RPi and ESP32 / Pico in terms of UART, I2C and SPI communication. I decided that we can use Python to write our embedded code on the RPi since there is a RPLCD.i2c, RPGPIO and Pyserial libraries which allows us to interace easily with the components from the RPi. Using Python would allow us to integrate easily with the web application code as well since the backend will be written in Python.

I also wrote the implementation flow for how the embedded devices would communicate with one another.

Pre-Game:

During game:

I also drafted out a top level plan in psuedocode for how the implementation would look like on the RPi in terms of the functions and variables required. The main thing I would need to test out on the RPi would be the reliability of the serial communication with the block microcontroller. Since I am trying to implement serial communication with ACK, my current idea would be for the RPi to send a message to the block microcontroller, wait a certain period of time for an ACK and repeat the sending if nothing has been received. I am not sure if this would be the most reliable way to implement the communication until I test it out.

For the block microcontroller, I did research on both Pico and ESP32 as I was not sure which we will be using yet. For ESP32, we can interface with it using Arduino IDE and it also has a local file storage which allows us to store the block’s work. For Pico, we can load Thonny OS onto it to allow it to run MicroPython. It also has a local file system to store the word from the RPi. If we do use Pico, I will have to do more research into the limitations between using C vs Python on the Pico in terms of functionality and latencies.

I am currently on schedule for my tasks. In the next week, I hope to get started on writing the code for the Rpi after finalizing the parts list and procuring the microcontroller + LCD for the blocks.