Conversation Face

by Markus Opitz in Circuits > Robots

2796 Views, 23 Favorites, 0 Comments

Conversation Face

Title.jpg
Face_pure.gif
IMG_2903.JPG
Face2.gif

You are alone? Maybe in quarantine? Need someone to talk to? Or just a friendly listener? Or do you want to have a nice argument? Your robot needs a cute face?

Conversation face can help you.

Supplies

IMG_2874.JPG

Arduino nano/Wemos D1 32 or any other Arduino

3x OLED 0.96‘‘ Displays

electret microphone

breadboard & wires / circuit board

cardboard/ hard paper

How Does Conversation Face Work?

IMG_2866.JPG

You can use almost any type of Arduino: Mega, Nano, ESP8266, ESP32. I chose a Wemos D1 ESP32: I just had it there and you can plug the circuit board nice and compact.

Movement of the eyes is controlled by a random generator. The eyes themselves are very simple graphic figures. For blinking, an invisible white circle sweeps across the pupils. The control signals for both eyes are identical. For a more real effect, the pupils would have to look very slightly inward.

The electret microphone attached in the center controls whether the mouth is allowed to speak or not.


Sound is not (yet) provided for this project!

Preparation of the Displays

fritzing.jpg
OLED-Addr.jpg


All displays can use the same I2C port (SCL, SDA). The eyes both show the same thing. The mouth, however, must be addressed separately. In the sketch the OLEDs are named display1 (eyes, address 0x3C) and display2 (mouth, address 0x3D). To change the address of the mouth, the SMD resistor on the backside has to be re-soldered.

Assembly - Soldering or Plugging

IMG_2880.JPG
IMG_2884.JPG
IMG_2881.JPG
IMG_2882.JPG

You can solder the face on a PCB, like I did it. Then you have everything compactly together. Or you plug all quickly with the help of a breadboard (see at step 1).

Software

eye-roll1b.gif
IMG_2872.JPG

Load the software ConversationFace.ino onto your microcontroller via Arduino IDE. Don't forget to change the settings for your type of Arduino and set the port.


In the sketch you can choose between two functions, depending on what you prefer:

In the subprogram void mouthmove() you can select

 // if face should be silent when you talk * * * * * * * * * *

 // if face should talk when you talk = = = = = = = = =

The Face

IMG_2890.JPG
IMG_2891.JPG
IMG_2892.JPG
IMG_2893.JPG
IMG_2894.JPG
IMG_2907.JPG

Print the face template and cut out the eye holes and mouth opening. Cut and glue the edges of the face as shown in the picture.

Conclusion

IMG_2906.JPG

The funny thing is: Depending on your settings, conversation face only talks when you are silent or constantly interrupts you when you are talking.


Have a good conversation!