Scroll Sense

by rktrin26 in Circuits > Raspberry Pi

49 Views, 1 Favorites, 0 Comments

Scroll Sense

p1.png

We built the Scroll Sense, a wearable glove sensor designed to monitor user interaction with social media platforms and explore how cues can disrupt addictive scrolling behaviors. The glove features two sensors: a force-sensitive resistor to detect screen contact and a stretch-sensitive resistor to capture scrolling motions. These components allow the glove to collect real-time data on how users physically engage with their devices such as scroll frequency and session duration.

The glove system is paired with sensory design frictions, including vibrations, ambient lighting changes, and audio sounds. These signals are triggered to interrupt the scrolling experience and draw the user’s attention away from the platform. The goal of the project is to create an interactive environment for exploring how tactile, visual, and auditory interventions might reduce compulsive usage on both short-form and long-form social media apps.

Supplies

Project materials

  1. Adafruit Metro Mini (or similar microcontrollers)
  2. Raspberry Pi 3B (or 4/4B/5)
  3. Micro-SD card
  4. 1 force-sensitive resistor
  5. WiFi bulbs
  6. 1 bluetooth/usb speaker
  7. Conductive threads
  8. Conductive Rubber Sheet
  9. 1 glove
  10. 1-2 vibrating motors
  11. 1 perfboard
  12. 1 2N2222 Transistor
  13. 1 1N4001 Diode
  14. 1 0.1 uF Capacitor
  15. 3 1k resistors

Other materials

  1. USB-A to micro-USB cable
  2. USB/USB-C drive (SD reader) for booting Raspberry Pi OS
  3. Breadboard
  4. Soldering iron and stand
  5. Batteries (optional)
  6. Keyboard, mouse, monitor for configuring Pi

Software Requirements

  1. Arduino IDE 2.3.3 or higher
  2. Python 3.11 or higher
  3. Text editor (VSCode, Sublime, etc)
  4. Latest Raspberry Pi OS Imager version
  5. Download the imager from the link above.
  6. Using a USB/USB-C drive, flash the OS onto the micro-SD card
  7. Insert into Raspberry Pi and connect to power

Configuring WiFi on Raspberry Pi

To have the Raspberry Pi communicate with the bulbs, you first have to enable WiFi on it. There are two methods:

1st method:

  1. Connect your keyboard, mouse, and monitor to your Raspberry Pi
  2. Boot up your Raspberry Pi and log in to the desktop environment
  3. Click on the WiFi icon located at the top-right corner of the screen.
  4. Select your WiFi network from the list
  5. Enter your WiFi password when prompted and connect
  6. Once connected, verify that the Pi has internet access by opening a web browser and visiting a website

2nd method (SSH):

  1. Connect to your Raspberry Pi over SSH. If you're on the same network, you can SSH into it with ssh pi@<raspberry-pi-ip-address>
  2. Open the WiFi config file via sudo nano /etc/wpa_supplicant/wpa_supplicant.conf and add the following info:

network={

ssid="YourNetworkName"

psk="YourNetworkPassword"

}

  1. Run sudo reboot to restart the Pi with the settings
  2. Run ifconfig wlan0 to check if it has connected successfully

If you run into any problems, consult the following guide here.

Circuit Assembly

circuit.png

The circuit for the social media glove sensor is shown in the above image. Note that the wire connecting the Raspberry Pi to the microcontroller is via USB, and the lamps to the right connect via Bluetooth.

The prototype involves two main circuits. The Metro Mini Microcontroller is connected to a usb serial port on the raspberry pi. The vibrotactile motor circuit is connect to raspberry pi, while the inputs are controlled by the Metro Mini.

Connect the 3.3V supply to the positive terminals of the diode, capacitor, and motor in parallel. The left post of the transistor will be connected to the negative terminal of this parallel circuit, with the center post connected to GPIO 17, and the right post to the Pi GND. The speaker system is connected to the 3.5 mm A/V jack on the raspberry pi.

