Introduction: Lip Synching Robot

This is a robot that lip-synching to the music and the voice .
It responds with sound hit the keyboard .
Please put in the vicinity of the radio and speaker .
Figure to be lip-synching to the music is very cute .

I hope you enjoy it !

Step 1: Material

  • Arduino Pro mini 3.3v/8Mhz (Arduino Pro mini has a 4 pin.)
  • 8 x 8 Led Matrix (32mm x 32mm)
  • Sound Sensor Detection Module LM393 Chip Electret Microphone For Arduino
  • USB cable
  • LED Gradation Light (100 yen shop)
    LED Gradation Light contains a 1.5V × 3 pieces of battery .If you do not use the USB cable is connected to the battery .

Step 2: Cut the USB Cable

Step 3: Check the Power Supply of 5V

You check with a tester that the 5V can be taken from the USB cable .

Step 4: To Make a Hole

Step 5: ​You Pass Through the USB Cable Into the Hole .

Step 6: Fixed With a Binding Band.

Step 7: Pull Does Not Come Off Also .

Step 8: Give Power to the Arduino.

USB 5V(+) to Arduino RAW
USB GND(-) to Arduino GND

Step 9: Connect the Microphone

Microphone +5V to Arduino VCC.
Microphone OUT to Arduino A4.
Microphone GND to Arduino GND.

Step 10: Replace the LED Matrix

It is very difficult.
Please to solder by bending the legs of the LED matrix as shown in the photograph .

Please note the position of the LED matrix of projection .

Step 11: Solder Is Difficult

Step 12: You Can Press the Case Put the LED Matrix .

Step 13: Sketch

Step 14: Attach Paste the Double-sided Tape on the Back of the Microphone

Secure the Matrix LED with an adhesive to the case .

Step 15: Done!

Please try to adjust the microphone when the face does not change .

It defines the facial animation in the first part of the sketch .
Please enjoy to change the face:-)

Comments

author
ernesto emanuelm (author)2017-03-08

Hello sorry i'm a noob on this but i'm trying to replicate this project,

am i doing it right? so far i have compiled the code and put it the proto but all the matrix gets iluminated, not the shape of smiley

author

Thank you for trying.
Is the orientation of the LED Matrix correct?
Is it correctly wired?
I think that you can give advice if you send me a picture.

author
radhikasy (author)2016-12-08

Does it work with UNO? If yes how do the connections look?

author
SANUKI UDON (author)radhikasy2016-12-09

Yes.
Please wire to Arduino UNO with the same pin number as Arduino MINI. Mini is 3.3V,UNO is 5 V,please put a resistance of 100 ohms to 150 ohms for each of the 8 pins on the right or left side of the 8x8 LED matrix.

Because I am far from good at English, I am sorry if I could not tell you what I wanted to do well.

author
radhikasy (author)SANUKI UDON2016-12-21

oops... i just tried connecting to uno without resistance.. not sure what would happen

author
SANUKI UDON (author)radhikasy2016-12-22

I am praying that you will succeed.

author
SANUKI UDON made it! (author)2016-11-13

Thank you for making the Lip synching robot.try compile and save to your Sketchbook location instead of a desktop.

setting.jpg
author
georgi-iliev made it! (author)SANUKI UDON2016-11-30

Hi again! I uploaded the code but now I have another problem:

20161129_151422.jpg
author
SANUKI UDON (author)georgi-iliev2016-11-30

LED matrix is an anode and a cathode .
I'm using a cathode .

Please try modified.
I LED matrix of the anode does not confirm because it does not have :-p

If it does not work please contact me. Photographs on the back, left, and right are necessary.
I want to know the mounting condition of your LED matrix.


void display()
{
cat < 7 ? cat++ : cat = 0;
digitalWrite( *(rows + cat), !LOW );
for ( ano = 0; ano < 8; ano++ ) {
digitalWrite( *(cols + ano) , !(*(layer + ano) >> cat ) & 0x01 );
delayMicroseconds(50);
digitalWrite( *(cols + ano), !LOW );
}
digitalWrite( *(rows + cat), !HIGH );
}

author
georgi-iliev (author)2016-11-13

Hi! I'm ready with the hardware part of the project but I have problem with the software. When I try to compile the code this error appears:

C:\Users\PC\Desktop\LipSynchingRobot\LipSynchingRobot.ino:22:77: warning: narrowing conversion of '-1' from 'int' to 'byte {aka unsigned char}' inside { } [-Wnarrowing]

