Inspiration
With many choices on projects, and many tracks to move towards, we were overwhelmed... However, after a walk outside, somehow we go to the discussion of Serve Robotics' food delivery bots in major cities. While the bots are helpful in keeping people's bodies fed. We wanted to feed the inner-child in everybody.
What it does
Sqwerty is a robot on 4 wheels, equipped with a water gun and a camera. Through our website, users can enter a crypto token with phantom, solflare, etc. and wait to control and play with Sqwerty through our UI in the browser. Move around, squirt water, and see what Sqwerty sees until your time is up and another person gets the opportunity to play with a new toy. Others can see the person control him as well through a live stream on the website that anybody can access.
How we built it
We took the frame of a elegoo smart car with wheels and dc motors. Then we attached a breadboard for the wiring and connected a Raspberry-pi to be Sqwerty's "brain". He runs servers to read inputs from our website and also runs a server to stream his camera view. Attached to him is a water reservoir made from a can of white sugar-free monster, and with vinyl tubing, fed water to a 5V pump that shoots water out the front of Sqwerty. Our website gives users access to control Sqwerty after submitting a token and gives everybody the ability to see what he is doing.
Challenges we ran into
The most immediate concern to hit us was a limited supply of resources. We were lucky to each bring something to the table, but the lack of objects to use for our project made us become resourceful. While we were grateful to have pretty advanced technology, the tech we did use was very sensitive. There were a few times we had to solder our hardware back together and we had to be very careful considering we were working with water near very open circuits. Implementing the website brought a big challenge with implementing a queue for people to wait in to play with Sqwerty. Typescript is not very good environment to implement a queue with so we ended up using the database with edge functions to create a timed queue. Last, but not least, we had the most trouble with Solana's web3 authentication. Countless times we had trouble finding out just how to incorporate Solana into our project. Then the documents Solana offered had different ways of incorporating it, yet none of them worked for our project. We eventually found a way that works, but it ended up costing us so much time.
Accomplishments that we're proud of
We had our first high moment once we finished the website structure for Sqwerty. While it lacked functionality, just knowing we were one step closer to finishing this project gave us a tremendous boost to our morale. Next day, we had finished building Sqwerty, but it wasn't until we were able to use web sockets to control him that we had a tremendous amount of joy at what we created. Even with bugs, the fact that we had come so far in such short amount of time gave us motivation to truly finish this hackathon strong.
What we learned
We learned through each other different skills and built up what each of us had. Jackson had taught the rest of the group so much about hardware integration and how circuitry can be incorporated into code. Chase had known a lot about databases and brought so much insight on how to use them in a way beyond just storing data. Adrian had brought knowledge of full stack web programming that paved the way for how the website was going to function.
What's next for Sqwerty
Sqwerty has very few real applications as his architecture is a little more crude. However, Sqwerty's mission is to bring joy to others and bring people together. While you can only watch a livestream of what Sqwerty is doing, perhaps in the future we can implement a chatroom and build a community behind him. Of course his body and make-up can be improved upon with other additions for specific purposes, similar to Serve Robotics' food delivery bots.
Built With
- elegoo-v4-smart-car
- nextjs
- pios
- python
- raspberry-pi
- react
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.