The force sensitive resistor and the scroll sensitive glove sensor are connected to the 5V supply of the metro mini. The two components are connected to A1, A0, respectively, with voltage dividers using a 1k resistor (each).


Two files will be provided below to test the inputs and outputs. Note that the inputs will use the microcontroller and the outputs will use the Pi.

3D Printing the Object

combined.png
combined2.png
top_bottom_upside_down.png
top_bottom.png
IMG_3320.jpg

Now that you have assembled the basic circuit for this project, we will start on the 3D object since it may take a few hours. For this tutorial, an STL file of the project will be provided below.

  1. First, transfer your STL file to a computer with Bambu Studio installed.
  2. Open Bambu Studio, go to File > Open and select your file.
  3. Make sure the model is oriented correctly and fits in the area of the printer.
  4. In the settings of your Bambu printer, make sure the following is selected:
  5. Standard print profile
  6. Layer height to 0.2mm
  7. Tree/zigzag supports
  8. Preview using slice to make sure the print is stable and at the right scale.
  9. Schedule the printer and fix printing errors as needed.

Downloads

Soldering the Prototype

p1.png
p1.png
p1.png
p2.png
IMG_7924.jpg
IMG_7925.jpg
IMG_7926.jpg
IMG_7927.jpg
IMG_7929.jpg
IMG_7930.jpg
IMG_7931.jpg
IMG_7932.jpg
IMG_7933.jpg
IMG_7934.jpg
IMG_7935.jpg

Next, we can put together our circuit on a prototype board. The soldering of the board follows the same circuit diagram implemented on the breadboard. The first image is the result, but this can be adapted as long as the circuit performs similarly. The separate components are clearly displayed. Ensure that the components have good separation between rows to prevent shorts. The second image shows the soldering that connects the top view image above.

Each circuit (the motor and microcontroller) should be tested individually as components are soldered to the board. It is helpful to use a multimeter to ensure that the welds carry the current correctly.

Test files are provided below for testing the vibrotactile motor circuit, as well as the scroll and force sensitive resistors.


To create the stretch sensor for the glove, you first need materials such as conductive thread and fabric. Shown in the images above, you will need to sow the fabric on to the glove, ideally on the thumb to simulate a scroll.

Then, sow a piece of regular fabric onto the tip of the thumb. This will hold the force-sensitive resistor (FSR) when the user wears the glove. Afterward, place the FSR under the fabric and tape it to the glove. You will also need to connect a few headers to the FSR in order to read the signal on the microcontroller.

Lastly, tape the vibro-motor either to the center front or center back of the glove. This will connect to the Raspberry Pi later on.

Operating Instructions

Now, you will need to set up the system. First,

  1. Ensure that the glove's wires are securely connected to the microcontroller and Raspberry Pi.
  2. Connect the Raspberry Pi to power.
  3. Connect to the data logger (laptop/desktop) and ensure that data is being received to the Pi.
  4. Configure outputs:
  5. Place ambient light source with WiFi bulb near the user.
  6. Position speaker nearby to emit timed/triggered cues.
  7. Ensure vibration motor is connected and thresholds are calibrated.

Now that the system is configured, here are instructions on how to use it:

  1. Have the participant wear the glove and open a social media platform of their choice. The system will now record interaction data, such as swipes and taps during the session.
  2. Use social media as normal for 5-10 minutes. As the session continues, the system will calculate metrics such as frequencies of swipes, time between scrolls, and total time. It will also begin to output cues for the user to stop, such as sounds, lights, and vibrations in increasing orders of intensity.
  3. End the session and save the metrics for research purposes.

Improvements

Now that the project is finished, here are some improvements for the system that you can do:

  1. Add a user interface that displays live metrics/visualizations that could make the system more interactive and informative for both users and researchers.
  2. Add more sensors that track other metrics such as heart rate to improve the outputs and data collection.
  3. Add settings for the user to configure, such as triggering highest output intensity by a certain time or changing the sound of the cues

These are just a few examples to improve the usability of the system. Feel free to customize it to your liking. Happy building!