Skip to main content

Architecture

·2 mins

Zombo runs on an Adafruit ESP32-S3 Feather. We chose this because it is a powerful microcontroller with WI-FI and Bluetooth radios so that we have some flexibility for control and communications later. It supports several serial protocols and has a flexible GPIO system, but it will primarily communicate with most peripherals over an I2C bus. This is a widely used protocol and simplifies the interface to the peripherals.

Platform #

Adafruit has a development/hobby plaform called Feather that makes connecting microcontrollers to peripherals very simple. We are using an ESP32-S3 Feather and several Feather Wings (peripheral boards). Adafruit provides libraries for interfacing these peripherals which makes it very quick to get things up and running.

We will be using Circuit Python for programming the controllers. This is a port of Python that was developed for microcontrollers.

Sub-Systems #

We’ve identified the following sub-systems that we will implement:

  1. Display - Provides command feedback and status
  2. Command - Uses voice recognition to accept command inputs.
  3. Navigation - Uses ultra-sonic distance sensor for collision avoidance.
  4. Motors - Two drive wheels and one caster provide locomotion.
  5. Command - Uses voice recognition to accept command inputs.
  6. LED - It’s not a robot without LEDs. We wil use the addressable NeoPixels.
  7. Diagnostics - Monitor Robot health including battery monitor and wireless signal strength
  8. Power - Power will be supplied with a battery. There are several voltage requirements. The microcontroller Feather and the Feather Wings runs on 3.3 VDC,The motors run on 4-6 VDC, and the LEDs use 5 VDC.

We will detail these systems in future post.

Diagram #

flowchart MCU(Microcontroller) I2C_Main((Main I²C Bus)) I2C_Dist((Distance I²C Bus)) MCU <---> I2C_Dist I2C_Dist <---> Sonar MCU <---> I2C_Main I2C_Main <--> Display I2C_Main <---> Motor[Motor Controller] I2C_Main <--> NeoPixel[NeoPixel Driver] I2C_Main <---> Voice[Voice Recognition] I2C_Main <--> Battery[Battery Monitor]
Architecture