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

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

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

為什么樹莓派項(xiàng)目的GPIO零優(yōu)于RPi.GPIO

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-02 11:05 ? 次閱讀

Raspberry Pi是學(xué)習(xí)的理想計(jì)算機(jī)。基于Linux的Raspbian操作系統(tǒng)內(nèi)置了Python,這使得它成為初學(xué)者的理想之選。通用輸入/輸出(GPIO)引腳使萌芽的制造商可以輕松地進(jìn)行DIY電子項(xiàng)目的實(shí)驗(yàn)。

當(dāng)您使用控制這些引腳的代碼庫(kù)和流行的RPi時(shí),這一點(diǎn)尤其容易。庫(kù)就是此類庫(kù)的一個(gè)很好的例子。但這是初學(xué)者的最佳途徑嗎?加入我們進(jìn)行調(diào)查。

什么是GPIO零?

GPIO零庫(kù)是一個(gè)用于處理GPIO引腳的Python庫(kù)。它是由Raspberry Pi社區(qū)經(jīng)理Ben Nuttall編寫的。旨在直觀,“友好”,它簡(jiǎn)化了大多數(shù)常規(guī)Raspberry Pi用例的Python代碼。

結(jié)合了簡(jiǎn)單的命名實(shí)踐和描述性功能,GPIO 0可供初學(xué)者更容易理解。即使是經(jīng)驗(yàn)豐富的RPi.GPIO庫(kù)用戶也可能會(huì)喜歡它-并且要了解原因,讓我們看一下RPi.GPIO與GPIO零的比較。

RPi.GPIO有什么問題?

什么都沒有。沒事RPi.GPIO由開發(fā)人員Ben Croston于2012年初發(fā)布。它是一個(gè)強(qiáng)大的庫(kù),允許用戶從代碼控制GPIO引腳。它涵蓋了幾乎我們涵蓋的每個(gè)初學(xué)者項(xiàng)目。

盡管RPi.GPIO用途廣泛,但它從來都不是為最終用戶設(shè)計(jì)的。

GPIO零的優(yōu)點(diǎn)是什么?

在學(xué)習(xí)Python代碼時(shí),您會(huì)了解到它是GPIO良好設(shè)計(jì)的證明。應(yīng)當(dāng)易于閱讀且盡可能簡(jiǎn)短。 GPIO零旨在涵蓋這兩個(gè)方面。構(gòu)建在RPi.GPIO上作為前端語言包裝,它簡(jiǎn)化了GPIO的設(shè)置和使用。

請(qǐng)考慮以下示例,設(shè)置并打開LED

為什么樹莓派項(xiàng)目的GPIO零優(yōu)于RPi.GPIO

使用Pi來控制LED的任何人都應(yīng)該非常熟悉上面的代碼。

已導(dǎo)入RPi.GPIO庫(kù),并且為L(zhǎng)ED已聲明。設(shè)置了引腳布局類型(在GPIO指南中說明了BCM和BOARD模式),并且將引腳設(shè)置為輸出。然后,將引腳打開。

這種方法很有意義,但是使用GPIO Zero的方法要簡(jiǎn)單得多:

GPIO Zero有一個(gè)用于LED的模塊,該模塊從一開始就導(dǎo)入。這意味著您可以聲明引腳號(hào),并調(diào)用 led.on()方法。

為什么GPIO Zero的方法更好?

有一些這種工作方法是對(duì)RPi.GPIO進(jìn)行改進(jìn)的原因。

首先,它滿足“易于閱讀,且盡可能短”的要求。盡管RPi.GPIO設(shè)置語句很容易理解,但不是必需的。 LED始終是輸出,因此GPIO零設(shè)置了后臺(tái)的引腳。結(jié)果僅需設(shè)置三行代碼,然后點(diǎn)亮一個(gè)LED。

您可能會(huì)注意到,在GPIO Zero示例中沒有設(shè)置板模式。該庫(kù)僅對(duì)引腳使用Broadcom(BCM)編號(hào)。圖書館設(shè)計(jì)師Ben Nuttall在2015年RasPi.tv采訪中解釋了原因:

“板子編號(hào)看似簡(jiǎn)單,但我想說它會(huì)使新用戶認(rèn)為所有的銷釘都是通用的,而且不是。將LED連接到引腳11,為什么不另外連接引腳1,2,3和4? 1號(hào)井是3V3。 2和4是5V。

以這種方式放置,使用BCM編號(hào)絕對(duì)有意義。鑒于GPIO零將在以后的Raspberry Pi文檔中成為標(biāo)準(zhǔn)配置,值得學(xué)習(xí)!

GPIO零實(shí)際上更好嗎?

表面上看起來更簡(jiǎn)單,但是新圖書館有什么問題嗎?與任何新的編碼庫(kù)一樣,這是一個(gè)意見問題。一方面,對(duì)于初學(xué)者和經(jīng)驗(yàn)豐富的編碼人員而言,刪除設(shè)置代碼都是極好的選擇。編寫代碼更直接,更快捷。

