Instead of using an app, what if you could send a signal to eye-contact someone you are interested in talking to, in a social setting, even from afar? I'm not proposing a different way to start a date. I'm exploring a new usage of Bluetooth in the field of human interactions.
When I found out that Intel Curie modules can be assigned to act as central and peripheral BLE devices, I immediately wanted to make these glasses. (Learn more about CurieBLE from here.) Thanks to a tutorial on Adafruit, the reference framework of a 3D printed LCD glass is readily available. What I added onto the Adafruit tutorial are the BLE control (instead of a switch control) of two pieces of glasses at the same time, with one being the master and the other being the slave, and redesigned 3D printed frames.
This project was developed first on Arduino 101 and prototyped on tinyTILE, both have Intel Curie modules on them. Even if you may not be able to obtain Intel Curie modules in the future, I hope the methodology here could still be useful. I can imagine many different ways to apply Bluetooth central and peripheral capabilities and I'm looking forward to discussions on this topic.
Step 1 - Development
Two Arduino101s and two LEDs were used to develop the circuit and test the codes. Due to the complexity of the final circuits, it's always a good idea to start with a breadboard before soldering everything together.
For peripheral, you can use the code from the CurieBLE examples -> Peripheral -> LED and exchange the HIGH and LOW (find reason in last step). The code for central is provided in the end of the project. It is almost the same as CurieBLE -> Central -> LEDcontrol with a couple of lines added for the LCDs.
TinyTILE is almost exactly a miniature of Arduino101. The main central rectangle is the Intel Curie module. They can be flashed with the same codes. The pins on Arduino101 is always easier to use but the size of tinyTILE is more attractive for wearables. I like developing first on Arduino 101 and transfer everything onto tinyTILE. Check out another project using tinyTILE here. If form factor is not an issue for your project, feel free to use Arduino101 (see example here).
I test each component step-by-step, when I changed the Arduino101 to tinyTILE and changed the LEDs to LCDs.
Step 2 - 3D Printing
I redesigned the frames using SolidWorks on top of the one that's provided by Adafruit. You can download their basic design here and modify with whichever software you prefer for 3D printing. If you like exactly the looks I designed, you can find them in the attachments below. Why did I design a heart-shape and a universe? Watch the video for explanation and use your imagination.
The design could be modified to fit your face better. I found it a bit difficult to hold on my small nose. There are some companies nowadays that do a 3D scan of your face and customize glasses for you, which is great.
I think the 3D printer Ruiz Brothers from Adafruit used must be better than mine. Because mine printed so much support materials inside places that are very difficult to get out. As a UX designer, I have a lot to say about the inconvenience of my 3D printer. I'd like to have water-soluble support materials or a printer that doesn't need support materials or a liquid-based/light-solidifying 3D printer.
Step 3 - Assembly
The advice in Adafruit's tutorial on wiring, soldering and mounting is very good. You should check it out. I just had to add the extra tinyTILEs and the button in. Be careful to cut the wires into the right lengths.
Step 4 - Done and Have Fun!
When power is on, there's voltage applied to the LCDs, keeping them dark sunglasses. When the button on the master is pressed, voltage gets turned off on the master, which at the same time signaling voltage on the slave to be turned off via Bluetooth, making both glasses transparent.
The two glasses can be controlled pretty far apart, as long as they are within BLE range. I tested at home. Heart can get Universe's attention at least 15 steps away.
Imagine not using a button but a gesture, a nod or matching heartbeats!
Heart (master=central) : "I like your sophisticated mind <3"
Universe (slave=peripheral) : "I see you. Let's talk."