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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

Raspberry Pi是學習的理想計算機?;?a target="_blank">Linux的Raspbian操作系統(tǒng)內(nèi)置了Python,這使得它成為初學者的理想之選。通用輸入/輸出(GPIO)引腳使萌芽的制造商可以輕松地進行DIY電子項目的實驗。

當您使用控制這些引腳的代碼庫和流行的RPi時,這一點尤其容易。庫就是此類庫的一個很好的例子。但這是初學者的最佳途徑嗎?加入我們進行調(diào)查。

什么是GPIO零?

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

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

RPi.GPIO有什么問題?

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

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

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

在學習Python代碼時,您會了解到它是GPIO良好設計的證明。應當易于閱讀且盡可能簡短。 GPIO零旨在涵蓋這兩個方面。構建在RPi.GPIO上作為前端語言包裝,它簡化了GPIO的設置和使用。

請考慮以下示例,設置并打開LED

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

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

已導入RPi.GPIO庫,并且為LED已聲明。設置了引腳布局類型(在GPIO指南中說明了BCM和BOARD模式),并且將引腳設置為輸出。然后,將引腳打開。

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

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

為什么GPIO Zero的方法更好?

有一些這種工作方法是對RPi.GPIO進行改進的原因。

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

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

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

以這種方式放置,使用BCM編號絕對有意義。鑒于GPIO零將在以后的Raspberry Pi文檔中成為標準配置,值得學習!

GPIO零實際上更好嗎?

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

另一方面,準確了解正在發(fā)生的事情對于學習很重要。以GPIO零文檔中的設置按鈕為例:

按鈕模塊簡化了按鈕的設置。它知道按鈕是輸入,因此使用聲明的引腳號進行設置。使用 .is_pressed 檢測按鈕是否按下也很容易。

我們在Raspberry Pi按鈕教程中使用了此確切功能,這是一種很好的方法熟悉庫中的差異。

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

“您可能會說,了解上拉和下拉動作是件好事,您會說對的,但是為什么我必須在第一天就教它嗎?[…]如果您想更深入地講授電子學,則有很大的余地-但是如果您剛剛開始,則不應該是強制性的?!?/p>

總的來說,對于初學者和老手來說,GPIO Zero的簡單方法可能是一件好事。此外,RPi.GPIO不會隨處可見。

Python是唯一的選擇嗎?

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

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

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

如果您正處在一個不需要它的東西的地方,那么您將準備好進入這些其他庫。

您自己可以使用GPIO零入門

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

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

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

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

    關注

    16

    文章

    1175

    瀏覽量

    51515
  • 樹莓派
    +關注

    關注

    116

    文章

    1679

    瀏覽量

    105255
收藏 人收藏

    評論

    相關推薦

    樹莓和單片機的優(yōu)缺點是什么

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

    樹莓4b風扇插哪個引腳

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

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

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

    良辰美景,你需要一款復古風格的樹莓相機!

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

    樹莓5,Raspberry Pi 5 評測

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

    Waveshare推出樹莓紅外熱像儀,可智能檢測報警和過熱問題

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

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

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

    什么是GPIOGPIO組成原理

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

    MCU啟動失敗竟因GPIO先上電?

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

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

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

    如何配置GPIO為中斷功能呢?

    如何配置GPIO為中斷功能呢? GPIO在嵌入式系統(tǒng)中經(jīng)常用于控制外設,如LED、攝像頭、傳感器等。除此之外,GPIO還可以被配置為中斷功能,用于檢測輸入信號的變化,從而觸發(fā)中斷服務程序。本文將介紹
    的頭像 發(fā)表于 10-30 09:57 ?3308次閱讀

    STM32使用GPIO配置的5種方式

    STM32使用GPIO配置的5種方式 STM32是常見的一種微控制器,其GPIO模塊可以實現(xiàn)對外部設備的控制和數(shù)據(jù)傳輸,包括數(shù)字I/O口、模擬輸入口和輸出口等。在STM32中,GPIO模塊的配置可以
    的頭像 發(fā)表于 10-26 17:42 ?1232次閱讀

    STM32 GPIO的基本結構

    在STM32中,所有GPIO都是掛在APB2這個總線上面的;
    的頭像 發(fā)表于 10-24 09:24 ?921次閱讀
    STM32 <b class='flag-5'>GPIO</b>的基本結構

    如何從單片機平臺編寫GPIO口程序

    單片機平臺編寫 GPIO 口程序,以 STM32F103 為例,有三種模式:庫函數(shù)、HAL庫、寄存器。 使用庫函數(shù)的方式操控 GPIO 方式如下: void LED_Init ( void
    的頭像 發(fā)表于 09-28 15:56 ?1106次閱讀

    gpio子系統(tǒng)API詳解

    gpio 子系統(tǒng) API gpio 子系統(tǒng)中操作一個 GPIO 需要如下幾步: 1、of_find_compatible_node2、of_get_named_gpio3、
    的頭像 發(fā)表于 09-27 17:17 ?635次閱讀
    <b class='flag-5'>gpio</b>子系統(tǒng)API詳解