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

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

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

如何利用樹莓派Pico做一個(gè)鋼鐵俠反應(yīng)爐?

jf_zGNBEhbi ? 來源:趣無盡 ? 2023-08-17 09:49 ? 次閱讀

在本教程中,我們將使用樹莓派 Pico 來控制 31 個(gè)單獨(dú)可尋址的 LED 燈,它們安裝在兩片亞克力塑料圓盤之間。其中一片圓盤上涂有膠粘鏡片,另一片圓盤上貼有單向鏡膜;這樣可以給 LED 燈帶制造出 3D 無限效果。

不過,樹莓派目前還沒有自己的”等離子聚變能源”,所以我們還得用充電電池,然后把所有東西封裝在一個(gè) 3D 打印的外殼中。

組件清單

樹莓派 Pico
柔性條形彩色像素 LED 燈帶(通常以 1 米長度出售;我們使用了144 個(gè) WS2812B 的燈帶,并將其切割為 31 個(gè) LED 的長度,剩余的部分可以用于其他項(xiàng)目)
3mm 厚的亞克力板材,足夠切割兩塊直徑為 70mm 的圓盤
自粘式柔性鏡片瓦(不是玻璃)
單向鏡自粘膜(用于阻擋太陽的窗貼式膜片)
USB-C 5V 1A TP4506 充電板(或者使用 Micro USB 接口的等效充電板)
可充電的 3.7V 1100mAh 603449 鋰離子電池
2 位 3P SPDT 面板安裝微型滑動(dòng)開關(guān),鎖定開關(guān)
約 100cm 的 26AWG 硅膠絕緣銅線(或類似線材)
強(qiáng)力膠水
3D 打印的外殼零件(STL 設(shè)計(jì)文件可以文末免費(fèi)獲?。?/p>

在初始設(shè)置過程中,你還需要:一臺(tái)電腦,一根 Micro USB 線和焊接設(shè)備和材料(本項(xiàng)目中的焊接量很少,所以如果你不擅長或者不會(huì)焊接,也不用擔(dān)心)。

安裝固件

樹莓派為樹莓派 Pico 提供了詳細(xì)的文檔,不過在這一步,非常簡單,我們只需要拖動(dòng)固件到Pico上就行(就像把文件拷貝到 U 盤上一樣)。

在你的計(jì)算機(jī)上

下載適用于最新版本 Pico MicroPython 固件的 UF2 文件。MicroPython 是一種針對微控制器優(yōu)化的 Python 實(shí)現(xiàn),適合各種水平的程序員。

如果你的 Pico 還沒有顯示為 RPI-RP2 驅(qū)動(dòng)器,你需要檢查一下你的電腦是否已正確安裝了 Pico 的驅(qū)動(dòng)程序。

你可以按住 Pico 上的 BOOTSEL 按鈕(位于 USB 插口旁邊的小按鈕),同時(shí)將連接了 Pico 的 Micro USB 插入到電腦上來將 Pico 設(shè)置為啟動(dòng)器模式。

然后,Pico 將會(huì)顯示為一個(gè)名為 RPI-RP2 的驅(qū)動(dòng)器,如下所示(以 macOS 為例):

4b49ac86-3c4d-11ee-ac96-dac502259ad0.png

給 Pico 編程

下載、安裝并打開一個(gè)名為 Thonny 的 Python 集成開發(fā)環(huán)境(IDE)。后面我們會(huì)用這個(gè)給Pico編程。確認(rèn) Pico 仍然連接著,并且 Thonny 的界面應(yīng)該是這樣的:

4b576ef2-3c4d-11ee-ac96-dac502259ad0.png

如果你在 Shell 窗口中看到 >>>,那么你已經(jīng)成功連接到 Pico 并啟用了交互式會(huì)話,準(zhǔn)備開始編程。如果你沒有看到這個(gè)提示,那么你需要檢查 Thonny 的設(shè)置是否正確。

點(diǎn)擊 Thonny 窗口的右下角,確保選擇了 MicroPython(Raspberry Pi Pico)解釋器;如果沒有選擇,請選擇它。

如果由于某種原因沒有成功地刷寫固件,Thonny 可能會(huì)提示你在這個(gè)階段安裝它;在這種情況下,嘗試重新刷寫固件。如果Pico 仍然沒有顯示為連接狀態(tài),那需要斷開連接并重新連接,然后按下 Thonny 頂部菜單欄的紅色停止標(biāo)志來重置一下。

然后,你應(yīng)該就可以在 Shell 窗口中看到 >>> 提示了,說明我們已經(jīng)連接成功。

將以下代碼復(fù)制粘貼到空白且尚未保存的 Thonny 程序窗口中:

import array, time
from machine import Pin
import rp2


# Configure the number of WS2812 LEDs.
NUM_LEDS = 31
PIN_NUM = 28
brightness = 1


@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=24)
def ws2812():
    T1 = 2
    T2 = 5
    T3 = 3
    wrap_target()
    label("bitloop")
    out(x, 1)               .side(0)    [T3 - 1]
    jmp(not_x, "do_zero")   .side(1)    [T1 - 1]
    jmp("bitloop")          .side(1)    [T2 - 1]
    label("do_zero")
    nop()                   .side(0)    [T2 - 1]
    wrap()




