OpenMV Cam RT1062

OpenMV Cam RT1062 是一款低功耗機器視覺開發板,採用 NXP i.MX RT1062(Cortex‑M7 @ 600 MHz)打造。本開發板結合了 USB‑C 高速網路、Wi‑Fi/Bluetooth 與 10/100 Ethernet,並搭配安裝於可拆卸載板上的 OV5640 5MP 感測器。相機在深度睡眠時僅從 LiPo 電池汲取約 30 µA 的電流,因此非常適合電池供電的專案。

OpenMV Cam RT1062

完整的資料手冊、照片與尺寸資訊請參閱 OpenMV Cam RT1062 產品頁面

重點特色

  • NXP i.MX RT1062 Cortex‑M7,運作頻率 600 MHz。

  • 32 MB 外部 SDRAM(16 位元 @ 160 MHz,320 MB/s),外加 1 MB 內部 SRAM16 MB QSPI 快閃記憶體(133 MHz 4 位元 SDR,讀取 66 MB/s);R6 以上具備 4 KB EEPROM

  • OV5640 5MP 滾動快門感測器。

  • 板載 IMU(12 位元三軸加速度計,±2/4/8 g)。

  • 高速 USB‑C(480 Mb/s,1.5 A 電流限制)、10/100 Mb/s Ethernet(透過擴充板可支援 PoE)、Wi‑Fi a/b/g/n + Bluetooth 5.1(晶片天線或 U.FL 選項)。

  • microSD 插槽 — SD 最高 2 GB、SDHC 最高 32 GB、SDXC 最高 2 TB。

  • LiPo 充電器(R6 以上為 500 mA,R4/R5 為 100 mA)、具備備用電池焊盤的 RTC。深度睡眠時電池耗電 約 30 µA

  • 14 個 I/O 接腳,全部為 3.3 V 輸出 / 3.3 V 容許,每個接腳 4 mA,皆可觸發中斷。

  • 使用者 RGB LED、使用者 SW 按鈕、硬體電源按鈕(深度睡眠 / 喚醒狀態機),以及一個獨立的狀態 LED 用於充電 / USB / VIN 電源。

警告

RT1062 的 I/O 接腳 不容許 5 V。請勿將裝置直接連接到像 Arduino Mega 這類的 5 V MCU。僅能透過 VIN 為開發板供電。

接腳配置

OpenMV Cam RT1062 OV5640 接腳配置

接腳參考

接腳名稱

功能

P0

SPI1 MOSI / PWM2 B3

P1

SPI1 MISO / CAN0 TX

P2

SPI1 SCLK / PWM2 B3

P3

SPI1 SS / CAN0 RX

P4

I2C1 SCL / UART1 TX / PWM1 X2

P5

I2C1 SDA / UART1 RX / PWM1 X3

P6

ADC

P7

PWM2 A0

P8

PWM2 B0

P9

PWM1 A3

P10

PWM1 B3 / 影格同步 I/O

P11

喚醒(低電位有效,接到 GND 以喚醒)

P12

RESET — 拉至 GND 以重置開發板(非 GPIO)

P13

數位 I/O

P14

數位 I/O

ON/OFF

複製硬體電源按鈕功能的排針焊盤(低電位有效)

SW

使用者按鈕(低電位有效)

ST

VIN 供電時為低電位,USB 供電時為高電位

CHG

低電位有效;當所連接的 LiPo 電池充電時為低電位

PG

低電位有效;當 VIN 或 USB 電源存在時為低電位

LED_RED

RGB LED 紅色通道(低電位有效)

LED_GREEN

RGB LED 綠色通道(低電位有效)

LED_BLUE

RGB LED 藍色通道(低電位有效)

備註

P10 影格同步線是共用匯流排。 它同時連接到 MCU、相機感測器的觸發 / 曝光接腳,以及使用者排針。方向由應用程式定義 — 視感測器的設定方式而定,可由 MCU、感測器或外部訊號來驅動它。請確保同一時間只有一個驅動端處於作用狀態。

備註

ON/OFF 與 P11 是參考至常開的 RAW 電源軌(而非切換式 3.3 V 電源軌),因此即使開發板其餘部分處於深度睡眠 / 低功耗模式,它們仍可正常運作。兩者皆為低電位有效輸入。

