版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目二通過(guò)GPIO實(shí)現(xiàn)傳送帶運(yùn)行創(chuàng)靈實(shí)驗(yàn)平臺(tái)項(xiàng)目引導(dǎo)介紹
傳送帶,物料搬運(yùn)系統(tǒng)機(jī)械化和自動(dòng)化傳送用具。
17世紀(jì)中,美國(guó)開(kāi)始應(yīng)用架空索道傳送散狀物料;19世紀(jì)中葉,各種現(xiàn)代結(jié)構(gòu)的傳送帶輸送機(jī)相繼出現(xiàn)。1868年,在英國(guó)出現(xiàn)了皮帶式傳送帶輸送機(jī);1887年,在美國(guó)出現(xiàn)了螺旋輸送機(jī);1905年,在瑞士出現(xiàn)了鋼帶式輸送機(jī);1906年,在英國(guó)和德國(guó)出現(xiàn)了慣性輸送機(jī)。此后,傳送帶輸送機(jī)受到機(jī)械制造、電機(jī)、化工和冶金工業(yè)技術(shù)進(jìn)步的影響,不斷完善,逐步由完成車(chē)間內(nèi)部的傳送,發(fā)展到完成在企業(yè)內(nèi)部、企業(yè)之間甚至城市之間的物料搬運(yùn),成為物料搬運(yùn)系統(tǒng)機(jī)械化和自動(dòng)化不可缺少的組成部分。傳送帶有什么特點(diǎn)?項(xiàng)目引導(dǎo)案例利用工作構(gòu)件的旋轉(zhuǎn)運(yùn)動(dòng)或往復(fù)運(yùn)動(dòng),或利用介質(zhì)在管道中的流動(dòng)使物料向前輸送。例如,輥?zhàn)虞斔蜋C(jī)的工作構(gòu)件為一系列輥?zhàn)樱佔(zhàn)幼餍D(zhuǎn)運(yùn)動(dòng)以輸送物料;螺旋輸送機(jī)的工作構(gòu)件為螺旋,螺旋在料槽中作旋轉(zhuǎn)運(yùn)動(dòng)以沿料槽推送物料;振動(dòng)輸送機(jī)的工作構(gòu)件為料槽,料槽作往復(fù)運(yùn)動(dòng)以輸送置于其中的物料等。傳送帶在未來(lái)有什么樣的發(fā)展與應(yīng)用呢?項(xiàng)目引導(dǎo)案例未來(lái)傳送帶設(shè)備將向著大型化發(fā)展、擴(kuò)大使用范圍、物料自動(dòng)分揀、降低能量消耗、減少污染等方面發(fā)展。大型化包括大輸送能力、大單機(jī)長(zhǎng)度和大輸送傾角等幾個(gè)方面。水力輸送裝置的長(zhǎng)度已達(dá)440公里以上帶式輸送機(jī)的單機(jī)長(zhǎng)度已近15公里,并已出現(xiàn)由若干臺(tái)組成聯(lián)系甲乙兩地的“帶式輸送道”。不少?lài)?guó)家正在探索長(zhǎng)距離、大運(yùn)量連續(xù)輸送物料的更完善的輸送機(jī)結(jié)構(gòu)。擴(kuò)大輸送機(jī)的使用范圍,是指發(fā)展能在高溫、低溫條件下有腐蝕性、放射性、易燃性物質(zhì)的環(huán)境中工作的,以及能輸送熾熱、易爆、易結(jié)團(tuán)、粘性物料的傳送帶設(shè)備。使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)一使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行了解GPIO的原理;學(xué)習(xí)使用GPIO控制傳送帶正轉(zhuǎn)、反轉(zhuǎn);完成基于GPIO實(shí)現(xiàn)傳送帶模塊實(shí)驗(yàn)。傳送帶正轉(zhuǎn)實(shí)驗(yàn);傳送帶反轉(zhuǎn)實(shí)驗(yàn);基于GPIO實(shí)現(xiàn)傳送帶模塊實(shí)驗(yàn)。職業(yè)能力目標(biāo)01實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)一使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行
此任務(wù)要求同學(xué)們了解GPIO的原理,學(xué)習(xí)使用GPIO控制傳送帶正轉(zhuǎn)、反轉(zhuǎn),并完成基于GPIO實(shí)現(xiàn)傳送帶模塊實(shí)驗(yàn)。在實(shí)驗(yàn)的過(guò)程中,能將學(xué)習(xí)轉(zhuǎn)化成應(yīng)用,在不依靠教師指導(dǎo)的情況下,利用所學(xué)知識(shí)完成任務(wù)。任務(wù)描述任務(wù)要求完成傳送帶正轉(zhuǎn)實(shí)驗(yàn),實(shí)現(xiàn)傳送帶正向運(yùn)行;完成傳送帶反轉(zhuǎn)實(shí)驗(yàn),實(shí)現(xiàn)傳送帶反向運(yùn)行;基于GPIO實(shí)現(xiàn)傳送帶模塊實(shí)驗(yàn),了解GPIO的原理,怎樣去使用GPIO、PWM,去設(shè)置周期值、占空比。任務(wù)描述與要求02職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)一使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)分析想象一下在未來(lái),傳送帶會(huì)誕生哪些應(yīng)用?我們可以用在哪些方面?我們要怎樣去使用它?根據(jù)自己的了解,要怎樣去了解認(rèn)識(shí)傳送帶,可以促進(jìn)自己進(jìn)一步地學(xué)習(xí)?任務(wù)分析與計(jì)劃03任務(wù)計(jì)劃表項(xiàng)目名稱(chēng)創(chuàng)靈實(shí)驗(yàn)平臺(tái)任務(wù)名稱(chēng)使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行計(jì)劃方式自主設(shè)計(jì)計(jì)劃要求請(qǐng)用6個(gè)計(jì)劃步驟來(lái)完整描述出如何完成本次任務(wù)序號(hào)任務(wù)計(jì)劃1
2
3
4
5
6
通過(guò)上面的思考,你是否對(duì)本任務(wù)要完成的工作有所了解?讓我們一起來(lái)制訂完成本次任務(wù)的實(shí)施計(jì)劃吧!任務(wù)分析與計(jì)劃03職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)一使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行PWM204知識(shí)儲(chǔ)備GPIO1什么是GPIO?04
GPIO,通用I/O端口。在嵌入式系統(tǒng)中,經(jīng)常需要控制許多結(jié)構(gòu)簡(jiǎn)單的外部設(shè)備或者電路,這些設(shè)備有的需要通過(guò)CPU控制,有的需要CPU提供輸入信號(hào)。
因此對(duì)設(shè)備的控制,使用傳統(tǒng)的串口或者并口就顯得比較復(fù)雜。所以,在嵌入式微處理器上通常提供了一種“通用可編程I/O端口”,也就是GPIO。該gpio模塊是在Sysfs-gpio接口的基礎(chǔ)上實(shí)現(xiàn)的。Sysfs是一種gpio訪(fǎng)問(wèn),通過(guò)內(nèi)核暴露給用戶(hù)空間。什么是GPIO?04
SysfsGPIO:通過(guò)sysfs方式控制GPIO,先訪(fǎng)問(wèn)【/sys/class/gpio】目錄,向export文件寫(xiě)入GPIO編號(hào),使得該GPIO的操作接口從內(nèi)核空間暴露到用戶(hù)空間,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO輸出或獲得GPIO輸入。文件IO方式操作GPIO,使用到了4個(gè)函數(shù)open、close、read、write。04思考一下,我們要怎么樣去使用GPIO?什么是GPIO?GPIO本身04GPIO信號(hào)的路徑類(lèi)似于【/sys/class/gpio/gpio42/】(對(duì)于【GPIO#42】)并具有以下讀/寫(xiě)屬性:【/sys/class/gpio/gpioN/】:1.direction:可填的值有in和out,表示輸入和輸出兩種方向。通??梢詫?xiě)入該值。當(dāng)寫(xiě)入值為【out】時(shí)默認(rèn)為將value初始化為low。為確保無(wú)故障操作,可寫(xiě)入value的low和high,以將GPIO配置為具有該初始值的輸出。請(qǐng)注意,如果內(nèi)核不支持更改GPIO的方向,或者它是由內(nèi)核代碼導(dǎo)出的,且內(nèi)核代碼沒(méi)有明確地允許用戶(hù)空間重新配置這個(gè)GPIO的方向。則該屬性將不存在。2.value:可填的值有l(wèi)ow:0或high:1。如果GPIO被配置為輸出,則可以寫(xiě)入該值;任何非零值都被視為高值。GPIOGPIO有什么用呢?04在最基本的層面上,GPIO是指計(jì)算機(jī)主板或附加卡上的一組引腳。這些引腳可以發(fā)送或接收電信號(hào),但它們不是為任何特定目的而設(shè)計(jì)的。這就是為什么它們被稱(chēng)為“通用”IO。這與USB或DVI等常見(jiàn)端口標(biāo)準(zhǔn)不同。使用這些電纜,連接內(nèi)部的每個(gè)引腳都有指定的用途,由制定標(biāo)準(zhǔn)的管理機(jī)構(gòu)確定。GPIO讓您負(fù)責(zé)每個(gè)引腳的實(shí)際功能。盡管GPIO陣列上仍有不同類(lèi)型的引腳。再次以RaspberryPi為例,您會(huì)發(fā)現(xiàn)幾種類(lèi)型的引腳:以典型電壓(例如3.3V或5V)供電的引腳。這是為沒(méi)有自己的電源的連接設(shè)備供電,例如簡(jiǎn)單的LED。不輸出功率但完成某些電路所必需的接地引腳。GPIO引腳,可配置為發(fā)送或接收電信號(hào)。特殊用途的引腳,根據(jù)所討論的特定GPIO有所不同。GPIO實(shí)現(xiàn)在每個(gè)設(shè)備的具體細(xì)節(jié)上可能有所不同,但其理念始終是允許用戶(hù)接收或發(fā)送電信號(hào)到幾乎任何東西。GPIO思考一下,你可以用GPIO做什么呢?05任務(wù)實(shí)施PWM2GPIO13PWM的原理04
控制方式就是對(duì)逆變電路開(kāi)關(guān)器件的通斷進(jìn)行控制,使輸出端得到一系列幅值相等但寬度不一致的脈沖,用這些脈沖來(lái)代替正弦波或所需要的波形。也就是在輸出波形的半個(gè)周期中產(chǎn)生多個(gè)脈沖,使各脈沖的等值電壓為正弦波形,所獲得的輸出平滑且低次諧波少。按一定的規(guī)則對(duì)各脈沖的寬度進(jìn)行調(diào)制,既可改變逆變電路輸出電壓的大小,也可改變輸出頻率職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)一使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行05任務(wù)實(shí)施PWM驅(qū)動(dòng)2使用GPIO、實(shí)驗(yàn)預(yù)覽1運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速等3使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一實(shí)驗(yàn)預(yù)覽(詳細(xì)實(shí)驗(yàn)請(qǐng)參考第二章中任務(wù)一部分)我們?cè)撊ト绾瓮瓿蓪?shí)驗(yàn)?zāi)兀?/p>
步驟一:首先打開(kāi)項(xiàng)目2中的任務(wù)二、使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)動(dòng)部分,點(diǎn)擊實(shí)驗(yàn)預(yù)覽,點(diǎn)擊運(yùn)行,如圖所示:使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一實(shí)驗(yàn)預(yù)覽(詳細(xì)實(shí)驗(yàn)請(qǐng)參考第二章中任務(wù)一部分)我們?cè)撊ト绾瓮瓿蓪?shí)驗(yàn)?zāi)兀?/p>
步驟二:點(diǎn)擊運(yùn)行主函數(shù),點(diǎn)擊運(yùn)行:使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一實(shí)驗(yàn)預(yù)覽(詳細(xì)實(shí)驗(yàn)請(qǐng)參考第二章中任務(wù)一部分)我們?cè)撊ト绾瓮瓿蓪?shí)驗(yàn)?zāi)兀?/p>
步驟三:查看實(shí)驗(yàn)結(jié)果,并與實(shí)驗(yàn)視頻中進(jìn)行對(duì)照,查看是否結(jié)果相同,如圖所示:使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一實(shí)驗(yàn)預(yù)覽(詳細(xì)實(shí)驗(yàn)請(qǐng)參考第二章中任務(wù)一部分)我們?cè)撊ト绾瓮瓿蓪?shí)驗(yàn)?zāi)兀?/p>
步驟四:運(yùn)行主函數(shù):if__name__=="__main__":belt=Belt()#創(chuàng)建對(duì)象print("啟動(dòng)傳送帶")time.sleep(1)
belt.turn_forward_dir()#傳送帶正向print("傳送帶正向")time.sleep(2)belt.belt_move()#正常速度運(yùn)行print("正向運(yùn)動(dòng)")time.sleep(4)#傳送帶運(yùn)動(dòng)時(shí)長(zhǎng)belt.belt_stop()#停止運(yùn)行time.sleep(1)
print("傳送帶反向")belt.turn_reverse_dir()#傳送帶反向time.sleep(2)belt.belt_move()#正常速度運(yùn)行print("反向運(yùn)動(dòng)")time.sleep(4)#傳送帶運(yùn)動(dòng)時(shí)長(zhǎng)belt.belt_stop()#停止運(yùn)行
使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一實(shí)驗(yàn)預(yù)覽(詳細(xì)實(shí)驗(yàn)請(qǐng)參考第二章中任務(wù)一部分)運(yùn)行結(jié)果如下圖所示:當(dāng)傳送帶識(shí)別出結(jié)果并開(kāi)始正向/反向運(yùn)動(dòng)表示運(yùn)行成功,如圖所示:傳送帶進(jìn)行正向、反向運(yùn)動(dòng)標(biāo)識(shí)運(yùn)行成功使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一在了解完實(shí)驗(yàn)預(yù)覽后,我們要如何獲得用戶(hù)空間隊(duì)GPIO的控制的控制接口呢?【/sys/class/gpio/】控制接口是可編輯的:(1)【export:用戶(hù)空間可能會(huì)要求內(nèi)核導(dǎo)出控制示例:【echo19>export】將創(chuàng)建一個(gè)【gpio19】節(jié)點(diǎn)通過(guò)將其編號(hào)【19】寫(xiě)入此文件,將`GPIO`連接到用戶(hù)空間。(2)【unexport】:反轉(zhuǎn)導(dǎo)出到用戶(hù)空間的效果。示例:對(duì)于【GPIO#19】,如果內(nèi)核代碼沒(méi)有請(qǐng)求?!緀cho19>unexport】將刪除【gpio19】。在知識(shí)儲(chǔ)備里,大家應(yīng)該了解過(guò)GPIO了吧,那么接下來(lái)我們來(lái)復(fù)習(xí)一下,并介紹GPIO的使用及說(shuō)明。GPIO信號(hào)的路徑類(lèi)似于【/sys/class/gpio/gpio42/】(對(duì)于【GPIO#42】)并具有以下讀/寫(xiě)屬性:
【/sys/class/gpio/gpioN/】:
1.direction:可填的值有in和out,表示輸入和輸出兩種方向。通??梢詫?xiě)入該值。當(dāng)寫(xiě)入值為【out】時(shí)默認(rèn)為將value初始化為low。為確保無(wú)故障操作,可寫(xiě)入value的low和high,以將GPIO配置為具有該初始值的輸出。請(qǐng)注意,如果內(nèi)核不支持更改GPIO的方向,或者它是由內(nèi)核代碼導(dǎo)出的,且內(nèi)核代碼沒(méi)有明確地允許用戶(hù)空間重新配置這個(gè)GPIO的方向。則該屬性將不存在。
2.value:可填的值有l(wèi)ow:0或high:1。如果GPIO被配置為輸出,則可以寫(xiě)入該值;任何非零值都被視為高值。使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一GPIO的使用及說(shuō)明:大家先來(lái)看看下方的圖,可以說(shuō)出代碼中GPIO命令的作用嗎?使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一GPIO的使用及說(shuō)明:#開(kāi)始設(shè)置GPIO1135root@debian10:/sys/class/gpio#ls
#查看GPIO接口exportgpio11gpio35gpio4gpio55gpio65gpio89gpiochip128gpiochip64unexportgpio10gpio32gpio36gpio54gpio56gpio88gpiochip0gpiochip32gpiochip96root@debian10:/sys/class/gpio#echo33>export
#創(chuàng)建一個(gè)GPIO33的節(jié)點(diǎn)root@debian10:/sys/class/gpio#lsexportgpio11gpio33gpio36gpio54gpio56gpio88gpiochip0gpiochip32gpiochip96gpio10gpio32gpio35gpio4gpio55gpio65gpio89gpiochip128gpiochip64unexportroot@debian10:/sys/class/gpio#echoout>gpio33/direction#GPIO33輸出root@debian10:/sys/class/gpio#catgpio33/value0root@debian10:/sys/class/gpio#echo1>gpio33/value#輸入高電平1root@debian10:/sys/class/gpio#catgpio33/value1使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一GPIO的使用及說(shuō)明:root@debian10:/sys/class/gpio#lsexportgpio11gpio33gpio36gpio54gpio56gpio88gpiochip0gpiochip32gpiochip96gpio10gpio32gpio35gpio4gpio55gpio65gpio89gpiochip128gpiochip64unexportroot@debian10:/sys/class/gpio#echo33>unexport#刪除gpio33root@debian10:/sys/class/gpio#lsexportgpio11gpio35gpio4gpio55gpio65gpio89gpiochip128gpiochip64unexportgpio10gpio32gpio36gpio54gpio56gpio88gpiochip0gpiochip32gpiochip96
使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一在了解完GPIO后,我們來(lái)介紹導(dǎo)入相關(guān)的庫(kù)以及設(shè)置傳送帶正轉(zhuǎn)方向:導(dǎo)入相關(guān)的庫(kù):【os】:是一個(gè)Python的系統(tǒng)編程的操作模塊,可以處理文件和目錄這些我們?nèi)粘J謩?dòng)需要做的操作?!総ime】:提供各種操作時(shí)間的函數(shù)。importosimporttime設(shè)置傳送帶正轉(zhuǎn)方向:os.system(command):在子shell中執(zhí)行命令。
參數(shù)說(shuō)明:command:需要在shell中執(zhí)行的命令語(yǔ)句。shell命令中:
echo的語(yǔ)句格式一般有兩種:1.echo“內(nèi)容”:直接在終端輸出內(nèi)容2.echo“內(nèi)容”>文件名稱(chēng):向文件里寫(xiě)入內(nèi)容本次實(shí)驗(yàn)中傳送帶的編號(hào)【33】。使用開(kāi)發(fā)板GPIO控制傳送帶運(yùn)行任務(wù)一代碼注釋?zhuān)?.通過(guò)echo33>/sys/class/gpio/export創(chuàng)建一個(gè)gpio33的傳送帶節(jié)點(diǎn)。2.通過(guò)echoout>/sys/class/gpio/gpio33/direction設(shè)置【GPIO】方向?yàn)檩敵龇较颉?.通過(guò)echo1>/sys/class/gpio/gpio33/value將方向設(shè)置為正轉(zhuǎn)。4.通過(guò)time.sleep(0.1)設(shè)置睡眠0.1秒,防止在設(shè)置過(guò)程中因?yàn)樵O(shè)備延遲而導(dǎo)致設(shè)置失敗。5.設(shè)置完成后,通過(guò)echo33>/sys/class/gpio/unexport刪除傳送帶節(jié)點(diǎn)。os.system('echo33>/sys/class/gpio/export')os.system('echoout>/sys/class/gpio/gpio33/direction')os.system('echo1>/sys/class/gpio/gpio33/value')time.sleep(0.1)os.system('echo33>/sys/class/gpio/unexport')05任務(wù)實(shí)施PWM驅(qū)動(dòng)2使用GPIO、實(shí)驗(yàn)預(yù)覽13運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速等
接下來(lái)我們要介紹PWM驅(qū)動(dòng),我們要怎么去使用PWM驅(qū)動(dòng)呢?PWM驅(qū)動(dòng)05步驟一:查看PWM驅(qū)動(dòng)l【/sys/class/pwm/pwmchipN】:目錄是為每個(gè)探測(cè)到的PWM控制器/芯片創(chuàng)建的,其中N是PWM芯片的基礎(chǔ)。#查看PWM控制器!ls/sys/class/pwm/步驟二:調(diào)出PWM0接口l【os.path.exists(path)】:用于判斷路徑path是否存在,若存在返回True,不存在返回False。
1.path如果寫(xiě)成絕對(duì)路徑的形式,則直接判斷絕對(duì)路徑path是否存在;
2.path如果寫(xiě)成相對(duì)路徑的形式,則從當(dāng)前目錄為起點(diǎn),檢查相對(duì)路徑path是否存在。代碼注釋?zhuān)海?).通過(guò)os.path.exists()判斷/sys/class/pwm/pwmchip0/pwm0是否存在。(2).若不存在,通過(guò)echo0>/sys/class/pwm/pwmchip0/export調(diào)出【PWM0】接口。ifnotos.path.exists('/sys/class/pwm/pwmchip0/pwm0'):#判斷os.system('echo0>/sys/class/pwm/pwmchip0/export')
接下來(lái)我們要介紹PWM驅(qū)動(dòng),我們要怎么去使用PWM驅(qū)動(dòng)呢?PWM驅(qū)動(dòng)05步驟三:設(shè)置PWM0屬性代碼注釋?zhuān)?.通過(guò)【os.path.exists()】判斷/sys/class/pwm/pwmchip0/pwm0是否存在,若存在:2.通過(guò)'echo'+str(0)+>/sys/class/pwm/pwmchip0/pwm0/duty_cycle'先將【duty】占空比值設(shè)置為【0】3.通過(guò)'echo'+str(self.period)+'>/sys/class/pwm/pwmchip0/pwm0/period'將period周期值設(shè)置為10000004.通過(guò)'echo'+str(int((self.period*self.duty)/100))+'>/sys/class/pwm/pwmchip0/pwm0/duty_cycle'`將`duty`占空比值設(shè)置為【500000】5.通過(guò)'echo'+self.reverse+'>/sys/class/pwm/pwmchip0/pwm0/polarity'將polarity是否反向值設(shè)置為normal6.通過(guò)'echo'+str(self.enable)+'>/sys/class/pwm/pwmchip0/pwm0/enable'將【enable】是否使能值設(shè)置為0。PWM驅(qū)動(dòng)05period=1000*1000#設(shè)置頻率需要轉(zhuǎn)換為設(shè)置寄存器周期值duty=50#設(shè)置占空比百分50reverse='normal'#輸出是否反向enable=0#是否使能ifos.path.exists('/sys/class/pwm/pwmchip0/pwm0'):duty_cmd='echo'+str(0)+'>/sys/class/pwm/pwmchip0/pwm0/duty_cycle'#duty一定要小于period,先設(shè)置為0,否則IOERRORos.system(duty_cmd)period_cmd='echo'+str(period)+'>/sys/class/pwm/pwmchip0/pwm0/period'os.system(period_cmd)duty_cmd='echo'+str(int((period*duty)/100))+'>/sys/class/pwm/pwmchip0/pwm0/duty_cycle'os.system(duty_cmd)/sys/class/pwm/pwmchip0/pwm0/duty_cycle'os.system(duty_cmd)reverse_cmd='echo'+reverse+'>/sys/class/pwm/pwmchip0/pwm0/polarity'os.system(reverse_cmd)stop_cmd='echo'+str(enable)+'>/sys/class/pwm/pwmchip0/pwm0/enable'os.system(stop_cmd)
05任務(wù)實(shí)施PWM驅(qū)動(dòng)213運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速等使用GPIO、實(shí)驗(yàn)預(yù)覽傳送帶實(shí)驗(yàn)教學(xué)分析我們要怎么控制傳送帶正反轉(zhuǎn)?我們要怎么設(shè)置傳送帶加速運(yùn)行、減速運(yùn)行?我們要怎樣將傳送帶運(yùn)用到生活中?運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速05通過(guò)上面的思考,你是否對(duì)本任務(wù)要完成的任務(wù)有所了解?讓我們一起來(lái)學(xué)習(xí)如何使用傳送帶吧!運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速05運(yùn)行傳送帶:運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速05步驟一:關(guān)閉針腳休眠本次實(shí)驗(yàn)中針腳的編號(hào)【42】。代碼注釋?zhuān)?.通過(guò)【echo42>/sys/class/gpio/export】創(chuàng)建一個(gè)【gpio42】的針腳節(jié)點(diǎn);2.通過(guò)【echoout>/sys/class/gpio/gpio42/direction】設(shè)置【GPIO】方向?yàn)檩敵龇较颍?.通過(guò)【echo0>/sys/class/gpio/gpio42/value】設(shè)置為關(guān)閉休眠狀態(tài);4.設(shè)置完成后,通過(guò)【echo42>/sys/class/gpio/unexport】刪除針腳節(jié)點(diǎn)。os.system('echo42>/sys/class/gpio/export')os.system('echoout>/sys/class/gpio/gpio42/direction')os.system('echo0>/sys/class/gpio/gpio42/value')time.sleep(0.1)os.system('echo42>/sys/class/gpio/unexport')運(yùn)行傳送帶:運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速05步驟二:?jiǎn)?dòng)傳送帶1.將PWM設(shè)置為使能狀態(tài),啟動(dòng)傳送帶。代碼注釋?zhuān)和ㄟ^(guò)【'
echo'+str(enable)+'>/sys/class/pwm/pwmchip0/pwm0/enable】將enable是否使能值設(shè)置為1。enable=1start_cmd='echo'+str(enable)+'>/sys/class/pwm/pwmchip0/pwm0/enable'os.system(start_cmd)介紹完運(yùn)行傳送帶后,接下來(lái)我們來(lái)介紹停止傳送帶:停止傳送帶:運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速05步驟一:傳送帶停止轉(zhuǎn)動(dòng)將PWM設(shè)置為不使能,停止傳送帶轉(zhuǎn)動(dòng)。代碼注釋?zhuān)和ㄟ^(guò)【'echo'+str(enable)+'>/sys/class/pwm/pwmchip0/pwm0/enable】將enable是否使能值設(shè)置為0。enable=0stop_cmd='echo'+str(enable)+'>/sys/class/pwm/pwmchip0/pwm0/enable'os.system(stop_cmd)停止傳送帶:運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速05步驟二:打開(kāi)針腳休眠本次實(shí)驗(yàn)中針腳的編號(hào)42。代碼注釋?zhuān)?.通過(guò)echo42>/sys/class/gpio/export創(chuàng)建一個(gè)【gpio42】的針腳節(jié)點(diǎn);2.通過(guò)echoout>/sys/class/gpio/gpio42/direction設(shè)置【GPIO】方向?yàn)檩敵龇较颍?.通過(guò)echo1>/sys/class/gpio/gpio42/value設(shè)置為打開(kāi)休眠狀態(tài);4.設(shè)置完成后,通過(guò)echo42>/sys/class/gpio/unexport刪除針腳節(jié)點(diǎn)。os.system('echo42>/sys/class/gpio/export')os.system('echoout>/sys/class/gpio/gpio42/direction')os.system('echo1>/sys/class/gpio/gpio42/value')time.sleep(0.1)os.system('echo42>/sys/class/gpio/unexport')注:如果沒(méi)有進(jìn)入休眠狀態(tài),傳送帶還是處于工作狀態(tài),就會(huì)消耗電流則會(huì)產(chǎn)生熱量。設(shè)置傳送帶反轉(zhuǎn)方向:運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速05【os.system(command):】在子shell中執(zhí)行命令。參數(shù)說(shuō)明:command:需要在shell中執(zhí)行的命令語(yǔ)句【shell】命令中:echo的語(yǔ)句格式一般有兩種:1.echo“內(nèi)容”:直接在終端輸出內(nèi)容2.echo“內(nèi)容”>文件名稱(chēng):向文件里寫(xiě)入內(nèi)容
本次實(shí)驗(yàn)中傳送帶的編號(hào)【33】。接下來(lái)我們來(lái)試幾題動(dòng)手練習(xí):停止傳送帶:運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速05步驟二:打開(kāi)針腳休眠本次實(shí)驗(yàn)中針腳的編號(hào)42。代碼注釋?zhuān)?.通過(guò)echo42>/sys/class/gpio/export創(chuàng)建一個(gè)【gpio42】的針腳節(jié)點(diǎn);2.通過(guò)echoout>/sys/class/gpio/gpio42/direction設(shè)置【GPIO】方向?yàn)檩敵龇较颍?.通過(guò)echo1>/sys/class/gpio/gpio42/value設(shè)置為打開(kāi)休眠狀態(tài);4.設(shè)置完成后,通過(guò)echo42>/sys/class/gpio/unexport刪除針腳節(jié)點(diǎn)。os.system('echo42>/sys/class/gpio/export')os.system('echoout>/sys/class/gpio/gpio42/direction')os.system('echo1>/sys/class/gpio/gpio42/value')time.sleep(0.1)os.system('echo42>/sys/class/gpio/unexport')注:如果沒(méi)有進(jìn)入休眠狀態(tài),傳送帶還是處于工作狀態(tài),就會(huì)消耗電流則會(huì)產(chǎn)生熱量。動(dòng)手練習(xí)1:運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速051.在<1>處,使用【os.system()】函數(shù),通過(guò)【echo33>/sys/class/gpio/export】創(chuàng)建一個(gè)【gpio33】的傳送帶節(jié)點(diǎn)。2.在<2>處,使用【os.system()】函數(shù),通過(guò)【echoout>/sys/class/gpio/gpio33/direction】設(shè)置【GPIO】方向?yàn)檩敵龇较颉?.在<3>處,使用【os.system()】函數(shù),通過(guò)【echo0>/sys/class/gpio/gpio33/value】設(shè)置為反轉(zhuǎn)方向。4.在<4>處,使用【os.system()】函數(shù),通過(guò)【echo33>/sys/class/gpio/unexport】刪除傳送帶節(jié)點(diǎn)。<1><2><3>time.sleep(0.1)<4>填寫(xiě)完成后執(zhí)行以下代碼,輸出返回值為【0】,則說(shuō)明填寫(xiě)正確。動(dòng)手練習(xí)2:關(guān)閉針腳休眠(此次編號(hào)42)運(yùn)行傳送帶,并設(shè)置傳送帶正反轉(zhuǎn)、加減速051.在<1>處,使用【os.system()】函數(shù),通過(guò)echo42>/sys/class/gpio/export創(chuàng)建一個(gè)【gpio42】的針腳節(jié)點(diǎn)2.在<2>處,使用【os.system()】
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬科版選擇性必修3化學(xué)上冊(cè)階段測(cè)試試卷含答案
- 2025年冀少新版必修3英語(yǔ)上冊(cè)月考試卷含答案
- 2025年滬科版九年級(jí)生物上冊(cè)階段測(cè)試試卷
- 2025年人教A新版選修3地理上冊(cè)階段測(cè)試試卷含答案
- 2025年統(tǒng)編版九年級(jí)生物下冊(cè)階段測(cè)試試卷
- 2025年度遠(yuǎn)洋貨輪交易合同范本4篇
- 2025年度智能家電租賃服務(wù)合同參考4篇
- 2025年度租賃房屋租賃登記備案合同3篇
- 二零二五版農(nóng)家樂(lè)休閑房屋租賃合同模板4篇
- 2025年度高空作業(yè)爬架維護(hù)保養(yǎng)及租賃服務(wù)合同4篇
- 電纜擠塑操作手冊(cè)
- 浙江寧波鄞州區(qū)市級(jí)名校2025屆中考生物全真模擬試卷含解析
- 2024-2025學(xué)年廣東省深圳市南山區(qū)監(jiān)測(cè)數(shù)學(xué)三年級(jí)第一學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- IATF16949基礎(chǔ)知識(shí)培訓(xùn)教材
- 【MOOC】大學(xué)生創(chuàng)新創(chuàng)業(yè)知能訓(xùn)練與指導(dǎo)-西北農(nóng)林科技大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 勞務(wù)派遣公司員工考核方案
- 基礎(chǔ)生態(tài)學(xué)-7種內(nèi)種間關(guān)系
- 2024年光伏農(nóng)田出租合同范本
- 《阻燃材料與技術(shù)》課件 第3講 阻燃基本理論
- 2024-2030年中國(guó)黃鱔市市場(chǎng)供需現(xiàn)狀與營(yíng)銷(xiāo)渠道分析報(bào)告
- 新人教版九年級(jí)化學(xué)第三單元復(fù)習(xí)課件
評(píng)論
0/150
提交評(píng)論