# Create the StateMachine with the ws2812 program, outputting on pin
sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(PIN_NUM))


# Start the StateMachine, it will wait for data on its FIFO.
sm.active(1)


# Display a pattern on the LEDs via an array of LED RGB values.
ar = array.array("I", [0 for _ in range(NUM_LEDS)])


##########################################################################
def pixels_show():
    dimmer_ar = array.array("I", [0 for _ in range(NUM_LEDS)])
    for i,c in enumerate(ar):
        r = int(((c >> 8) & 0xFF) * brightness)
        g = int(((c >> 16) & 0xFF) * brightness)
        b = int((c & 0xFF) * brightness)
        dimmer_ar[i] = (g<<16) + (r<<8) + b
    sm.put(dimmer_ar, 8)
    time.sleep_ms(10)


def pixels_set(i, color):
    ar[i] = (color[1]<<16) + (color[0]<<8) + color[2]


def pixels_fill(color):
    for i in range(len(ar)):
        pixels_set(i, color)


def color_chase(color, wait):
    for i in range(NUM_LEDS):
        pixels_set(i, color)
        time.sleep(wait)
        pixels_show()
    time.sleep(0.2)


def wheel(pos):
    # Input a value 0 to 255 to get a color value.
    # The colours are a transition r - g - b - back to r.
    if pos < 0 or pos > 255:
        return (0, 0, 0)
    if pos < 85:
        return (255 - pos * 3, pos * 3, 0)
    if pos < 170:
        pos -= 85
        return (0, 255 - pos * 3, pos * 3)
    pos -= 170
    return (pos * 3, 0, 255 - pos * 3)




def rainbow_cycle(wait):
    for j in range(255):
        for i in range(NUM_LEDS):
            rc_index = (i * 256 // NUM_LEDS) + j
            pixels_set(i, wheel(rc_index & 255))
        pixels_show()
        time.sleep(wait)


BLACK = (0, 0, 0)
RED = (255, 0, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)
WHITE = (255, 255, 255)
COLORS = (BLACK, RED, YELLOW, GREEN, CYAN, BLUE, PURPLE, WHITE)




while True:


    print("fills")
    for color in COLORS:
        pixels_fill(color)
        pixels_show()
        time.sleep(0.2)


    print("chases")
    for color in COLORS:
        color_chase(color, 0.01)


    print("rainbow")
    rainbow_cycle(0)

Thonny 的界面現(xiàn)在看起來是這樣的:

4b845f48-3c4d-11ee-ac96-dac502259ad0.png

使用 MicroPython 的一個(gè)優(yōu)點(diǎn)是它的很多代碼都是用可讀性強(qiáng)的英語編寫的。比如,在這個(gè)程序的開頭,我們可以看到 Pico 將通過引腳 28 控制 31 個(gè) LED,以最大亮度顯示(亮度為 0-1 的比例,其中 0.5 表示 50% 的亮度)。

這個(gè)程序的剩余部分會(huì)指示 Pico 重復(fù)顯示圖案和顏色。

點(diǎn)擊 File 然后選擇 Save as…

4bc00e30-3c4d-11ee-ac96-dac502259ad0.png

4be01072-3c4d-11ee-ac96-dac502259ad0.png

4c01915c-3c4d-11ee-ac96-dac502259ad0.png

組裝硬件

3D 打印的部件

需要四個(gè) 3D 打印的零件來容納所有的組件:背板、主體、Pico 支架和前蓋。我們只需要將它們粘在一起組裝成完整的裝置就行。

你可以在文末免費(fèi)下載這些 3D 打印文件。建議使用易于打印的材料,比如 PLA 或 PETG 塑料絲材料來打印。

切割和準(zhǔn)備亞克力圓盤

對于這個(gè)項(xiàng)目,我們需要兩塊厚度為 3mm,直徑為 70mm 的亞克力圓盤,其中一塊圓盤需要在中央鉆一個(gè)直徑約為 5mm 的孔,用于通過導(dǎo)線。

如果你可以使用激光切割機(jī),制作這些部件很簡單?;蛘吣憧梢哉页瞿愕呐f文具盒,找到圓規(guī)。使用木工鋸切割出一個(gè)直徑為 70mm 的圓形,然后用砂紙或銼刀修整邊緣。最終的圓盤不需要完全無瑕疵,因?yàn)楹罄m(xù)的步驟會(huì)遮蓋這些小瑕疵。