這些接腳會經過電位轉換器,以便能跨接於 RAW 電源軌上。如果你確實需要 ON/OFF 或 P11 具有 3.3 V 直接 GPIO 的行為(例如要從 3.3 V MCU 直接驅動它們而不經過轉換器),開發板提供了上拉與 0 歐姆跳線焊盤,讓你可以略過轉換器。這是進階的硬體改裝 — 大多數使用者應保持原狀。

備註

P13 與 P14 預設為一般 GPIO,沒有特殊功能。透過重新焊接開發板背面的 0 歐姆電阻焊橋,這些焊盤可選擇性地重新導向至其他訊號:

  • P13 ↔ CHG 狀態 / JTAG TRSTB

  • P14 ↔ ST 狀態 / JTAG TDI

大多數使用者不會去動這些跳線 — 除非你特別需要電源管理回讀或 JTAG,否則請保留 GPIO 預設值。

電源接腳

  • 3.3V — 穩壓 3.3 V 電源軌。在 RT1062 上 僅供輸出 — 請勿將外部電源饋入此接腳。可為擴充板提供最高 1 A。

  • VIN — 5 V 輸入。為開發板與板載 LiPo 充電器供電。

  • RAW — 輸入/輸出,常開(3.6 V – 5 V)。承載目前作用中的任一電源(VIN、USB 或所連接的電池),也可作為輸入使用。當要將電源饋入 RAW 時,你必須透過串聯二極體來驅動 RAW — 否則電流會回灌至 VIN/USB,並損壞電源供應器或板載保護電路。

  • GND — 共同接地。

備註

板載電源管理晶片會自動選擇 USB 或 VIN 中電壓較高者 來為開發板與電池充電器供電。如果連接了 LiPo,它會以剩餘的餘裕進行充電;若 VIN/USB 電壓下降或被拔除,控制器會切換至電池以維持開發板運作。

備註

開發板背面有用於外接 3.3 V RTC 備用電池 的焊盤。將鈕扣電池接到這些焊盤,可在開發板其餘部分未供電時維持 RTC 運作。

小訣竅

使用 電池壽命估算器 來推估 RT1062 在指定的作用 / 深度睡眠工作週期下,以電池供電可運作多久。

Ethernet 接腳

RT1062 在 GPIO 排針旁的專用焊盤上引出 10/100 Mb/s Ethernet PHY 的 MDI 對。MDI 接腳無法安全地直接接到 RJ45 — PHY 與線纜之間 必須 有 Ethernet 磁性元件(隔離變壓器,可內建於 magjack 中或位於擴充板上)。OpenMV PoE 擴充板已包含這些元件;如果你要自製接頭,請使用整合磁性元件的 RJ45 或外接變壓器。

  • ETH_LED — 連線/活動 LED。連線建立時為低電位有效;有流量時閃爍。

  • ETH_TXP / ETH_TXN — 傳送對。

  • ETH_RXP / ETH_RXN — 接收對。

備註

排針上還引出了四個絲印標示為 Reserved 的焊盤。它們與 OpenMV N6 上的 gigabit Ethernet 對(DC P/N 與 DD P/N)腳位相容,因此同一片 Ethernet / PoE 擴充板可插在任一開發板上。RT1062 的 PHY 只支援 10/100 Mb/s,所以這四個焊盤 沒有任何電氣連接 — 請保持未接狀態。

復原與除錯接腳

  • RESET — 拉至 GND 以重置開發板。釋放後 MCU 即可正常啟動。

  • SBL — 在為開發板供電的同時拉至 3.3 V,以進入 ROM bootloader(Serial Boot Loader)模式。OpenMV IDE 使用此模式來重新燒錄板載 bootloader。

板上配有專用的 ARM 10 針 SWD/JTAG 排針,與 ST‑LINK 及 SEGGER J‑Link 轉接器相容。

備註

RT1062 預設僅透過此連接器引出 SWD 除錯功能。完整的 JTAG 並非開箱即用。

板載周邊裝置

LED

RT1062 有兩個 RGB LED:

  • 使用者 RGB LED — 可由軟體控制,以 LED_REDLED_GREENLED_BLUE 形式引出::

    from machine import LED
    
    LED("LED_RED").on()
    LED("LED_GREEN").on()
    LED("LED_BLUE").on()
    
  • 電源 LED — 由板載電源管理硬體直接驅動,無軟體控制。可用它一眼判讀電源狀態。

    運作時:

    通道

    意義

    VIN 正在為開發板供電(USB 供電時熄滅)

    USB 或 VIN 電源存在

    正在為所連接的 LiPo 電池充電

    在深度睡眠時所有通道都會熄滅,唯獨紅色除外,當 LiPo 充電時它仍會亮起。

