Inspiration
This project was inspired by the team’s desire to educate more people, especially in middle and high school, about how data works but in a manner that was both fun and self paced. The team also wanted to use this as an opportunity to learn how bits flow--that concept either very complex (if you look at each individual bit) or too broad (if you just glance at it abstractly as a whole). This project combined both basic bit components and abstract concepts for an overall simpler idea that is easy to understand.
What it does
Our team has designed an interactive device which aims to teach the user about how data is stored, transferred, and used in a computer. The two major components are a web app and a physical simulation environment. In the web app, the user can pick from a variety of tutorials for different activities and while they follow along they can enter binary to successfully manipulate their physical LED array. The data is then sent to a Raspberry Pi, creating a signal in a similar manner to a computer’s CPU. This illustrates the process of data transfer at a much slower speed for user observance in real time. The data is then sent to the second major component, the LED array, which represents the data’s feedback and storage. As the name suggests, the LED array is a circuit board with varied LEDs so the user can see the results of the different commands they enter.
How we built it
Though it is one device, each person had one component they focused on and how they built each component is detailed below:
Colb focused primarily on the hardware simulator. He had a background from EECS281 (shout out to Professor Evren) which is a logic design and computer organization course. He started by reviewing and expanding on knowledge from that course in the hopes of finding an aspect of computing that could serve as a good learning platform for the project and settled on memory. He found that appropriate because memory can be written to and read from--this would allow the user to enter data and then see physical changes they have made. Next he sketched out general designs including shift registers, static random access memory (SRAM), binary counters, and assorted logic gates. He spent some time researching integrated circuits that would be accessible during the hackathon and selected appropriate parts. The final stage was drawing schematics, prototyping them on a breadboard and finally testing and validating to confirm that the circuit built matched the design.
Harry focused primarily on the web app itself and the communications between all devices over the internet. He started by creating a Linode MERN instance and connected it to a domain from Domain.com. Next he set up socket.io to allow the devices to communicate with each other. The final step was creating the web app and linking it to the existing communication systems. While this may not sound like much, a great deal of his time was spent learning how to code on the devices--they weren’t just a different language, but a different way of thinking.
Quang focused primarily on the Python programming aspect of the project. He coded the algorithm for the LED matrix to receive bits from the web page and physically turn the LEDs on. He also coded the algorithm to harvest the data from the webpage and put it bit by bit into Colb’s hardware simulator, which materialized the flow of bits for the user.
Challenges we ran into
One of the biggest challenges of this project was collaboration between team members--everyone had their own part they specialized in but they all had to be able to snap together and work synergistically in the end product. Other device related challenges include limited parts (design constraint), code errors, and prototyping simple examples of what happens inside computers.
Log in or sign up for Devpost to join the conversation.