Socket Pet

Made by ctchau

Need a companion to keep you company at your desk? Instead of keeping a plant at your desk, keep the Socket Pet! As you reach over to plug various devices of different colors in, it will respond accordingly: red plug - excited nodding, blue - uncomfortable wiggling, green - ambiguous singular gesture (Is it agreement? Is it contemplation? We will never know). Also charges phones and other appliances like a good boy.

Created: February 17th, 2023

0

Intention

One of the most widespread examples of animism are mascots and famous characters. For instance, Gudetama is anthropomorphized as a lazy egg and even becomes Prime Minister of Japan in the animated series on Netflix. Therefore, making my socket into a 'character' would be the most straightforward and effective ways of achieving animism. 

 One of the most defining features of a socket is how the holes look like a face. The expression differs depending on socket type.  This is known as 'pareidolia' or "the tendency to perceive a specific, often meaningful image in a random or ambiguous visual pattern" (Merriam Webster).

Socket Types Stock Illustrations – 332 Socket Types Stock Illustrations,  Vectors & Clipart - Dreamstime

The socket I had was Type B, which to me looked like a surprised ":o" face.  Capitalizing on this face-like quality, as well as its the small round body and the tail-like cable, my goal was to make  the socket cute and endearing. Similar to how a child will not only talk their their toys, but also make their toys respond to them, I wanted the socket to be something capable of responding to the person interacting with it, thus the 'Socket Pet' was born. 


0

Context

Give examples of prior work, ideas and projects that influenced your design. What work informed this idea i.e. make links to the material in class and the cases/projects you uncovered in this module. Describe theory, concepts, and research from this module that relate to your outcome. 

For the 2nd case study, I covered techno-animism in the case of military robots (MARCbot) and how they have become viewed as 'comrades' by active soldiers. In Think Piece #1, I discussed animism through the lens of materialism. From these explorations, I came to the conclusion that one's initial expectations for the behavior of an object is one of the biggest factors of animism and is arguably more important the object itself. Once the object transcends our expectations for it, we cannot help but project animism onto it. 

Of the precedents presented in class, the on that was the most influential to the my thinking was Objective Realities by Simone Rebaudengo and Bruce Sterling. The idea of "see[ing] and act[ing] in a virtual smart home with the capabilities and limitations of a specific object" was an intriguing paradigm. It led to the question "How might an electrical appliance [ie. a socket] experience a space?" which led to "What can a socket experience?", "What interactions does a socket have?" and "How can I communicate this experience?"

0

Prototype/Outcome

Describe your experience/working prototype: What did you create, how, etc.? What tools and technologies were involved? Include appropriate content and illustration (e.g. a concept video, a video of the device in operation, diagrams, code, etc.) How does it relate or build on existing work (provide acknowledgements or cite this work). You should report this in sufficient detail that anyone knowledgable with electronics etc would be able to reconstruct your implementation. Be sure to include a system diagram, annotated images, code, and a bill of materials.


For my prototype, I created a 'wheelchair' for the socket to sit in, with a hole in the back for the cable. Underneath the 'chair' were 2 servo motors that were attached via straws to cardboard wheels. One of the servos needed to be flipped so the wheels lined up, meaning they had to move in opposite directions to be 'moving in the same direction'. As the servos turned, so would the wheels, enabling the socket to moving back and forth. The majority of the physical construction was with single ply cardboard, tape and hot glue. 

Annotated Images



I connected both servos to the Arduino on separate pins (i.e. D12 and D11), labelling them as "servoR" and "servoL" respectively within the code. at the beginning each loop each wheel/ servo was reset to its starting position (either 0 or 180). There were 4 if/else if/ else cases that were activated depending on the input on the Arduino's color sensor.

For instance, individual R, G and B values greater than 255 meant there was nothing in front of the sensor, so I set that as the base case where the servos did nothing. If the sensor recognized 'red' (i.e. R > G and R> B), then both servos would move in opposite directions between 0 and 180 with intervals of 100 ms in between, giving the illusion of excited, rapid, affirmative movement.

When the sensor recognized 'blue' (i.e. B > R and B > G), both servos would move in the same direction between 0 and 180 with an interval of 200ms, generating a shifting, wiggling movement of discomfort/ unease.

When the sensor recognized 'green' (i.e. G > R and G > B), only one servo - servoL- would move 60degreees 3 times (i.e. to 60, 120, 180) with intervals of 100ms, not displacing the socket and generating a simple movement that had an air of hesitancy/ uncertainty.

These metrics (100ms, 200ms, degrees of rotation) can be altered according to preference, but these were the values I settled on while calibrating the Socket Pet to feel more 'lifelike'.

Systems Diagram


Bill of Materials

Qty

Description

Unit Cost

Cost

1

Arduino Nano 33 BLE Sense

$29.3

$29.3

1

Small cardboard box

$0

$0

1

Hot glue gun

$2.99

$2.99

1

(10 pc) glue sticks

$3.9

$3.9

1

Roll of tape

$2.49

$2.49

1

Straw

$0

$0

2

Micro servo

$1.68

$3.36

4

Male-Male jumper wires

$3.9

$3.9


Total

$45.94

0
#include <Servo.h>
#include <Arduino_APDS9960.h>


int servoRPin = D12;
int servoLPin = D11;

int d = 100;

Servo servoR;
Servo servoL;

bool updatePosition = true;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  servoR.attach(servoRPin);
  servoL.attach(servoLPin);
  
  if (!APDS.begin()) {
    Serial.println("Error initializing APDS-9960 sensor.");
  }

}

void loop() {
  // put your main code here, to run repeatedly:
  while (! APDS.colorAvailable()) {
    delay(5);
  }
  int r, g, b;

  // read the color
  APDS.readColor(r, g, b);

  Serial.print("r = ");
  Serial.println(r);
  Serial.print("g = ");
  Serial.println(g);
  Serial.print("b = ");
  Serial.println(b);
  Serial.println();

  servoR.write( 0 );
  servoL.write( 180 );

  if ((r > 255) || (g > 255) || (b > 255)) {
    delay(1000);
    

  } else if ((r > b) && (r > g)){  //RED
    servoR.write( 180 );
    servoL.write( 0  );
    delay(100);    
    servoR.write( 0 );
    servoL.write( 180  );
    delay(100);
    servoR.write( 180 );
    servoL.write( 0  );
    delay(100);
    servoR.write( 0 );
    servoL.write( 180  );
    delay(100);
  
  } else if ((b > r)){ //BLUE
    servoR.write( 180 );
    servoL.write( 180  );
    delay(200);
    servoR.write( 0 );
    servoL.write( 0  );
    delay(200);
    servoR.write( 180 );
    servoL.write( 180  );
    delay(200);

  } else { //GREEN
    servoR.write( 60 );
    delay(100);
    servoR.write( 120 );
    delay(100);
    servoR.write( 180 );
    delay(300);
  }
  
}
Click to Expand
0

Process

  • Draw from your project logs to tell the story of your exploration. Describe how you arrived out the outcome. What iterations, refinements, design decisions and changes were made? What challenges were encountered and how did you resolve them?

  • Socket + Color + Servo

    I was assigned the above combination of input, output and object with the goal of making something animistic. At first, I was very unsure of how to interface with the socket. Do I take it apart? Do I cut into the wires? I didn't have relay. Concentrating on the affordances of the physical movement of the servo, I thought about how to make the socket 'emote'. The simplest way, given the rotation of the servo, was to attach wheels. The majority of the troubleshooting done during this project concerned the physical construction and engineering of the object. 

  • The first issue were the wheels. Originally, I planned to use plastic bottle caps I had lying around. However, the plastic was thick, making it hard to cut through. Once I had squeezed them onto the straw, the friction fit was too tight I was unable to adjust their position on the straw without compromising the structural integrity of the straw. 



  • The initial set up I had involved taking the 2 servos onto top of one another. The rotation axis of one of the wheels was slightly higher, meaning the wheel connected to the servo on top had to be bigger. This meant I had to use different materials for the second wheel. As a result, the entire setup was slightly unbalanced, with each wheel travelling different distances, due to the radius and surface grip. However, connecting it to the Arduino, I had no problem coordinating the movement the wheels such that they span in the same direction at the same time.


  • Testing + calibrating the color sensor.


  • Taking these lessons I had learned, I separated the servos, taping them next to one another underneath the 'house' I had made for the socket. One major issue was the servos kept buckling under their own weight and falling off the house. In order to solve, this I attached a 'shelf' connecting the bottom of the servos to the house so that they would be supported as well as hidden. I left a hole in the back for the servo cables. I also replaced the plastic cap wheels with cardboard wheels I made from stacked hand cut cardboard circles. These were much more successful and gave the object a 'handmade' charm.

0

Open Questions and Next Steps

If a socket can show excitement, discomfort, uncertainty purely through physical movement, what other emotions could it show? The placement of the socket on wheels implies a large degree of movement. How could the implementation of a larger and more complex range of movements be used to form the basis for non-verbally communication?

One thing the Socket Pet highlights about techno-animism in everyday life is how easily we do it. Just through the recognition of a primitive 'face' and some basic behaviors, we readily accept this inanimate tool as a living being equal to ourselves in some aspect - i.e. a pseudo 'pet'. While harmless and endearing in this context, could this quickness to project be harmful in other contexts? Should we be adopting objects as 'pets'?

0

Reflection

One of the comments brought up during the demo was the conceptual connection between color and socket. Just showing differently colored pieces of paper seemed disconnected to the socket's intrinsic qualities. One of the suggestions was to wrap different plugs that could be inserted into the socket in these corresponding colors, so that it became the objects illiciting such responses. This furthered the parallel to a real pet that would have favorite toys and toys they wouldn't touch.

One major issue that hindered immersion of the 'pet' idea was the range and accuracy of the color sensor. As we had to use the onboard color sensor and not an external sensor, all colored objects had to be held close ( 2-3 inches) to the Arduino for an considerable length of time (20-30 seconds) for it to recognize and react to the correct RGB value. This meant that the majority of reactions from the Socket Pet felt like the result of an intentional provocation and not a natural back and forth one would have with a pet. The most 'lifelike' reactions from the Socket Pet were those triggered by an accidental brushing of the sensor. Those felt most reminiscent of a pet reacting to someone arriving at the door before their presence was announced (i.e. they've rung the doorbell). If I were to continue, I would explore and develop those 'natural feeling' interactions more.

Overall, I feel that this project was pretty successful given the timeframe and technical expertise I had. The Socket Pet is not only very cute, but also capable of executing 'lifelike' behaviors from just the limited rotation of a mini servo.

0

Attribution and References

http://www.simonerebaudengo.com/project/objectiverealities#:~:text=Objective%20Realities%20is%20an%20immersive,networked%20things%20and%20the%20home.

0
RME Project1 Documentation
Tsz Wing Clover Chau - https://youtu.be/0OvNNmwQMfc
x
Share this Project


About

Need a companion to keep you company at your desk? Instead of keeping a plant at your desk, keep the Socket Pet! As you reach over to plug various devices of different colors in, it will respond accordingly:
red plug - excited nodding, blue - uncomfortable wiggling, green - ambiguous singular gesture (Is it agreement? Is it contemplation? We will never know). Also charges phones and other appliances like a good boy.