另一方面,準(zhǔn)確了解正在發(fā)生的事情對(duì)于學(xué)習(xí)很重要。以GPIO零文檔中的設(shè)置按鈕為例:

按鈕模塊簡(jiǎn)化了按鈕的設(shè)置。它知道按鈕是輸入,因此使用聲明的引腳號(hào)進(jìn)行設(shè)置。使用 .is_pressed 檢測(cè)按鈕是否按下也很容易。

我們?cè)赗aspberry Pi按鈕教程中使用了此確切功能,這是一種很好的方法熟悉庫(kù)中的差異。

RPi.GPIO庫(kù)的用戶會(huì)注意到,未在代碼中設(shè)置Pi的內(nèi)部上拉/下拉電阻。這就提出了一個(gè)有趣的問題。對(duì)于初學(xué)者來說,了解上拉/下拉電阻器至關(guān)重要嗎?同樣,本·努塔爾(Ben Nuttall)對(duì)這個(gè)問題有一個(gè)答案:

“您可能會(huì)說,了解上拉和下拉動(dòng)作是件好事,您會(huì)說對(duì)的,但是為什么我必須在第一天就教它嗎?[…]如果您想更深入地講授電子學(xué),則有很大的余地-但是如果您剛剛開始,則不應(yīng)該是強(qiáng)制性的。”

總的來說,對(duì)于初學(xué)者和老手來說,GPIO Zero的簡(jiǎn)單方法可能是一件好事。此外,RPi.GPIO不會(huì)隨處可見。

Python是唯一的選擇嗎?

Python是Pi眾所周知的語言,但不是唯一的選擇。如果您已經(jīng)熟悉使用C語言進(jìn)行編程,那么覆蓋了Wiing Pi。

或者,如果您已經(jīng)使用JavaScript進(jìn)行編程,則可以輕松地在Pi上安裝Node.js。 GPIO訪問可通過rpi-gpio npm庫(kù)獲得。 Ruby on Rails也可以安裝在Raspberry Pi上,盡管Pi可能不是學(xué)習(xí)Rails的最佳方法!

所有這些替代方案以及出色的Pigpio等多語言庫(kù)可以使您選擇圖書館令人困惑。這就是GPIO Zero的優(yōu)勢(shì):對(duì)于初學(xué)者來說,他們想知道如何以及從哪里開始。

如果您正處在一個(gè)不需要它的東西的地方,那么您將準(zhǔn)備好進(jìn)入這些其他庫(kù)。

您自己可以使用GPIO零入門

GPIO零是最新的庫(kù),有充分的理由使Pi引人注目。對(duì)于大多數(shù)用戶而言,它使GPIO引腳的編碼更易于閱讀和編寫。

鑒于Raspberry Pi在教育中的用途,任何使學(xué)習(xí)更加自然的事情都是一件好事。雖然RPi.GPIO到目前為止一直很完善,但是GPIO Zero還是一個(gè)好主意,并且使其變得更好。

使用GPIO Zero入門的一種好方法是接受像Musical Door Sensor這樣的初學(xué)者項(xiàng)目。并將其移植到新庫(kù)中。
責(zé)任編輯:wv

