While considering what to do for Blairhacks, the day became very dark for one of our teammates because the sun dipped behind the large piles of un-ordered homework on his desk. Although this may be a slight over-exaggeration, , This idea was sparked by a clever idea that one of our teammates had when realizing his desk was cluttered.
What it does
Every time a piece of paper is inserted into the mechanism, a webcam reads the text and associates it with one of the user-defined subjects and key terms. A series of flywheels move the paper to the bin corresponding with the measured subject.
How I built it
We used a Python Open-CV, Pytesseract, and a webcam to read the text on the paper. The distance measurement for the sliding table in the machine utilized an ultrasonic distance sensor which was connected into the Arduino. Then, depending on the difference between the location of the table and the destination, the side motor is run in the corresponding direction. The motors in the system are all controlled through a home made relay board which allows for communication between the Arduino and the relays. The machine itself is made out of home depot paint sticks which are free and study pieces of wood. The machine is powered by a retro-fitted power supply. A Lenovo webcam was situated at the top of the build in order to look onto the paper loading dock. The machine was powered in a combination of Python and Arduino code.
Challenges I ran into
Throughout the design process, this team encountered and overcame numerous challenges. First, the team initially planned to use a Raspberry Pi with openCV, Tesseract, and the other required communication libraries installed. However, the Raspberry Pi had trouble connecting to the internet, and notwithstanding the valiant effort of one team member at 4 am, the Pi was not able to be salvaged in a reasonable amount of time. Therefore, the team switched to an Arduino system which created multiple communication problems between the openCV python code and the Arduino code. This problem was solved through the use of serial ports. Yet another difficulty the team overcame was a difficulty in the relay circuit connections to the breadboard. The relays were very finicky with their connections and the system continually crashed. This problem was solved by using a small among of hot glue to stick the relays in place. Unfortunately for the team, there were some problems that were not solved. Due to the numerous difficulties of building a large mechanical project, some parts of the system were not able to be tested before submission. Also, up to the deadline, the team was fixing small errors with the project. The table movement, for example, was dysfunctional up to the last 9 minutes of the event when the team managed to solve the problem through a change in geometry and the algorithm.
Accomplishments that I'm proud of
We are proud of the design of the machine as well as several aspects of the implementation. We worked hard to bring our ideas into reality. We were able to successfully link multiple parts of our project in the end as well as have generated multiple other aspects (which we ran out of time to implement). We are also proud of the effort we made to complete the project. Our team got a total of ~6 hours of sleep and almost never ventured out of our corner. We believe that our efforts were worthwhile because our product is complex and interesting.
What I learned
Firstly, for the members of our team for whom Blairhacks was their first hackathon, this experience showed them what it means to participate in a hackathon (in a good way). We learned about how to integrate C# with Python with Arduino to create a multi-leveled design. We also learned about the positive effects of caffeinated iced tea on work ethic.
What's next for Sorta Paper
We believe that this technology will be used in a variety of real life scenarios, such as digitizing archives and wider implementation of automated libraries, which are becoming more popular in our time.