Code Monkey home page Code Monkey logo

vortex-manipulator's Introduction

Vortex Manipulator

Mostly inspired by the wrist device worn by Captain Jack Harkness in Dr Who and Torchwood, hence the name. However the design wandered somewhat from that initial idea so the look is a bit different. This is the idea I started with:

VM

Mine is a little different, I needed more space to do what I want, so it is a bit fatter and it doesn't actually manipulate a time vortex (whatever that is). Instead it has the following functions:

  • Touch screen interface
  • Clock with optional beep and LED flash once a second, plus a function to set the time. It doesn't adjust automatically for daylight savings etc, but there is a UI to set the time manually.
  • Compass
  • Graphics demo
  • Dalek detector
  • Picture gallery (displays pictures from the SD card)
  • Heart rate monitor, including display graph and data log to SD card.
  • Sleep (power save) function, wakes up when the power button is pressed.
  • Notifications board. Messages from a Bluetooth device (eg a phone) display here.

Watch the video

Lots more details here

Hardware consists of a Teensy 3.2 mounted on a custom board the Main Board which contains circuitry for charging the attached LiPo battery when the USB port is connected, and an LSM303 to provide compass and accelerometer functions.

A second ILI9341 custom connector board connects to an ILI9341 touch screen. This board has a touch controller and a connector strip that matches the strip on the side of the main board.

There are some configuration settings stored on the SD card (file is hconfig.txt) which consists of the time zone, low pulse and high pulse rates. The pulse rates are used by the HRM to sound alarms if the pulse is outside that range. The time zone is used for the clock (except it isn't actually used now). The other files on the SD card are bmp files used for the picture gallery. These must be 240x320 images. All of these files are in the SDBackup directory.

Perhaps more importantly it is a development platform. There is plenty of spare capacity in the Teensy and there is still plenty of room in the assembly to add more stuff. The Main Board has connectors to unused pins on the Teensy as well. An example of adding more stuff is the heart rate monitor. I got hold of a better one which uses an I2C interface and, hardware-wise, it was simple to add the extra connections to the SDA and SCL for it, then a bit more programming and the job was done.

The assembly is a mix of leather and a 3D printed frame.

Parts

Those marked with * are all surface mounted (SMD) parts.

Making the Icons

I developed an interesting technique for generating the icons for this project and I put it in its own project.

The SD card

The project uses an SD Card and you'll find a copy of mine in the SDBackup directory. It includes some bmp files which are images displayed by the gallery app, a configuration file calle hconfig.txt and a log file called datalog.txt.

The configuration file is one line: 12,120,150, the 12 was once a timezone but I no longer use that. 120 and 150 are heart rate limits. The display turns green when you pass 120 and red when you pass 150. For me green means I'm in a good exercise zone, but your numbers may be different.

You can add your own bmp files. As long as they are 240x320 BMP format they will display in the gallery. When I export mine from Gimp I use these settings:

Finally the datalog.txt file is a log of heart rates. The first column is a timestamp, then the beats per minute and finally the last interval between beats. It logs this every 10 minutes, the time is set in the setup() method in VortexManipulator.cpp:

intervals.create(10*60*1000L,new HRLogAction()); // 10 minutes

vortex-manipulator's People

Contributors

rogerparkinson avatar

Stargazers

 avatar

Watchers

 avatar  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.