1 of 11

#17 RBCX

RBControl, ale lepší

2 of 11

Proč?

  • ESP32 má málo pinů
  • Nepřehledné pinové pole, pramenící z málo pinů na ESP32
  • SMD, osazování v Číně
  • Napravení chyb z RBControl (např. zbytečně moc motorů)

3 of 11

Hlavní změny

  • Koprocesor - STM32F103VC
    • Lepší/více ADC
    • Umí USB
    • 5x UART
  • Pevně dané funkce pinů, popsané na desce
  • Pouze 4 motory místo 8
  • Místo pieza pouze pískátko
  • Přídáno RTC

4 of 11

ESP32

Koprocesor

STM32

Motory

Enkodéry

Napájení

Hloupá Serva

Ultrazvuky

Tlačítka

LEDky

Inteligentní Serva

Prgm+Debug ESP32

I2C

SPI

7+4 GPIO

2x UART

Piezo

RTC

1x UART

Inteligentní LED

ADC?

SPI?

I2C?

Ovládací

UART

ProgramováníDebug ESP32

UART

Debug STM32

STM32 bootloader

5 of 11

STM32 koprocesor

  • STM32F103VC
  • 72 MHz, 32bit ARM Cortex-M3
  • 48 KiB RAM, 256 KiB Flash
  • 5x UART, USB
  • Jde debugovat z platform.io pomocí STLinku
  • Programováno v C++, s FreeRTOS a stm32cube frameworkem, v platform.io
  • Používáme bootloader sboot
  • Firmware

6 of 11

Komunikace mezi ESP32 a STM32

  • Ovládací UART (baud 921600)
    • Příkazy mezi ESP32 a STM32
    • “Rozjeď motor na 50%”, “Baterie má 6802mV”, “Resetuj desku”
    • Protokol: Protobuffery + COBS + malá hlavička
      • 0x00, <délka>, <data>
    • Keepalive - když ESP32 neodpovídá, je resetováno, STM32 vypne periferie
    • Komunikační knihovna, Protobuffer definice

7 of 11

Komunikace mezi ESP32 a STM32

  • Programovací a Debug UART tunel z ESP32
    • STM32 se chová jako “FTDI” na devkitu
    • Ovládá bootovací piny na ESP32 podle RTS/DTR
    • Umí rychlejší UART, než ESP32 DevKit (rychlejší programování)
    • ESP32 DevKit nejde programovat přes vlastní USB, dokud je zapojený do RBCX

8 of 11

Tajné bootovací kombinace

  • Tlačítko doleva - zapnutí Debug výstupu z STM32 na USB
    • Na počítači budou vidět dva sériové porty místo jednoho
  • Tlačítko dolů - RBCX nabootuje do bootloaderu
    • flashování firmware přímo z Platform.io

9 of 11

Bootloader

Bootloader

Program

Kalibrace baterie

Program

Kalibrace baterie

10 of 11

Programování RBCX

  • Téměř stejné, jako RBControl
  • Nová knihovna
  • Spousta ESP32 pinů je nyní volná, a můžete používat standardní esp-idf/arduino knihovny
  • Nezapomeňte v platformio.ini nastavit upload_speed = 2000000 ;)

11 of 11

Odkazy