按鈕

RT1062 有兩個按鈕:

  • SW — 通用使用者按鈕。可從程式碼中以一般的低電位有效 GPIO 輸入讀取::

    from machine import Pin
    
    sw = Pin("SW", Pin.IN)
    print(sw.value())
    
  • 電源按鈕 — 由 RT1062 開發板上的專用電源控制器狀態機驅動,完全以硬體實作。它 不會暴露給使用者程式碼;控制器會依按住的時間長短決定動作:

    • 開發板運作時 按住約 5 秒 → 狀態機轉換至深度睡眠。

    • 開發板處於深度睡眠時 按住約 1 秒 → 狀態機重新喚醒系統。

    ON/OFF 排針焊盤拉至低電位,效果與按下板載電源按鈕相同 — 適合用於接外部開關,或從另一個微控制器驅動該訊號線。

電源狀態接腳

來自板載電源管理晶片的三個低電位有效狀態輸入:

  • PG — 當 VIN 或 USB 電源存在時為低電位。永遠為已連接狀態。

  • ST — 當開發板以 VIN 運作時為低電位,以 USB 電源運作時為高電位。預設未連接。

  • CHG — 當所連接的 LiPo 電池充電時為低電位。預設未連接。

from machine import Pin

power_ok = not Pin("PG", Pin.IN).value()

相機感測器

OV5640 透過 csi --- 相機感測器 模組來驅動::

import csi

cam = csi.CSI()
cam.reset()
cam.pixformat(csi.RGB565)
cam.framesize(csi.QVGA)
cam.snapshot(time=2000)       # let auto‑exposure settle

while True:
    img = cam.snapshot()

OV5640 內建 JPEG 壓縮器。將 csi.CSI.pixformat 設為 csi.JPEG,感測器就會透過相機匯流排將壓縮後的影格直接傳送到相機,使高解析度擷取變得實用:csi.HD(1280×720)、csi.FHD(1920×1080),以及完整 5MP 的 csi.WQXGA2(2592×1944)皆可以 JPEG 串流。使用 csi.CSI.quality(0-100,數值越高 = 影格越大、細節越多)調整壓縮率::

cam.pixformat(csi.JPEG)
cam.framesize(csi.WQXGA2)
cam.quality(90)

感測器安裝於 可拆卸模組 上 — 可換成任一其他 OpenMV 相機模組(全域快門、熱成像、更高解析度等),無需更動開發板的其餘部分。

機器學習

ml --- 機器學習 在 Cortex‑M7 上以 CMSIS‑NN 核心執行量化的 TFLite 模型 — 速度足以讓精簡型偵測器以每秒數個影格運作。位於唯讀 /rom 檔案系統上的模型會直接從快閃記憶體載入,無需複製到 RAM。以下是一個 128×128 的 BlazeFace 偵測器,在每一影格上疊加所偵測到的臉部及其六個地標::

import csi
import time
import ml
from ml.postprocessing.mediapipe import BlazeFace

# Initialize the sensor.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)
csi0.window((400, 400))

# Load built-in face detection model
model = ml.Model("/rom/blazeface_front_128.tflite", postprocess=BlazeFace(threshold=0.4))
print(model)

clock = time.clock()
while True:
    clock.tick()
    img = csi0.snapshot()

    # faces is a list of ((x, y, w, h), score, keypoints) tuples
    for r, score, keypoints in model.predict([img]):
        ml.utils.draw_predictions(img, [r], ("face",), ((0, 0, 255),), format=None)

        # keypoints is a ndarray of shape (6, 2)
        # 0 - right eye (x, y)
        # 1 - left eye (x, y)
        # 2 - nose (x, y)
        # 3 - mouth (x, y)
        # 4 - right ear (x, y)
        # 5 - left ear (x, y)
        ml.utils.draw_keypoints(img, keypoints, color=(255, 0, 0))

    print(clock.fps(), "fps")

IMU

RT1062 韌體 不會 將板載加速度計連接到 imu --- imu 感測器 模組。請改為透過內部 I²C 匯流排直接與它通訊 — 該晶片位於位址 0x15,從暫存器 0x03 開始封裝三個帶正負號的 12 位元加速度通道,外加一個 8 位元溫度位元組::

import machine
import time

ADDR     = 0x15
DATA_REG = 0x03
LSB_PER_G = 1024.0    # ±2 g range

