Introduction to Programming and Physical Computing Seminar

Faculty: Daniel Mateos, Adai Suriñach, Antoine Jaunard

Group Members: Amalia Anna Korgiala, Camilo Hernán Contreras

Concept

The project aims to design a sensor that can work with light or sound sensors, inspired by a library luminaire. The sensor can be placed in various areas and scales, such as indoor activities, museum exhibitions, or outdoor parks.  

Image 1: Sketch representation of the luminaire.
GIF 1: Sketch

The Light Machine project by Xavier Veilhan at Galerie Lafayette Paris (2016) served as one of our sources of inspiration. The concept of using a screen to convey feelings, emotions, or even a sound in our instance served as our inspiration.

Image 2: Light Machine, Xavier Veilhan, 2016, Collection Galeries Lafayette
https://haussmann.galerieslafayette.com/en/light-machine-by-xavier-veilhan/
Photo © diane arques © Veilhan / ADAGP, 2016

It uses Arduino programming to create four actions: quiet, normal tone, talking tone and “momento del castigo”. 

When the library user is quiet, the screen moves normally, allowing readers to read without distraction. When the reader starts to speak, or more light is placed in the lighting sensor, the screen “crashes,” creating distracting shapes and blurry vision. If the library user continues talking, the screen creates circles and fades more, and if the individual doesn’t stop, or full light is placed in the lighting sensor, the screen closes and the lights close by making a small 8-second sound, preventing the reader from staying in the library.

Schematic

Diagram 1: Component Diagram

Our system is called “El momento del castigo” and it consists a sensor- input (like the light or sound sensor) and a display (OLED screen), a LED strip and a buzzer as an output.

Diagram 2: Analysis of the schematic that helped us to write code.

BOM (Bills of Materials)

Our BOM (Bill of Materials) includes the Grove Beginner Kit for Arduino, from which we will use selected components. Specifically, we will use the Seeeduino Lotus as the main microcontroller board, the USB cable, and five Grove connection cables.

Image 3: Grove Beginner Kit for Arduino – All-in-one Arduino Compatible Board.
Price: 25.40€ 
Source: Product Code: SS-110061162
Image 4: Arduino Kit Packaging and Related Items

From the kit’s modules, we will use the OLED Display (0.96”), the Sound Sensor or the Light Sensor, and the Buzzer. These components will be connected to the Seeeduino Lotus to build our custom circuit. In addition, we will include a NeoPixel LED strip consisting of 5 pieces to provide visual feedback and enhance the functionality of the system.

Image 5: Tira LED inteligente IC RGB 5V DC – IP20 – 21,6W/m – 144 LED/m
Price: 9.99€ 
Product Code: B1573RGB
Image 6: Arduino Lotus source

BOM (Bills of Materials)

First, we wrote the code using the Adafruit_GFX, Adafruit_SSD1306, and Adafruit_NeoPixel libraries, which helped us configure and control the desired outputs. Camilo was responsible for developing the code for the OLED Display and creating the sequence for “El momento del castigo”, a concept he had been curious about throughout the week. Amalia was in charge for programming the LED strip, sensor and buzzer, as well as merging both codes, her own and Camilo’s, into a single, integrated program.

Code 1: Programming code using Arduino.
Image 6: General Image

This image shows the components used in our programming setup. The OLED Display is connected to the I2C port, the Sound or Light Sensor is connected to A0, the Buzzer is connected to D7, and the LED strip is connected to D2.

Image 7: Outputting Light and Sound

Since our light and sound sensors function in the same way, we decided to experiment with different options based on the location. For instance, due to the noise during the classes, we decided to include the light sensor in the presentation.

Image 8: Display

As for the display sensor, it’s important to understand the actions we took to get this outcome. We give the individual three chances to comply before the screen completely blurs.

Video 1: Arduino programming

Next Step

As the next step, we wanted to experiment with applying this concept to other contexts — not just as a luminaire, but also in settings such as exhibitions or outdoor spaces. For this reason, we began working with Processing and Arduino, allowing the entire screen to become an active part of our project’s interaction and visual expression.

Image 9: Exploring an artificial exhibition via mapping using Arduino and Processing.

Programming Code: Processing + Arduino

Image 10: Arduino system

The Arduino board reads real-time data from a proximity sensor connected to an analog input (A0) and through serial communication, Arduino sends this data to Processing for visualization.

Image 11: Processing

Processing receives the sensor values and remaps them using the map() function to control visual parameters such as size, position, or movement.

Image 12: Mapping

Arduino and Processing work together as an interactive system: Arduino senses the physical world, and Processing interprets that data to animate a digital response.

Code 2: This part of the Arduino program starts reading the information contained in analog pin number 0.
Code 3: In processing, the first step is to import the information from Arduino so that it can be read and used in real time.
Code 4: The next step is to define the graphic that will be used in processing to remap the information received by Arduino, in this case circles with a random
range.

Code 5: Finally, this section maps the light sensor input from Arduino to dynamically modulate the growth rate and maximum radius of each circle in the grid, producing an organic oscillation responsive to ambient light intensity.

Video 2: Visualization of Processing with Arduino