Inspiration
We have a bunch of sensors and buttons lying around our desks from previous projects, so we made a tool to use them.
What it does
The Octodragon connects a bunch of sensors to the Dragonboard 410c and processes the inputs to produce easy-to-use update events like "button pressed" and "light level changed to 622". It then sends the events over the internet to a computer where they are processed
How we built it
We started by connecting sensors to the dragonboard and filtering the signals. We then built a web server to listen for events and transmit events from the board to the computer. We then write a UI for users to easily choose what actions each event triggers.
Challenges we ran into
We spent the majority of our time setting up the Dragonboard and connecting it to the wifi. It took a while to figure out that the breakout board had a separate processor that had to be programmed separately from the Dragonboard.
It was also difficult to figure out which ports to use for each sensor. For example, the touch sensor required a port with 5V and didn't work in the 3.3V port.
We had to filter each sensor differently. For the ring buffer, we used a the running average of the light sensor to make a low pass filter. We made state machines to decode and debounce the encoder and detect button presses. We also used a timer to limit the number of updates from the potentiometer.
Accomplishments that we're proud of
We wrote code separately and it worked when we connected everything together. We also utilized many different disciplines like hardware, IOT, and user interfaces.
What we learned
- how to communicate between the 96boards Sensors Mezzanine and the Dragonboard
- how to filter the noisy light sensor signal
- how to start a web server and send strings
- how to make a user interface in python
- how to use multithreading in python
What's next for Octodragon
- Make it easier to add new sensors and buttons to the Dragonboard
- Add a USB interface for situations with no internet
Log in or sign up for Devpost to join the conversation.