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

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

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

使用樹(shù)莓派Pico編一個(gè)拼手速游戲

jf_zGNBEhbi ? 來(lái)源:趣無(wú)盡 ? 作者:趣無(wú)盡 ? 2023-08-17 10:10 ? 次閱讀

微控制器MCU)不僅存在于工業(yè)設(shè)備中,它們?yōu)榘ㄍ婢吆陀螒蛟趦?nèi)的許多家庭電子產(chǎn)品 供算力。在這一章中,你將創(chuàng)建一個(gè)簡(jiǎn)單的反應(yīng)計(jì)時(shí)游戲,看看你的朋友中誰(shuí)會(huì)在燈熄滅時(shí)第一個(gè)按下按鈕。

你的反應(yīng)時(shí)間,大腦來(lái)處理的時(shí)間以毫秒計(jì):人類的平均反應(yīng)時(shí)間大約是 200 – 250 毫秒。

對(duì)于這個(gè)項(xiàng)目,你需要:
樹(shù)莓派 Pico
– 面包板
– 任何顏色的 LED
– 一個(gè) 330Ω 電阻
– 兩個(gè)按鈕開(kāi)關(guān)
– 若干公對(duì)公跳線
– 一根 microUSB 數(shù)據(jù)線

將 Pico 連接到樹(shù)莓派或其他運(yùn)行 Thonny MicroPython IDE 的計(jì)算機(jī)。

單人游戲

如圖所示在面包板上搭建電路。LED 和 330Ω 限流電阻串聯(lián)在 Pico 的 GP15 和 GND 引腳之間。

c9244fb2-3ca2-11ee-ac96-dac502259ad0.jpg

接下來(lái),添加按鈕開(kāi)關(guān)。將按鈕一側(cè)的引腳連接到 Pico 的 GP14,另一側(cè)的引腳接到 Pico 的 3V3 引腳上。

為什么要連接 3v3?請(qǐng)記住,開(kāi)關(guān)和 LED 一樣,需要電阻器才能正確工作,而且
Pico 上 GPIO 是有可編程電阻器的。在這本文的項(xiàng)目中,我們將它們?cè)O(shè)置為下拉電阻,這意味著當(dāng)按鈕按下時(shí),引腳電壓必須被拉高。

現(xiàn)在你的電路已經(jīng)具備了作為一個(gè)單人游戲所需要的一切,LED 是輸出設(shè)備(類似電視機(jī)的作用),按鈕開(kāi)關(guān)為控制器,而 Pico 是游戲主機(jī),盡管它比你通??吹降囊〉枚?!

現(xiàn)在你需要真正編寫(xiě)游戲。和往常一樣,把樹(shù)莓派上的 Thonny 打開(kāi)。創(chuàng)建一個(gè)新程序:

import machine
import utime

此外,你將需要一個(gè)新的庫(kù):urandom,它用來(lái)創(chuàng)建隨機(jī)數(shù)并在這個(gè)游戲中使用,以防止曾經(jīng)玩過(guò)它的玩家簡(jiǎn)單地倒數(shù)一個(gè)固定的秒數(shù)點(diǎn)擊按鈕而一招制勝。

接下來(lái),設(shè)置好 LED 和按鈕的引腳:

led = machine.Pin(15, machine.Pin.OUT)
button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)

在前面的章節(jié)中,你已經(jīng)了解如何在主程序或單獨(dú)的線程中使用按鈕。這一次我們將采 用一種不同的、更靈活的方法:中斷請(qǐng)求(IRQs)來(lái)處理按鈕的反饋。

這個(gè)名字聽(tīng)起來(lái)很復(fù)雜,但其實(shí)很簡(jiǎn)單。想象一下,你正在一頁(yè)一頁(yè)地閱讀一本書(shū),有人走過(guò)來(lái)問(wèn)你一個(gè)問(wèn)題。那個(gè)人在執(zhí)行一個(gè)打斷請(qǐng)求,要求你停止正在做的事情,回答他們的問(wèn)題,然后讓你繼續(xù)讀你的書(shū)。

MicroPython 中斷請(qǐng)求以完全相同的方式工作,它允許某些東西(在這種情況下是按下按鈕 開(kāi)關(guān))中斷主程序。在某些方面,它和線程很相似,在主程序之外有一段代碼。然而,與線程不 同的是,代碼不是持續(xù)運(yùn)行的,它只在中斷被觸發(fā)時(shí)運(yùn)行。

首先定義中斷的處理程序。這個(gè)被稱為回調(diào)函數(shù)的代碼在中斷被觸發(fā)時(shí)運(yùn)行。

