3、樹莓派 RPI.GPIO 使用手冊
1、匯入模組
要匯入RPi.GPIO模組,請執行以下操作:
import RPi.GPIOas GPIO
通過這樣做,您可以通過指令碼的其餘部分將其稱為GPIO。
匯入模組並檢查它是否成功:
try: import RPi.GPIO as GPIO except RuntimeError : print(
"Error importing RPi.GPIO! This is probably because you need superuser privileges. You can achieve this by using 'sudo' to run your script"
)
2、引腳編號
在RPi.GPIO中,有兩種方法可以對Raspberry Pi上的IO引腳進行編號。第一種是使用BOARD編號系統。這是指Raspberry Pi板上P1接頭上的引腳號。使用這種編號系統的優點是,無論樹莓派的電路板版本如何,您的硬體都能正常工作。你不需要重新連線你的聯結器或更改你的程式碼。
第二個編號系統是BCM號碼。這是一種較低級別的工作方式 - 它指的是Broadcom SOC上的通道號碼。您必須始終使用那個通道編號所對應的樹莓派板上哪個引腳的圖表。您的指令碼程式可能會在Raspberry Pi板的硬體修訂後而不能使用。
樹莓派引腳有BOARD和BCM兩種編號方式( 使用python時? 似乎使用C還有一種wringPi編號方式 ), BOARD具有很好的適用性( 不用看介面圖,數引腳1~40就可以接線 ), 不論樹莓派1 2 3, 都不用修改程式碼, 吼啊! BCM編號方式換個版本再接線時數引腳是不行的, 需要看下下面的介面圖…不難看出推薦用BOARD編號方式. 但很多程式中使用BCM方式.
下面給出一張樹莓派2B的硬體介面圖( 來源找不到了,侵刪 ):
圖中的GPIOxx的方框即是BCM編碼方式, 直接寫數字的深灰框是BOARD編碼方式, 如BCM編碼方式的 GPIO02 對應BOARD編碼方式的 3.
只需要使用BCM編號方式時, 用下面這兩張好了, 不眼花:
圖片來源:
https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/README.md
http://elinux.org/RPi_Low-level_peripherals#I.C2.B2C
要指定您使用引腳編號方式:
GPIO.setmode(GPIO.BOARD) # or GPIO.setmode(GPIO.BCM)
要檢測哪個引腳編號系統已被設定模式(例如,由另一個Python模組配置過模式):
mode = GPIO.getmode()
模式將是GPIO.BOARD,GPIO.BCM或None
3、警告
您可能在Raspberry Pi的GPIO上有多個指令碼/電路。因此,如果RPi.GPIO檢測到引腳已被配置為預設(輸入)以外的其他引腳,則在嘗試配置指令碼時會收到警告。要禁用這些警告:
GPIO.setwarnings(False)
4、設定一個通道
您需要設定您用作輸入或輸出的每個通道。將通道配置為輸入:
GPIO.setup(channel, GPIO.IN)
(其中通道是基於您指定的編號系統(BOARD或BCM)的通道編號)。
有關設定輸入通道的更多高階資訊可以在這裡找到。
要將通道設定為輸出:
GPIO.setup(channel, GPIO.OUT)
(其中通道是基於您指定的編號系統(BOARD或BCM)的通道編號)。
您還可以為您的輸出通道指定一個初始值:
GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)
4、設定多個頻道
您可以一次設定多個通道(從0.5.8開始)。例如:
chan_list = [ 11 ,12 ] #加你想盡可能多的渠道! #你可以用元組代替,即: #chan_list =(11,12)
GPIO.setup(chan_list, GPIO.OUT)
5、輸入
讀取GPIO引腳的值:
GPIO.input(channel)
( 其中通道是基於您指定的編號系統(BOARD或BCM)的通道編號)。這將返回0 / GPIO.LOW / False或1 / GPIO.HIGH / True。
有幾種方法可以將GPIO輸入到您的程式中。第一種也是最簡單的方法是在某個時間點檢查輸入值。這就是所謂的“輪詢”,如果你的程式在錯誤的時間讀取了值,可能會錯過輸入。輪詢在迴圈中執行,並可能是處理器密集型的。響應GPIO輸入的另一種方式是使用'中斷'(邊沿檢測)。邊沿是從高電平到低電平(下降沿)或從低電平到高電平(上升沿)的意思。
5.1 上拉/下拉電阻
如果你沒有連線到任何輸入引腳,它將'浮空'。換句話說,讀入的值是未定義的,因為它只有在按下按鈕或開關時才會連線到任何東西。由於引腳會接收到干擾,可能讀取到變化的值。
為了解決這個問題,我們使用上拉或下拉電阻。這樣,可以設定輸入的預設值。可以在硬體上使用上拉/下拉電阻並使用軟體。在硬體中,通常使用輸入通道和3.3V(上拉)或0V(下拉)之間的10K電阻。RPi.GPIO模組允許您配置Broadcom SOC以在軟體中執行此操作:
GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP) # or GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
(其中通道是基於您指定的編號系統的通道編號 - BOARD或BCM)。
5.2 測試輸入(輪詢)
您可以立即讀取IO引腳的輸入值:
if GPIO.input(channel): print('Input was HIGH') else: print('Input was LOW')
要通過輪詢輪詢等待按鈕按下:
while GPIO.input(channel) == GPIO.LOW: time.sleep(0.01) # wait 10 ms to give CPU chance to do other things
(這裡假設按下按鈕將輸入從LOW改變為HIGH)
5.3 中斷和邊緣檢測
邊沿是電訊號從低電平變為高電平(上升沿)或從高電平變為低電平(下降沿)的狀態變化。很多時候,我們更關心輸入狀態的變化而非價值。這種狀態變化是一個事件。
為了避免在程式忙於做其他事情時按下按鈕,有兩種方法可以解決這個問題:
- wait_for_edge()函式
- event_detected()函式
- 在檢測到邊緣時執行執行緒的回撥函式
wait_for_edge()函式
wait_for_edge()函式設計用於阻止程式的執行,直到檢測到邊緣。換句話說,上面等待按鈕按下的示例可以被重寫為:
GPIO.wait_for_edge(channel, GPIO相關推薦
3、樹莓派 RPI.GPIO 使用手冊
RPi.GPIO是 Python的一個module( 模組 ), 樹莓派官方系統預設已經安裝, 仍在不斷更新中, 截至20180521, 最新版0.6.3, 適配了樹莓派3B+, 可以訪問 python主頁下載原始碼 .
3、樹莓派3 Model B ——— 樹莓派GPIO點亮第一個LED
1、實驗前準備 樹莓派3B及電源 x1麵包板 x1LED燈 x1電阻220歐 x1 杜邦線 x2 2、實驗原理 樹莓派的IO口可以外接很多外設,如舵機、紅外發送接收模組、繼電器、步進電機、各類感測器、螢幕等。通過這些外設可以製作很多有趣的創客設計,改善我們的生活方式提高我
樹莓派RPi.GPIO使用手冊
參考源:http://blog.csdn.net/qq_35893742/article/details/53428679 1.RPi.GPIO模組基本使用 匯入模組 匯入 RPi.GPIO 模組: import RPi.GPIO as GPIO1 通過下面的程式
4、樹莓派3B+的GPIO
pre gen general 查看 read img bubuko div 分享 GPIO(General Purpose I/O Ports)意思為通用輸入/輸出端口。 可以在終端重直接查看GPIO的定義。 在終端中直接輸入 gpio readall
樹莓派通過GPIO控制步進電機
tps 分享 images logs http 分享圖片 .com 控制 圖片 一、接線方式與GPIO調用方法: 電源接入+5v和GND In1-4分別接GPIO1-4 正轉時,GPIO1-4分次傳入:[1,0,0,0],[sleep],[0,1,0,0],[sl
樹莓派的GPIO埠詳解
首先上一張埠圖 GPIO(GeneralPurposeI/OPorts)意思為通用輸入/輸出埠,通俗地說,就是一些引腳,可以通過它們輸出高低電平或者通過它們讀入引腳的狀態-是高電平或是低電平。GPIO是個比較重要的概念,使用者可以通過GPIO口和硬體進行資料互動(如UAR
5、樹莓派連線官方CSI攝像頭的使用
本篇博文大部分轉https://blog.csdn.net/u013162035/article/details/78580486 其中有部分細節根據自己的實際操作進行了修改 5.1樹莓派基本操作 目前提供了三個應用程式,分別為:raspis
4、樹莓派連線USB轉串列埠的使用
樹莓派上自帶一個串列埠,用於連線藍芽或是串列埠命令列,串列埠資源很少,對於嵌入式的應用來說串列埠裝置很多,需要的串列埠數量也很多,因為通過USB外接串列埠是一個不錯的選擇。樹莓派的 raspberry 2018.04.18 stretch版本的系統中已經
2、樹莓派linux常用的命令
1、網路相關的命令 (1)檢視網路介面的狀態ifconfig (2) 掃描無線網路訊號iwlist scan 2、檔案操作相關命令 (1)切換目錄 cd (2)&n
1、樹莓派3B+ 開箱安裝系統及入門使用的基本設定
一直想學習Linux的開發,補充高階應用的開發的短板,苦於沒有時間,最近有點時間購買了當前最火的卡片計算機,樹莓派3B plus版本,淘寶購買,同城發貨,拿到快遞後就迫不及待的開始學習Linux的里程。在網上學習了很多前輩位的分享,我這篇博文記錄自己
嵌入式系統(3)- 樹莓派DIY小車 - 攝像頭的使用
1.基本設定 sudo raspi-config 命令,進入到樹莓派基本設定介面 選擇: 5 Interfacing Options 然後選擇 Camera Enable &n
Linux系統使用入門進階總結(3)——樹莓派安裝Ubuntu Mate系統,以及後期配置
文章轉自 https://blog.csdn.net/VennyJin/article/details/84995290 本文大部分參考了@henryheheng的博文 https://blog.csdn.net/henryheheng/article/details/78907406
樹莓派的GPIO程式設計
作者:Vamei 出處:http://www.cnblogs.com/vamei 嚴禁轉載。 樹莓派除了提供常見的網口和USB介面 ,還提供了一組GPIO(General Purpose Input/Output)介面。這組GPIO介面大大拓展了樹莓派的能力。GPIO不僅能實現通訊,還能直接控制電子元
樹莓派的gpio python使用
樹莓派上面的使用gpio實現功能擴充套件,有2種方式,大家應該都能找得到,我使用了RPi.GPIO. http://sourceforge.net/p/raspberry-gpio-python/wiki/Home/ 這個是官方的wifi,裡面有具體的使用。 https
在Ubuntu環境下用QT5開發樹莓派的GPIO程式(使用wiringPi庫)之一 搭建環境
準備工作: 一個樹莓派,我使用的是B+,裝上最新的Raspbian映象,RASPBIAN JESSIE WITH PIXEL 4.4 https://www.raspberrypi.org/downloads/raspbian/ Ubuntu作業系統,虛擬機器也可以,我使
Windows遠端kali(Ubuntu、樹莓派)安裝xrdp不成功(無法定位到安裝包 apt-get)(Unable to locate package )解決方法
首先想到的是裝完kali之後需要配置IP,這點做好了,區域網內可以訪問 今天想把kali安裝完之後,然後安裝xrdp sudo apt-get install xrdp 遇到了問題,發現報錯
樹莓派的GPIO操作幾種方式
轉載出處1、http://www.waveshare.net/study/article-600-1.html2、http://www.waveshare.net/study/article-601-1.htmla)使用shell指令碼方式b)使用sysfs方式,編寫.c檔案
在windows作業系統下遠端控制樹莓派3(樹莓派3安裝win10系統)
WindowsPowerShell遠端操作win10 1、以管理員身份執行 WindowsPowerShell 2、在啟動的PowerShell控制檯上輸入: net start WinRM (用於啟動WinRM服務,啟動遠端連
樹莓派(RPi) CentOS7擴充套件記憶體卡剩餘空間
使用CentOS7官網映象進行燒錄的系統大約只佔用了2G的空間,但是TF卡卻有16G的空間可用,所以調整/root分割槽空間變的尤為重要,通過本文的例子即可將剩餘空間全部回收利用。 環境說明 裝置:Raspberry Pi 3b 系統:CentOS-
安卓使用socket控制樹莓派的GPIO口 python3.4實現
轉載請註明出處,謝謝! 樹莓派提供了python語言實現的gpio控制包,詳細介紹可見http://maxembedded.com/2014/07/using-raspberry-pi-gpio-using-python/#PinConfig。首先在系統中開啟