MCT Hospitality Robot

by Tibo Deneire in Circuits > Electronics

54 Views, 1 Favorites, 0 Comments

MCT Hospitality Robot

20250126_175909.jpg

Build a Smart Hospitality Robot with Raspberry Pi and Custom PCBs


Hospitality robots are the future of customer-centric service, but commercial models are often expensive or limited in functionality.

What if you could turn an affordable, but unusable, Chinese-made robot into a versatile, smart assistant? In this instructable we show you step by step how to do that in terms of hardware, using a Raspberry Pi and a set of extra PCBs.


The goal of this project is to breathe new life into an unusable hospitality robot by converting it. With the Raspberry Pi as the brain and extra PCBs for functionalities such as an extra LVDS display, an EDP touchscreen display, USB cameras, RFID card readers and speakers you can create a robot that is suitable for applications in the hospitality industry, large companies, or even at home.


Whether you’re a tech enthusiast who enjoys tinkering with hardware or a professional who wants to customize a robot for specific needs, this project offers a practical and affordable way to take a hospitality robot to the next level. Ready to build your own smart robot? Let’s get started!

Supplies

20250122_224904.jpg
20250126_184202.jpg

3D Printing

20250122_224918.jpg

The journey begins with 3D printing the provided 3MF files. These files have been carefully designed to ensure optimal precision, detail, and structural integrity. By using a reliable 3D printer and suitable materials, you will create the foundational components essential for the project.

Ensure that your printer settings are appropriately configured to match the specifics of the 3MF models, including resolution, layer height, and infill percentage. Attention to detail at this stage will not only enhance the quality of the printed objects but also streamline the subsequent steps in the process.

This initial step transforms digital designs into tangible reality, setting the tone for a smooth and successful progression through the rest of the project.

Assembling the LVDS Boards

20250122_225049.jpg
20250122_225558.jpg
20250122_230449.jpg

Once the components are 3D printed, the next step is to assemble the LVDS (Low-Voltage Differential Signaling). This assembly is crucial, as the LVDS board are used to establish communication with the large screen. Proper alignment and connection of the LVDS ensure seamless data transmission, enabling the screen to display information with accuracy and speed.

During assembly, verify the integrity of each connection and confirm that the LVDS is compatible with the screen’s input specifications. This step bridges the hardware with the visual output, bringing your project closer to its full functionality.

Assembling the EDP Boards

20250122_225654.jpg
20250122_230129.jpg
20250122_230438.jpg

Following the LVDS setup, the next step involves assembling the eDP (Embedded DisplayPort) boards. These boards are essential for managing high-speed video signals and ensuring compatibility with the display panel. Proper assembly of the eDP boards enhances the overall performance and stability of the system.

During this process, carefully connect the eDP boards to the display and other components as required. Pay close attention to alignment, cable routing, and secure connections to prevent signal interference or loss. This step is vital for optimizing the screen’s resolution and refresh rate, ensuring a seamless visual experience.

Assembling the Pi & Audio Card

71cn83CHWKL._AC_AA152_.jpg
20250122_231144.jpg

With the display components in place, the next step is to assemble the Raspberry Pi and the audio card. The Raspberry Pi serves as the brain of the system, handling processing tasks, while the audio card is responsible for delivering high-quality sound output.

Securely mount the Raspberry Pi onto its designated location and connect it to the system, ensuring proper alignment with power, display, and communication interfaces. Attach the audio card to the Raspberry Pi, ensuring firm connections to avoid audio disruptions.

Once assembled, test the system to verify that the audio output is clear and synchronized with the display. This step integrates the core computational and audio functionality, paving the way for a fully operational setup.

RFID

RFID_RC522.jpg
nodemcu-esp32-rfid-rc522_bb.png

Below is a brief step-by-step guide for setting up RFID RC522 with an ESP32 microcontroller. This guide is inspired by the detailed tutorial on Electronic Wings.

Step 1: Gather Components

  1. ESP32 microcontroller
  2. RFID RC522 module
  3. Jumper wires
  4. Breadboard

Step 2: Connections

RFID RC522 Pin ESP32 Pin

VCC --> 3.3V

GND --> GND

RST --> GPIO 22

SDA --> GPIO 21

MOSI --> GPIO 23

MISO --> GPIO 19

SCK --> GPIO 18


Step 3: Install Required Libraries

In the Arduino IDE:

  1. Install the "MFRC522" library by searching for it in the Library Manager.
  2. Ensure the SPI library is also installed (it comes pre-installed with Arduino IDE).

Step 4: Upload Demo Code

  1. Use the example code provided in the MFRC522 library.
  2. Modify the GPIO pin assignments in the code to match your setup (as shown in Step 2).
  3. Compile and upload the code to the ESP32 using the Arduino IDE.