聲明:本文內(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)投訴
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1184

    瀏覽量

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

    關(guān)注

    116

    文章

    1684

    瀏覽量

    105410
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基礎(chǔ)開發(fā)小安-Eyes-S1外設(shè)篇——GPIO 輸入輸出

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP攝像頭接口,外置ES8388音頻編解碼芯片以及預(yù)留TF卡座,并且引出USB接口,可接入U(xiǎn)SB攝像頭。 從開始學(xué)習(xí)小安: 1、基礎(chǔ)開發(fā)小安
    的頭像 發(fā)表于 10-25 13:50 ?388次閱讀
    <b class='flag-5'>零</b>基礎(chǔ)開發(fā)小安<b class='flag-5'>派</b>-Eyes-S1外設(shè)篇——<b class='flag-5'>GPIO</b> 輸入輸出

    樹莓gpio有什么用,樹莓gpio接口及編程方法

    一、樹莓GPIO的用途 樹莓(Raspberry Pi)是一款小巧、功能強(qiáng)大的單板計(jì)算機(jī),廣泛應(yīng)用于編程教育、物聯(lián)網(wǎng)
    的頭像 發(fā)表于 10-22 18:09 ?158次閱讀

    什么是樹莓?樹莓是什么架構(gòu)的

    什么是樹莓 樹莓(Raspberry Pi,簡(jiǎn)寫為RPi,別名為RasPi/RPI)是由英國(guó)
    的頭像 發(fā)表于 10-22 17:33 ?156次閱讀

    gpio接口是干什么的 gpio四種輸入輸出模式怎么選擇

    這些引腳的電平狀態(tài),實(shí)現(xiàn)與外部設(shè)備的通信和交互。GPIO接口在嵌入式系統(tǒng)、物聯(lián)網(wǎng)設(shè)備、樹莓項(xiàng)目等領(lǐng)域有著廣泛的應(yīng)用,為電子設(shè)備的通信和交互提供了重要的支持。 具體來說,
    的頭像 發(fā)表于 10-06 16:07 ?864次閱讀

    我用了3分鐘,從實(shí)現(xiàn)了單片機(jī)的點(diǎn)燈開發(fā)!

    。 RP2040 芯片由樹莓基金會(huì)自己設(shè)計(jì)開發(fā),采用 40 nm 制程工藝,7×7 mm QFN-56 封裝。RP2040 的設(shè)計(jì)思想基于多年來樹莓產(chǎn)品和
    發(fā)表于 09-27 15:51

    樹莓和單片機(jī)的優(yōu)缺點(diǎn)是什么

    樹莓(Raspberry Pi)和單片機(jī)(Microcontroller)是兩種廣泛應(yīng)用于電子項(xiàng)目和嵌入式系統(tǒng)的硬件平臺(tái)。它們各自具有獨(dú)特的優(yōu)缺點(diǎn),適用于不同的應(yīng)用場(chǎng)景。 樹莓
    的頭像 發(fā)表于 08-30 18:21 ?1246次閱讀

    樹莓4b風(fēng)扇插哪個(gè)引腳

    樹莓GPIO引腳上。但需要注意的是,樹莓GPIO引腳輸出電壓通常為3.3V或5V(具體
    的頭像 發(fā)表于 08-30 16:53 ?860次閱讀

    linux開發(fā)板與樹莓的區(qū)別

    操作系統(tǒng)的微型計(jì)算機(jī),主要用于教育、編程、媒體播放等領(lǐng)域。 硬件配置 Linux開發(fā)板:Linux開發(fā)板的硬件配置因廠商和型號(hào)而異,通常包括處理器、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)接口等。 樹莓樹莓
    的頭像 發(fā)表于 08-30 15:34 ?502次閱讀

    良辰美景,你需要一款復(fù)古風(fēng)格的樹莓相機(jī)!

    ,但如果帶一個(gè)自制的相機(jī)會(huì)不會(huì)更有意思一點(diǎn)? 今天就來分享一個(gè)GitHub上開源的復(fù)古風(fēng)格樹莓相機(jī)項(xiàng)目。 材料清單 樹莓Zero W
    發(fā)表于 07-01 11:14

    樹莓5,Raspberry Pi 5 評(píng)測(cè)

    樹莓早期創(chuàng)立的,很快成為許多樹莓項(xiàng)目和硬件的標(biāo)準(zhǔn)。RPi.GPIO很可能是你最喜歡
    發(fā)表于 06-19 14:51

    Waveshare推出樹莓紅外熱像儀,可智能檢測(cè)報(bào)警和過熱問題

    Waveshare近日推出針對(duì)樹莓的紅外線熱像儀。此設(shè)備能借助GPIO接口與樹莓派對(duì)接,拓展其功能領(lǐng)域。除正常的樹莓
    的頭像 發(fā)表于 05-20 14:45 ?551次閱讀

    精選推薦!看大佬用樹莓4做個(gè)迷你版PS5

    為了搭配這個(gè)迷你游戲主機(jī),作者還制作了一個(gè)小型顯示器,使用了5英寸的樹莓顯示屏。這只是一個(gè)有趣的小項(xiàng)目,但你也可以將它連接到任何你喜歡的顯示器或顯示屏。 ? 現(xiàn)在,你可以在上面玩各種復(fù)古游戲了
    發(fā)表于 05-13 10:24

    什么是GPIO?GPIO組成原理

    GPIO全拼叫General Purpose Input Output(通用輸入輸出)簡(jiǎn)稱IO口也叫總線擴(kuò)展器,GPIO口是由引腳,功能寄存器組成,不同的架構(gòu)中的GPIO封裝不同,所使用的引腳數(shù)與寄存器數(shù)不同,具體可以參考芯片手
    發(fā)表于 04-28 12:30 ?6186次閱讀
    什么是<b class='flag-5'>GPIO</b>?<b class='flag-5'>GPIO</b>組成原理

    MCU啟動(dòng)失敗竟因GPIO先上電?

    由于 RT1060 上 GPIO_AD_Bx 和 GPIO_Bx 兩組 PAD 供電均來自于 NVCC_GPIO,當(dāng)其中任何一個(gè) GPIO 有電壓時(shí),均可能會(huì)漏電到 NVCC_
    發(fā)表于 03-28 10:32 ?609次閱讀
    MCU啟動(dòng)失敗竟因<b class='flag-5'>GPIO</b>先上電?

    【核桃1B 開發(fā)板試用體驗(yàn)】+GPIO測(cè)試篇

    GPIO是入手硬件的最佳點(diǎn),在核桃的開發(fā)板上配有40Pin GPIO(和樹莓類似),見圖1所示。 該擴(kuò)展接口分為兩行,每行有20個(gè)排針。
    發(fā)表于 01-02 19:57