Arduino Nano 33 BLE Sense

Varoitus

Tätä korttia ei enää tueta. Viimeinen Arduino Nano 33 BLE Sense -kortille julkaistu OpenMV-laiteohjelmisto on 4.7.0. Tälle kohteelle ei julkaista enää laiteohjelmistopäivityksiä, virhekorjauksia tai uusia ominaisuuksia. Alla olevat tiedot säilytetään niitä käyttäjiä varten, jotka käyttävät versiota 4.7.0 tai vanhempaa.

Arduino Nano 33 BLE Sense on 45 × 18 mm:n Arduino-Nano-muotoinen kortti, joka rakentuu Nordic Semiconductorin nRF52840:n ympärille — yksittäinen ARM Cortex‑M4 FPU:lla, joka toimii 64 MHz:n taajuudella ja jossa on 256 KB sisäistä SRAM-muistia ja 1 MB sisäistä flash-muistia. BLE tulee piirin sisäisestä radiosta, ja kortilla on 9-akselinen IMU, LPS22HB-barometri, HTS221 / HS3003 -lämpötila- ja kosteussensori, APDS9960-valo/väri/läheisyys/elesensori sekä MP34DT05 PDM -mikrofoni. OpenMV-laiteohjelmisto ohjaa kaikkia näitä MicroPythonista.

Arduino Nano 33 BLE Sense

Täydellisen datalehden, valokuvat ja mitat löydät Arduino Nano 33 BLE Rev2 -tuotesivulta.

Kohokohdat

  • Nordic nRF52840 Cortex‑M4 FPU:lla 64 MHz:n taajuudella, 256 KB sisäistä SRAM-muistia ja 1 MB sisäistä flash-muistia.

  • Bluetooth LE 5.0 piirin sisäisen radion ja Nordic SoftDevice s140:n kautta.

  • 9-akselinen IMULSM9DS1 Rev 1:ssä, BMI270 + BMM150 Rev 2:ssa. Pysyvästi sisäänrakennettu imu-ajuri tunnistaa molemmat käynnistyksen yhteydessä.

  • LPS22HB -barometri, HTS221 / HS3003 -lämpötila- ja kosteussensori, APDS9960 -valo/väri/läheisyys/elesensori sekä MP34DT05 PDM -mikrofoni.

  • Micro USB -liitin virtaa, ohjelmointia ja CDC REPL -yhteyttä varten.

  • 22 käyttäjän I/O-nastaa vakiomuotoisilla Nano-riviliittimillä — TX/RX, D2D13 (digitaalinen), A0A7 (analoginen).

Nastakartta

Arduino Nano 33 BLE Sense -nastakartta

Nastaviite

Nastan nimi

Viite

Toiminto

TX

3.3 V

UART1 TX

RX

3.3 V

UART1 RX

D2

3.3 V

PWM

D3

3.3 V

PWM

D4

3.3 V

PWM

D5

3.3 V

PWM

D6

3.3 V

PWM

D7

3.3 V

PWM

D8

3.3 V

PWM

D9

3.3 V

PWM

D10

3.3 V

PWM

D11

3.3 V

PWM / SPI0 MOSI

D12

3.3 V

PWM / SPI0 MISO

D13

3.3 V

PWM / SPI0 SCK

A0

3.3 V

ADC / PWM

A1

3.3 V

ADC / PWM

A2

3.3 V

ADC / PWM

A3

3.3 V

ADC / PWM

A4 / I2C_SDA

3.3 V

ADC / PWM / I2C0 SDA

A5 / I2C_SCL

3.3 V

ADC / PWM / I2C0 SCL

A6

3.3 V

ADC / PWM

A7

3.3 V

ADC / PWM

RESET

3.3 V

paina kortilla olevaa RESET-painiketta tai vedä GND:hen nollataksesi

LED_BUILTIN

Oranssi käyttäjän LED nastassa D13

LED_RED

RGB-LEDin punainen kanava (aktiivinen matalalla)

LED_GREEN

RGB-LEDin vihreä kanava (aktiivinen matalalla)

LED_BLUE

RGB-LEDin sininen kanava (aktiivinen matalalla)