def s12(hi, lo):
    v = ((hi << 8) | lo) >> 4
    return v - 0x1000 if v & 0x800 else v

bus = machine.I2C(2)
print("Devices on I²C2:", bus.scan())

while True:
    d = bus.readfrom_mem(ADDR, DATA_REG, 7)
    x = s12(d[0], d[1]) / LSB_PER_G
    y = s12(d[2], d[3]) / LSB_PER_G
    z = s12(d[4], d[5]) / LSB_PER_G
    temp_c = d[6] * 0.586 + 25.0
    print("x=%+.2fg  y=%+.2fg  z=%+.2fg  T=%.1f°C" % (x, y, z, temp_c))
    time.sleep_ms(100)

EEPROM

R6 以上的開發板 在與加速度計相同的內部匯流排上配有一顆通用 4 KB I²C EEPROM。(較早的版本沒有 — 在 R4/R5 上呼叫這些程式碼片段會因缺少 I²C ack 而逾時。)請使用標準的 machine.I2C readfrom_mem / writeto_mem API,搭配 16 位元記憶體位址::

import machine
import time

EEPROM_ADDR = 0x50            # default address
PAGE_SIZE   = 32              # bytes per page (both read and write)
EEPROM_SIZE = 4096

bus = machine.I2C(2)

# Dump the entire 4 KB one page at a time
data = bytearray()
for offset in range(0, EEPROM_SIZE, PAGE_SIZE):
    data += bus.readfrom_mem(EEPROM_ADDR, offset, PAGE_SIZE, addrsize=16)
print(len(data), "bytes")

# Write a small payload back at offset 0 (fits in one page)
bus.writeto_mem(EEPROM_ADDR, 0, b"hello, world", addrsize=16)
time.sleep_ms(10)             # ~5 ms write cycle after each page

# Read it back
print(bus.readfrom_mem(EEPROM_ADDR, 0, 12, addrsize=16))

讀取與寫入 都必須維持在 32 位元組的頁面範圍內。任何更大的傳輸都要拆分成每頁一次呼叫,並在連續寫入之間加入約 5 ms 的寫入週期延遲。

Wi‑Fi

板載的 CYW43 系列模組透過 network --- 網路設定 以站台介面的形式引出。連線後,ipconfig("addr4") 會回傳 (ip, netmask) 配對::

import network, time

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("ssid", "password")
while not wlan.isconnected():
    time.sleep(1)
print("Wi‑Fi IP:", wlan.ipconfig("addr4")[0])

Bluetooth

同一個無線模組也引出了 Bluetooth 5.1。請使用 aioble --- 非同步 BLE 來進行對 asyncio 友善的 BLE — 例如,以周邊裝置的身分廣播並等待中央裝置連線::

import asyncio
import aioble

async def run():
    while True:
        conn = await aioble.advertise(250_000, name="OpenMV-RT1062")
        print("Connected:", conn.device)
        await conn.disconnected()

asyncio.run(run())

Ethernet

當 RJ45(含磁性元件)連接到 MDI 焊盤時,10/100 PHY 會以 LAN 介面的形式出現。連線一旦建立,DHCP 就會自動執行::

import network, time

lan = network.LAN()
lan.active(True)
while not lan.isconnected():
    time.sleep(1)
print("Ethernet IP:", lan.ipconfig("addr4")[0])

microSD 卡

當插入記憶卡時,它會自動掛載於 /sdcard,並可透過一般的檔案系統使用::

import os

for entry in os.listdir("/sdcard"):
    print(entry)

匯流排參考

GPIO

使用 machine.Pin 來讀取或驅動任一絲印標示的接腳。輸出為 3.3 V CMOS,每個接腳可吸入/輸出最高 4 mA。

from machine import Pin

out = Pin("P0", Pin.OUT)
out.on()
out.off()
out.value(1)

inp = Pin("P1", Pin.IN, Pin.PULL_UP)
print(inp.value())

任何輸入接腳也可在邊緣轉態時觸發中斷::

def handler(pin):
    print("triggered:", pin)

Pin("P1", Pin.IN, Pin.PULL_UP).irq(
    handler, Pin.IRQ_FALLING | Pin.IRQ_RISING,
)

UART

匯流排

TX

RX

UART1

P4

P5

from machine import UART

uart = UART(1, baudrate=115200)
uart.write("hello")
uart.read(5)

I²C

匯流排

SCL

SDA

I2C1

P4

P5

from machine import I2C

