Skip to main content

Developing Google Glass application showing the Heart Beat Rate


Wearable Sensors + Google Glass

Wearable sensors  are a lot of fun! I played with them for some time by now, both professionally (at work), and for the coding pleasure. This post is about my latest weekend project - native google glasses app showing heart rate. The idea is to continuously measure hear rate using the sensor and to show pulse rate in real time, for example, while running or exercising. Honestly, I did not find running with Google Glasses to be much fun (as they tend to fell off when I am running), but to see what makes my heart beat faster is an interesting and educational experience.

Google Glass (GG)

Turns out to be a nice piece of hardware that is a fun to work with: reasonably fast processor, Android 4.0.1, wide range of sensors, WiFi, and Bluetooth interface!

Ingredients


Preparation

First step is to set up GDK from Google: https://developers.google.com/glass/develop/gdk/quick-start

Next step to learn how to use GG screen factor and set up glass emulation. It's very straightforward and described in http://stackoverflow.com/questions/18490150/what-is-the-correct-device-definition-for-google-glass-for-a-simulator-in-eclip
  

Cooking

I uploaded google glass gode to GitHub:
https://github.com/leybzon/GlassHeart-master

Serving

I like adding nice graphics on top of my code. For this project, I found a nice heart image on http://wbom.wordpress.com/2012/02/07/a-change-of-heart-that-matters/

Comments

Popular posts from this blog

"Hello World" from Solidity

How to say "Hello World" in the era of blockchain? Reflections Once upon a time, I worked in CTO role of a great startup, and in order to find talented code developers, we ran a competition for the most creative "Hello World" application. It was a lot of fun! I was not able to participate in the competition back then, but here is my delayed entry. Step 1. Environment Configuration # Installing Truffle framework (http://truffleframework.com/) $ sudo npm install -g truffle # Creating project $ mkdir solidity-experiments $ cd solidity-experiments/ $ truffle init # Installing and starting Etherium local test network $ sudo npm install -g ethereumjs-testrpc $ testrpc & Step 2. Point truffle framework to the test network Update truffle.js file created by the init to point to your test network. File content should look like this: module.exports = { networks: { development: { host: "localhost", port: 8545, network_id: "*"

Respect Coin

Respect I think it's time to talk about currency. Let's create a Respect Coin. Step 1. Install OpenZeppelin library  npm install zeppelin-solidity When it comes to coins, I like to use some functions that smart people already implemented and other smart people verified. I think that Zeppelin is a nice collection of Solidity contracts that can be trusted. Let's use the StandardToken contract and use it as a parent class for our own RespectCoin contract. Step 2. Create RespectCoin contract and store it in "contracts/RespectCoin.sol" file  pragma solidity ^0.4.4; import "../node_modules/zeppelin-solidity/contracts/token/StandardToken.sol"; /** * @title RespectCoin * @dev ERC20 Token example, where all tokens are pre-assigned to th e creator. * Note they can later distribute these tokens as they wish using `transfer` and other * `StandardToken` functions. */ contract RespectCoin is StandardToken { string public constant name = &

"Hello World" with counter

Friend of mine pointed out that the "Hello World" contract described in my previous post does not keep state. Reading and writing data to the blockchain is important and can be challenging. In this post I will add a counter to count number of times the sayHello() function was called.    Step 1. Create  a new contract Let's create a file HelloWithCounter.sol and put it into the "contracts" directory. pragma solidity ^0.4.4; contract HelloWithCounter { uint private helloCounter; function Hello() public { // constructor helloCounter = 0; } function sayHello() public returns (string) { helloCounter = helloCounter+1; return strConcat('I say Hello #', uintToString(helloCounter)); } function getHelloCounter() constant public returns (string) { return uintToString(helloCounter); } function uintToString(uint v) internal pure returns (string str) { uint maxlength = 100; bytes memory reversed = new byt