def button_handler(pin):
button.irq(handler=None)
print(pin)

這兩行代碼首先關(guān)閉中斷,這樣它只觸發(fā)一次,然后打印有關(guān)觸發(fā)中斷的引腳編號(hào)。

繼續(xù)下面的程序:

led.value(1)
utime.sleep(urandom.uniform(5, 10))
led.value(0)

第一行將 LED 點(diǎn)亮,下一行暫停程序,最后一行再次關(guān)閉 LED 燈。玩家按下按鈕之后,LED 被點(diǎn)亮的時(shí)間并不是固定的,而是利用 urandom 庫(kù)將程序暫停 5 到 10 秒,換句話說(shuō),就是 LED 會(huì)亮 5 到 10 秒。

然而,目前還沒(méi)有什么東西在等待著按鈕被按下。你需要為此設(shè)置中斷,方法是在程序末尾增加一行:

button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)

設(shè)置中斷需要兩個(gè)東西:觸發(fā)器和處理程序。觸發(fā)器告訴 Pico 它應(yīng)該尋找什么作為中斷它正在做的事情的有效信號(hào);handler 就是中斷被觸發(fā)后運(yùn)行的函數(shù)名。

在這個(gè)程序中,你的觸發(fā)器是 IRQ_RISING,這意味著中斷是由引腳電壓從低電平升到高電平時(shí)觸發(fā)。而 IRQ_FALLING 這是引腳電壓從高電平到低電平時(shí)觸發(fā)。如果你需要寫(xiě)一個(gè)程序,在一個(gè)引腳改變時(shí)觸發(fā)一個(gè)中斷,而不關(guān)心它是上升還是下降,你可以使用「|」組合這兩個(gè)觸發(fā)器:

button.irq(trigger=machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING, andler=button_handler)

本項(xiàng)目中,代碼將變成下面這樣:

import machine
import utime
import urandom


led = machine.Pin(15, machine.Pin.OUT)
button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)


def button_handler(pin):
  button.irq(handler=None)
  print(pin)


led.value(1)
utime.sleep(urandom.uniform(5, 10))
led.value(0)
button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)

單擊 Run 按鈕,并將程序保存到 Pico 上命名為 Reaction_Game.py。你會(huì)看到 LED 燈亮起來(lái),這是信號(hào),用你的手指放在按鈕上。當(dāng) LED 熄滅時(shí),盡可能快地按下按鈕。

當(dāng)你按下按鈕時(shí),它會(huì)觸發(fā)你之前編寫(xiě)的處理程序代碼。查看 Shell 區(qū)域,你將看到 Pico 打印了一條消息,確認(rèn)中斷是由 GP14 引腳觸發(fā)的。你還會(huì)看到另一個(gè)細(xì)節(jié):mode=IN 告訴你引腳被配置為輸入。不過(guò),這個(gè)信息并沒(méi)有給游戲造成多大的影響,為此,你需要一種方法來(lái)加快玩家的反應(yīng)速度。首先從按鈕處理程序中刪除 print(pin) 這一行,你不再需要它了。

轉(zhuǎn)到程序的底部并添加一條新行,就在你設(shè)置中斷的位置的正上方:

timer_start = utime.ticks_ms()

這里創(chuàng)建了一個(gè)名為 timer_start 的新變量,并賦予了 utime.ticks_ms() 函數(shù)的輸出,該函數(shù)計(jì)算自 utime 庫(kù)開(kāi)始計(jì)數(shù)以來(lái)已過(guò)的毫秒數(shù)。這給在 LED 熄滅之后和中斷觸發(fā)器準(zhǔn)備好讀取按鈕之前,提供了一個(gè)參考的時(shí)間點(diǎn)。

接下來(lái),回到按鈕處理程序,添加以下兩行:

timer_reaction = utime.ticks_diff(utime.ticks_ms(), timer_start)
print("Your reaction time was " + str(timer_reaction) + "milliseconds!")

第一行創(chuàng)建了另一個(gè)變量,這一次是中斷實(shí)際觸發(fā)的時(shí)刻,換句話說(shuō),就是按下按鈕的時(shí) 候。但是,它不像以前那樣簡(jiǎn)單地從 utime.ticks_ms() 中讀取數(shù)據(jù),而是使用 utime.ticks_diff() 這個(gè)函數(shù),它得到了觸發(fā)這行代碼的時(shí)間與變量 timer_start 中保存的參考點(diǎn)之間的差異。

第二行代碼打印出計(jì)算結(jié)果。

最后的代碼如下:

import machine
import utime
import urandom


led = machine.Pin(15, machine.Pin.OUT)
button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)


def button_handler(pin):
  button.irq(handler=None)
  timer_reaction = utime.ticks_diff(utime.ticks_ms(), timer_start)
  print("Your reaction time was " + str(timer_reaction) + " milliseconds!")


led.value(1)
utime.sleep(urandom.uniform(5, 10))
led.value(0)
timer_start = utime.ticks_ms() button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)

再次點(diǎn)擊 Run 按鈕,等待 LED 熄滅,然后按下按鈕。這一次,你將看到一條消息,告訴你按下按鈕的速度,而不是觸發(fā)中斷的針的報(bào)告,這是對(duì)你反應(yīng)時(shí)間的測(cè)量。

再次點(diǎn)擊運(yùn)行按鈕,看看你是否可以更快的速度按下按鈕,在這個(gè)游戲中,你正在嘗試盡可能低的分?jǐn)?shù)!

雙人游戲

單人游戲很有趣,但是讓你的朋友參與進(jìn)來(lái)會(huì)更好。你可以先邀請(qǐng)他們玩你的游戲,比較你 的高分或低分,看看誰(shuí)的反應(yīng)最快。然后,你可以修改你的游戲,讓他們和你一起玩。

首先在你的電路中添加第二個(gè)按鈕。如圖所示。確保兩個(gè)按鈕之間有足夠的距離,以便玩家能夠?qū)⑹种阜旁诎粹o上。

c9414cac-3ca2-11ee-ac96-dac502259ad0.jpg

雖然第二個(gè)按鈕現(xiàn)在已經(jīng)連接到 Pico,但它還不知道如何使用它?;氐侥阍?Thonny 的程序 中,找到你設(shè)置第一個(gè)按鈕的地方。在這一行下面,添加:

right_button = machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_DOWN)

你將注意到,名稱現(xiàn)在指定了你正在使用的按鈕(右側(cè)的按鈕)。為了避免混淆,請(qǐng)編輯
上面的一行,這樣你就可以清楚地看到,原來(lái)黑板上唯一的按鈕現(xiàn)在變成了左邊的按鈕:

left_button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)

你還需要在程序的其他地方進(jìn)行相同的更改。轉(zhuǎn)到按鈕處理器功能并更改行:

button.irq(handler=None)

它讀取:

left_button.irq(handler=None)

接下來(lái),為第二個(gè)按鈕添加:

right_button.irq(handler=None)

向下滾動(dòng)到程序的底部,并更改設(shè)置中斷觸發(fā)器的行,以便它進(jìn)行讀?。?/p>

left_button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)

同樣,在它下面添加另一行,以在新按鈕上設(shè)置中斷觸發(fā)器:

right_button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)

你的程序現(xiàn)在應(yīng)該看起來(lái)像這樣:

import machine
import utime
import urandom


led = machine.Pin(15, machine.Pin.OUT)
left_button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)right_button = machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_DOWN)


def button_handler(pin):
  left_button.irq(handler=None)
  right_button.irq(handler=None)
  timer_reaction = utime.ticks_diff(utime.ticks_ms(), timer_start) print("Your reaction time was " + str(timer_reaction) +
  " milliseconds!")


led.value(1)
utime.sleep(urandom.uniform(5, 10))
led.value(0)
right_button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)
left_button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)

點(diǎn)擊 Run 圖標(biāo),等待 LED 熄滅,然后按下左邊的按鈕開(kāi)關(guān),你會(huì)看到游戲和之前一樣,將你的反應(yīng)時(shí)間打印到 Shell 區(qū)域。再次點(diǎn)擊運(yùn)行圖標(biāo),但這一次,當(dāng) LED 熄滅時(shí),按右邊的按鈕也在正常工作,打印你們的反應(yīng)時(shí)間。

中斷和中斷處理函數(shù)

你創(chuàng)建的每個(gè)中斷都需要一個(gè)處理程序,但單個(gè)處理程序可以處理任意數(shù)量的中斷。在這個(gè)程序中,有兩個(gè)中斷都指向同一個(gè)處理程序,這意味著無(wú)論觸發(fā)哪個(gè)中斷,它們都將運(yùn)行相同的代碼。不同的程序可能有兩個(gè)處理程序,讓每個(gè)中斷運(yùn)行不同的代碼,這完全取決于你需要你的程序做什么。

為了讓游戲更精彩一點(diǎn),你可以讓它報(bào)告兩個(gè)玩家中哪一個(gè)是第一個(gè)按下按鈕的。回到程序的 頂部,就在下面,你可以設(shè)置 LED 和兩個(gè)按鈕,并添加以下內(nèi)容:

fastest_button = None

這將設(shè)置一個(gè)新變量 fastest_button,并將其初始值設(shè)置為 None,因?yàn)檫€沒(méi)有按下任何按鈕。

接下來(lái),到按鈕處理程序的底部,刪除處理計(jì)時(shí)器和打印的兩行,然后用以下代碼替換它們:

global fastest_button
fastest_button = pin

這兩行代碼讓 fastest_button 成為變量,并將其設(shè)置為相應(yīng)按鈕的引腳編號(hào)。

現(xiàn)在直接轉(zhuǎn)到程序的底部,并添加以下兩行:

while fastest_button is None:
utime.sleep(1)

這里創(chuàng)建了一個(gè)循環(huán),但它不是一個(gè)無(wú)限循環(huán)。這里,你告訴 MicroPython 只有在 fastest_button 變量仍然為 None 時(shí)才在循環(huán)中運(yùn)行代碼。實(shí)際上,這會(huì)暫停程序的主線程,直到中斷處理程序更改了變量的值。

如果兩個(gè)玩家都沒(méi)有按下按鈕,程序就會(huì)暫停。

最后,你需要一種方法來(lái)確定哪位選手獲勝,并向他們表示祝賀。在程序的底部輸入以下代碼:

if fastest_button is left_button:
print("Left Player wins!")
elif fastest_button is right_button:
print("Right Player wins!")

第一行設(shè)置了一個(gè) if 條件,用于查看 fastest_button 變量是否為 left_button(這意味著 IRQ 是由左手按鈕觸發(fā)的)。如果是這樣,它將打印一條消息祝賀左邊的玩家(他的按鈕連接到 GP14 引腳)。

如果條件不成立,它將查看 fastest_button 變量是否為 right_button。如果是,則打印一條消息祝賀右邊的玩家,該玩家的按鈕已連接到 GP16。

完成的程序如下:

import machine
import utime
import urandom


led = machine.Pin(15, machine.Pin.OUT)
left_button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN) right_button = machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_DOWN)


fastest_button = None


def button_handler(pin):
  left_button.irq(handler=None)
  right_button.irq(handler=None)
  global fastest_button
  fastest_button = pin


led.value(1)
utime.sleep(urandom.uniform(5, 10))
led.value(0)
left_button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)
right_button.irq(trigger=machine.Pin.IRQ_RISING, handler=button_handler)


while fastest_button is None:
  utime.sleep(1)


if fastest_button is left_button:
  print("Left Player wins!")
elif fastest_button is right_button:
  print("Right Player wins!")

點(diǎn)擊 Run 按鈕運(yùn)行程序,等待 LED 熄滅,但不要按下任何一個(gè)按鈕開(kāi)關(guān)。

你將看到 Shell 區(qū)域仍然是空白的,并且不會(huì)返回「>>>」提示符。這是因?yàn)橹骶€程仍在運(yùn)行,處于你創(chuàng)建的循環(huán)中。

現(xiàn)在按左手按鈕(GP14)。你將看到一條祝賀你的消息「Left Player wins!」打印到 Shell 上。

再次單擊 Run 運(yùn)行,并嘗試在 LED 熄滅后按下右手按鈕。你將看到另一條消息「Right Player wins!」打印出來(lái),這一次祝賀你的右手。

再次點(diǎn)擊 Run 運(yùn)行,這次每個(gè)按鈕上都有一個(gè)手指,同時(shí)按下它們,看看你的右手還是左手更快!

現(xiàn)在你已經(jīng)創(chuàng)造了一個(gè)雙人游戲,你可以邀請(qǐng)你的朋友一起玩,看看你們誰(shuí)的反應(yīng)速度最快!

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

    關(guān)注

    48

    文章

    7396

    瀏覽量

    150633
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16802

    瀏覽量

    349353
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1591

    瀏覽量

    107654
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7292

    瀏覽量

    87523
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1683

    瀏覽量

    105396

原文標(biāo)題:用樹(shù)莓派 Pico 編一個(gè)拼手速游戲