其中一塊圓盤在中心鉆一個(gè)直徑為 5mm 的孔,用于以后通過導(dǎo)線。

4c4b830c-3c4d-11ee-ac96-dac502259ad0.png

在柔性粘性鏡片上標(biāo)記一個(gè)70mm的圓,在單向鏡自粘膜上標(biāo)記另一個(gè)同樣大的圓。使用剪刀剪裁出圓形,而且可以剪得非常圓。

確保從亞克力圓片上撕掉了所有的保護(hù)層,然后依次撕掉鏡片背面的粘性支撐層。

把鏡片貼到帶有孔的圓片上,這個(gè)圓片會(huì)被用于安裝我們的Pico,然后將一片單向鏡膜貼到另一個(gè)圓片上。

布線和焊接電子器件

反應(yīng)爐底部將會(huì)包含可充電電池、開關(guān)和 USB-C 充電板,這些我們需要將它們粘合到 3D 打印切割件內(nèi)部的適配插槽中。

在這個(gè)階段,我們需要進(jìn)行一些電線的剪切、剝離和焊接工作。

根據(jù)下面的照片,確保將電池的正負(fù)極線連接到正確的 USB-C 充電板正負(fù)極輸入上,并將板的正輸出線焊接到滑動(dòng)開關(guān)的中間引腳上。

開關(guān)的正極線可以焊接到兩個(gè)外側(cè)開關(guān)引腳的任意一個(gè)上:

4c86629c-3c4d-11ee-ac96-dac502259ad0.png

接下來,將另外三根導(dǎo)線直接焊接到 Pico 的背面。這些導(dǎo)線的長度應(yīng)該足夠完成后面組裝過程中的連線電路:大約 20cm 的長度應(yīng)該足夠了。

為了給 Pico 提供電源,還需要將紅色和黑色導(dǎo)線分別連接到標(biāo)有 VBUS 和 GND 的引腳上。

我們需要第三根導(dǎo)線(藍(lán)色),在上面的照片中顯示,在藍(lán)色導(dǎo)線上將它焊接到標(biāo)有 GP28 的引腳上。我們的 MicroPython 腳本中指定的是 Pico 用來與 LED 進(jìn)行通信的引腳

LED 燈帶通常已經(jīng)預(yù)先布線,但它們的連接點(diǎn)通常較大,我們需要自制一個(gè)布線束。使用剪刀,將任何現(xiàn)有的布線都剪掉,然后切割出一條 31 個(gè) LED 的燈帶,確保剪切沿每個(gè) LED 之間的縫隙進(jìn)行:

燈帶上也標(biāo)有箭頭,用于顯示正確的電流方向,”+”符號(hào)代表正線,”0″代表數(shù)據(jù)線,”G”代表負(fù)線或接地線。在切割時(shí),確保沿著每個(gè)焊盤中間切開;如果不小心的話,很容易導(dǎo)致焊接線接觸不良。

在上面的照片中,像這樣焊接另外三根導(dǎo)線,長度也約為 20cm:紅色正線、藍(lán)色數(shù)據(jù)線和黑色地線。在焊接到焊盤時(shí),你可能會(huì)發(fā)現(xiàn)從燈帶后面進(jìn)行焊接會(huì)更方便一些。

組裝

將連接到你的樹莓派Pico的三根線穿過小型3D打印的Pico底座。然后將線通過鏡子圓板的孔,將底座粘在你的Pico底部和圓板的反光面。確保Pico在底座上坐立于鏡子表面之上。

這樣,我們就可以實(shí)現(xiàn)我們的目標(biāo),獲得一個(gè) 3D 無限效果

現(xiàn)在將帶單向膜的圓盤放入 3D 打印的主體中,并將前環(huán)粘合到主體上。由于圓盤是由前環(huán)固定的,所以可以隱藏一些形狀方面的細(xì)微缺陷。

將 31 個(gè) LED 的燈帶粘貼在 3D 打印的主體的內(nèi)部,確保布線和連接與主體的間隙對齊,這樣你可以輕松地將導(dǎo)線穿過安裝 Pico 的圓盤的一側(cè)。

大多數(shù) LED 燈帶都有自粘背面,這有助于使這個(gè)過程變得簡單。

將已經(jīng)粘合到鏡面圓盤上的 Pico 與裝有 LED 的主體和單向鏡組成一個(gè)完整的裝置,并與包含電池、充電板和開關(guān)的底座配對。

確保你的所有導(dǎo)線尾部都穿過到了反應(yīng)爐底座上。將兩根藍(lán)色數(shù)據(jù)線焊接在一起,將三根紅色正線焊接在一起,將三根黑色負(fù)線焊接在一起,根據(jù)需要修剪任何多余長度的線材??梢允褂脽峥s套管或膠帶絕緣我們的連接點(diǎn)。

最后檢查
在將所有部件粘合在一起之前,檢查一切是否按預(yù)想的工作。通過滑動(dòng)開關(guān)檢查 LED 是否點(diǎn)亮;使用 USB-C 手機(jī)充電器或 USB 充電寶測試充電板的功能;充電時(shí),LED指示燈將亮起。

現(xiàn)在,我們只需要將部件粘合在一起就ok了。

升級(jí)

升級(jí)!每個(gè)人都喜歡升級(jí),尤其是鋼鐵俠。其實(shí)我們還可以使用樹莓派 Pico W 運(yùn)行一個(gè) web 服務(wù)器,從手機(jī)瀏覽器上無線控制 LED。

或者也可以加一些涂料,在反應(yīng)爐背面粘貼一些魔術(shù)貼,這樣我們就可以將它像托尼·斯塔克那樣佩戴在胸前了。





審核編輯:劉清

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

    關(guān)注

    85

    文章

    3166

    瀏覽量

    77177
  • 驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    51

    文章

    7998

    瀏覽量

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

    關(guān)注

    22

    文章

    1588

    瀏覽量

    107402
  • 3D打印技術(shù)
    +關(guān)注

    關(guān)注

    4

    文章

    219

    瀏覽量

    31825
  • 樹莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1679

    瀏覽量

    105256

原文標(biāo)題:用樹莓派 Pico 做一個(gè)鋼鐵俠反應(yīng)爐

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    樹莓pico如何入門?

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

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

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

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

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

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

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

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

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

    如何700元用樹莓自己做一個(gè)相機(jī)?

    手機(jī)拍照不夠爽,帶個(gè)單反又太重? 試試做個(gè)樹莓復(fù)古相機(jī),還能自己編寫處理算法的那種—— 成本不到700元。 沒錯(cuò),顏值很高,拍出來的照片也能打。 你也可以快速上手做一個(gè)。 如何制作
    的頭像 發(fā)表于 05-20 11:44 ?2949次閱讀
    如何700元用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>自己<b class='flag-5'>做一個(gè)</b>相機(jī)?

    樹莓也出MCU了?樹莓Pico來了!

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

    樹莓Pico:僅4美元的MCU

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

    樹莓pico入門學(xué)習(xí)筆記(

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

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

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

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

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

    如何利用樹莓和氣體傳感器保護(hù)廚房呢?

    其實(shí)市面上有很多商業(yè)解決方案,喜歡自己動(dòng)手的,可以用樹莓Pico和氣體傳感器做一個(gè)。
    發(fā)表于 08-16 09:24 ?263次閱讀

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

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

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

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