All of us are taking Georgia Tech’s CS 2110, a class focusing on the fundamentals and organization. It’s pretty different from the introductory CS courses; while intro CS courses specialize in higher level programming languages such as JAVA and Python, CS 2110 touched upon roots like how to do arithmetic with a combination AND, OR, and NOT gates. Lately, we’ve been covering a lot about circuits and we wanted to come up with a way to easily and quickly interact with the circuits we came up with.

What it does

Our service lets anyone with a smartphone take a picture of a digital logic circuit drawn on paper and see a truth table with all possible combinations of inputs. They can also toggle inputs on and off and see the live outputs.

How we built it

We each contributed in huge ways to the project. Sherry handled the front end with an Android app while Daniel worked with opencv to identify the gates and wires in the picture. This was then sent to the logic simulation to generate the truth table, which was then forwarded back to the Android app.

Challenges we ran into

As a group of three, we split up the work evenly, but we had to work very closely with each other in order to get a fully working app completed in time. There was a lot of difficulty in the vision code associated with recognizing and classifying the circuit. Also, some of us being first-time app developers, we were unfamiliar with certain aspects of app development, like communication between the app and backend.

Accomplishments that we're proud of

Creating a workable front end Android application.

Being able to send and receive information (images, JSON objects) to a working backend.

Successfully using OpenCV to recognize different gates as well as wires from one image.

What we learned

How to use OpenCV to recognize details of one image

How to connect a front end to a back end

How to use Flask

Share this project: