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 |