i2c = I2C(1, freq=400_000)
i2c.scan()
i2c.writeto(0x76, b"hi")

同一個硬體也可透過 machine.I2CTarget 在目標(從屬)模式下使用,以向另一個 I²C 控制器暴露一塊記憶體區域::

from machine import I2CTarget

buf = bytearray(32)
target = I2CTarget(1, addr=0x42, mem=buf)

SPI

匯流排

MOSI

MISO

SCK

CS

SPI1

P0

P1

P2

P3

from machine import SPI
from machine import Pin

spi = SPI(1, baudrate=10_000_000)
cs = Pin("P3", Pin.OUT, value=1)   # CS is not driven by the SPI peripheral

cs.value(0)
spi.write(b"hello")
cs.value(1)

CAN

匯流排

TX

RX

CAN1

P1

P3

備註

韌體 v5.0.0 尚未在此開發板上支援 CAN。

from machine import CAN

can = CAN(1, 500_000)
can.set_filters(None)
can.send(0x123, b"\xDE\xAD\xBE\xEF")
print(can.recv())

ADC

唯一的使用者 ADC 接腳是 P6,其滿刻度約為 3.3 V::

from machine import ADC
import time

adc = ADC("P6")
while True:
    voltage = adc.read_u16() * 3.3 / 65535
    print(voltage)
    time.sleep_ms(100)

PWM

接腳

FlexPWM 通道

P0

PWM2 B3

P2

PWM2 B3

P4

PWM1 X2

P5

PWM1 X3

P7

PWM2 A0

P8

PWM2 B0

P9

PWM1 A3

P10

PWM1 B3

透過 machine.PWM 來驅動其中任一個::

from machine import Pin, PWM

pwm = PWM(Pin("P9"), freq=1_000, duty_u16=32768)

軟體位元拍打(bit‑banged)匯流排

如果你需要額外的匯流排,machine.SoftI2Cmachine.SoftSPI 可在任何 GPIO 上運作。

熱成像感測器(板外)

韌體包含 fir --- 熱感測器驅動程式 (fir == far infrared,遠紅外線) 驅動程式,可用於外接的熱成像儀:

  • MLX90621 — 16 × 4 IR 陣列

  • MLX90640 — 32 × 24 IR 陣列

  • MLX90641 — 16 × 12 IR 陣列

  • AMG8833 — 8 × 8 IR 陣列

將模組接到開發板的 I²C 匯流排,並以 fir.init() + fir.snapshot() 讀取影格::

import time
import image
import fir

fir.init()                          # auto‑detects the sensor
clock = time.clock()

while True:
    clock.tick()
    try:
        img = fir.snapshot(x_scale=5, y_scale=5,
                           color_palette=image.PALETTE_IRONBOW,
                           hint=image.BICUBIC,
                           copy_to_fb=True)
    except OSError:
        continue
    print(clock.fps())

fir 驅動程式只透過 I²C 4 與感測器通訊 — 請將模組接到 P4(SCL)與 P5(SDA)。

計時

time

time 模組涵蓋阻塞式延遲、單調遞增的計時節拍,以及經過時間的量測::

import time

time.sleep(1)              # seconds
time.sleep_ms(500)
time.sleep_us(10)

start = time.ticks_ms()
# ...do work...
elapsed = time.ticks_diff(time.ticks_ms(), start)

虛擬計時器

machine.Timer 可在不佔用硬體計時器插槽的情況下排程週期性或單次的回呼函式。將 id 傳入 -1 即可使用虛擬(軟體)計時器::

from machine import Timer

one_shot = Timer(-1)
one_shot.init(period=5_000, mode=Timer.ONE_SHOT,
              callback=lambda t: print("once"))

periodic = Timer(-1)
periodic.init(period=2_000, mode=Timer.PERIODIC,
              callback=lambda t: print("tick"))

週期值以毫秒為單位。呼叫 deinit() 以停止並釋放該插槽。

即時時鐘

machine.RTC 可在重置後維持實際時間,並且(在後方焊盤接上選配的 3.3 V 備用電池時,請參閱 電源接腳)即使完全斷電也能維持::

from machine import RTC

rtc = RTC()
rtc.datetime((2026, 4, 30, 4, 12, 0, 0, 0))   # Y, M, D, weekday, h, m, s, subsec
print(rtc.datetime())

RTC 在深度睡眠期間仍持續運作,因此你可以將它用作 machine.deepsleep() 的喚醒來源。

看門狗