Varoitus

Nano 33 BLE Sensen I/O-nastat ovat vain 3.3 V — ne eivät kestä 5 V:tä. 5 V:n syöttäminen niihin vaurioittaa nRF52840:tä.

Virtanastat

  • VIN — 4.5–21 V:n tulo. Syöttää korttia kortilla olevan jännitesäätimen kautta. Saa virtaa myös diodin kautta USB:n 5 V:n kiskosta, joten USB ja VIN voivat olla läsnä samanaikaisesti ilman, että ne syöttävät virtaa takaisin toisiinsa.

  • +5V — oletuksena kytkemätön.

  • +3V3 — 3.3 V:n jännitesäätimen lähtö.

  • AREF — analoginen vertailunasta. Tällä kortilla sitä ei ole johdotettu nRF52840:een — ADC viittaa aina 3.3 V:iin.

  • GND — yhteinen maa.

Nano 33 BLE Senseä voidaan syöttää virralla kumman tahansa reitin kautta:

  • Micro USB — syöttää 5 V:tä kortilla olevalle jännitesäätimelle.

  • VIN-nasta — syötä säädelty 4.5–21 V:n virtalähde.

Muista

Kortin pohjassa oleva VUSB-merkitty juotossilta yhdistää +5V:n USB:n 5 V:n kiskoon. Sulje se, jotta +5V-riviliitinnasta kuljettaa todella 5 V:tä.

Muista

Kortilla olevan 4.5–21 V:n hakkurisäätimen lähdössä oleva tavallisesti suljettu juotossilta voidaan katkaista säätimen poistamiseksi käytöstä, jolloin korttia voidaan syöttää suoraan ulkoisesta 3.3 V:n virtalähteestä nastaan +3V3.

Palautus- ja virheenkorjausnastat

  • RESET — sekä paljas juotostyyny että hetkellinen RESET-painike kortin yläosassa, kytkettynä nRF52840:n nollauslinjaan. Vedä GND:hen tai paina painiketta nollataksesi.

Nano 33 BLE Sense käyttää Arduinon vakiomuotoista kaksoisnapautusnollausta Arduinon käynnistyslataimeen siirtymiseksi. Paina RESET-painiketta nopeasti kahdesti — kortti siirtyy käynnistyslataintilaan ja OpenMV IDE voi flashata uuden laiteohjelmistokuvan.

nRF52840:n SWD-signaalit on tuotu kortin takana oleviin pinnoitettuihin juotostyynyihin. Kaikki virheenkorjaussignaalit viittaavat 3.3 V:iin.

Kortilla olevat oheislaitteet

LEDit

Nano 33 BLE Sensessä on käyttäjän RGB-LED — ohjataan silkkipainettujen LED_RED-, LED_GREEN- ja LED_BLUE-kanavien kautta — sekä erillinen oranssi LED_BUILTIN nastassa D13. Kaikkia neljää voidaan ohjata ohjelmallisesti machine.LED -toiminnon kautta:

from machine import LED

LED("LED_RED").on()
LED("LED_GREEN").on()
LED("LED_BLUE").on()
LED("LED_BUILTIN").on()

Kortilla oleva erillinen vihreä virta-LED palaa aina kun +3.3 V:n kisko on päällä, eikä sitä voi ohjata käyttäjä.

Kamerasensori

Nano 33 BLE Sensen OpenMV-laiteohjelmisto tukee OmniVision OV7670 -rinnakkais-CMOS-sensoria. Kortilla ei ole kuvasensoria — johdota OV7670-moduuli alla lueteltuihin silkkipainettuihin riviliitinnastoihin ja ohjaa sitä csi — kennot -moduulin kautta:

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()

Muista

OV7670 vie 14 nastaa. Laiteohjelmisto johdottaa ne seuraavasti:

Sensorin signaali

Nano 33 BLE Sense -nasta

D0

D10

D1

TX

D2

RX

D3

D2

D4

D3

D5

D5

D6

D6

D7

D4

HSYNC

A1

VSYNC

D8

PXCLK

A0

MXCLK

D9

POWER

A3

RESET

A2

SCL

A5 (I²C 0)

SDA

A4 (I²C 0)

OV7670:n I²C-ohjausväylä on sama ulkoinen I²C 0, joka on tuotu nastoihin A5/A4. Sensori sijaitsee 7-bittisessä osoitteessa 0x21 — kyseisen väylän käyttäjälaitteiden on vältettävä tätä osoitetta, kun kamera on kytkettynä.

IMU

9-akselinen IMU on tuotu esiin pysyvästi sisäänrakennetun imu-moduulin kautta, joka tunnistaa automaattisesti onko kortilla LSM9DS1 (Rev 1) vai BMI270 + BMM150 (Rev 2) ja esittää yhtenäisen imu.IMU -luokan. Sensorit sijaitsevat sisäisellä I²C 1 -väylällä (P14 / P15):

import time
from machine import I2C, Pin
from imu import IMU

bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
sensor = IMU(bus)

while True:
    print(sensor.accel())     # (x, y, z) in g
    print(sensor.gyro())      # (x, y, z) in deg/s
    print(sensor.magnet())    # (x, y, z) magnetometer
    time.sleep_ms(100)

Suoraa pääsyä esimerkiksi napautuksen tunnistukseen tai FIFO:hon varten tuo vastaava pysyvästi sisäänrakennettu ajuri (lsm9ds1, bmi270 tai bmm150) ja luo siitä ilmentymä samalle väylälle.

Ympäristösensorit

Barometri (LPS22HB) ja lämpötila- ja kosteussensori (HTS221 Rev 1:ssä, HS3003 Rev 2:ssa) jakavat saman sisäisen I²C 1 -väylän IMU:n kanssa:

import time
from machine import I2C, Pin
from lps22h import LPS22H
from hts221 import HTS221

bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
lps = LPS22H(bus)
try:
    hts = HTS221(bus)
except OSError:
    from hs3003 import HS3003
    hts = HS3003(bus)

while True:
    print("pressure:    %.2f hPa" % lps.pressure())
    print("temperature: %.2f C"   % lps.temperature())
    print("humidity:    %.2f %%"  % hts.humidity())
    time.sleep_ms(500)

Valo / väri / läheisyys / ele

Broadcomin APDS9960 sijaitsee samalla sisäisellä I²C 1 -väylällä ja tarjoaa ympäristön valon, RGB-värin, läheisyyden ja eleiden tunnistuksen:

import time
from machine import I2C, Pin
from apds9960 import uAPDS9960 as APDS9960

bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
apds = APDS9960(bus)
apds.enableLightSensor()

while True:
    print("ambient light:", apds.readAmbientLight())
    time.sleep_ms(250)

Mikrofoni

Kortilla oleva MP34DT05 PDM -mikrofoni kaapataan audio — Audio-moduuli -toiminnon kautta. Jokainen puskuri saapuu etumerkillisenä 16-bittisenä PCM-muotoisena bytearray-tyyppinä, valmiina syötettäväksi ulab/numpy -kirjastoon DSP:tä varten:

import audio
from ulab import numpy as np

def loudness(pcmbuf):
    samples = np.array(np.frombuffer(pcmbuf, dtype=np.int16), dtype=np.float)
    rms = np.sqrt(np.mean(samples ** 2))
    if rms > 10000:
        print("Loud!", int(rms))

audio.init(channels=1, frequency=16000, gain_db=24)
audio.start_streaming(loudness)

while True:
    pass

Bluetooth

nRF52840:n Bluetooth LE 5.0 -radio toimii Nordic SoftDevice s140:llä ja on tuotu esiin vanhan ubluepy -moduulin kautta — moderneja bluetooth / aioble — Asynkroninen BLE -rajapintoja ei ole otettu käyttöön tässä koonnoksessa. Sekä peripheral (GATT-palvelin, mainosta) että central (GAP-tarkkailija / -skanneri + yhteys) -roolit ovat käytettävissä.

Mainosta peripheral-roolissa yhdellä Environmental Sensing -palvelulla ja ilmoitettavalla lämpötilaominaisuudella — event_handler-takaisinkutsu laukeaa yhdistettäessä, yhteyden katketessa ja CCCD-kirjoituksissa:

from ubluepy import Service, Characteristic, UUID, Peripheral, constants
from machine import LED

def event_handler(event_id, handle, data):
    if event_id == constants.EVT_GAP_CONNECTED:
        LED("LED_GREEN").on()
    elif event_id == constants.EVT_GAP_DISCONNECTED:
        LED("LED_GREEN").off()
        periph.advertise(device_name="Nano 33", services=[svc])

svc = Service(UUID("181A"))                          # Environmental Sensing
char = Characteristic(UUID("2A6E"),                  # Temperature
                      props=Characteristic.PROP_NOTIFY | Characteristic.PROP_READ,
                      attrs=Characteristic.ATTR_CCCD)
svc.addCharacteristic(char)

periph = Peripheral()
periph.addService(svc)
periph.setConnectionHandler(event_handler)
periph.advertise(device_name="Nano 33", services=[svc])

Skannaa lähistöllä mainostavia laitteita central-roolissa:

from ubluepy import Scanner

for entry in Scanner().scan(1_000):                  # 1 second window
    print(entry.addr(), entry.rssi(), "dBm")

Katso ubluepy -viite täyttä rajapintaa varten — UUID, Service, Characteristic, Peripheral, Scanner, ScanEntry ja constants -nimiavaruus.

Väyläviite

GPIO

Käytä machine.Pin -toimintoa lukeaksesi tai ohjataksesi mitä tahansa silkkipainetuista nastoista. Lähdöt ovat 3.3 V CMOS — 15 mA nastaa kohden, 25 mA yhteensä kaikkien GPIO-nastojen yli.

from machine import Pin

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

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

Mikä tahansa tulonasta voi myös laukaista keskeytyksen reunasiirtymissä:

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

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

UART

Väylä

TX

RX

UART1

TX

RX

Käytä silkkipainettuja nimiä TX/RX machine.UART -toiminnon kanssa:

from machine import UART

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

I²C

Väylä

SDA

SCL

I2C0

I2C_SDA / A4

I2C_SCL / A5

I2C1

P14

P15

Molempien väylien nastat on välitettävä eksplisiittisesti machine.I2C -toiminnolle:

from machine import I2C, Pin

bus0 = I2C(0, scl=Pin("I2C_SCL"), sda=Pin("I2C_SDA"), freq=400_000)
bus0.scan()

bus1 = I2C(1, scl=Pin("P15"), sda=Pin("P14"), freq=400_000)
bus1.scan()

Muista

Väylä 1 on sisäinen sensoriväylä nastoissa P14/P15 (ei käyttäjän riviliittimissä) — se palvelee IMU:ta, barometriä, ympäristösensoria ja APDS9960:tä. Pysyvästi sisäänrakennetut sensoriajurit käyttävät sitä suoraan; käyttäjäkoodi voi myös skannata sitä, mutta osoitteet ovat jo kortilla olevien sensorien käytössä.

SPI

Väylä

MOSI

MISO

SCK

CS

SPI0

D11

D12

D13

D10

SPI-oheislaite ei ohjaa CS-linjaa — määritä D10 lähdöksi ja kytke sitä manuaalisesti siirron ympärillä:

from machine import SPI, Pin

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

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

Muista

D13 toimii myös oranssina LED_BUILTIN-LEDinä — SPI:n ajaminen tällä väylällä saa LEDin vilkkumaan väyläkellon tahdissa.

ADC

nRF52840:ssä on kahdeksan 12-bittistä ADC-kanavaa (SAADC), jotka on tuotu nastoihin A0–A7, kaikki viittaavat 3.3 V:iin — read_u16 palauttaa 0–65535 alueella 0–3.3 V nastassa. Kortin AREF-nastaa ei ole johdotettu, joten vertailujännite on aina 3.3 V:

from machine import ADC
import time

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

PWM

nRF52840 tuo esiin neljä PWM-oheislaitetta (PWM0PWM3), joista kukin ohjaa neljää kanavaa, eli yhteensä 16 laitteistollista PWM-paikkaa. Toisin kuin kiinteätoimisissa porteissa, oheislaitteet reitittyvät GPIOTE-matriisin kautta — mikä tahansa GPIO voi olla PWM-lähtö, joten nastan ja lohkon välistä kuvausta ei ole. Tämän joustavuuden hintana on kaksi piirille leivottua rajoitusta:

  • Kaikki moduulin sisäiset neljä kanavaa jakavat yhden jakson/taajuuden.

  • Jokaisella kanavalla on oma pulssisuhteensa ja polariteettinsa.

Käsitteellisesti 16 paikkaa näyttävät tältä:

Moduuli

Kanava 0

Kanava 1

Kanava 2

Kanava 3

PWM0

pulssisuhde

pulssisuhde

pulssisuhde

pulssisuhde

PWM1

pulssisuhde

pulssisuhde

pulssisuhde

pulssisuhde

PWM2

pulssisuhde

pulssisuhde

pulssisuhde

pulssisuhde

PWM3

pulssisuhde

pulssisuhde

pulssisuhde

pulssisuhde

Jokainen rivi toimii yhdellä taajuudella; rivin neljä solua kukin ohjaavat itsenäisesti valittua nastaa omalla pulssisuhteellaan. Eri rivit voivat toimia täysin eri taajuuksilla.

Ohjaa mitä tahansa silkkipainettua nastaa (tai kortilla olevia LEDejä) machine.PWM -toiminnon kautta:

from machine import Pin, PWM

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

Varoitus

Automaattinen varaaminen kuluttaa kokonaisen moduulin kutsua kohden. Kun luot PWM-laitteen ilman device=/channel= -avainsana-argumentteja, ajuri ottaa ensimmäisen vapaan moduulin ja sitoo nastasi vain sen kanavaan 0. Kyseisen moduulin loput kolme kanavaa pysyvät käyttämättöminä ja ovat tavoitettavissa vain eksplisiittisen device=/channel= -määrityksen kautta. Tämä rajoittaa avustamattomat PWM(Pin(...)) -kutsut neljään, ennen kuin ajuri nostaa virheen ValueError: all PWM devices in use — vaikka kaksitoista paikkaa on teknisesti yhä vapaana.

Käyttääksesi useampaa kuin neljää PWM:ää tai jakaaksesi tarkoituksellisesti taajuuden nastojen kesken, välitä device (0–3) ja channel (0–3):

# Two PWMs on the same module → forced to share frequency,
# but each gets its own duty cycle.
pwm_a = PWM(Pin("D3"), device=0, channel=0,
            freq=1_000, duty_u16=32768)
pwm_b = PWM(Pin("D5"), device=0, channel=1,
            freq=1_000, duty_u16=16384)

# A third PWM on a separate module, free to pick any frequency.
pwm_c = PWM(Pin("D6"), device=1, channel=0,
            freq=20_000, duty_u16=49152)

Pulssisuhde hyväksyy duty (0–100 %), duty_u16 (0–65535) tai duty_ns -arvon. Lisää invert=1 kääntääksesi lähdön polariteetin (kätevää aktiivisen matalan RGB-LEDin kanssa).

Muista

Koska taajuus on moduulikohtainen ominaisuus, pwm.freq(new_freq) -kutsu moduulin mille tahansa kanavalle suorittaa nrfx_pwm_init-funktion uudelleen koko moduulille ja muuttaa taajuutta, jonka jokainen muu sitä jakava kanava näkee.

Muista

Sallitut taajuudet kattavat suunnilleen 4 Hz – 5.3 MHz, johdettuna 16 MHz:n peruskellosta esijakajilla 1/2/4/8/16/32/64/128 ja 15-bittisellä jaksolaskurilla. Ajuri valitsee lähimmän jakajan automaattisesti — freq() raportoi pyydetyn arvon, ei tarkkaa saavutettavissa olevaa arvoa.

Ohjelmistolla bittipotkitut väylät

machine.SoftI2C ja machine.SoftSPI toimivat millä tahansa GPIO:lla, jos tarvitset lisäväylän.

Lämpösensori (kortin ulkopuolinen)

Laiteohjelmisto sisältää fir — lämpösensorin ajuri (fir == far infrared) -ajurin ulkoisesti johdotetuille lämpökuvaajille:

  • MLX90621 — 16 × 4 IR-matriisi

  • MLX90640 — 32 × 24 IR-matriisi

  • MLX90641 — 16 × 12 IR-matriisi

  • AMG8833 — 8 × 8 IR-matriisi

Johdota moduuli kortin I²C-väylään ja lue kehyksiä komennoilla 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-ajuri kommunikoi sensorin kanssa vain I²C 0:n kautta — johdota moduuli I2C_SCL / I2C_SDA -tyynyihin (A5 / A4).

Ajoitus

time

time -moduuli kattaa estävät viiveet, monotoniset tikit ja kuluneen ajan mittauksen:

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)

Virtuaaliajastimet

machine.Timer ajastaa jaksollisia tai kertaluonteisia takaisinkutsuja kuluttamatta laitteistollista ajastinpaikkaa. Välitä -1 id:nä käyttääksesi virtuaalista (ohjelmistollista) ajastinta:

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"))

Jaksoarvot ovat millisekunteina. Kutsu deinit() pysäyttääksesi ja vapauttaaksesi paikan.

Reaaliaikakello

machine.RTC pitää seinäkelloaikaa nollausten yli. nRF52840:n RTC on kytketty piirin sisäiseen oskillaattoriin eikä se säily täydellisen virtakatkon yli — aseta aika jokaisen kylmäkäynnistyksen yhteydessä, jos sillä on merkitystä sovelluksellesi:

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())

Vahtikoira

machine.WDT nollaa kortin, jos sovellus jumiutuu. Kun se on käynnistetty, sitä ei voi pysäyttää tai määrittää uudelleen — syötä sitä säännöllisesti pääsilmukkasi sisällä:

from machine import WDT

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

Käynnistys- ja ajonaikaiset tiedot

Laiteohjelmistopäivitys

Nano 33 BLE Sense käyttää Arduinon vakiomuotoista kaksoisnapautusnollausta Arduinon käynnistyslataimeen siirtymiseksi. Paina RESET-painiketta nopeasti kahdesti — kortti siirtyy käynnistyslataintilaan ja OpenMV IDE voi flashata uuden laiteohjelmistokuvan.

Käynnissä oleva skripti voi siirtyä takaisin käynnistyslataimeen pyydettäessä kutsumalla machine.bootloader()

import machine

machine.bootloader()

Tiedostojärjestelmä ja käynnistysjärjestys

Nano 33 BLE Sensen laiteohjelmisto liittää yhden tiedostojärjestelmän käynnistyksen yhteydessä:

  • Sisäinen flash-muisti — liitetään aina kohtaan /flash ja sitä käytetään työhakemistona. Sisältää oletuksena tiedostot main.py ja README.txt; luodaan aivan ensimmäisellä käynnistyksellä.

Liittämisen jälkeen tulkki suorittaa skriptit hakemistosta /flash:

  • boot.py suoritetaan jokaisen pehmeän nollauksen yhteydessä.

  • main.py suoritetaan vain kylmäkäynnistyksessä, välittömästi tiedoston boot.py jälkeen.

Vasta flashatulla kortilla toimitettava oletus-main.py vain vilkuttaa käyttäjän RGB-LEDin sinistä kanavaa sydämenlyöntinä (kaksi lyhyttä pulssia, lyhyt väli), joten voit todeta laiteohjelmiston käynnistyneen puhtaasti ilman, että mitään isäntää on liitetty.

/flash ei ole tällä kortilla tuotu esiin USB-massamuistiasemana.

Tallennustilojen koot

Nano 33 BLE Sense toimitetaan seuraavilla:

  • /flash64 KB FAT-tiedostojärjestelmä, luku/kirjoitus.

Nano 33 BLE Sense -koonnos ei sisällä ROMFS:ää; toimita Python-moduulit suoraan kohteeseen /flash.

Ohjelmistokirjastot

Katso kirjastoindeksi täydellistä moduuliluetteloa varten — mukaan lukien ne, jotka ovat ainutlaatuisia Nano 33 BLE Sense -koonnokselle.