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超聲波模塊的應用。
先上代碼:
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,打開之後用電腦登錄,直接把要上傳的文件拉過去就行了。