Author: ekhoffma

Emma’s Status Report (4/12/25)

Emma’s Status Report (4/12/25)

This week, I worked on soldering the Arduino and the new waterproof motors to a solder board. I tested the motors on the solder board to make sure that the speed adjusts according to the Arduino Cloud dashboard.  I also have been fine tuning the 

Emma Hoffman’s Status Report (3/22/25)

Emma Hoffman’s Status Report (3/22/25)

This week, I was able to work on motor control and video streaming. Going into the week, the motor control and video stream were not working together. I spent a long time on Monday debugging the socket server to try and allow us to have 

Emma Status Report (3/15)

Emma Status Report (3/15)

This week, I have spent my time developing the computer interface with Tkinter and the back end connection between the GUI and Raspberry Pi. I am using a socket server to connect the Raspberry Pi and computer, which allows the computer to send commands to the GPIO pins that control the motor, and accept frames from the camera for the live video feed. I decided that the motors would be controlled by a button on the Tkinter. When the user wants to go forward, they would press the turn on button, which turns on the motors. The button is tied to a function in python, that sends a signal to the Raspberry Pi to turn on the GPIO pin connected to that motor. There is a stop button that turns off the motor in a similar fashion. Right now, I have only implemented one motor for testing the connection between the Pi and computer. I implemented the control of the motors before figuring out frame transmission.

For the live video stream, I am running into bugs with the code. At first, the image frames were not getting to the computer. I realized that the client was not sending requests for frames consistently to the Pi, so I created a “Start Live” button on the GUI for testing, that sends requests to the Pi for frames. Then, I was running into an issue where the client would receive one image, then the program would freeze. I was able to debug this and realized that I was only sending one frame on the Pi server end, so I put the frame sending functionality into a loop. Now, there is live streaming from the camera to the computer. The frame rate is significantly better than when we controlled the camera using other methods, which is a big improvement. We were concerned before about the frame rate being too slow, but now we are confident that this frame rate would meet our design requirements (prior to testing). 

There are still bugs in the interface that need to be fixed. Right now the Pi is sending frames well, but it does not get and process requests to change the GPIO pin status. I am still investigating the cause and coming up with a solution. I might need to separate the motor control and live stream onto two port connections, or slow down the frame transmission to recognize other requests. Also, I think the frames being sent are not holding all of the pixels correctly, because the color is not coming through correctly. It makes reds look purple, and the lighting is fairly dark. I will have to edit the client code that accepts the frames to make sure it takes the whole image without stopping short.

Next week, I will continue to try and debug the interface and work with Maddie to integrate the Z direction movement. As a team we are also planning on putting together the above water boat. I am still on schedule, and do not anticipate any risks moving forward. I think that the code will just take some more time to finalize and implement the functionality we desire.

Link to Video of Interface:

https://docs.google.com/videos/d/1ms-IpJHWIhEZ1yQMVdBUI3owfcwymd0b25iK6jW3Zs0/edit?usp=sharing

Emma Hoffman’s Status Report 2/22

Emma Hoffman’s Status Report 2/22

This week I spent time figuring out how to set up the Raspberry Pi. I got the Pi from the ECE inventory but ran into a roadblock when I realized that I needed to upload and customize the OS on the raspberry pi, which required 

Emma Hoffman’s Status Report 2/15

Emma Hoffman’s Status Report 2/15

This week, I worked on finding the materials needed to build the boat. I found a tutorial video of someone using waterproof sealant, window mesh, and foam board to make the boat. He put the foam board together with the sealant to form the boat 

Team Status Report (2/2-2/8)

Team Status Report (2/2-2/8)

The majority of our time this week was spent finalizing and rehearsing the proposal presentation (which Abie killed it presenting!)

Otherwise, we’ve spent some time individually considering the subcomponents that we’re focusing on first. Because we had yet to finalize our microprocessor and camera module(s), we came together near the end of the week to discuss the needs and limitations that we’d each determined for our subcomponents. 

Based on our discussions about data transmission and power supply needs, we determined that the most likely microcontroller would be the Raspberry Pi 5th generation – this part is out of stock in ECE, however, we can reserve the 4th generation, so we’ve put in a request of this part in order to begin working. We plan to discuss in the next two weeks whether we feel the 5th generation is necessary to purchase, or if the 4th meets our needs.

Additionally, we spent time discussing which camera to purchase. We also talked about potentially getting the Sony AI camera but had concerns that autonomous adjustments would negatively affect our map recreation and algorithms. So, we decided to go lower-tech (while still prioritizing resolution and FPS) and plan to purchase the Standard Raspberry Pi Camera Module 3.

Our next priority will be finalizing the design of the boat component, specifically choosing the base so that we have more information about geometry and size.

Emma Hoffman’s Status Report for 2/8

Emma Hoffman’s Status Report for 2/8

This week I investigated how to connect a microcontroller to a laptop wirelessly. The requirements for this connection include streaming live video and transmitting a signal from a keyboard press. I discovered that bluetooth would not be suitable for our needs because bluetooth does not