Emo is a personal companion robot based on Raspberry Pi 4B, combining fashion and innovation. It is not just a robot, but a living existence. Unlike other robots, it has a unique personality and emotions.
Hardware Section
-
Raspberry Pi 4B -
2-inch IPS LCD Display (240×320 resolution) -
SG90 Servos ×2 -
MG90 Servo -
16-channel 12-bit PWM Servo Driver -
801S Vibration Sensor Module -
Single-channel TTP223 Touch Sensor Module -
8 Ω 0.5 W Speaker Module -
PAM8403 Dual Channel Stereo Audio Amplifier Module -
5 x 7 cm Double-sided Universal PCB Prototype Board -
40-pin 2.54 mm Header Connector -
304 Stainless Steel CSK Countersunk Screws M2×10 -
M3 x 10 mm Bolt and Nut Kit -
M3 x 20 mm Bolt and Nut Kit -
B-30-1000 PCB Flying Wire (with PVC insulation) -
2mm Thick Acrylic Board
Software Section
-
Autodesk Fusion 360 -
Microsoft VS Code
Tool Section
-
Multi-functional Screwdriver -
Soldering Iron -
Lead-free Solder Wire -
Circuit Board Soldering Fixture -
Flux -
Multi-functional Wire Stripper -
Hot Glue Gun
Design Concept
We used Autodesk Fusion 360 to design the Emo robot, which integrates solid and freeform modeling techniques.
To simplify the printing process, we divided the robot’s body into several parts for easy assembly with screws.
We carefully considered the position of the power supply, placing it on the base and leaving enough space for the power cable to move freely. To enhance the stability of the robot’s movement, we also made the body slightly touch the base.
Additionally, we specifically chose a blue and white color scheme because the blue and white combination enhances the robot’s visual appeal.
3D Printing
We chose PLA as the 3D printing material and printed each component separately, which took a long time.
To enhance the durability of the base, we set the fill density of the base to 40%, while other parts were set to 20%.
Now that we have printed all the parts, please follow my steps to start assembling!
Note: 3D drawings and code can be downloaded at the end of the article.
Assembling the Base
First, we will install the Micro USB module on the base, which will serve as the power interface for the robot.
We place the SW-420 vibration sensor close to the USB module, as it can detect any vibrations around the robot.
The base section consists of three wires: VCC, GND, and the output wire of the vibration sensor.
Finally, we securely fasten the cover to the base using M3 x 10 mm bolts. Thus, we have completed the assembly of the base section.
Assembling the Head
To give the robot’s head touch capability, we used a compact capacitive touch sensor and perfectly embedded it into the designated area.
The core part of the robot’s head is a 2-inch IPS display from Weixue, which plays an important role in conveying the robot’s emotions. We securely fixed this display using a black bracket and some hot melt glue.
To achieve audio playback functionality, we integrated an 8 Ω 0.5 W speaker on the left side of the robot’s head, paired with a PAM8403 amplifier to amplify the sound from the Raspberry Pi.
Next, we securely fasten the lower half of the head to the robot’s body using M3 x 15 mm screws. Then we connect the previously assembled upper half of the head, completing the assembly of the entire head.
Assembling the Body
In the body section, we installed three servos: two SG90 servos for the hands and one MG90 servo for body rotation. To conveniently control these servos, we used the PCA9685-16 channel servo driver.
To ensure stability, we also used M2 nuts and bolts to secure the MG90 servo at the front of the body.
We placed the PCA9685 module in the same area to effectively balance the gravity.
Now we start assembling the robot’s hands. Simply install the SG90 servos at both ends and securely fasten them to the servo shaft to complete.
We use a prototype board with female headers to connect the Raspberry Pi, which is more efficient than using wires. At the same time, by soldering, we can ensure that all components are correctly connected, thus minimizing the possibility of wire entanglement.
To save space, we use the USB Type-C board from a mobile charger to power the Raspberry Pi. For audio transmission, we use a TRS audio jack.
Finally, we securely fasten the Raspberry Pi to the back of the body with bolts, thus completing the installation of the power section.
Additionally, we used a 2 mm thick transparent acrylic panel on the front, which can cover the gap between the outer cover and the LCD module.
Circuit Section
Wiring as shown below:
Programming
Next, we start writing the code to generate emotions, where servo movements and animations are the core parts. To achieve these complex functions, we use Python’s multiprocessing
package, which allows the robot to perform multiple tasks simultaneously, thus improving efficiency.
We have written the project code for you; you just need to clone it locally to use.
git clone https://github.com/CodersCafeTech/Emo.git
It is worth mentioning that we used Adobe After Effects software to create animations and export them as image sequences, making it easier to integrate into the entire system.
Debugging
After programming, to ensure the robot operates normally, we need to test all components.
First install the required dependencies:
pip install adafruit-blinka adafruit-circuitpython-servokit
Enter the code folder (Code) and execute the following command to start the program:
python3 final.py
Your Emo robot is now running! When you say something to it, it will analyze your tone and display the corresponding expression on the screen.
Results
The moment to witness miracles has arrived!
▼ Complete Video
Original link: https://www.hackster.io/coderscafe/emo-your-personal-companion-robot-dc8afe
Project Author: CodersCafe
Translation first published on: Fun Endless
Please indicate the source information when reprinting
Hardware Arsenal
Click to learn more👆
DFRobot Official Brand Store https://dfrobot.taobao.com/
DFRobot Official Flagship Store https://dfrobot.jd.com/
If anyone has anything to say, feel free to leave amessage!
Files involved in the project can be clicked on “Read the original text”, or reply “Emo Robot” in the public account background to download!
Review of previous projects
Understand the entire series of Raspberry Pi in one article!
Learn these 20 Linux commands to master your Raspberry Pi!
Raspberry Pi Cyberdeck with 6 Screens, check it out!
Light up the Christmas tree with Raspberry Pi
Homemade cloud server with Raspberry Pi, portable in your pocket!
Make a “digital microscope” with Raspberry Pi
Spring is here, you need a retro-style Raspberry Pi camera
3D printed Raspberry Pi spider robot
Make a handheld computer with Raspberry Pi and ESP32!
Create a retro game console based on Raspberry Pi Zero
The most comprehensive! How to choose Raspberry Pi expansion boards? One video solves it!
Click to read👆
Leave a Comment
Your email address will not be published. Required fields are marked *