Banana Pi的GPIO應用以及驅動HC-SR04超聲波測距模塊

先上效果圖:


Banana Pi基於ArchLinux,用了Banana Pi的GPIO庫,這裏安裝:

https://github.com/LeMaker/RPi.GPIO_BPC

HC-SR04是之前的51單片機小車上的,一直閒在宿舍書架上沒用,剛纔突然想到能不能用Banana Pi驅動一下,正好試試Pi的GPIO控制怎麼用,於是百度了一下,就開始了。

先安裝GPIO庫。

進入Linux之後,輸入:

git clone https://github.com/LeMaker/RPi.GPIO_BP -b bananapi

如果是Banana Pro的話要用

git clone https://github.com/LeMaker/RPi.GPIO_BP -b bananapro

當然要先安裝git工具。

然後下載下來之後安裝,這個包是python編寫,所以要先安裝python-dev

pacman -S python-dev

然後安裝:

cd /RPi.GPIO_BP 
python setup.py install 
sudo python setup.py install

按照github上的要求,要先直接python裝,在sudo python裝一邊,而且不要搞反。

成功了之後,就可以試一下下載下來的包裏面test文件夾裏面的測試程序了。比如說led.py吧,用vim查看一下默認是pin 7 的,那就找一個led連在pin7和+5V上。

sudo ./led.py

這個時候如果看到led一閃一閃就是成功了。

——————華麗的分割線————————

下面就是HC-SR04超聲波模塊的應用。

先上代碼:

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time


GPIO_SIG = 11
GPIO_ECHO = 12


def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(GPIO_SIG,GPIO.OUT)
GPIO.setup(GPIO_ECHO,GPIO.IN)
GPIO.output(GPIO_SIG,GPIO.LOW)


def getDistance():
GPIO.output(GPIO_SIG,GPIO.HIGH)
time.sleep(0.2)
GPIO.output(GPIO_SIG,GPIO.LOW)


while (GPIO.input(GPIO_ECHO)==0):
start = time.time()
while (GPIO.input(GPIO_ECHO)==1):
stop = time.time()


timeslot = stop-start
distance = timeslot * 34300
distance = distance / 2
print ('Distance : %.2f cm' % distance)


def main():
setup()
while True:
getDistance()
time.sleep(1)


GPIO.cleanup()


if __name__ == '__main__' :
main()

寫的比較清楚了,驅動方式和51單片機一模一樣,就不再細說了。
再說一下我的Banana Pi和電腦的通信方式,我裝的是Arch,還沒裝X桌面,所以移植使用SSH登錄,很方便。但最麻煩的一點就是傳文件,命令行太麻煩。。後來開始用ftp之後就好多了。在Banana Pi上裝一個vsftpd,打開之後用電腦登錄,直接把要上傳的文件拉過去就行了。

發佈了31 篇原創文章 · 獲贊 14 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章