樹(shù)莓派實(shí)現(xiàn)移動(dòng)拍照
驅(qū)動(dòng)樹(shù)莓派gpio的中間層庫(kù)函數(shù)有wiringPi,BCM2835,以及PRi.GPIO,這里我選擇使用Python語(yǔ)言開(kāi)發(fā)的PRi.GPIO。
1、安裝RPi.GPIO
(1)先安裝python-dev,輸入以下指令。
sudo apt-get install python-dev
(2)安裝RPi.GPIO
wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz #解壓: tar -zxvf RPi.GPIO-0.5.11.tar.gz #進(jìn)入解壓之后的目錄 : cd RPi.GPIO-0.5.3a #啟動(dòng)安裝 : sudo python setup.py install
2、編寫(xiě)驅(qū)動(dòng)電機(jī)的程序
(1)樹(shù)莓派與XY-160D驅(qū)動(dòng)板連接方法
# 樹(shù)莓派供電: # 5V電源正極接到樹(shù)莓派4號(hào)5V電源引腳,負(fù)極接到樹(shù)莓派39號(hào)GND引腳 # 樹(shù)莓派綠色ATC燈閃爍則SD卡正在運(yùn)行,紅色PWR燈常亮則供電正常 # 更多指示燈狀態(tài)請(qǐng)參照:樹(shù)莓派LED指示燈狀態(tài)的解釋 # # 驅(qū)動(dòng)板電源端供電: # 14.8V電源接驅(qū)動(dòng)板電源端正極,電源負(fù)極接驅(qū)動(dòng)板電源端負(fù)極 # # 驅(qū)動(dòng)板信號(hào)端供電: # 樹(shù)莓派1號(hào)引腳3.3V接到驅(qū)動(dòng)板信號(hào)端+5V引腳,14號(hào)引腳GND接到驅(qū)動(dòng)板信號(hào)端GND引腳 # 驅(qū)動(dòng)板供電正常則DS1指示燈亮起
(2)代碼
使用一段簡(jiǎn)單的電機(jī)驅(qū)動(dòng)代碼進(jìn)行測(cè)試,新建motor_drive.py文件,添加如下代碼并保存:
#!/usr/bin/python2 #coding=utf-8 import RPi.GPIO as GPIO import time # 初始化設(shè)置引腳輸出 IN1 = 12 #11號(hào)引腳對(duì)應(yīng)GPIO0,12號(hào)引腳對(duì)應(yīng)GPIO1 IN2 = 11 #11號(hào)與12號(hào)引腳分別接到驅(qū)動(dòng)板IN2,IN1引腳,控制其中一側(cè)電機(jī) IN3 = 13 #13號(hào)引腳對(duì)應(yīng)GPIO2,15號(hào)引腳對(duì)應(yīng)GPIO3 IN4 = 15 #13號(hào)與15號(hào)引腳分別接到驅(qū)動(dòng)板IN3,IN4引腳,控制另一側(cè)電機(jī) def init(): GPIO.setmode(GPIO.BOARD) #設(shè)置GPIO編碼為物理引腳BOARD編碼 GPIO.setup(IN1, GPIO.OUT) GPIO.setup(IN2, GPIO.OUT) GPIO.setup(IN3, GPIO.OUT) GPIO.setup(IN4, GPIO.OUT) # 所有引腳置低電平,用于復(fù)位、停止運(yùn)行的功能 def reset(): GPIO.output(IN1, GPIO.LOW) GPIO.output(IN2, GPIO.LOW) GPIO.output(IN3, GPIO.LOW) GPIO.output(IN4, GPIO.LOW) def forward(): GPIO.output(IN1, GPIO.HIGH) GPIO.output(IN2, GPIO.LOW) GPIO.output(IN3, GPIO.HIGH) GPIO.output(IN4, GPIO.LOW) def back(): GPIO.output(IN1, GPIO.LOW) GPIO.output(IN2, GPIO.HIGH) GPIO.output(IN3, GPIO.LOW) GPIO.output(IN4, GPIO.HIGH) def stop(): reset() if __name__ == "__main__": init() reset() try: while True: forward() time.sleep(5) stop() time.sleep(1) back() time.sleep(1) stop() time.sleep(1) except KeyboardInterrupt: print("except") stop() GPIO.cleanup()
執(zhí)行程序,按Ctrl + c結(jié)束程序
sudo python motor_drive.py
注:
(1)#!/usr/bin/env python,定義python解析腳本的絕對(duì)路徑。
(2)# -*- coding: utf-8 -*- ,python文件為utf-8格式,否則無(wú)法寫(xiě)入中文注釋。
(3)GPIO.setmode(GPIO.BOARD),采用board編號(hào)方式。
(4)python程序使用try except語(yǔ)言,當(dāng)按下Ctrl+C結(jié)束程序是會(huì)觸發(fā)異常,程序執(zhí)行g(shù)pio.cleanup()語(yǔ)句清楚GPIO管腳狀態(tài)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python學(xué)生信息管理系統(tǒng)實(shí)現(xiàn)代碼
這篇文章主要介紹了python學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單,復(fù)制即可使用,需要的朋友可以參考下2019-12-12解決pip安裝報(bào)錯(cuò)required?to?install?pyproject.toml-based?projec
這篇文章主要介紹了解決pip安裝報(bào)錯(cuò)required?to?install?pyproject.toml-based?projects問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05python轉(zhuǎn)換pkl模型文件為txt文件問(wèn)題
這篇文章主要介紹了python轉(zhuǎn)換pkl模型文件為txt文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06解讀sqlalchemy的常用數(shù)據(jù)類(lèi)型有哪些
這篇文章主要介紹了解讀sqlalchemy的常用數(shù)據(jù)類(lèi)型有哪些,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03用Python編寫(xiě)個(gè)解釋器實(shí)現(xiàn)方法接受
計(jì)算機(jī)只能理解機(jī)器碼。歸根結(jié)底,編程語(yǔ)言只是一串文字,目的是為了讓人類(lèi)更容易編寫(xiě)他們想讓計(jì)算機(jī)做的事情。真正的魔法是由編譯器和解釋器完成,它們彌合了兩者之間的差距。解釋器逐行讀取代碼并將其轉(zhuǎn)換為機(jī)器碼2023-01-01使用Python對(duì)EXCEL數(shù)據(jù)的預(yù)處理
這篇文章主要介紹了使用Python處理EXCEL基礎(chǔ)操作篇2,如何使用Python對(duì)EXCEL數(shù)據(jù)的預(yù)處理,文中提供了解決思路和部分實(shí)現(xiàn)代碼,一起來(lái)看看吧2023-03-03python實(shí)現(xiàn)遠(yuǎn)程控制電腦
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)遠(yuǎn)程控制電腦,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05Python創(chuàng)建普通菜單示例【基于win32ui模塊】
這篇文章主要介紹了Python創(chuàng)建普通菜單,結(jié)合實(shí)例形式分析了Python基于win32ui模塊創(chuàng)建普通菜單及添加菜單項(xiàng)的相關(guān)操作技巧,并附帶說(shuō)明了win32ui模塊的安裝命令,需要的朋友可以參考下2018-05-05