A Cute ChatBot

by AlainsProjects in Circuits > Arduino

182 Views, 7 Favorites, 0 Comments

A Cute ChatBot

instruc.jpg
Give Alexa, Copilot Or ChatGPT A Face, a cute one :)

Hello, and once again a more or less useful project.

We all know Alexa or LMM's like Chatgpt, Copilot and many others.

You can chat with them, but it looks boring when you talk to your smartphone or laptop. So now, drum roll, this incredibly cute robot. Now talking to large language models is finally fun and kawaii awrrrr.

Supplies

3mm MDF

3mm acrylic glass, black tinted

a bit of bread paper or tracing paper

+- 35cm PG13 pipe for electrical installation

1.5mm electrical cable

glue, screws, acrylic colors and spray colors

Design and Cad

Screenshot 2025-05-02 185014.png
Screenshot 2025-05-02 185050.png
Screenshot 2025-05-02 221904.png

As always, I visualised the idea in good old Google Sketchup and then used QCad to draw the individual parts. The whole thing does not have to be built one-to-one, but as always, it serves as inspiration.

You can find the plans here on my github https://github.com/awall9999/ChatBot/tree/main/cad

Build the Wooden Inside for the Face

1745159033858.jpg
1745159033856.jpg
1745159033854.jpg
1745159033841.jpg
1745159033846.jpg
1745159033850.jpg
1745159033848.jpg
1745159033839.jpg

As you can see, the interior is built in sandwich form. This allows me to distribute the light evenly and it is therefore possible to screw the entire control system onto this construction.

The screws serve purely as a positioning aid. The four nuts are inserted second last and are glued into the construction so that the plate with the LEDs can simply be screwed on. Now press everything together and wait until the glue is dry.

The Wodden Enclosure

1745153248002.jpg
1745159033870.jpg
1745159033874.jpg
1745159033867.jpg
1745159033868.jpg
1745159033865.jpg
1745159033836.jpg
1745159033862.jpg
1745159033831.jpg
1745159033822.jpg
1745159033824.jpg
1745159033820.jpg
1745159033817.jpg

First glue the small corners in place. The back panel is later screwed to these.

Then the side panels, the front and the base are glued together. Do not glue in the top section yet.

Let it dry first. Then take two scraps of MDF and glue the inner part in place as shown in the picture. The scraps of wood help to glue the part in exactly. Now the lid can be glued on and left to dry.

Paintjob Part One

1745165666368.jpg
1745165666365.jpg
1746219573875.jpg
1746219573877.jpg
1746219573870.jpg

Now it's time to colour the main body, as it won't be so easy to do later. The cut-out parts for the mouth and eyes are taken so that no colour gets into the openings, otherwise the plexiglass parts will not fit later.

The MDF is sprayed black as a primer, sanded with sandpaper and a second coat of primer is applied. Then the whole thing was painted red. Looks good already.

Feet and Hands

1745520299402.jpg
1745171836037.jpg
1745171836031.jpg
1745171836033.jpg
1745437214695.jpg
1745437214710.jpg
1745437214707.jpg
1745437214704.jpg
1745437214700.jpg
1745437214685.jpg
1745520299400.jpg
1745520299397.jpg
1746219573826.jpg
1746219573819.jpg
1746219573809.jpg
1746219573807.jpg
1746219573792.jpg
1746219573791.jpg
1746219642253.jpg
1746219573813.jpg

The hands and feet are then glued together and painted black. A 33mm PG13 tube is fitted over each of the two parts of the legs that form a cross shape. The hands are glued together in three parts, with the centre part having the wood removed after drying. A wood screw is inserted here later to stabilise the whole thing. Finally, glue the two shoulder parts left and right onto the body.

LED Face Panel

1744535018241.jpg
1744535018239.jpg
1744535018233.jpg
1744535018230.jpg
1744535018225.jpg
1744535018220.jpg
1744535018223.jpg

The 3mm LEDs are sanded down a little at the front with sandpaper so that they distribute the light better and there is no hospot. They are then inserted into the plate with the 3mm holes. Soldered according to plan, the ram edges are also inserted here and everything is fixed with hot glue. The wires that go to the Arduino are also soldered.

Electronic

ChatBot.png
amp-pan wired final.png
1744541740266.jpg
1744541740268.jpg
1746219573778.jpg
1746219573837.jpg
1746219573835.jpg
1746219573786.jpg
1746219573784.jpg
1745159033815.jpg
1745159033812.jpg
1746219573775.jpg
1746219573768.jpg
1746219573759.jpg
  1. Part List: 1 Arduino Nano
  2. 1 Bluetooth Audio Module
  3. 1 2-3W Amplifier
  4. 1 Speaker 4Ohm 60mm
  5. 15 3mm LED's
  6. 15 150R Resistor
  7. 8 4,7k Resistor
  8. 8 BC546 or equivalent
  9. 1 100k Resistor 1
  10. 2.2uF 16V Capacitor
  11. 1 USB-C socket