文章出處:【微信號(hào):趣無(wú)盡,微信公眾號(hào):趣無(wú)盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    樹(shù)莓pico入門(mén)學(xué)習(xí)筆記()相關(guān)資料推薦

    樹(shù)莓pico入門(mén)學(xué)習(xí)筆記選擇自己熟悉的編程語(yǔ)言樹(shù)莓pico提供C/C++和micropyth
    發(fā)表于 07-01 09:28

    樹(shù)莓pico如何入門(mén)?

    樹(shù)莓pico如何入門(mén)?
    發(fā)表于 10-13 08:11

    樹(shù)莓Pico的相關(guān)資料分享

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹(shù)莓基金會(huì)最新發(fā)布款低成本、高性能的微控制器開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹(shù)
    發(fā)表于 11-03 08:44

    使用樹(shù)莓Pico開(kāi)發(fā)板的些思考與應(yīng)用實(shí)踐資料分享

    本博文根據(jù)樹(shù)莓基金會(huì)2021年1月21日公開(kāi)的兩部最新官方英文技術(shù)文獻(xiàn)[1]、[2]以及博主最近使用樹(shù)莓Pico開(kāi)發(fā)板的
    發(fā)表于 11-12 06:07

    使用樹(shù)莓Pico做了個(gè)自動(dòng)駕駛小車(chē)

    樹(shù)莓Pico做了個(gè)自動(dòng)駕駛小車(chē),連接上藍(lán)牙,可以用手機(jī)控制它的移動(dòng)了。
    發(fā)表于 01-05 07:32

    樹(shù)莓Pico的相關(guān)資料推薦

    1月22日,樹(shù)莓基金會(huì)最新發(fā)布款低成本、高性能的微控制器開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹(shù)莓
    發(fā)表于 02-07 07:37

    遠(yuǎn)程控制樹(shù)莓3b上的pi pico

    樹(shù)莓pi pico樹(shù)莓4相比差別很大,但是pi pico
    的頭像 發(fā)表于 03-05 17:23 ?3876次閱讀

    樹(shù)莓也出MCU了?樹(shù)莓Pico來(lái)了!

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹(shù)莓基金會(huì)最新發(fā)布款低成本、高性能的微控制器開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹(shù)
    發(fā)表于 10-28 10:36 ?11次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>也出MCU了?<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>來(lái)了!

    樹(shù)莓Pico:僅4美元的MCU

    1月22日,樹(shù)莓基金會(huì)最新發(fā)布款低成本、高性能的微控制器開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹(shù)莓
    發(fā)表于 12-04 13:06 ?13次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:僅4美元的MCU

    樹(shù)莓pico入門(mén)學(xué)習(xí)筆記(

    樹(shù)莓pico入門(mén)學(xué)習(xí)筆記選擇自己熟悉的編程語(yǔ)言樹(shù)莓pico提供C/C++和micropyth
    發(fā)表于 12-17 18:42 ?21次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入門(mén)學(xué)習(xí)筆記(<b class='flag-5'>一</b>)

    距離檢測(cè)報(bào)警使用樹(shù)莓Pico

    電子發(fā)燒友網(wǎng)站提供《距離檢測(cè)報(bào)警使用樹(shù)莓Pico.zip》資料免費(fèi)下載
    發(fā)表于 11-09 11:49 ?0次下載
    距離檢測(cè)報(bào)警使用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    基于樹(shù)莓pico的可編程游戲手柄設(shè)計(jì)

    方案介紹組件12x12x7.3mm 瞬時(shí)觸覺(jué)按鈕按鈕樹(shù)莓Pico通用 D1286464 OLED 顯示屏操縱桿模塊 PS210 歐姆電阻?組裝將樹(shù)莓
    發(fā)表于 12-26 15:10 ?0次下載

    樹(shù)莓Pico Flash驅(qū)動(dòng)踩坑記錄

    樹(shù)莓 pico 帶有 2MB 的 Flash 資源,以下是我基于官方 Pico C/C++ SDK 對(duì)接 Flash 驅(qū)動(dòng)時(shí)踩到的些坑和
    的頭像 發(fā)表于 10-20 11:44 ?1399次閱讀

    樹(shù)莓Pico文件系統(tǒng)應(yīng)用:數(shù)據(jù)記錄器

    在前面的章節(jié)中,你直在使用樹(shù)莓 Pico 連接到樹(shù)莓或其他電腦。不過(guò),與所有微控制器
    的頭像 發(fā)表于 10-24 10:51 ?1158次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>文件系統(tǒng)應(yīng)用:數(shù)據(jù)記錄器

    樹(shù)莓單片機(jī)-Raspberry Pi Pico

    樹(shù)莓Pi Pico樹(shù)莓基金會(huì)在2021年1月份發(fā)布的款新的基于RP2040定制芯片的單片
    的頭像 發(fā)表于 10-31 17:07 ?1393次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>單片機(jī)-Raspberry Pi <b class='flag-5'>Pico</b>