91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一種使用來(lái)自Adafruit Industries的微型開發(fā)板的較容易方法

工程師兵營(yíng) ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-06-28 10:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

很多嵌入式應(yīng)用使用了高級(jí) MCU,但它們只需基本的硬件控制功能,而無(wú)高級(jí)嵌入式設(shè)計(jì)的“硬實(shí)時(shí)”需求。開發(fā)人員和創(chuàng)客經(jīng)常很容易陷到硬件設(shè)計(jì)、C/C++ 編程和實(shí)時(shí)操作系統(tǒng)的細(xì)節(jié)中。幸運(yùn)的是,他們可以使用更簡(jiǎn)單的方法。

本文將介紹一種使用來(lái)自 Adafruit Industries 的微型開發(fā)板的較容易方法。該開發(fā)板結(jié)合了 Python 編程語(yǔ)言的嵌入式設(shè)計(jì)變體與基于 ARM Cortex-M0+ 處理器的高級(jí) 32 位 MCU。

高級(jí) MCU 簡(jiǎn)化了設(shè)計(jì)

高級(jí) MCU 通過將全套模擬和數(shù)字外設(shè)與功能強(qiáng)大的處理器內(nèi)核集成在一起,從而幫助簡(jiǎn)化硬件設(shè)計(jì)。例如,Microchip Technology 的 ATSAMD21G18 MCU 將 ARM Cortex-M0+ 內(nèi)核、256 KB 閃存、32 KB SRAM、高級(jí)控制子系統(tǒng)和大量外設(shè)全部集成在 10 x 10 mm 見方的扁平 (TQFP) 封裝(圖 1)中。

Microchip Technology 的 SAM D21 MCU 系列圖片

圖 1:Microchip Technology 的 SAM D21 MCU 系列成員都基于超低功耗 ARM? Cortex?-M0+ 內(nèi)核,提供全套功能塊和外設(shè),差別僅在于具體的存儲(chǔ)器大小和外設(shè)通道數(shù)量。(圖片來(lái)源:Microchip Technology)

除了 32 個(gè) GPIO 之外,ATSAMD21G18 MCU 的外設(shè)集還包括多個(gè)高級(jí)串行通信 (SERCOM) 通道、波形輸出通道、多通道 12 位模數(shù)轉(zhuǎn)換器 (ADC)、模擬比較器、10 位數(shù)模轉(zhuǎn)換器 (DAC)。

設(shè)計(jì)挑戰(zhàn)

有了此類高級(jí) MCU,開發(fā)人員無(wú)需花費(fèi)時(shí)間查找和連接外部外設(shè),但它們?nèi)匀粚?duì)在系統(tǒng)設(shè)計(jì)中部署 MCU 的方式提出了嚴(yán)格要求。例如,在集成多種類型的電路時(shí),ATSAMD21G18 MCU 的設(shè)計(jì)要通過相應(yīng)的一組單獨(dú)域來(lái)提供電源。因此,開發(fā)人員必須處理處理器內(nèi)核 VDDCORE、內(nèi)部穩(wěn)壓器 (VDDIN)、外設(shè) (VDDIO) 和模擬模塊 (VDDANA) 的多個(gè)電源和接地引腳(圖 2)。

在設(shè)計(jì)過程中,開發(fā)人員必須遵守具體的建議,包括提供電源、接地以及選擇和放置去耦電容器——這些對(duì)于經(jīng)驗(yàn)豐富的開發(fā)人員極為平常,但對(duì)于新接觸嵌入式 MCU 硬件設(shè)計(jì)的開發(fā)人員而言,卻是潛在的陷阱。

Microchip Technology 的 ATSAMD21G18 MCU 圖片

圖 2:Microchip Technology 的 ATSAMD21G18 MCU 使用多個(gè)功率域?yàn)椴煌哪M和數(shù)字塊供電,在為這些域供電時(shí)需要多加注意。(圖片來(lái)源:Microchip Technology)

同樣,這些器件的軟件開發(fā)工作也是非常艱巨的。通常,新入門的嵌入式系統(tǒng)開發(fā)人員會(huì)發(fā)現(xiàn)他們埋頭于從嵌入式開發(fā)資料了解 C/C++ 開發(fā)的相關(guān)細(xì)節(jié),而這些資料更多地針對(duì)具有硬實(shí)時(shí)需求的應(yīng)用。這些應(yīng)用通常具有針對(duì)中斷延遲和確定性響應(yīng)的關(guān)鍵性時(shí)序要求。但是,很多面向物聯(lián)網(wǎng) (IoT) 的新興傳感器設(shè)計(jì)對(duì)數(shù)據(jù)采集或致動(dòng)器工作的要求卻要寬松得多,或者說(shuō)這些要求很容易滿足。

簡(jiǎn)化嵌入式開發(fā)

Adafruit 推出了一系列開發(fā)板,旨在幫助嵌入式開發(fā)人員消除這些硬件和軟件設(shè)計(jì)障礙,為許多應(yīng)用需求提供了特別有效的解決方案。Adafruit 的 Metro M0 Express 和 Feather M0 Express 都基于 ATSAMD21G18 MCU,提供的是完整的嵌入式系統(tǒng),包括串行接口USB、SPI、I2CUART)、脈沖寬度調(diào)制 (PWM)、中斷輸入,以及多個(gè)模擬 IO 和 GPIO。這些開發(fā)板的差異僅在于尺寸和 GPIO 數(shù)量:2.8" x 2.1" x 0.28" 的 Metro M0 Express 提供 25 個(gè) GPIO,而尺寸稍小 (2.0" x 0.9" x 0.28") 的 Feather M0 Express 則提供 20 個(gè) GPIO。

SAM D21 MCU 系列使用了最高級(jí)的 MCU,提供的外設(shè)通道數(shù)遠(yuǎn)多于物理引腳,但提供的引腳映射功能可將外設(shè)功能分配給特定硬件引腳。因此,雖然尺寸小巧,但每個(gè)開發(fā)板都可使用共享引腳來(lái)提供 MCU 廣泛外設(shè)的全部功能(圖 3)。

Adafruit 的 Feather M0 Express 開發(fā)板圖片

圖 3:Adafruit 利用引腳復(fù)用在微型 Feather M0 Express 開發(fā)板中提供大量 ATSAMD21G18 外設(shè)功能子集。(圖片來(lái)源:Adafruit)

但是,對(duì)于開發(fā)人員而言,這些細(xì)節(jié)是透明的。Adafruit 在其開源軟件包的特定模塊中為每個(gè)開發(fā)板提供了特定配置(列表 1)。

STATIC const mp_rom_map_elem_t board_global_dict_table[] = {

{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },

{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) },

{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) },

{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) },

{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) },

{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB02) },

{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },

{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB10) },

{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA12) },

{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },

{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) },

{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },

{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },

{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },

{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },

{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA15) },

{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA20) },

{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA07) },

{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA18) },

{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) },

{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) },

{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },

{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA06) },

};

MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

列表 1:Adafruit 開源 CircuitPython 庫(kù)摘錄了硬件詳細(xì)信息,其中包括使用開發(fā)板特定的引腳映射,例如此處顯示的 Feather M0 Express 開發(fā)板映射。(代碼來(lái)源:Adafruit)

開始開發(fā)時(shí),用戶可將開發(fā)板插入 USB 端口,并且將內(nèi)置 USB 引導(dǎo)程序與 Arduino IDE 一起使用。為了進(jìn)一步簡(jiǎn)化引入嵌入式軟件設(shè)計(jì),開發(fā)人員可以使用內(nèi)置功能,輕松將 CircuitPython 加載到其電路板上,然后即可開始構(gòu)建嵌入式應(yīng)用。

利用 CircuitPython 簡(jiǎn)化開發(fā)

CircuitPython 旨在幫助加快嵌入式開發(fā)的學(xué)習(xí)速度,它的功能實(shí)際上源自 MicroPython,后者是與 Python 關(guān)系更直接的派生語(yǔ)言。憑借簡(jiǎn)單清晰的語(yǔ)法和大量的支持模塊,Python 成為一種流行語(yǔ)言。但是,其代碼占用空間過大,對(duì)嵌入式系統(tǒng)不實(shí)用。

MicroPython 砍掉了 Python 的一些比較繁瑣的功能,簡(jiǎn)化的版本能夠滿足嵌入式系統(tǒng)的邏輯約束,同時(shí)又保留了語(yǔ)言的核心功能。在開發(fā) CircuitPython 的過程中,Adafruit 更進(jìn)一步,刪除了被視為對(duì)嵌入式系統(tǒng)新手程序員不太必要的模塊。

Adafruit 宣稱 CircuitPython 的目標(biāo)是提供一種非常適合培訓(xùn)的語(yǔ)言,讓開發(fā)人員能夠熟練掌握嵌入式設(shè)計(jì),而無(wú)需糾纏于低級(jí)別開發(fā)細(xì)節(jié)。CircuitPython 從前代產(chǎn)品 Python 繼承的最令人期待的特性之一是解釋型特性,讓開發(fā)人員能夠通過交互方式探索外部模塊的接口。例如,CircuitPython 的基本模塊就是開發(fā)板模塊——一個(gè)提供對(duì)相關(guān)開發(fā)板 I/O 引腳訪問的開發(fā)板特定模塊。開發(fā)人員能夠從控制臺(tái)啟動(dòng) CircuitPython,導(dǎo)入該開發(fā)板模塊并即時(shí)查看支持的引腳名稱(列表 2)。

>>> import board

>>> dir(board)

['A0', 'SPEAKER', 'A1', 'A2', 'A3', 'A4', 'SCL', 'A5', 'SDA', 'A6', 'RX',

'A7', 'TX', 'LIGHT', 'A8', 'TEMPERATURE', 'A9', 'BUTTON_A', 'D4', 'BUTTON_B',

'D5', 'SLIDE_SWITCH', 'D7', 'NEOPIXEL', 'D8', 'D13', 'REMOTEIN', 'IR_RX',

'REMOTEOUT', 'IR_TX', 'IR_PROXIMITY', 'MICROPHONE_SCK', 'MICROPHONE_DO',

'ACCELEROMETER_INTERRUPT', 'ACCELEROMETER_SDA', 'ACCELEROMETER_SCL',

'SPEAKER_ENABLE', 'SCK', 'MOSI', 'MISO', 'FLASH_CS']

列表 2:在解析器控制臺(tái)提示符處 (>>),程序員可以導(dǎo)入開發(fā)板模塊,并輸入 dir(board),以查看該開發(fā)板特定模塊中提供的引腳名稱。(代碼來(lái)源:Adafruit)

開發(fā)板模塊提供與底層硬件的連接,同時(shí)提供一種簡(jiǎn)單方式來(lái)訪問 Metro M0 Express 和 Feather M0 Express 開發(fā)板的引腳。例如,A0 模擬引腳被簡(jiǎn)單引用為 "board.A0"。另一方面,各個(gè)模塊中駐留有特定硬件功能,例如:analogio 模塊代表模擬;digitalio 模塊代表數(shù)字;busio 模塊代表 I2C、SPI 和 UART;pulseio 模塊代表 PWM 和其他基于脈沖的協(xié)議等。因此,要在 CircuitPython 中讀取 A0 模擬輸入,只需導(dǎo)入相關(guān)模塊,并讀取相關(guān)器件實(shí)例的值(列表 3)。

import board

import analogio

def adc_to_voltage(val):

return val / 65535 * 3.3

adc = analogio.AnalogIn(board.A0)

pinA0voltage = adc_to_voltage(adc.value)

列表 3:與 Python 相同,CircuitPython 提供了很多高級(jí)別模塊,開發(fā)人員可將它們導(dǎo)入自己的代碼中;與 Python 不同,CircuitPython 還提供了一些模塊,讓程序員能夠執(zhí)行硬件級(jí)別的操作,例如讀取值 (adc.value) (在 ADC 輸入引腳 (board.A0) 處)。(代碼來(lái)源:Adafruit)

開發(fā)人員可通過對(duì)模擬或數(shù)字 IO 引腳的直接訪問,輕松地?cái)U(kuò)展硬件功能。例如,他們可以通過試驗(yàn)板將 LED 連接到開發(fā)板的 A0 連接(圖 4),并且使用模擬模塊讓 LED 閃爍(列表 4),以詳細(xì)研究模擬輸出特性。

圖 4:開發(fā)人員可以通過將試驗(yàn)板電路,例如具有限流電阻器的 LED,連接到 Metro M0 Express 板的 A0 模擬輸出,即可調(diào)出 MCU 的 DAC,從而快速構(gòu)建外部硬件原型。(圖片來(lái)源:Adafruit)

import board

import analogio

led = analogio.AnalogOut(board.A0)

while True:

led.value = 65535 # max brightness

time.sleep(0.5) # stay on for 1/2 sec

led.value = 0 # off

time.sleep(0.5) # stay off for 1/2 sec

列表 4:對(duì)于圖 4 所示的試驗(yàn)板電路,開發(fā)人員使用 CircuitPython analogio 模塊,創(chuàng)建綁定到該板 A0 引腳的 Analogout 類實(shí)例 (led),并修改其值屬性,以便控制 LED 亮度。(代碼來(lái)源:Adafruit)

大多數(shù)現(xiàn)代“智能”傳感器和致動(dòng)器都提供 I2C 或 SPI 接口,用于讀取、寫入和監(jiān)視外圍設(shè)備。雖然開發(fā)人員可將器件輕松連接到開發(fā)板的 SPI 或 I2C 接口,但軟件接口可能需要額外的工作。

為了最大程度減少這類工作,Adafruit 為一些流行的器件(例如 Silicon Labs 的 SI7021 溫度/濕度傳感器)提供了 CircuitPython 模塊。與模擬 I/O 模塊相同,在定義了所需的 I2C 接口對(duì)象之后,SI7021 CircuitPython 模塊允許程序員只需使用相應(yīng)類對(duì)象的實(shí)例即可訪問傳感器(列表 5)。

import adafruit_si7021

from busio import I2C

from board import SCL, SDA

# create the I2C interface object

i2c = I2C(SCL, SDA)

# and use it to instantiate the sensor object

sensor = adafruit_si7021.SI7021(i2c)

# and perform the sensor measurements

current_temperature = sensor.temperature

current_relative_humidity = sensor.relative_humidity

列表 5:Adafruit 開源軟件庫(kù)提供了簡(jiǎn)化附加硬件功能訪問的 CircuitPython 模塊,例如使用 Silicon Labs 的 SI7021 傳感器的溫度和濕度測(cè)量。(代碼來(lái)源:Adafruit)

Adafruit 板和 CircuitPython 開源庫(kù)的組合雖然主要是作為一個(gè)學(xué)習(xí)平臺(tái),但也可用于創(chuàng)建相當(dāng)先進(jìn)的物聯(lián)網(wǎng)設(shè)備和其他嵌入式設(shè)計(jì)。同時(shí),開發(fā)人員需要認(rèn)識(shí)到,諸如 MicroPython/CircuitPython 之類解釋型語(yǔ)言,在滿足硬實(shí)時(shí)需求的能力方面有很大的局限性。但是,對(duì)于許多嵌入式應(yīng)用而言,這個(gè)學(xué)習(xí)平臺(tái)可為擴(kuò)展奠定堅(jiān)實(shí)的基礎(chǔ)。

為了增加硬件功能,開發(fā)者可在 Feather M0 Express 板上疊接可用的 Adafruit FeatherWing 子卡,甚至可以使用 FeatherWing Proto 原型板添加他們自己的電路。為了增加對(duì) CircuitPython 中的額外硬件功能的支持,開發(fā)人員必須創(chuàng)建定制軟件來(lái)添加所需的底層驅(qū)動(dòng)程序。然而,通過將開放源碼庫(kù)與 Python 本身特性組合在一起,即使是這項(xiàng)工作也得到了最大程度的簡(jiǎn)化。

通過檢查開源庫(kù),程序員可以研究用于實(shí)現(xiàn)硬件支持的關(guān)鍵設(shè)計(jì)模式。例如,Adafruit 的 SI7021 模塊展示了相應(yīng)的“Pythonic”類結(jié)構(gòu),包括構(gòu)造函數(shù)和輔助函數(shù)(列表 6)。通過遵循這種方法,開發(fā)人員能夠以最小的工作量來(lái)添加自己的硬件。

from micropython import const

import ustruct

import sys

from adafruit_bus_device.i2c_device import I2CDevice

HUMIDITY = const(0xf5)

TEMPERATURE = const(0xf3)

_RESET = const(0xfe)

_READ_USER1 = const(0xe7)

_USER1_VAL = const(0x3a)

def _crc(data):

crc = 0

for byte in data:

crc ^= byte

for i in range(8):

if crc & 0x80:

crc <<= 1

crc ^= 0x131

else:

crc <<= 1

return crc

class SI7021:

"""

A driver for the SI7021 temperature and humidity sensor.

"""

def __init__(self, i2c, address=0x40):

self.i2c_device = I2CDevice(i2c, address)

self.init()

self._measurement = 0

def init(self):

self.reset()

# Make sure the USER1 settings are correct.

while True:

# While restarting, the sensor doesn't respond to reads or writes.

try:

data = bytearray([_READ_USER1])

with self.i2c_device as i2c:

i2c.write(data, stop=False)

i2c.read_into(data)

value = data[0]

except OSError as e:

if e.args[0] not in ('I2C bus error', 19): # errno 19 ENODEV

raise

else:

break

if value != _USER1_VAL:

raise RuntimeError("bad USER1 register (%x!=%x)" % (

value, _USER1_VAL))

def _command(self, command):

with self.i2c_device as i2c:

i2c.write(ustruct.pack('B', command))

def _data(self):

data = bytearray(3)

data[0] = 0xff

while True:

# While busy, the sensor doesn't respond to reads.

try:

with self.i2c_device as i2c:

i2c.read_into(data)

except OSError as e:

if e.args[0] not in ('I2C bus error', 19): # errno 19 ENODEV

raise

else:

if data[0] != 0xff: # Check if read succeeded.

break

value, checksum = ustruct.unpack('>HB', data)

if checksum != _crc(data[:2]):

raise ValueError("CRC mismatch")

return value

def reset(self):

self._command(_RESET)

@property

def relative_humidity(self):

"""The measured relative humidity in percents."""

self.start_measurement(HUMIDITY)

value = self._data()

self._measurement = 0

return value * 125 / 65536 - 6

@property

def temperature(self):

"""The measured temperature in degrees Celcius."""

self.start_measurement(TEMPERATURE)

value = self._data()

self._measurement = 0

return value * 175.72 / 65536 - 46.85

def start_measurement(self, what):

"""

Starts a measurement.

Starts a measurement of either ``HUMIDITY`` or ``TEMPERATURE``

depending on the ``what`` argument.Returns immediately, and the

result of the measurement can be retrieved with the

``temperature`` and ``relative_humidity`` properties.This way it

will take much less time.

This can be useful if you want to start the measurement, but don't

want the call to block until the measurement is ready -- for instance,

when you are doing other things at the same time.

"""

if what not in (HUMIDITY, TEMPERATURE):

raise ValueError()

if not self._measurement:

self._command(what)

elif self._measurement != what:

raise RuntimeError("other measurement in progress")

self._measurement = what

列表 6:為了將自定義硬件添加到其 CircuitPython 應(yīng)用中,開發(fā)人員可以使用像用于 SiLabs si7021 的 Adafruit CircuitPython 驅(qū)動(dòng)程序這樣的開源軟件。該驅(qū)動(dòng)程序展示了使用隱式 (__init__) 和顯式 (init) 構(gòu)造函數(shù)來(lái)設(shè)計(jì)傳感器硬件類 (SI7021),以及通過串行總線(本例中為 I2C 總線)來(lái)訪問硬件本身的關(guān)鍵設(shè)計(jì)模式。(代碼來(lái)源:Adafruit)

其他模塊,特別是資源庫(kù)的硬件抽象層 (HAL) 中的模塊,提供了用于實(shí)現(xiàn)物理硬件訪問的較低級(jí)別 C 語(yǔ)言服務(wù)和 hook。完成自定義模塊后,開發(fā)人員可以利用分步說(shuō)明,將自定義的 C 和 Python 代碼添加到環(huán)境中,這些分步說(shuō)明描述了 Python、MicroPython 和 CircuitPython 內(nèi)置的特定 hook 的使用。在桌面或服務(wù)器 Python 環(huán)境中,增強(qiáng)過程在這一點(diǎn)即已結(jié)束,但在嵌入式環(huán)境中,則還需要額外的步驟,使用增強(qiáng)代碼映像來(lái)更新開發(fā)板的固件。

Adafruit 為該開發(fā)板提供了內(nèi)置的引導(dǎo)程序,可自動(dòng)加載 USB Flashing Format (UF2) 映像。開發(fā)人員通過按下該開發(fā)板的 RESET 按鈕兩次來(lái)觸發(fā)引導(dǎo)程序進(jìn)程,這會(huì)導(dǎo)致在用戶的主機(jī)文件系統(tǒng)中出現(xiàn)一個(gè)新的“boot”可移動(dòng)驅(qū)動(dòng)器。開發(fā)人員只需將 UF2 映像從主機(jī)系統(tǒng)拖放到代表開發(fā)板的可移動(dòng)驅(qū)動(dòng)器即可(圖 5)。這與最初用于加載 CircuitPython 的過程相同。在這種情況下,開發(fā)人員只需拖放使用自定義代碼構(gòu)建的 UF2 映像。引導(dǎo)程序會(huì)自動(dòng)執(zhí)行,將新映像刷入該開發(fā)板。

Adafruit 通過為開發(fā)板提供引導(dǎo)程序簡(jiǎn)化了映像刷寫圖片

圖 5:Adafruit 通過為開發(fā)板提供引導(dǎo)程序簡(jiǎn)化了映像刷寫,當(dāng)通過按下開發(fā)板的 RESET 按鈕啟動(dòng)時(shí),導(dǎo)致 BOOT 可移動(dòng)驅(qū)動(dòng)器顯示在文件系統(tǒng)中(本例中為 MAC OS),開發(fā)人員只需將新的 UF2 映像拖放至該驅(qū)動(dòng)器上。(圖片來(lái)源:Adafruit)

總結(jié)

對(duì)于希望獲得嵌入式設(shè)計(jì)經(jīng)驗(yàn)的開發(fā)人員來(lái)說(shuō),針對(duì)“硬”實(shí)時(shí)需求提供的工具和技術(shù)顯得有些小題大做。同時(shí),開發(fā)人員又希望可以隨時(shí)使用能夠提供廣泛模擬和數(shù)字 IO 功能的高級(jí) 32 位 MCU。

Adafruit 的開源 CircuitPython 包則提供了一個(gè)更簡(jiǎn)單的開發(fā)環(huán)境,能夠滿足這些較簡(jiǎn)單的需求。通過將 CircuitPython 與 Adafruit 的 Metro M0 Express 或 Feather M0 Express 開發(fā)板結(jié)合在一起,新手開發(fā)人員可以快速獲得嵌入式系統(tǒng)經(jīng)驗(yàn),而更有經(jīng)驗(yàn)的開發(fā)人員則可以快速構(gòu)建嵌入式應(yīng)用原型。

CircuitPython 與 Adafruit 開發(fā)板一起為嵌入式應(yīng)用開發(fā)提供了一個(gè)易于使用卻功能強(qiáng)大的平臺(tái)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9553

    瀏覽量

    391909
  • 嵌入式
    +關(guān)注

    關(guān)注

    5198

    文章

    20449

    瀏覽量

    334092
  • microchip
    +關(guān)注

    關(guān)注

    53

    文章

    1640

    瀏覽量

    120909
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Adafruit 電纜組件 — 原型開發(fā)優(yōu)選線束解析

    為什么選擇 Adafruit? ● Adafruit 是開源硬件領(lǐng)域的重要玩家。 Adafruit Industries 成立于 2005 年,以提供電子元件、硬件套件、
    的頭像 發(fā)表于 12-04 15:58 ?635次閱讀
    <b class='flag-5'>Adafruit</b> 電纜組件 — 原型<b class='flag-5'>開發(fā)</b>優(yōu)選線束解析

    ?STM32 Nucleo-64開發(fā)板技術(shù)解析與應(yīng)用指南

    STMicroelectronics -C051C8 STM32 Nucleo-64開發(fā)板通過由STM32微控制器為概念測(cè)試和原型創(chuàng)建提供了一種經(jīng)濟(jì)實(shí)惠且靈活的途徑。該開發(fā)板支持ARDUINO
    的頭像 發(fā)表于 10-16 10:50 ?739次閱讀
    ?STM32 Nucleo-64<b class='flag-5'>開發(fā)板</b>技術(shù)解析與應(yīng)用指南

    如何移植EtherCAT Igh--基于米爾RK3576開發(fā)板

    開發(fā)板EtherCATIgH需要保證高實(shí)時(shí)性,Preempt-RT是一種針對(duì)實(shí)時(shí)性能進(jìn)行了優(yōu)化的Linux內(nèi)核。與普通的Linux內(nèi)核相比,Preempt-RT具有以
    的頭像 發(fā)表于 09-26 08:04 ?9898次閱讀
    如何移植EtherCAT Igh--基于米爾RK3576<b class='flag-5'>開發(fā)板</b>

    Adafruit 4343 開發(fā)板紅色 LED 閃爍, 且屏幕不工作, 怎么解決?

    Adafruit 4343 開發(fā)板紅色 LED 閃爍, 且屏幕不工作, 該怎么辦
    發(fā)表于 09-08 07:19

    Vivado無(wú)法選中開發(fā)板的常見原因及解決方法

    在使用 AMD Vivado Design Suite 對(duì)開發(fā)板(Evaluation Board)進(jìn)行 FPGA 開發(fā)時(shí),我們通常希望在創(chuàng)建工程時(shí)直接選擇開發(fā)板,這樣 Vivado 能夠自動(dòng)配置
    的頭像 發(fā)表于 07-15 10:19 ?1709次閱讀
    Vivado無(wú)法選中<b class='flag-5'>開發(fā)板</b>的常見原因及解決<b class='flag-5'>方法</b>

    有ARM,NPU,F(xiàn)PGA三核心的開發(fā)板 — 米爾安路飛龍派開發(fā)板

    最近我發(fā)現(xiàn)個(gè)有趣的開發(fā)板。這個(gè)開發(fā)板集合了ARM核心,NPU核心甚至還有FPGA核心。它就是米爾新出的YM90X開發(fā)板。它基于安路科技所打造的芯片上海安路信息科技于2021年在上交所
    的頭像 發(fā)表于 06-13 08:03 ?1719次閱讀
    有ARM,NPU,F(xiàn)PGA三<b class='flag-5'>種</b>核心的<b class='flag-5'>開發(fā)板</b> — 米爾安路飛龍派<b class='flag-5'>開發(fā)板</b>

    【新品】遠(yuǎn)距離圖傳數(shù)傳模塊開發(fā)板、藍(lán)牙模塊開發(fā)板、無(wú)線模塊開發(fā)板

    新品上市圖傳數(shù)傳模塊開發(fā)板藍(lán)牙模塊開發(fā)板國(guó)產(chǎn)無(wú)線模塊開發(fā)板部分型號(hào)參與送樣文末了解詳情↓↓↓EWT611-900NW20S遠(yuǎn)距離圖傳數(shù)傳模塊開發(fā)板EWT611-900NW20S是
    的頭像 發(fā)表于 06-12 19:33 ?1151次閱讀
    【新品】遠(yuǎn)距離圖傳數(shù)傳模塊<b class='flag-5'>開發(fā)板</b>、藍(lán)牙模塊<b class='flag-5'>開發(fā)板</b>、無(wú)線模塊<b class='flag-5'>開發(fā)板</b>

    有獎(jiǎng)丨米爾 NXP i.MX91開發(fā)板免費(fèi)試用來(lái)

    米爾與NXP合作發(fā)布的新品基于NXPi.MX91應(yīng)用處理器的MYD-LMX91開發(fā)板免費(fèi)試用名額來(lái)啦~~米爾提供了3套價(jià)值588元的MYD-LMX91開發(fā)板發(fā)起試用活動(dòng)您不僅可以免費(fèi)體驗(yàn)還可以獲得京東購(gòu)物卡趕快點(diǎn)擊鏈接報(bào)名
    的頭像 發(fā)表于 06-05 08:02 ?1347次閱讀
    有獎(jiǎng)丨米爾 NXP i.MX91<b class='flag-5'>開發(fā)板</b>免費(fèi)試<b class='flag-5'>用來(lái)</b>啦

    AI語(yǔ)音開發(fā)板AiPi-PalChatV1教程:燒錄與調(diào)試

    AiPi-PalChatV1 是款接入了小智AI智能體的微型語(yǔ)音交互開發(fā)板,專為輕量級(jí)智能語(yǔ)音場(chǎng)景設(shè)計(jì)。
    的頭像 發(fā)表于 05-17 09:45 ?1529次閱讀
    AI語(yǔ)音<b class='flag-5'>開發(fā)板</b>AiPi-PalChatV1教程:燒錄與調(diào)試

    來(lái)自資深工程師對(duì)ELF 2開發(fā)板的產(chǎn)品測(cè)評(píng)

    來(lái)自資深工程師對(duì)ELF 2開發(fā)板的使用測(cè)評(píng)
    的頭像 發(fā)表于 04-28 15:03 ?1888次閱讀
    <b class='flag-5'>來(lái)自</b>資深工程師對(duì)ELF 2<b class='flag-5'>開發(fā)板</b>的產(chǎn)品測(cè)評(píng)

    基于RV1126開發(fā)板的按鍵測(cè)試方法與例程

    RV1126開發(fā)板的按鍵測(cè)試方法與例程詳細(xì)描述
    的頭像 發(fā)表于 04-15 17:03 ?1064次閱讀
    基于RV1126<b class='flag-5'>開發(fā)板</b>的按鍵測(cè)試<b class='flag-5'>方法</b>與例程

    Linux開發(fā)板CAN總線測(cè)試方法,觸覺智能RK3568開發(fā)板演示

    本文介紹Linux開發(fā)板CAN總線測(cè)試方法,使用觸覺智能EVB3568鴻蒙開發(fā)板演示,搭載瑞芯微RK3568,四核A55處理器,主頻2.0Ghz,1T算力NPU;支持OpenHarmony5.0
    的頭像 發(fā)表于 04-11 19:14 ?1217次閱讀
    Linux<b class='flag-5'>開發(fā)板</b>CAN總線測(cè)試<b class='flag-5'>方法</b>,觸覺智能RK3568<b class='flag-5'>開發(fā)板</b>演示

    雷卯收集增強(qiáng)現(xiàn)實(shí)AR開發(fā)板

    現(xiàn)實(shí)AR開發(fā)板明細(xì)如下: 如下是AR開發(fā)板介紹: AR是一種將虛擬元素與現(xiàn)實(shí)環(huán)境完美融合的技術(shù)。它通過攝像頭捕捉現(xiàn)實(shí)世界的場(chǎng)景,再利用計(jì)算機(jī)處理將這些場(chǎng)景與虛擬元素疊加在起,從而創(chuàng)造
    的頭像 發(fā)表于 04-07 09:34 ?1035次閱讀
    雷卯收集增強(qiáng)現(xiàn)實(shí)AR<b class='flag-5'>開發(fā)板</b>

    雷卯收集云終端開發(fā)板

    收集云終端開發(fā)板明細(xì)如下: 如下是云終端開發(fā)板介紹: 云終端是一種依托于云計(jì)算技術(shù)的終端設(shè)備,它利用虛擬化技術(shù),將計(jì)算和存儲(chǔ)資源集中于云端服務(wù)器,終端設(shè)備僅需處理顯示和輸入。 云終端的架構(gòu)主要包括云端層、網(wǎng)絡(luò)層和終端層。云端
    的頭像 發(fā)表于 04-02 11:15 ?645次閱讀
    雷卯收集云終端<b class='flag-5'>開發(fā)板</b>

    雷卯收集虛擬現(xiàn)實(shí)VR開發(fā)板

    虛擬現(xiàn)實(shí)VR開發(fā)板明細(xì)如下: 如下是VR開發(fā)板介紹: VR是一種通過計(jì)算機(jī)生成的三維虛擬環(huán)境,用戶可以通過視覺、聽覺等感官進(jìn)行互動(dòng)的技術(shù),其核心理念在于打破傳統(tǒng)信息呈現(xiàn)的界限,通過多樣化的信息源,將視覺、聽覺、觸覺等感官體驗(yàn)深度
    的頭像 發(fā)表于 04-01 20:54 ?748次閱讀
    雷卯收集虛擬現(xiàn)實(shí)VR<b class='flag-5'>開發(fā)板</b>