Introduction: PoseLamp: a Posture-correcting Lamp

This project is created as a course assignment at the California State University, Long Beach; taught by Dr. Behnaz Farahi: DESN 586 Human Experience and Embodied Interactions Studio.


By Louis Santos, Shrey Patel & Keira Wong

Supplies

  • Eleggo UNO R3 Super Starter Kit
  • 1pcs UNO R3 Controller Board
  • 1pcs Breadboard
  • 1pcs 5V Power Supply
  • 1pcs Stepper Motor
  • 5pcs Clear acrylic sheet (12” x 12”)
  • 1pcs USB Cable
  • WS2812B RGB LED Strip
  • 2 Clear Round Acrylic Boxes (5.25" x 2.25")
  • #4-40 x 3/8" in Everbilt Round Head Zinc Screws
  • Vero Clear Polyget printer (for Base)
  • White PLA printer (for Stepper Motor holder)

Step 1: Brief

Our project brief

To investigate and incorporate compliant mechanisms to create an interactive, physical prototype.


What makes something "compliant"?

We began by diving into the concept of compliant mechanisms, discovering their resemblance to jellyfish movements. Like jellyfish, compliant mechanisms are flexible structures that can bend and deform instead of relying on fixed joints, to achieve movement and a significant reduction in the number of components needed, making it flexible, adaptable, and responsive.


Compliant geometries

From the geometries that make a structure compliant, we chose to use hyperboloid structures for their stability, versatility, efficiency in material usage, and adaptability to different materials. If you need to build a structure that curves, it's pretty economical to use a hyperboloid because you could just make it out of straight materials, you don't have to build special curved materials. We saw its potential to serve as the backbone of our design, allowing for flexibility and movement while maintaining structural integrity.

Step 2: Materials Exploration

In our quest to bring this concept to life, we experimented with a variety of materials, including wire, metal, acrylic, paper, cardboard, and wood.

Step 3: Initial Prototype

Through trial and error, we found that acrylic offered the perfect balance of flexibility and durability for our compliant prototypes. Its transparency also resembled a jellyfish, and allowed for the integration of sensors and electronics, essential components for interactivity.

Step 4: Design Exploration

However, our initial prototype's strips were a bit plain and narrow. The base was also too small and narrow to fit wider strips, an arduino or any additional components needed for interactivity. So we explored 3 different designs, each with a wider base and differently cut strips.

Step 5: Final Prototype

The first prototype was harder to twist because having more material caused more resistance.

The second prototype was flimsier than the rest because it had less material to support the bases.

We settled on the seaweed-like strips, because it had just enough material to support the bases and not too much to cause too much resistance for easier twisting.

Step 6: Final Concept

Using acrylic material and having a concave shape, we decided our final prototype could be best used as a lamp. With our concept solidified and materials selected, we had one remaining question, however:


How might we design an interaction with a lamp that is novel & impactful?

We wanted to explore what kind of interactions with a lamp we could design that is both novel and impactful.

Step 7: Case Studies

To do this, we explored past case studies to look at what kind of interactions were possible.

  • Heart of the Matter - VIEW
  • LED Closet Lamp - VIEW

Step 8: Initial Ideas

We explored various applications for interactive lamps, including emotion-reflecting, hand-gesture activated, motion-activated, and posture-detecting lamps.


Emotion

Emotion detected affects the brightness or color of lamp, reflecting the user's emotion back for therapeutic affect.

Hand-Gestures

Hand-gestures can expand or contract the light, decreases or increases the brightness of the lamp.

Pose-Detection

The user’s pose, whether sitting or standing, decreases or increases the brightness of the lamp.

Step 9: Final

Ultimately, we chose to pursue the posture-detecting lamp concept over others for its practicality and potential impact.

Posture-Detection

A smart lamp designed to encourage better posture among computer users by utilizing PoseNet, a computer vision technology, to detect and analyze the user’s posture in real-time. When poor posture is detected, the lamp changes color, serving as a visual reminder to correct the posture. This encourages users to maintain a healthy posture, potentially reducing the risk of posture-related health issues.

Step 10: The Problem

A posture-correcting lamp addresses a pressing problem in today's society - poor posture due to prolonged sitting.

Our target users for this innovative lamp were clear:

  • remote workers
  • students
  • anyone else who spends long hours at a desk

By providing real-time feedback on posture and encouraging good posture, our lamp aimed to promote better spinal health and overall well-being.

Step 11: Final Concept

A posture-detecting desk lamp that expands and illuminates red to signal to the user when they should correct their posture.

Step 12: Set Up P5.js & Arduino

To get started, download the following files:

  • Code files attached below (p5.js folder and Arduino file).
  • Visual Studio Code: Download
  • p5.serialcontrol: Download
  • Arduino software: Download

Once you have obtained the necessary files, proceed with the following steps:

1. Setting up p5.js in Visual Studio Code:

  • Access the extensions tab (second icon from the bottom on the left navigation bar).
  • Locate and install the "p5.js" extension.
  • Click the topmost icon on the navigation bar and select "Open Folder" to access the downloaded folder.

2. Setting up Arduino:

  • Assemble a circuit with your Arduino kit as per the provided diagram, enabling your computer to read data from the light sensor.
  • For further assistance with your Arduino setup, refer to this resource.
  • Launch the Arduino software on your computer and open the provided Arduino file ("File" -> "Open"). Connect your Arduino to your computer.
  • Verify and upload the code to the Arduino using the options on the top right of the window.
  • If you encounter any challenges, review your port settings using this reference.

3. Connecting p5.js and Arduino:

  • Download p5.serialcontrol if you haven't already from this source.
  • Open p5.serialcontrol, scan your ports, and select the port your Arduino is connected to.

4. Testing the Setup:

  • Return to Visual Studio where you have the downloaded folder open.
  • Validate the functionality of the code and setup by choosing "Go Live" in the bottom right corner.
  • This action should launch a window in your browser displaying the code, which reacts to your hand proximity when closer the sensor.