Espresso v0

Espresso Robot
Before
After

Introduction

COMPONENTS

Electronics

Mechanical

3D Prints

Project Overview:

At the heart of project ESPRESSO is a small, versatile robot that combines various sensors, actuators, and a powerful microcontroller. This robot isn’t just a toy – it’s a learning platform that will help you understand the basics of how robots work, how they sense their environment, and how they can be programmed to perform tasks.

This project offers hands-on experience and practical knowledge for;

  • Students taking their first steps into electronics
  • Educators
  • Hobbyists looking to explore robotics,
  • Individuals who are  simply curious about how robots work,

Features & Capabilities

ESPRESSO can move around on wheels, detect obstacles, display information, light up in colorful patterns, and even make sounds. Equipped with Bluetooth and Wi-Fi functionalities, it can connect to the internet via its Wi-Fi antenna to obtain data, or even host its own network and server which allows for wireless control via a webpage.

Project Goals:

As you build and program this robot, you’ll learn about:

  1. The fundamental components that make up a robot and their functions
  2. How sensors gather information from the environment
  3. How actuators allow the robot to interact with its surroundings
  4. Basic programming concepts and how to control hardware with code
  5. Networking and how to control a robot remotely

By the end of this journey, you’ll have built your own robot, programmed it to perform various tasks, and gained valuable insights into the world of embedded systems and robotics.

Let’s embark on this adventure together and discover the exciting possibilities of robotics!

  • Design Overview:
    • Briefly describe the design of the 3D printed parts (e.g., modular design, material selection, design considerations).
    • Include a CAD rendering or a preview of the 3D models.
  • Downloading the STL Files:
    • Provide a download link for the STL files (e.g., from Thingiverse, GitHub, or your own server).
  • Printing Instructions:
    • Recommended printer settings (e.g., layer height, infill density, print speed).
    • Material recommendations (e.g., PLA, ABS).
    • Tips for successful printing (e.g., bed adhesion, support structures).
    • Image gallery of the printed parts.
  • Post-Processing:
    • Instructions on how to remove supports, clean up the prints, and prepare them for assembly.

Wiring Diagram:

Wiring Descriptions and Connections

Step 1: Power Supply and ON/OFF Switch

Connect the LiPo battery to the BMS MH-CD42 module.

  • Connect the positive (+) terminal of the LiPo battery to the “+” input on the BMS.
  • Connect the negative (-) terminal of the LiPo battery to the “-” input on the BMS.

Connect the ON/OFF Switch to the BMS MH-CD42 module.

  • Cut the positive wire connected to the “+” on the BMS and Connect it to one end of the ON/OFF Switch.
  • Connect the other end of the ON/OFF Switch to the “+” output on the BMS.

Step 2: 5V Power Distribution

Connect the BMS output to the Servos.

  • Connect the “+” on the Servos to the “+” output on the BMS.
  • Connect the “-” on the Servos to the “-” output on the BMS.

Connect the BMS output to the WS2812 Neopixel Ring.

  • Connect the “+” on the RGB Ring to the “+” output on the BMS.
  • Connect the “-” on the RGB Ring to the “-” output on the BMS.

Step 3: 3.3V Regulator Connection

Connect the output of the BMS to the 3.3V Regulator.

  • Connect the “+” output of the BMS to the input of the 3.3V regulator.
  • Connect the “-” output of the BMS to the ground pin of the 3.3V regulator.

Step 4: Powering the ESP32, OLEDs and ToF Sensor

Connect the 3.3V regulator output to the ESP32.

  • Connect the 3.3V output from the regulator to the VCC (or 3.3V) pin on the ESP32.
  • Connect the GND from the regulator to the GND pin on the ESP32.

Connect the 3.3V regulator output to the OLEDs and ToF Sensor.

  • Connect the 3.3V output from the regulator to the VCC pin on both OLED displays and the VL53L0X1 sensor.
  • Connect the GND from the regulator to the GND pin on both OLED displays and the VL53L0X1 sensor.

Step 6: I2C Connections

Connect the I2C communication lines.

  • Connect the SDA pin of the ESP32 to the SDA pin of both OLED displays and the VL53L0X1 sensor.
  • Connect the SCL pin of the ESP32 to the SCL pin of both OLED displays and the VL53L0X1 sensor.

Step 7: Servo Signal Connections

Connect the signal pins of the servos to the ESP32.

  • Connect the signal wire of SERVO_R to digital pin 6 on the ESP32.
  • Connect the signal wire of SERVO_L to digital pin 5 on the ESP32.
  • Connect the signal wire of SERVO_H to digital pin 7 on the ESP32.

Step 8: WS2812 Signal Connections

Connect the WS2812 Signal pin to the ESP32.

  • Connect the signal wire of the RGB ring to digital pin 10 on the ESP32.

Step-by-Step Assembly Instructions:

- Break of down the assembly process into manageable steps. - Use detailed images or animations to illustrate each step. - Explain how to connect each component to the ESP32.

Component Placement:

    • Show how to mount the components onto the 3D printed chassis.
    • Consider cable management to ensure a clean and organized build.

Testing the Connections:

    • Instructions on how to test the power supply and the connection of each component.

Troubleshooting:

    • Tips on diagnosing possible issues with the electronics circuit.

Enclosure Mounting:

  • How to mount components in the enclosure and wiring recommendations.
  • 4.1 Software Setup:
    • Instructions on how to install the Arduino IDE or other required software.
    • Explain how to install the necessary libraries for the ESP32, sensors, and actuators.
  • 4.2 Code Overview:
    • Describe the structure of the code and the main functions.
    • Explain how the code controls the robot’s behavior.
  • 4.3 Uploading the Code:
    • Provide clear instructions on how to upload the code to the ESP32.
  • 4.4 Example Code Snippets:
    • Include code snippets that demonstrate how to read sensor data, control the servos, and display information on the OLED.
  • 4.5 Customization and Expansion:
    • Suggest ideas for customizing the code and adding new features (e.g., remote control, autonomous navigation, voice control).
      • Different software implementations.
      • Library recommendations.
  • Initial Testing:
    • Steps to verify the basic functionality of the robot (e.g., motor control, sensor readings).
  • Calibration Procedures:
    • Instructions on how to calibrate the sensors and actuators for optimal performance.
  • Troubleshooting:
    • Common problems and solutions.
  • Advanced Testing: * Steps for advance testing of the functionality, such as speed tests.
  • Software updates: * How to update the Robot controller’s software.
  • Battery maintenance: * Suggestions on how to keep the battery health at its best.

Leave a Reply

IT

Previous article

Programming with Javascript