Code Monkey home page Code Monkey logo

control-my-cap's Introduction

CONTROL MY CAP

Learn more about this system on my website: http://www.jeremyblum.com/portfolio/control-my-cap
Watch a video demo of this system: http://www.youtube.com/watch?v=23_6IZ159EQ

These are the open design files for my "Control My Cap" project, which enable crowd control of a high-intensity LED array mounted on my mortar board for my graduation from the Masters in Electrical and Computer Engineering Program at Cornell University.

The system is setup as follows:

  • A mobile-optimized website built using Jquery Mobile UI & a Python/MySQL backend sits on a cloud server.
  • People visit the website and enter a twitter handle or name, plus a color (chosen from a palet).
  • After picking a color, ajax calls are used to pass the information to a python script on the server via JSON messages.
  • The python script on the cloud server adds information about the color request (ID, time, name, twitter_ID, and color) to a MySQL database that resides on the same cloud server.
  • The graduate (that's me) is equipped with a 15V rechargable laptop battery, a high-intensity LED cap fixture, and a Raspberry Pi computer + LCD/button "Pi Plate" (the Wrist Interface)
  • The Wrist interface is strapped to the graduate's wrist, and uses the LCD to show system status. Operation modes can be adjusted with buttons on the unit. The Wrist controller is running Linux Occidentalis v0.2. It also has a Wifi USB dongle, and a USB-Serial Adapter attached.
  • The USB-Serial adapter cable runs up the sleeve from the Wrist Computer to the LED array on the cap to send control commands (the cap runs an ATmega listening for Serial commands).
  • Power runs from the wrist computer to the laptop battery pack where a 5V regulated supply is available.
  • The battery pack is in a small drawstring backpack. It sends power the to wrist interface (5V), and up to the cap (15V).
  • The wrist interface auto-runs a control program on boot. It constantly checks the remote MySQL database, and updates its internal queue when the MySQL database gets updated. The queue is then used to send color commands to the cap. When a new color is received, and it has not been tweeted yet, the wrist computer sends out a tweet and updates the database state variable.

Note: I am opening as many files as I can. Part of my design utilizes firmware and electronics from a another project of mine that I cannot (yet) open source. You can sign up to learn more about it here: http://www.sunnlight.com.

Included Folders and Repo Contents

/3D_printed_cap_holder

These are the 3D-printed design files for the mechanical PCB holder that sits on my head.

/3D_printed_wrist_mount

These are the 3D-printed design files for the wrist-mounting unit. This enclosure houses and protects a Raspberry Pi, as well as an Adafruit LCD Pi-Plate.

/mobile_site

These are the files that power the www.controlmycap.com mobile site. The front end is HTML+CSS+Jquery Mobile UI. It talks to a Python/MySQL backend via JSON AJAX calls.

/wrist_controller

These are the linux scripts that run on the Raspberry Pi that is strapped to my wrist.

License

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Please share improvements or remixes with the community, and attribute me (Jeremy Blum, http://www.jeremyblum.com) when reusing portions of my code. http://creativecommons.org/licenses/by-sa/3.0/deed.en_US

control-my-cap's People

Contributors

sciguy14 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.