Visão Geral do Projeto
Este wiki foi atualizado: https://wiki.seeedstudio.com/pt-br/xiao_esp32s3_with_micropython/
CircuitPython é uma linguagem de programação ideal para o XIAO ESP32S3, pois simplifica projetos de computação física. Baseada em Python, ela possui uma sintaxe amigável para iniciantes e inclui módulos para acessar hardware como sensores e displays. Como o CircuitPython já oferece suporte ao chip ESP32S3, este projeto tenta compilar o CircuitPython na placa Seeed Studio XIAO ESP32S3.
XIAO ESP32S3 com Display OLED

Preparação de Hardware
Estou usando o Seeed Studio XIAO ESPS3 e o Seeed Studio Grove OLED Display 0.96 como hardware aqui.
| Seeed Studio XIAO ESP32S3 | Seeed Studio Grove OLED Display 0.96 |
|---|---|
![]() | ![]() |
Preparação de Software
Estou usando o software Thonny IDE (Windows) e algumas bibliotecas e arquivos relacionados.
| Thonny IDE | arquivos relacionados (bibliotecas) |
|---|---|

Primeiros Passos
Baixar o firmware CircuitPython para XIAO ESP32S3
Firmwares CircuitPython 9.1.1 e 9.20 Alpha para XIAO ESP32S3 Sense
Conecte a placa XIAO ESP32S3 ao PC no modo BootLoader
O método específico é:
-
Passo 1. Pressione e segure o botão BOOT no XIAO ESP32S3 sem soltá-lo.
-
Passo 2. Mantenha o botão BOOT pressionado e, em seguida, conecte ao computador via cabo de dados. Solte o botão BOOT após conectar ao computador.
-
Passo 3. Envie o programa Blink para verificar o funcionamento do XIAO ESP32S3.

Abra o Thonny e configure as opções
- Após executar o Thonny, navegue até "Tools -> Options" e clique na opção "Options"

- Selecione a opção "Interpreter" e clique na seleção "CircuitPython (generic)"

Gravar o firmware CircuitPython na placa XIAO ESP32S3
- Clique em "(esptool)" no Thonny. Ele solicitará que você baixe o firmware CircuitPython mais recente e o grave na placa.

- O "(esptool)" no Thonny é mostrado como abaixo e primeiro escolha a "Target port" correta.

- Selecione a família CircuitPython como "ESP32-S3" e selecione o ícone com as três linhas horizontais ao lado do botão install, para incluir o Firmware que você baixou. Ex.: (seeed_xiao_esp32s3_911.bin ou seeed_xiao_esp32s3_920.bin)

- O Thonny preencherá o reset e você pode clicar em "Install" agora.

- Depois de um tempo mostrando "Done", a janela pode ser fechada.

- Haverá um driver "CIRCUITPY" no PC, o que mostra que a placa foi gravada com sucesso.

Adicionar os arquivos relacionados (bibliotecas) ao driver "CIRCUITPY"
Copie todos os arquivos de arquivos relacionados (biblioteca) para o driver "CIRCUITPY".

O arquivo "adafruit_ssd1306.mpy" e o arquivo "adafruit_framebuf.mpy" são necessários ao usar o "Seeed Studio Grove OLED Display 0.96"
A biblioteca adafruit_framebuf usa um arquivo de fonte chamado font5x8.bin para renderizar texto. Este arquivo precisa estar acessível dentro do ambiente onde seu código é executado.
Escrever código (IIC) e enviar para operar o display OLED
- Após adicionar os arquivos, agora posso importar a biblioteca adafruit_ssd1306 para o código usando o comando import adafruit_ssd1306 e o ambiente agora está configurado para controlar o display OLED. O código é mostrado abaixo:
from board import *
from busio import I2C
import busio
import adafruit_ssd1306
i2c = I2C(IO6,IO5) # Initialize I2C communication using IO6 and IO5 pins
# Create a display object with 128x64 resolution and an I2C address of 0x3C
display = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3C)
# Clear the display
display.fill(0)
display.show()
# Write text on the display
display.text('SeeedStudio ESP32S3', 0, 0 , 1)
display.text('Code by CircuitPython!', 0, 20 , 2)
display.show()
- Envie o código clicando no botão "Run"

- O resultado final

XIAO ESP32S3 Sense usando XIAO Round Display com Sense Camera
Preparação de Hardware
| Seeed Studio XIAO ESP32S3 Sense | Round Display para XIAO |
|---|---|
![]() | ![]() |
Preparação de Software
- Instale o firmware no XIAO ESP32S3 Sense.
| Firmware |
|---|
- Instale os módulos e dependências necessárias.
Você sempre pode instalar bibliotecas CircuitPython usando a ferramenta circup, da Adafruit. Depois de instalada, basta digitar para instalar quaisquer bibliotecas.
# install circup
pip install setuptools
pip install circup
pip install --upgrade circup
# install module to library
circup install gc9a01 adafruit_ticks
Primeiros Passos
Depois de instalar todas as bibliotecas necessárias, basta digitar o código em code.py ou main.py em CIRCUITPY, abaixo, para ver o quadro da câmera no Display Redondo.
import board
import busio
import displayio
import espcamera
import adafruit_ticks
import gc9a01
import struct
i2c = busio.I2C(board.SCL, board.SDA)
spi = busio.SPI(clock=board.SCK, MOSI=board.MOSI)
cam_i2c = busio.I2C(board.CAM_SCL, board.CAM_SDA)
tft_dc = board.D3
tft_cs = board.D1
tft_bl = board.D6
display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs)
display = gc9a01.GC9A01(display_bus, width=240, height=240, rotation=0)
# Appears that this example does not use Displayio at all
# print frame directly on display_bus to be faster
# so, rotation setting not works...
main = displayio.Group()
display.root_group = main
# Camera Init
cam = espcamera.Camera(
data_pins=board.CAM_DATA,
external_clock_pin=board.CAM_XCLK,
pixel_clock_pin=board.CAM_PCLK,
vsync_pin=board.CAM_VSYNC,
href_pin=board.CAM_HREF,
pixel_format=espcamera.PixelFormat.RGB565,
frame_size=espcamera.FrameSize.R240X240,
i2c=cam_i2c,
external_clock_frequency=20_000_000,
framebuffer_count=2,
grab_mode=espcamera.GrabMode.WHEN_EMPTY)
# Sending init bytes to display_bus
display_bus.send(36, struct.pack(">hh", 0, 239))
display_bus.send(42, struct.pack(">hh", 0, 239))
display_bus.send(43, struct.pack(">hh", 0, 80+239))
display.auto_refresh = False
t0 = adafruit_ticks.ticks_ms()
while True:
frame = cam.take(1)
if isinstance(frame, displayio.Bitmap):
display_bus.send(44, frame)
t1 = adafruit_ticks.ticks_ms()
fps = 1000 / adafruit_ticks.ticks_diff(t1, t0)
print(f"{fps:3.1f}fps") # typically runs at about 25fps
t0 = t1
E mais
- Os arquivos relacionados são todos do conjunto de bibliotecas Adafruit CircuitPython montado a partir de https://circuitpython.org/libraries e você pode encontrar todos os arquivos de hardware compatíveis usando CircuitPython.
- O arquivo "font5x8.bin" está aqui
- Firmware para o Display Redondo e câmera
✨ Projeto de Contribuidores
- Este projeto é apoiado pelo Projeto de Contribuidores da Seeed Studio.
- Agradecimentos pelos esforços do Isaac e seu trabalho será exibido.
- E Djair Guilherme.
Suporte Técnico & Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.



