FABI – Final Project

A robot that rewards good environmental actions with a hug

FABI is an interactive robot developed for Fab Academy. It combines 2D and 3D design, additive and subtractive fabrication, electronics design and production, embedded programming, MQTT communication, cloud control, mobile interaction and full system integration into a friendly robot for children.

Evaluable: Eye PCB Evaluable: ToF + Servo PCB Extra: Robotic Arms Extra: Heart Matrix Extra: Cloud + App

What does it do?

FABI is a friendly robot designed to attract children to the Fab Lab and promote environmental awareness. The robot detects interaction using a ToF sensor, reacts with lights, moves its arms, displays emotional feedback through a heart and eyes, and can be controlled through a cloud-based MQTT system and a mobile app.

Final FABI robot Final FABI robot second view

Project Summary Slide and Video

The final project includes the required summary slide and a one-minute video showing the conception, construction and operation of FABI.

Open presentation.png Open presentation.mp4

Who's done what beforehand?

FABI was inspired by educational robots, social robots, interactive installations and Fab Academy robot projects. The objective was not to copy an existing robot, but to create my own integrated design adapted to the identity of Fab Lab Ponferrada.

The final shape was inspired by the Fab Lab Ponferrada mascot, but the mechanical structure, electronics, programming, integration and interaction system were designed and fabricated as part of my individual Fab Academy final project.

Design Process and Technical Development

FABI was developed through an iterative process combining mechanical design, electronics design, digital fabrication, embedded programming and cloud integration.Detailed explanations of how each part was designed and fabricated can be found in the corresponding weekly assignments. At the end of this page, you will find links to download all the design files, source code, and project components. Click on each section to explore the development process.

The complete mechanical structure of FABI was designed in FreeCAD. I used FreeCAD for the full external structure and the main body of the robot, including the head, body, lower body, internal supports and spaces for electronics.

The design was created as a modular structure so that the parts could be fabricated separately, assembled with screws and modified during the development process. The first CAD version helped define the general shape, while the final model included the real dimensions of the components and the final assembly strategy.

Initial FreeCAD design

First steps the skecht

Initial FreeCAD design

First steps in my computer design process, starting with the head and body based on the measurements taken from the initial sketch.

Final FreeCAD design Final FreeCAD design Final FreeCAD design

Final design with all parts in the same design

For the 2D design, I used RDWorks V8. The design was based on simple geometric shapes such as rectangles and squares. These parts were used for flat structural and decorative elements that could be fabricated using the laser cutter.

This approach made the design easy to modify and fast to fabricate. It also helped me adapt the pieces to the real dimensions of the robot during the assembly process.

Robot eye PCB and LEDs

design using stl from Freecad and slicer for Fusion

design in inkscape

Desing with inkscape

Robot eye PCB and LEDs

Working with CNC with this design

design in inkscape

Using the 2D design software RDWorks for laser cutting.

Robot eye PCB and LEDs

One of the evaluable parts of the final project is the custom PCB for the robot eyes. This board was designed in KiCad and uses a XIAO ESP32-S3 to control the LED eyes.

This PCB is an output board because it controls the visual expression of the robot. The board includes the microcontroller, connectors and the necessary routing to connect the LED elements inside the head.

KiCad eye PCB routing

The PCB was designed in KiCad, and the design files can be found at the end of this page. The board was specifically created for integration into the 3D-printed eyes.

Robot eye PCB and LEDs

All integration working

The second evaluable PCB integrates the ToF distance sensor and the servo output. This board is also based on a XIAO ESP32-S3 and was designed in KiCad.

The ToF sensor works as an input device. When a person approaches the robot, the sensor detects the presence and the microcontroller activates a servo motor to open the trash compartment.

This board demonstrates both input and output integration in a custom fabricated PCB.

ToF and servo PCB

This PCB was designed around a XIAO ESP32-S3 and controls both the trash gate servo and the ToF sensor. The ToF sensor is mounted directly onto the PCB in a perpendicular orientation, as shown in the detailed photograph. This configuration allows the entire assembly to fit neatly inside the robot body without additional wiring. The only external connections required are the servo cable and the power supply, which must remain separate from the board due to their electrical and mechanical requirements.

KiCad eye PCB design

As an extra feature beyond the minimum Fab Academy requirements, I implemented the arm control system using an M5Stack ATOM Matrix based on the ESP32. Through the cloud integration, the ATOM Matrix receives data from the proximity sensor via MQTT and controls the arm movements, raising or lowering them depending on the interaction sequence. It can also communicate with the mobile application through MQTT, enabling remote control and monitoring. I chose the ATOM Matrix because, in addition to its compact size and wireless connectivity capabilities, it includes an integrated LED matrix that allows me to implement a beating heart inside the robot, adding an emotional and engaging element to enhance the user experience.

The different controllers communicate through MQTT topics. Node-RED acts as the central platform in the cloud, receiving commands and coordinating the robot subsystems.The ATOM Matrix sends the control signals to the stepper motor drivers, which regulate the movement, speed, and direction of the robotic arms.

Node-RED MQTT cloud control

Initial tests of the ATOM Matrix and MQTT communication with the other custom PCBs designed and fabricated for this project. The ATOM Matrix, shown in my hands, acts as the central controller for the robot's interaction system. During these tests, it successfully exchanged data with the eye PCB and the ToF and servo PCB through MQTT, validating the cloud-based communication architecture and the integration of the different subsystems.