C:\Users\РC\Desktop\LipSynchingRobot\LipSynchingRobot.ino: In function 'void setup()':

LipSynchingRobot:165: error: 'display' was not declared in this scope

exit status 1

'display' was not declared in this scope

I'm new to arduino and I don't know how to fix it. Could you help me with this?

author
斌吖 (author)2016-10-01

Hello!I love your robot very much!I have a Max7219 Matrix LED and a Arduino nano.I wand to make one,But I can't understander your a part code and search on the web and write some code to test.How to use Max7219 Matrix LED make a like your robot and how to code?


#include

const int DIN_PIN = 5;
const int CS_PIN = 6;
const int CLK_PIN = 7;

const byte IMAGES[][8] = {
{
0b01100110,
0b01100110,
0b00000000,
0b00000000,
0b00000000,
0b01111110,
0b00000000,
0b00000000,
}, {
0b01100110,
0b01100110,
0b00000000,
0b00000000,
0b00011000,
0b00100100,
0b00011000,
0b00000000,
}, {
0b01100110,
0b01100110,
0b00000000,
0b00000000,
0b00000000,
0b00011000,
0b00000000,
0b00000000,
}, {
0b01100110,
0b01100110,
0b00000000,
0b00000000,
0b01111110,
0b10000001,
0b01111110,
0b00000000,
}, {
0b01100110,
0b01100110,
0b00000000,
0b00000000,
0b00111100,
0b01000010,
0b00111100,
0b00000000,
}, {
0b01100110,
0b01100110,
0b00000000,
0b00111100,
0b01000010,
0b01000010,
0b01000010,
0b00111100,
}, {
0b01100110,
0b01100110,
0b00000000,
0b00011000,
0b00100100,
0b00100100,
0b00100100,
0b00011000,
}, {
0b01100110,
0b01100110,
0b00000000,
0b01111110,
0b10000001,
0b10000001,
0b01111110,
0b00000000,
}, {
0b01100110,
0b01100110,
0b00000000,
0b00111100,
0b01000010,
0b01000010,
0b01000010,
0b00111100,
}, {
0b01100110,
0b01100110,
0b01111110,
0b10000001,
0b10000001,
0b10000001,
0b10000001,
0b01111110,
}, {
0b01100110,
0b01100110,
0b01111110,
0b10000001,
0b10000001,
0b10000001,
0b10000001,
0b01111110,
}, {
0b01100110,
0b00000000,
0b01111110,
0b10000001,
0b10000001,
0b10000001,
0b10000001,
0b01111110,
}
};
const int IMAGES_LEN = sizeof(IMAGES)/8;

LedControl matrix_led = LedControl(DIN_PIN, CLK_PIN, CS_PIN);

void setup() {
matrix_led.clearDisplay(0);
matrix_led.shutdown(0, false);
matrix_led.setIntensity(0, 1);//设置亮度
}

void displayImage(byte *image) {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
matrix_led.setLed(0, i, j, bitRead(image[i], 7-j));
}
}
}

int i = 0;

void loop() {
displayImage(IMAGES[i]);
if (++i >= IMAGES_LEN ) {
i = 0;
}
delay(50);
}

author
SANUKI UDON made it! (author)斌吖2016-10-02

Please try it!!

IMG_20161002_222936.jpgLip_Synching_Robot_MAX7219.ino
author
斌吖 made it! (author)SANUKI UDON2016-10-02

Get!I test it and it is working.Thank you(^.^). Before that I have a maker friend who also make a Lip synching robot.

That is his test viedo.

假唱机器人.mp4
author
SANUKI UDON (author)斌吖2016-10-03

That’s nice (^_^)b

author
BobbyF21 (author)2016-09-09

Having issues, if i wire it your way i am unable to make the circuit
work. I rewired it to use tutorials with pictures and text. I worked
out my pin out with setting low and highs and output or not to determine
all the pins. This makes all other script work but for some reason when
i change the const static byte cols to my pins it just turns on all
led's. I have checked the polarity is not the wrong way around as if i
swap them over some led are being powered on 2 rails and dim.

// ROW side cathode , COLOMN side of the anode
const static byte cols [9] = { 2,7,17,5,10,16,11,14};

// 2-dimensional array of column pin numbers:
const static byte rows [8] = { 9,8,4,3,15,13,12,6 };

author
BobbyF21 (author)BobbyF212016-09-09

Also tried swapping the const static byte to int with no luck (the 9 instead of an 8 is a mistake i changed it and it makes no diference)

author
SANUKI UDON (author)BobbyF212016-09-10

To change the sketch to your message I now in the picture.Please try an original program once.

>// ROW side cathode , COLOMN side of the anode

>const static byte cols [8] = { 2,7,17,5,10,16,11,14};

>// 2-dimensional array of column pin numbers:

>const static byte rows [8] = { 9,8,4,3,15,13,12,6 };

IMG_20160911_080040.jpg
author
ramclear (author)2016-09-10

Same here....as soon as I power up, the whole matrix lights up.

author
SANUKI UDON (author)ramclear2016-09-10

LED matrix is an anode and a cathode .
I'm using a cathode .

Fix for the anode .
Please try modified.
I LED matrix of the anode does not confirm because it does not have :-p

void display()
{
cat < 7 ? cat++ : cat = 0;
digitalWrite( *(rows + cat), !LOW );
for ( ano = 0; ano < 8; ano++ ) {
digitalWrite( *(cols + ano) , !(*(layer + ano) >> cat ) & 0x01 );
delayMicroseconds(50);
digitalWrite( *(cols + ano), !LOW );
}
digitalWrite( *(rows + cat), !HIGH );
}

author
SANUKI UDON (author)SANUKI UDON2016-09-10

I think that it heal if symptoms such as photos .I tried to run the anode of the program to the cathode of the LED matrix .

IMG_20160911_080111.jpg
author
georgi-iliev (author)2016-08-05

Hi! I'm new to instructables. Your project is awesome! Can I ask for what is the Led Gradation Light because I didn't see anything for it in the pics.

author
SANUKI UDON (author)georgi-iliev2016-08-05

Thank you for your comment.
My understanding is that What is the product name of the LED light.
Please correct me if I'm wrong.
Please search ”32mm x 32mm 8x8 Lattice Bright Red LED Common Anode Dots Matrix Module” in eBay.

author
georgi-iliev (author)SANUKI UDON2016-08-20

Thank you! One final question xD. Can I use Arduino Nano instead because it has usb port for uploading the code? Here is the link: http://www.ebay.com/itm/181846906547

author
SANUKI UDON (author)georgi-iliev2016-08-21

Arduino Nano and Arduino Pro mini of the I/O PIN is different. You need to change the configuration of each terminal of the LED Matrix of the sketch .And Arduino Nano is greater than Arduino Pro mini.You should find a big case and the larger LED Matrix.
you can ask me if you have question :-)

author
Jdukate (author)2016-07-29

I am new to coding sorry. How do I adjust the mic?

author
SANUKI UDON (author)Jdukate2016-07-29

Adjustment of the microphone can be adjusted with the variable resistor that is attached to the microphone .
Sketch of Arduino do not need that may rewrite .

you can ask me if you have question :-)

author
MaxxB1 (author)2016-07-17

Looks like a great project, but I can't find the plastic cube light in the UK. I have tried eBay and a few other suppliers. It looks like it would have to be 3D printed.

I'll have to keep my eyes open in our pound shops.

Thanks for the great idea.

author
SANUKI UDON (author)MaxxB12016-07-18

Thank you for trying to create interested in my work .
I appreciate it very much.
I hope you find the plastic cube light in the pound shop .
Please try to design a cool case when it 's not there :-)

author
GeorgeG61 (author)2016-07-16

ever considered selling these? i dont have the skill to make them but they are most excellent. i imagine for voice calling on skype they can be fun too

author
whopoder (author)2016-07-09

XD So fun! And perfect music xD

Great job. Thank you for share!

author
SANUKI UDON (author)whopoder2016-07-09

Thank you for the best compliment 8->

author
leahblackwolf (author)2016-07-08

I would never be up to making this but it's really cool!

author

Thank you for your comment.
I'm so glad :-)

author

: )

author
leahblackwolf (author)2016-07-08

I would never be up to making this but it's really cool!

About This Instructable

7,149views

108favorites

License:

Bio: Sanuki udon is one of &quot;Japanese taste&quot;. it is a food made of noodles of popular wheat in Japan. And my soul food. I'm ... More »
More by SANUKI UDON:How to Make a MAZE GENERATOR Using ATtiny13a.Make a Conway's Game of Life Display Device With 16 X 16 Cells Using Attiny13aHow to Maek Game of Life Using ATtiny13A and Mini Breadboard.
Add instructable to: