DIY Wristwhirl inspired smartwatch project log - Page 1
Forum section: electronics / projects

author: ITman496
author_rank: Regular Contributor
timestamp: December 07, 2016, 12:17:58 am
content: Figure I should get this thread started, hopefully it motivates me to make progress!For background: I've always wanted to make a smart watch. It just seemed like a fun exercise in wearable electronics and low power and compact stuff. But I always thought interfacing with them took both hands so what's the point? But then I saw WristWhirl on hackaday and that made me.. really want to do that. So here I go.Wristwhirl reference:http://xingdongyang.net/papers/Wristwhirl.pdfhttp://hackaday.com/2016/11/26/controlling-this-smartwatch-is-all-in-the-wrist/This thread is going to serve as my build log, hopefully also to get help from you wonderful people, and also as my to-do list. So it's going to be pretty rough, and updated a lot. I will post experiments and things I build as I build them.My goals for now are simple, but I eventually want to achieve something refined. For now, the rough list of milestones is:Wrist angle sense:-Get an IR emitter/photo-diode setup to function on a breadboard, period, using identical LTR- 301 and LTE-302 parts.-Get multiple IR sensors to function next to each other on a breadboard using identical LTR- 301 and LTE-302 parts.-Get 12 sensors and try to replicate the setup in the Wristwhirl paper, try and generate a reading of my wrist angle, using identical LTR- 301 and LTE-302 parts.-Test smaller SMD sensors that I have located that in theory should work even better then the LTR/LTE sensors. (VSMB2948SL and VEMD2023SLX01)-Test new sensors in a 12 sensor ring, try to sense wrist angle.One of the questions I have to answer is if I will sense all of them at the same time, or will I have to stagger the sensing so light does not contaminate neighboring sensors.Another thing I want to try is to pulse the IR emitters on and off and take several readings with them running and not, to get an ambient IR reading to subtract from the result so that in theory, sunlight or a dark room should automatically be compensated for on the fly.Pinch detection sense: (or some other gesture to trigger things that I can't think of at the moment)They appear to use a piezo sensor from Sparkfun (https://www.sparkfun.com/products/9198) against the spin in a special spot to sense pinching. I have no idea how that works, but I do have a digital scope so we'll see, eh?-sense pinching via piezo sensor on wrist-attempt to figure out how to differentiate pinching from typing or doing day to day activities (surely there is a way, right?)Once those two things are working properly, I will move onto the actual smartwatch bits.-Bluetooth communication with an android phone to get information and control things.-Read a accelerometer/gyro/magnetometer chip to determine if I'm trying to look at the watch and wake it up, act as a pedometer, whatever.-OLED screen (possibly the color 128x128 pixel one from Adafruit?https://www.adafruit.com/products/1431)-Integrate a nrf24l01 setup to allow easy diy control of things I make from the watch without having to deal with Bluetooth protocols.-Flashlight?And finally...Making it actually useful:-Start to try and make everything low power-Shrink everything onto custom pcbs and start to make it into an actual wearable-Investigate flat flex from itead?

author: ITman496
author_rank: Regular Contributor
timestamp: December 07, 2016, 05:25:36 am
content: First update! And I already have questions. What is the best photo transistor circuit? It seems like there is a bunch of them. What are the pros and cons to each kind?This one seems good. It reads within 4-5cm and has a decent range of measurement, from around 160 on the adc to 750. However, a flashlight nearby absolutely floods the thing out. Might be a drawback to these clear, not filtered sensors. My point still stands, is there a better circuit for this?And here is the code:Code://led distance sensor read testint irled = 10;int ptrans = A0;int distanceread = 0;void setup() {pinMode(irled,OUTPUT); //set irled to outputpinMode(ptrans,INPUT); //set photo transistor to inputSerial.begin(57600);digitalWrite(irled,HIGH); //turn on ir led}void loop() {delay(100); //slow down measurementsdistanceread = analogRead(ptrans);Serial.print("DISTANCE READING: ");Serial.println(distanceread);}