Inspiration

We wanted to explore the capabilities of the new Arduino Uno Q as soon as we heard it was available to us.

What it does

We decided to use the Modulino Movement’s gyroscope to point the Arduino in any direction and see what stars and constellations are visible.

How we built it

This took more complicated math than we imagined. We first determined the yaw, pitch, and roll of the gyroscope then created a 3x3 matrix that would represent the coordinate plane relative to the gyroscope. We then applied this matrix to each star vector in our database, converted the star vectors to 2D, and adjusted their color and radius. We use a WebSocket to send the coordinates of each frame to the frontend.

Challenges we ran into

We had some challenges used the Arduino library, because the documentation is slightly barebones, but we were able to overcome this when we realized that the Arduino Brick, WebUI, is a wrapper for FastAPI, allowing us to fix many of our networking issues. We experienced a ton of latency because we were using REST and polling, but we were able to fix this by switching to a WebSocket which reduced the overhead per frame.

Accomplishments that we're proud of

We are proud of our linear algebra pipeline and our use of the new Arduino tools. We are also proud of our beautiful frontend.

What we learned

We learned how to apply linear algebra to a 3D space to make our calculations more efficient. We also learned how to use the Arduino Uno Q.

What's next for Viewfinder

We were able to run the Viewfinder server on the Arduino wirelessly, but it still needed the wire for power. In the future, we hope to have truly wireless capabilities.

Built With

Share this project:

Updates