若應用程式當機,machine.WDT 會重置開發板。一旦啟動就無法停止或重新設定 — 請在主迴圈中定期餵食它::

from machine import WDT

wdt = WDT(timeout=5_000)   # 5 second window
while True:
    # ...do work...
    wdt.feed()

啟動與執行階段資訊

USB bootloader 視窗

每次上電時,相機都會執行一段簡短的 bootloader(數秒),讓 OpenMV IDE 無需使用者進入 DFU 模式即可更新韌體。視窗逾時後,bootloader 會將控制權交給 boot.py,接著是 main.py

正在執行的指令碼可隨時呼叫 machine.bootloader() 重新進入 bootloader::

import machine

machine.bootloader()

檔案系統與啟動順序

RT1062 韌體在啟動時最多掛載三個檔案系統:

  • 內部快閃記憶體 — 永遠掛載於 /flash。預設存放 main.pyREADME.txt;於首次啟動時建立。

  • microSD 卡 — 若插入記憶卡,則掛載於 /sdcard

  • ROMFS — 唯讀、記憶體映射的檔案系統,位於 /rom,用於封裝可受惠於零複製存取的大型資料資產(例如 AI 模型)。由 MicroPython 在啟動時自動掛載,早於任何使用者 Python 程式碼執行之前。

掛載後,若記憶卡存在,工作目錄會設為 /sdcard,否則為 /flash。直譯器接著會從該目錄執行指令碼:

  • boot.py 會在 每次 軟重置時執行(冷開機、從 REPL 按 Ctrl‑D,或每當正在執行的指令碼回傳時)。

  • main.py 僅在冷開機時 執行,緊接在 boot.py 之後。後續的軟重置會重新執行 boot.py,但會直接落入 REPL — 若要重新執行 main.py,你必須完全重置開發板。

boot.pymain.py 放到 SD 卡上,會覆蓋快閃記憶體中的副本而不更動它 — 這兩個檔案都會在啟動目錄中查找(記憶卡掛載時為 /sdcard,否則為 /flash)。

在剛燒錄好的開發板上隨附的預設 main.py,只會閃爍使用者 RGB LED 的 藍色 通道作為心跳訊號(兩次短脈衝、短暫間隔),讓你不需連接任何主機就能判斷韌體是否乾淨啟動。

sys.path 會擴充以納入全部三個檔案系統及其 lib/ 子目錄,因此可匯入的模組可放在 /flash/lib/sdcard/lib/rom/lib 中。

若要強制系統忽略已插入的 SD 卡(例如即使有記憶卡也要執行快閃記憶體中的 main.py),請在 /flash 的根目錄建立一個名為 SKIPSD 的空檔案。

透過 USB 連接時,啟動檔案系統(若有記憶卡則為 /sdcard,否則為 /flash)也會在主機上列舉為 USB 大量儲存裝置,讓你可以直接編輯 boot.pymain.py 及任何其他檔案。在重置相機前請先退出此磁碟機,以便主機將其快取的寫入內容刷新。

備註

由於作業系統將該磁碟機視為被動的區塊裝置,由 OpenMV Cam 上執行的程式碼所建立或修改的檔案,要等到主機重新掛載磁碟機後才會顯示。如果作業系統與 OpenMV Cam 同時寫入同一個檔案系統,作業系統會勝出並覆蓋相機所做的變更。對於指令碼要寫回的任何資料,請使用 SD 卡,並在從主機讀取這些檔案前重新掛載。

備註

當主機正在從 USB 大量儲存磁碟機讀取或寫入時,使用者 RGB LED 的 紅色 通道可能會短暫亮起 — 這是韌體驅動的活動指示,並非故障。

儲存空間大小

RT1062 出貨時配有:

  • /flash4 MB FAT 檔案系統,可讀寫。

  • /rom8 MB 唯讀、記憶體映射的 ROMFS,用於封裝可受惠於零複製 mmap 存取的指令碼與 ML 模型。

  • /sdcard — 所插入 microSD 卡的完整容量(存在時),可讀寫。

硬體錯誤(hard‑fault)指示

如果使用者 RGB LED 正快速循環顯示所有顏色 — 快到看起來像是 閃爍的白色 LED 而非各自分明的色相 — 表示韌體遇到了無法復原的硬體錯誤(hard fault)。請重新燒錄韌體以復原;如果重新燒錄沒有幫助,開發板可能已實體損壞。

軟體函式庫

完整的模組清單請參閱 函式庫索引 — 其中包含 RT1062 版本所獨有的模組。