Step 5: Test the Setup

  1. Open the Serial Monitor in Arduino IDE.
  2. Place an RFID card or tag near the RC522 reader.
  3. The card’s unique ID should be displayed on the Serial Monitor.

Step 6: Upload Code


#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 5
#define RST_PIN 0
MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class

// Init array that will store new NUID
byte nuidPICC[4];

void setup() {
Serial.begin(9600);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
}
void loop() {

// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
if ( ! rfid.PICC_IsNewCardPresent())
return;

// Verify if the NUID has been readed
if ( ! rfid.PICC_ReadCardSerial())
return;

MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
Serial.println(rfid.PICC_GetTypeName(piccType));

// Check is the PICC of Classic MIFARE type
if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
return;
}

if (rfid.uid.uidByte[0]){
Serial.print(F("In hex: "));
printHex(rfid.uid.uidByte, rfid.uid.size);
Serial.println();
}


// Halt PICC
rfid.PICC_HaltA();

// Stop encryption on PCD
rfid.PCD_StopCrypto1();
}


/**
* Helper routine to dump a byte array as hex values to Serial.
*/
void printHex(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}

/**
* Helper routine to dump a byte array as dec values to Serial.
*/
void printDec(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(' ');
Serial.print(buffer[i], DEC);
}
}


Assembling Everything

20241021_135627.jpg
20250122_231805.jpg
20250122_235743.jpg
20250122_235805.jpg
20250122_235913.jpg
20250123_000913.jpg
20250123_000920.jpg
20250124_135803.jpg
20250124_135809.jpg
20250124_135815.jpg
20250124_135818.jpg
20250124_135822.jpg

Finally, assemble all components into the robot:

1: Attach Components: Securely mount the 3D-printed parts, Raspberry Pi, audio card, eDP boards, LVDS, . and RFID module in their designated locations within the robot.

1.2. Connect the power cables:

Plug in all the power cables to their appropriate ports, keeping the layout tidy and safe.

1.3. Connect the HDMI cables:

Attach the HDMI cables from the eDP boards to the Raspberry Pi. Ensure the connections are firm for . stable video output.

1.4. Connect the audio card:

Use the audio cable to link the audio card to the Raspberry Pi for high-quality sound output.

1.5. Connect the USB camera:

Plug the USB camera into the Raspberry Pi. Verify that it is securely positioned for optimal performance.

1.6. Connect the USB from the touchscreen:

Attach the USB cable from the touch display to the Raspberry Pi to enable touch functionality.

1.7. Connect the power button:

Wire the power button as follows:

  1. White wire: Connect to GPIO pin 5.
  2. Red wire: Connect to the 3.3V power pin (pin 1).
  3. Black wire: Connect to a ground pin (pin 6).

1.8. Install the RFID module:

  1. Insert the RFID module into its designated port, ensuring a secure and reliable connection.


2: Cable Management: Organize and route the cables to ensure a clean and efficient layout, avoiding potential . signal interference or tangling.

3: Final Test: Power on the robot to confirm all components—display, audio, RFID, and other systems—are . functioning correctly.


Result

With all components successfully assembled, you now have a fully functional robot, powered by a Raspberry Pi. The robot is equipped to perform several key tasks, including:

  1. Facial Recognition:
  2. The robot utilizes the Raspberry Pi, camera module, and facial recognition software to identify individuals. When someone approaches, the camera captures their image, and the Raspberry Pi processes it to recognize the person.
  3. Access Control:
  4. Based on the facial recognition results, the robot is able to grant or deny access to certain areas. If the person is authorized (recognized), the robot can trigger specific actions, such as unlocking a door, turning on a light, or giving access to a secure location.
  5. Welcoming People:
  6. Using the audio system, the robot can greet individuals with a personalized message. It may say something like "Welcome, [name]!" or a general greeting to anyone it recognizes, making it feel like a friendly companion or helper.

How it Works:

Facial Recognition:

  1. The camera scans faces in real-time and compares them to a pre-stored database of known faces. Using algorithms like OpenCV or Dlib, the Raspberry Pi processes the image and identifies the person, triggering the next step based on recognition.

Access Control:

  1. Once a face is recognized, the system checks if it matches an authorized list. If a match is found, the robot sends a signal to an external device, such as a door lock or another security system, to allow access. If the recognition fails, the robot can deny access.

Welcoming Interaction:

  1. Upon recognition, the robot uses its audio output to speak, offering a greeting or acknowledgment. This could be combined with visual feedback, such as displaying the person’s name on a screen.

This robot is now a versatile assistant, able to manage access control and engage with people in a friendly and interactive manner. Would you like more details on how to implement any specific features or suggestions for improving the system?