Anti-switch | Colorful socket (Base Version)
Made by Chang Liu · UNLISTED (SHOWN IN POOLS)
Made by Chang Liu · UNLISTED (SHOWN IN POOLS)
A socket that responds only to color, leading the wave of ANTI-switch. As one of the 1st generation Anti-switch products, this socket follows the traffic light rules, to pop up and hide away.
Created: February 23rd, 2023
The intent of this project is to challenge the traditional approach to design home automation devices by creating an "anti-switch" socket that responds only to color. The project aims to promote a more interactive and engaging user experience and shift the power dynamic between humans and technology.
The design reflects a critical perspective by questioning the conventional top-down control system of technology and advocating for a more equal and collaborative relationship. The goal is to create devices with their own language of use, requiring users to adapt to them rather than the other way around and to create a more symbiotic relationship between humans and technology, with both parties being equal partners.
The idea of creating devices with their own language of use and promoting a more collaborative and equal relationship between humans and technology comes from two prior works. One is Plug & Play (plugplay.ch) and the other is “Addicted Products” by Simone Rebaudeng. Addicted Product promotes a more democratic and inclusive approach to technology design, which leads me to the question like what if the socket has emotions, what if the human doesn’t have total control of the device? The Plug & Play project leads me to the question of what’s a socket’s intention. By using color recognition as the primary input, (as the answer to what does a socket want) and servo motors to control the height of the socket (as the answer to what’s the socket’s expression), the "anti-switch" socket design reflects a shared goal of promoting a more collaborative and interactive relationship between humans and technology.
I created a socket that only responds to color. I imagine it as a flagship product in the ANTI-switch wave. This socket follows traffic light rules, popping up when it receives a green signal and hiding away when it receives a red signal. When it receives other colors, the socket will be in an uncertain state.
The final prototype is powered by four servos to provide the upward and downward movement force, allowing the socket to move up and down by approximately 6-7cm. To maintain a specific position, the socket needs to continuously receive that color. The socket reads the color every 5 seconds.
Bill of Materials:
- Arduino Nano 33 BLE *1
- Socket *1
- Servo *4
- Male-Male Jumper Wires *12
- 18.5*20 Acrylic Sheet * 1
- Tape
#include <Arduino_APDS9960.h>
#include <Servo.h> // include the servo library
Servo myservo;
int pos = 0;
void setup() {
Serial.begin(9600);
while (!Serial);
if (!APDS.begin()) {
Serial.println("Error initializing APDS-9960 sensor.");
}
myservo.attach(D2); // attach the servo to pin D2
pos = myservo.read(); // get the initial position of the servo
}
void loop() {
// check if a color reading is available
while (! APDS.colorAvailable()) {
delay(5);
}
int r, g, b;
// read the color
APDS.readColor(r, g, b);
// print the values
Serial.print("r = ");
Serial.println(r);
Serial.print("g = ");
Serial.println(g);
Serial.print("b = ");
Serial.println(b);
Serial.println();
if (r > g && r > b) { // check if green is the dominant color
Serial.println("Red light detected.");
for (pos; pos <= 45; pos += 1) { // gradually turn the servo from current position to 30 degrees
myservo.write(pos);
delay(100);
}
delay(1000);
myservo.write(45);
//myservo.detach();
}
else if (g > r && g > b) { // check if red is the dominant color
Serial.println("Green light detected.");
for (pos; pos >= 0; pos -= 1) { // gradually turn the servo from current position to 0 degrees
myservo.write(pos);
delay(100);
}
delay(1000);
myservo.write(0);
//myservo.detach();
}
else { // any other color detected
Serial.println("Other color detected.");
for (pos; pos <= 30; pos += 1) { // gradually turn the servo from current position to 30 degrees
myservo.write(pos);
delay(100);
}
for (pos; pos >= 0; pos -= 1) { // gradually turn the servo from 30 to 0 degrees
myservo.write(pos);
delay(100);
}
}
}
Click to Expand
The first problem I encountered was how to make the servos strong enough to support the weight of the entire socket and fixture. To achieve this goal, I tried multiple solutions. The power of the servos was relatively small, so I had to use four servos simultaneously to provide the necessary movement force. Additionally, I had to extend the torque to ensure that the socket had enough space to rise and fall, and I needed to calculate the appropriate angle and fixture size.
The second challenge was related to the code, which was how to fix the position of the socket each time and prevent it from rebounding to the initial position. By continually debugging and adjusting my code, I found that the solution was actually quite simple. I just needed to store the final position as a new initial value to fix the position of the socket and prevent it from rebounding to the initial position.
There are also some design decisions that were cut because the lack of coding skills or a lack of suitable materials may prevent us from implementing the idea. Should I make it jump out?
Besides red and green, what do the other colors signify for the socket, and could the saturation of a color have a different impact on the socket?
When we talk about "spookiness," do we need to give it a specific meaning, whether we approach it from a human perspective or from the perspective of the application's spontaneous behavior?
Looking at the anti-switch series from a human perspective, it is apparent that the concept has a broad range of possibilities and can be imbued with a great deal of meaning. The language itself can become a chaotic, yet meaningful, indicator when applied in everyday life through various combinations of colors, shades, saturation, and other features.
From the socket's perspective, color can also serve as a way to convey its various needs and requirements, such as indicating whether it has a preference for specific electronic devices, charging time, and other considerations. Moving forward, it will be essential to consider the socket's input and perspective in the design process.
As I conclude my first experience with physical computing, I have come to realize that this field is more than just the sum of its parts. It encompasses not only the consolidation of concepts and the implementation of code but also the physical feasibility of a project. Working on the "anti-switch" socket project has taught me not only the technical aspects of building a prototype but also the creative and conceptual process of developing an idea. It requires an understanding of both the hardware and software components of a project and the ability to troubleshoot and adapt as necessary.
It is fascinating to see all these can bring the design concept to life. For example, determining the suitable speed, height of ascent and descent, whether the socket alone should move or the entire fixture, and the weight capacity of the servo are all important considerations.
But overall, I still feel that I am in a familiar stage with this project, and I have not taken very bold steps yet. E.x. in one of the test versions, the socket was able to jump out of the box to show it was “excited”, however, it’s cut off due to the angle and material strength is beyond our control.
I am optimistic that as I become more acquainted with this initial project, I will have the confidence to take bolder and more imaginative steps in the subsequent two projects. My ultimate goal is to use the techniques I have learned to breathe life and soul into my designs.
This project is only listed in this pool. Be considerate and think twice before sharing.
A socket that responds only to color, leading the wave of ANTI-switch. As one of the 1st generation Anti-switch products, this socket follows the traffic light rules, to pop up and hide away.