Node-RED MQTT cloud control

test The ATOM Matrix sends the control signals to the stepper motor drivers, which regulate the movement, speed, and direction of the robotic arms.

Node-RED MQTT cloud control

Test the stepper motor drivers, which regulate the movement

Node-RED MQTT cloud control

Final appearance of the ATOM Matrix with the animated heart display. The beating heart effect can be clearly seen in the presentation video, where it enhances the robot's emotional interaction and reinforces its friendly and engaging character.

As an extra feature beyond the minimum Fab Academy requirements, I implemented cloud control using Node-RED and MQTT.

The different controllers communicate through MQTT topics. Node-RED acts as the central platform in the cloud, receiving commands and coordinating the robot subsystems.

Node-RED MQTT cloud control

I also developed a mobile application using MIT App Inventor. The app allows the user to interact with the robot and send commands to the cloud system.

This app communicates with Node-RED through MQTT, making it possible to control the robot remotely and test its different behaviours.

MIT App Inventor mobile app

Fabrication Processes Used

Additive Fabrication

3D printing was used to fabricate the head, body, lower body and custom parts.

Subtractive Fabrication

CNC machining was used to fabricate strong structural parts such as legs and hands.

Laser Cutting

Laser cutting was used for the face and arm decorative parts.

Electronics Production

Custom PCBs were designed, milled, soldered and tested.

3D printing CNC fabrication Laser cutting PCB fabrication

Materials, Components, Origin and Cost

Part Material / Component Process / Source Cost (€)
Head PLA 3D printed in Fab Lab 9.80
Body PLA 3D printed in Fab Lab 10.12
Lower Body PLA 3D printed in Fab Lab 8.00
Control Boards 2 × XIAO ESP32-S3 Seeed Studio 28.00
Power System 24 V Power Supply Commercial component 26.30
Arms 2 × NEMA 17 motors with gearbox StepperOnline 62.24
Stepper Drivers Digital stepper drivers StepperOnline 36.36
Face LED rings Commercial component 14.90
Detector VL53L0X ToF sensor Commercial component 11.99
Custom PCBs Copper board, components, solder Fablab stock 15,61
Front Panel Acrylic Sheet Fab Lab stock 12.19
Assembly Soldering Components Fab Lab stock 5.00
Wiring Cables and Connectors Fab Lab stock 8.12
Total Project Cost (€) 248.63

What parts and systems were made?

Mechanical Body

Mechanical body

Head, body, lower body, supports, arms, legs and decorative parts.

Electronic Eyes

Electronic eyes

Custom PCB and programmed LED expressions for the robot face.

ToF Detection System

ToF detection system

Custom board integrating the ToF sensor and servo output.

Arm Movement System

Arm movement system

Stepper motors, drivers, mechanical coupling and MQTT control.

Heart System

Heart system

M5Stack ATOM Matrix used to display emotional feedback.

Cloud and App

Cloud and mobile app

Node-RED, MQTT and App Inventor were used for remote interaction.

System Integration

The real architecture of FABI is distributed between three main controllers. One custom PCB with a XIAO ESP32-S3 controls the robot eyes. Another XIAO ESP32-S3 controls the ToF sensor and opens the trash gate when a person approaches. Finally, an M5Stack ATOM Matrix controls the heart and the robotic arms.

All controllers communicate using MQTT with Node-RED running in the cloud. This architecture makes the robot modular, easier to test and easier to expand.

System integration diagram Node-RED MQTT integration MIT App Inventor blocks Mobile app interface

What questions were answered?

What worked? What did not work?

What worked

What did not work at first

How was it evaluated?

Implications

FABI demonstrates how digital fabrication can be used to create an interactive educational object with social and environmental purpose. The project can be improved in the future with better sensors, safer soft materials for the hug, voice interaction, autonomous behaviours and more robust mechanical arms.

Links to Previous Fab Academy Weeks

Some parts of the final project were developed during previous weekly assignments.

2D and 3D Design Embedded Programming Electronics Design Electronics Production Input Devices Output Devices Networking and Communications Mechanical Design

Downloadable Original Design Files

All original design files, source code, electronics files and fabrication resources are available for download below.

File Description Download
cabeza9FCStd.FCStd Complete FreeCAD design of the robot body and head.
View downloadable STL files
View downloadable DXF files for laser cutting and CNC
Download
noderedfabi.json Node-RED flow for MQTT cloud control. Download
ojos3.ino Arduino code for the robot eyes. Download
TOFmqttv2.ino Arduino code for ToF sensor and servo control. Download
servomqttatomv5.ino Arduino code for MQTT motor and heart control. Download
pecho.zip KiCad files for the chest electronics. Download
eyes.zip KiCad files for the eye PCB. Download
eyespng.zip PNG files for the eye PCB. Download
TOF.zip PNG files for the TOF PCB. Download

License

This project is released under a Creative Commons Attribution Non Commercial license. The work can be shared and adapted for non-commercial purposes, provided that proper attribution is given.

Mechanical body

Acknowledgements

I would like to acknowledge the support of Fab Lab León, Fab Lab Ponferrada, my instructors, classmates and the Fab Academy community. Their feedback and support helped me improve the project throughout the process.