Assemble the audio module according to the plan. One channel from the Bluetooth module goes to the amplifier and the loudspeaker. The other channel goes to the A0 of the Arduino. The two circuit boards are glued to a small piece of MDF. I used JST 2.54mm plugs with cables and sockets everywhere for quick assembly and troubleshooting as this is my first attempt. But you can also solder everything together

Mount the USB-C socket and the speaker on the rear panel as shown in the picture.

I soldered the Arduino Nano together with the 4.7k resistors and the transistors on a breadboard. The 100k resistor and the 2.2uF capacitor too, of course. Then the LED board was soldered to the controller board. The whole thing is then scraped onto the intended MDF board with spacers and the LED boards are glued to it.

The Face

1745426224961.jpg
1745426224953.jpg
1745426224958.jpg
1746219573862.jpg
1745437214727.jpg
1745437214718.jpg
1745437214724.jpg

I laser-cut the bread baking paper and the tinted arcylic glass like this. The plexiglass is +-0.1mm larger than the cut-out in the front panel, so you can simply press these parts firmly into place as shown in the photo and the smiley face is finished

Marry Electronics and Body

1746219573755.jpg
1746219573753.jpg
1746219573750.jpg
1746219573700.jpg
1746219573709.jpg
1746219573711.jpg
1746219573713.jpg

First insert the LED plate and screw it to the front with four 10mm M3 screws. There are M3 nuts in the front. The audio board is then inserted on the right or left and is held in place thanks to the 3mm sizing on the left and right of the front insert.

The Software

Screenshot 2025-05-03 113433.png

The software for the bot is not very complicated.

In principle, the value is measured at the analogue input from the Bluetooth module. If this goes above a certain threshold and stays there, then the LEDs from the mouth are switched on one after the other from the centre to the ends. When the analogue value is 0 again, the LEDs from the mouth are switched off again one after the other in a for-loop.


The whole thing runs in a timer loop. In this way, the eyes can open and close at random while the robot is talking. The eye-open time is longer than the eye-close time.

And that's it

/*
ChatBot 1.0
(c) Alain Mauer
https://alainsprojects.com/2025/05/03/the-chatbot/
*/

int Mouth[5] = {2,3,4,5,6}; //define the LEDs for the Mouth
int Eyes[3] = {10,11,12}; // define the LEDs for the Eyes
int TreshHold=15; // set the Audiotreshold
int val = 0;
int analogPin = A0;
int MouthCounter = 0;
unsigned long Timer = 0;
int EyeTime =1000;
int BlinkStatus=0;

void EyeOpen(){
digitalWrite(Eyes[0],HIGH);digitalWrite(Eyes[1],LOW);digitalWrite(Eyes[2],HIGH);
}
void EyeClose(){
digitalWrite(Eyes[0],LOW);digitalWrite(Eyes[1],HIGH);digitalWrite(Eyes[2],LOW);
}
void setup() {
pinMode(analogPin, INPUT);
pinMode(10,OUTPUT);pinMode(11,OUTPUT);pinMode(12,OUTPUT);
pinMode(2,OUTPUT);pinMode(3,OUTPUT);pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);
EyeOpen();
}


void loop() {
Timer=millis();
do{
val = analogRead(analogPin);

if (val > TreshHold) {digitalWrite (Mouth[0],HIGH);MouthCounter++; if (MouthCounter>4) MouthCounter=4; digitalWrite (Mouth[MouthCounter],HIGH);}
if (val == 0) {MouthCounter=0;
for (int i = 0; i <= 4; i++) {
digitalWrite(Mouth[4-i], LOW);
}
}
}while(millis()-Timer<EyeTime);
BlinkStatus=!BlinkStatus;
if (BlinkStatus==1) {EyeClose();EyeTime=random(100,500);}
if (BlinkStatus==0) {EyeOpen();EyeTime=random(500,4000);}
}

Downloads

The Final Step

1745437214676.jpg
1745159033885.jpg
1746219573744.jpg
1746219573746.jpg
1746219573733.jpg
1746219573737.jpg
1746219573723.jpg
1746219573721.jpg
1746219573742.jpg
1746219573698.jpg
1746219573695.jpg
1746219573730.jpg

Glue the two legs to the underside.

A 28cm long PG13 tube where you insert two twisted 1.5mm wires to be able to move the arms. Then simply pull the tube through the casing and fix it with cable ties.

Paint the two small round parts on the head silver. Wrap a piece of stripped copper rod as a coil, bend it a little and then glue it to the top as an antenna decoration.

Simply insert the hands into the ends of the PG13 tube. Do not glue them, otherwise you can no longer turn them.

Attach the rear panel with the speaker using M2.5mm screws.

A little drybrushing with silver paint and the ChatBot is finished

A Few Beauty Shots

1746263536709.jpg
1746263536704.jpg
1746263536698.jpg

As always, my idea is expandable. I wanted to add a module that turns the voice into a robot voice, but unfortunately this is still travelling somewhere in the world by parcel post. Also, nobody needs to build it exactly like this. Build your own ChatBot, be creative.

I hope you enjoyed this instructable. Regards Alain