Introduction: ISycophant

Picture of ISycophant

Here is how to recreate the iSycophant at home! The iSycophant is a mirror which displays a encouraging message, whether you're feeling sad or happy. You press a green button for happy or a red one for sad. If you leave the iSycophant, yellow lights will turn on, because it wants you to come back.

Step 1: Brainstorming

Picture of Brainstorming

Step 1: Gather/create a group of creative, smart, attractive people.

Step 2: Grab a large piece of paper and start brainstorming ideas.

  • Make sure you write down every thought and idea!

Step 3: Think about how technology influenced the last US election.

  • What influenced your thoughts and opinions on the candidates and the outcomes?

Step 4: Reflect on social media’s influence on political opinion.

  • How does the “echo chamber” of social media play a role in validating/enforcing our beliefs about ourselves and about the world around us?
  • Do you think social media tends to show us more of what we believe/want to see?

Step 2: LCD Screen and Sensor

Picture of LCD Screen and Sensor

Breadboard

Step 1:

Acquire the following materials:

  • Arduino
  • Breadboard
  • Hook-up wires

Step 2: Use two wires to connect the 5V pin on the arduino to the + rail on the breadboard and the GND pin on the arduino to the - rail on the breadboard.
Step 3: Connect the to power rails of the breadboard, by connecting a wire to each of the the two + rails and the two - rails

LCD screen

Step 1:

Acquire the following materials:

  • Breadboard connecte to ardunio
  • LCD Screen (compatible with Hitachi HD44780 driver)
  • 10k ohm resistor
  • 220 ohm resistor
  • Hook-up wires

Step 2: Connect the LCD screen into the breadboard. It is wise to put it closer to an edge, so that you have space to put other things on your breadboard. Make sure you do not place the pins into the power lines.

Step 3: Connect the following pins*to the arduino using the hook-up wires:

  • LCD RS pin to digital pin 12
  • LCD Enable pin to digital pin 11
  • LCD D4 pin to digital pin 5
  • LCD D5 pin to digital pin 4
  • LCD D6 pin to digital pin 3
  • LCD D7 pin to digital pin 2

*The labels with the names will be located on arduiono and the LCD screen.

Step 4: Connect a wire from pin 3 of the LCD screen to a 10k ohm resistor. Connect a wire from the back leg of the resistor into the negative power line.

Step 5: Hook up the 220 Ohm resistor to the positive power line, in line with pin 16 of the LCD connector.

Diagram source: https://www.arduino.cc/en/Tutorial/HelloWorld

Please note that the diagram shows the use of a potentiometer instead of the 10k resistor.

Sensor

Step 1:

Acquire the following materials:

  • Arduino and breadboard used to connect LCD screen
  • Ping Ultrasonic Range Finder
  • Hook-up wires

Step 2:

Connect the following wires:

  • Vcc pin on the Sensor to the positive power line of the breadboard
  • Trig pin to the ~10 pin on the arduino
  • Echo pin to the ~9 pin on the arduino
  • The GND pin to the GND pin on the arduino

Step 3: Second Breadboard, Buttons and LEDs

Picture of Second Breadboard, Buttons and LEDs

Connecting the second breadboard

Step 1:

Acquire the following materials

  • Breadboard
  • Hook up wires

Step 2: Connect the power from the first breadboard to the second breadboard through the power rail, by connecting a wire between a + rail to the other one, and a - rail to the other one.

Step 3: Connect the to power rails of the breadboard, by connecting a wire between the two + rails and the two - rails

Buttons

Step 1:
Acquire the following materials

  • Hook up wires
  • 2 buttons
  • 2 10k ohm resistors

Step 2: On one side of the breadboard, insert the two buttons in the row 30-28 and 23-21 between the terminal space with two leg on each side of the ravine.

Step 3: For each button, insert a 10k ohm resistor, on column g with a leg in row 28 and 25, and the second one a leg in row 21 and 18.

Step 4: Next, use a wire to connect column a, row 28 with pin 7 on the arduino and column a, row 21 with pin 8. Using two wires, connect the two legs of the two buttons which are not connected to the resistor to the + rail, and the two legs of the two resistors which are not connected to the button to the - rail.

Diagram: https://www.arduino.cc/en/Tutorial/Button

LED lights

Step 1:

Acquire the following materials

  • Hook up wires
  • 2 yellow LED lights
  • 2 10k ohm resistors

Step 2: On the other side of the breadboard, connect the cathode (shorter leg) of each yellow LED to rows 7 and 4 in column b.

Step 3: Insert two 10k ohm resistors, with one branch of the resistor in a clip parallel to the anode (longer leg) and the other one going away from the LED.

Step 4: Connect a wire to a clip parallel to each leg of the ohm resistors not connected to the LED and pins 6 and 13 of the arduino. Connect a wire to a clip parallel to the cathodes of the two LEDs and the - rail.

Diagram source: https://www.arduino.cc/en/Tutorial/Fade

Note: the diagram shows the the the wire parallel to the cathode going into the + rail, however we inserted it into the - rail.

Step 4: Coding

Step 1: Before writing any line of code, take a page from Bruno Latour and begin by asking yourself what a delegated human character would have to do to make your technology work. In the case of the iSycophant there are two primary human behaviours necessary: clinginess and unreflective agreement. Next describe these functions in the simplest terms possible as though your delegated human character was particularly dense:
Clinginess:
When the User is not nearby then you need to react with some form of alarm or consternation.
Unreflective agreement:
Whatever state of mind the User is in be sure to mirror and even amplify that position.

Step 2: Using the human instructions generated begin breaking them down as though your delegated human character was a non-human logic machine. This is what is referred to as pseudocode:

Clinginess:

Continually check if the User is nearby.

If the User is nearby then nothing needs to be done.

If the User is away or distant begin an annoying attention forming reaction.

Unreflective agreement:

Determine the state of mind of the User.

If the User is happy reaffirm that the world is wonderful.

If the User is sad confirm that the world is terrible.

Step 3: Now, armed with your pseudocode, begin translating each discrete task into a series of operations which the Arduino can perform using accompanying sensors and displays. Explore code others have used and slowly aggregate the operations using this simple cycle:

  1. Hypothesize a way of translating a functional “step” into code.
  2. Ensure that there is some way of confirming your hypothesis (whether by writing to the DisplayPort, turning on or off and LED or reviewing the Serial Monitor).
  3. Write the code and verify, adjusting for missing characters and typos, until the code passes.
  4. Upload the code to the Arduino board. 5.
  5. If the code is working then continue to the next operation, if not then hypothesize why it did not work. This is what we call the Arduino Programmer’s loop and it can lead to incredible sophisticated technologies given time, patience and application.

This is what we call the Arduino Programmer’s loop and it can lead to incredible sophisticated technologies given time, patience and application.

Step 5: Assembly

Picture of Assembly

By now you should have the Arduino replicating clinginess and unreflective agreement. It is now time to assemble the components into your mirror.

Step 1: Measure where the buttons, lights, LCD screen, and sensor will be placed on your mirror frame.

Step 2: Cut out the holes in the frame of the mirror.

Step 3: Glue or tape your arduino on the back of the frame so that the components stick out of the holes.

And Voila! You now have a fully functional iSycophant!

Comments

Swansong (author)2016-12-07

Lol, I love it. I've seen some photo booth mirrors that operate on a similar idea. :)

About This Instructable

1,005views

8favorites

License:

More by criticallaughs:ISycophant
Add instructable to: