← home portfolio
HI, I'M UNDER CONSTRUCTION, PLEASE EXCUSE THE ROUGH EXTERIOR—I PROMISE MY CONTENT IS (MOSTLY) GOOD <3

ITP Spring '22 → Connected Devices → Project 1

Two years ago I did an artist residency at ITP and created One Amongst Many with then-students Christina Dacanay and Tina Rungsawang. This was our original project video:

The project was a physical data visualization of 16 women in computing, where each woman was represented as a glowing orb. The orbs started out dimly lit, and as more and more people picked up the orb to read about the woman, they became brighter and brighter.

These were our original floor plans:

One of the biggest things we struggled with were wiring all the orbs that spanned across many feet and connecting them back to one central Arduino Mega. Because of that, I've been wanting to redo the project, but this time controlling each orb via Bluetooth (or wifi).

Orbs

Each orb will be a Bluetooth peripheral that connects to one central device, offering one service (tentatively named "orb-light") with the following characteristics:

The orb will have:

For the orb, I'm most concerned with the power source because I want the whole thing to be self contained (aesthetically I want only a fishing wire coming out of it for hanging, no electrical wire). The two concerns I have are:

Central

The central device is in charge of connecting to all peripherals and monitoring which ones are being interacted with and logging that data. It is also in charge of figuring out, for each interacted orb, what other orbs are in the same sub-group (for each woman we also assigned them to groups like "Mathematician", "Designer", "Computer Scientist", etc.) and lighting those up as a suggestion for which orb the person can read next.

I'll most likely write the central device code on a webserver, but I'm not quite sure yet if the central device should be another Arduino that communicates with that webserver, a laptop, etc. If the central device is an Arduino, will it be able to handle 16 devices simultaneously connected to it?

Midterm project

I'm of course not going to build out all 16 orbs for the midterm, I would consider it a success if I can get 3–5 stand-alone orbs communicating with a central device.

Prototype

After much deliberation about what the interaction should be, whether it should be touch based or proximity based, I decided to punt that decision to later (lol) and just get the bluetooth going.

Here it is using the Nano 33 IoT's built in accelerometer (left), where tilting it past a certain angle turns on the LED, and adapting the example code from ArduinoBLE to turn the Nano into a peripheral that I could subscribe to notifications with BlueSee:

https://github.com/GoogleChrome/samples/blob/gh-pages/web-bluetooth/write-descriptor-async-await.js https://github.com/tigoe/BluetoothLE-Examples/blob/master/web-bluetooth/web-bluetooth-LED-write/script.js