Introduction: Basic Animatronic Mouth That Can Move Up and Down

The instructable is to make a basic 3D mouth which can imitate something talking by the lower jaw going up and down.

Supplies

1 Arduino Uno

1 Breadboard

1 micro servo (SG90) (ensure it can rotate a full 360 degrees)

1 ADFC-1891

4 screws 2.4mm in diameter, 26.5mm in length

2 hex-nuts

a pack of generic jumper cables

Step 1: The Mouth

Link to assets since fusion isn't letting me upload stl files: https://drive.google.com/file/d/1OiqzSFUZ9mAFELcJW8P0976tUjGH-lgP/view?usp=sharing

Once done 3d printing the model you should be left with

  1. 2 pieces for the gum, one will have a slight dent, this piece will function as the lower gum as it functions as the dent is for a pushrod.
  2. 2 3d printed joints that will connect the jaws using the screws
  3. 1 pushrod

Assembly

For assembly, you will need a hot glue gun.

In the lower parts of the joints, insert the screw and secure it with the hexnut. for the top simply pour hot glue into the holes of the top jaw and insert the screw into it. the final project should look like the image above.


Step 2: Circuitry & Code

Circuitry:

Refer to the diagram provided. (the software I used to make the diagram didn't have an SG90 servo which is the reason why a MG995 is instead used in the diagram)

Code:

the code at first aimed to basically at random play a sound using the talkie Arduino library and the mouth goes down and up with the movement not being synced to the audio, however for some odd reason although the code works by itself, if the talkie library is used, the servo commands in the if collum stops working. I tried looking around for fixes but there wasn't much documentation around it which is why instead the code provided is simply just moved the mouth up and down, however, I have included the code for the speakers as well as the code that combines both the speaker and mouth movement, if you do know what the issue is please let me know.

Step 3: SG90 Servo to Linear Accuator

when using a servo the pushrod tends to move left to right and not up and down meaning the effect I wanted to get with the mouth was impossible therefore a linear actuator was needed. I'm not sure whether the base would have to be edited or not to work with an actual linear actuator or what linear actuator model should be used which is why I'm including this step however if you do have a linear actuator, you can try using it, please let me know how it goes.


In order to transform an SG90 servo into a linear actuator please watch this video by potent printables: https://www.youtube.com/watch?v=2vAoOYF3m8U


Step 4: Base

Now I have included a base that can be laser cut with instructuions on how to put it to gether on the stl file itself, a base is mainly required to accomplish the following things

  1. stabilize the jaw pieces, ensure the top jaw remains completely still and horizontal while the lower jaw is horizontally aligned with the top jaw but there is still room for it to move
  2. stabilize the linear actuator and gear so that neither of the parts shake or parts that shouldn't move, move while the mouth is in action.

Unfortuantly I am unable to put the cut out so it may or may not work however a makeshift one is rather easy since it as mentioned above simply needs to accomplish thoes two things

Step 5: Afterword

the movement of the mouth works fairly decently however the part of the mouth talking is not good. The memory of the Arduino Uno is limited, at first originally instead of the talkie library, I wanted to play custom mp3 audio however even with a 3-second audio clip it still took 83% of the Arduino Unos memory which meant I had to utilize the talkie library. The model can be improved a lot more if it used joints more and less glue. The servos and the linear actuator line for example have screw holes prebuilt in them however at the time of writing this I am unable to test the base so I chose to instead go with the safer option as it leaves less room for error and I also can't accurately measure the diameter or length of the screw required. The model could be improved with the use of a battery instead of it being required to be connected to a laptop and the wires can be rewired in a way so that the breadboard isn't necessary, both these adjustments would reduce the size of the technology takes and potentially even make it so that it fits in the base itself which would look a lot nicer and be more practical as well if you wanted to use this animatronic mouth for a talking easter island head or etc. When it comes to a speaking robot I would suggest two things, get a Transistor or a better speaker. the speaker used in the project is extremely soft and its audio quality is not very good either. Second do not use Arduino for a speaking robot, if it's just the mouth movement you're after an Arduino will work but if you want it to speak as well, a microcontroller that can run python for example would be much better suited as unlike Arduino there is already easy documentation and even a prebuilt library that lets you text into phonetics and overall the abundance of libraries in python compared to Arduino makes it just easier to do.