真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MicroPython紅外解/編碼模塊的方法是什么

這篇文章主要介紹“MicroPython紅外解/編碼模塊的方法是什么”,在日常操作中,相信很多人在MicroPython紅外解/編碼模塊的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MicroPython紅外解/編碼模塊的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)成立10余年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、域名與空間、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)通過對建站技術(shù)性的掌握、對創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

紅外解碼/編碼模塊介紹

MicroPython紅外解/編碼模塊的方法是什么

模塊上搭載了紅外接收頭、紅外發(fā)射以及編碼芯片。主要功能:

1、具備紅外發(fā)射功能。

2、具備紅外編碼功能。

3、帶紅外發(fā)射頭擴(kuò)展接口。

4、具備串口通信功能,通信電平為TTL。

5、可控制紅外格式設(shè)備,包括電視機(jī)、電風(fēng)扇等電子電器設(shè)備。

6、支持編碼芯片

7、可作為紅外無線數(shù)據(jù)通信、數(shù)據(jù)傳輸、紅外控制等功能

該模塊使用方法非常簡單,只需要掌握基本的單片機(jī)TTL串口通信知識即可。將模塊與開發(fā)板進(jìn)行串口連接,通過串口發(fā)送指定的指令進(jìn)行控制模塊發(fā)射;通過串口接收方式進(jìn)行紅外解碼操作,獲取遙控編碼信息。

解碼

解碼時(shí)不需要發(fā)送任何指令,只需要拿起遙控對準(zhǔn)模塊的接收頭按下某一個鍵,這時(shí)模塊的串口就會輸出該鍵的紅外編碼值給開發(fā)板,開發(fā)板只要從串口里讀取到數(shù)據(jù),進(jìn)行分析就會得出按下的是哪一個鍵。

編碼(發(fā)射)

編碼時(shí)需要根據(jù)一定格式發(fā)送指令,通過串口發(fā)送5個字節(jié)的指令,就可以將對應(yīng)編碼的紅外信號發(fā)送出去。利用這紅外的收發(fā)功能,我們可以做紅外數(shù)據(jù)傳輸和控制,使用2個就可以完成收發(fā)操作了。

紅外解碼/編碼模塊相關(guān)資料 下載 

開發(fā)板寫個串口讀取的程序,先來看下遙控器按下之后,我們到底能接收到什么樣的數(shù)據(jù)。這里,我們選取開發(fā)板UART3(TX-Y9,RX-Y10)。

接線圖

TPYBoard v102紅外解/編碼模塊
VIN5V
Y10TXD
Y9RXD
GNDGND
from pyb import UART

uart = UART(3,9600,timeout=50)

while True:
    if uart.any() > 0:
        print(uart.read())

程序保存后運(yùn)行,打開PuTTY工具,按下遙控器左上角的第一個鍵CH-。

PuTTY打?。?/p>

b'\x00\xffE'

micropython進(jìn)行串口讀取時(shí),返回的是bytes類型,是一種不可變序列,跟字符串類似。返回了3個字節(jié)的內(nèi)容,多按幾個鍵你就會發(fā)現(xiàn),前面2個字節(jié)是用戶碼固定不變,也就是說我們只要判斷第3個字節(jié)就可以找到對應(yīng)的鍵。bytes中可以直接通過索引來獲取元素,也支持負(fù)數(shù)的索引。比如-1,就是從右向左數(shù)的第一個,依次類推。這里需要注意一點(diǎn),獲取某個元素時(shí),他返回的是對應(yīng)的十進(jìn)制的數(shù)值。

例如:

>>> b = b'\x00\xffE'
>>> b[1]
255
>>> b[-1]
69

咦?最后一個元素E為什么是69呢?這是因?yàn)樵赽ytes保存的就是原始的字節(jié)(二進(jìn)制格式)數(shù)據(jù),它會將一些16進(jìn)制的值轉(zhuǎn)換為對應(yīng)的ascii字符。ascii中大寫的E對應(yīng)的十進(jìn)制就是69。如果你用電腦接紅外解編碼模塊的話,串口調(diào)試助手里打印的就應(yīng)該是 00 FF 45。

根據(jù)上面的經(jīng)驗(yàn),總結(jié)了鍵值對應(yīng)關(guān)系表,大家可以直接拿到程序中用。

MicroPython紅外解/編碼模塊的方法是什么

 接下來,結(jié)合舵機(jī)做個實(shí)例。用遙控器上的|<<快進(jìn)鍵和快退鍵>>|,控制舵機(jī)進(jìn)行正反方向的轉(zhuǎn)動。micropython中Servo類使用參考 點(diǎn)擊查看 

TPYBoard v102舵機(jī)
VIN電源正極(紅色線)
X1

信號線(橙色線)

GND電源負(fù)極(棕色線)

首先,將舵機(jī)通過程序設(shè)置到0角度的狀態(tài),安上個小翅子方便查看轉(zhuǎn)動效果。

from pyb import Servo

#舵機(jī)信號線接X1,可以創(chuàng)建4個Servo,分別是1~4,對應(yīng)的引腳是X1~X4
s1 = Servo(1)
#調(diào)整舵機(jī)轉(zhuǎn)動到0角度的位置
s1.angle(0)

程序增加上對按鍵的判斷,每按一次轉(zhuǎn)動15度,整體代碼如下。

from pyb import UART,Servo

#舵機(jī)信號線接X1,可以創(chuàng)建4個Servo,分別是1~4,對應(yīng)的引腳是X1~X4
s1 = Servo(1)
#調(diào)整舵機(jī)轉(zhuǎn)動到0角度的位置
s1.angle(0)

uart = UART(3,9600,timeout=10)

def setServoTurn(flag):
    turn_angle = s1.angle()
    if flag:
        #逆時(shí)針 值遞增 最大值90度
        turn_angle += 15 #每按一次轉(zhuǎn)15度
        if turn_angle <= 90:
            s1.angle(turn_angle)
    else:
        #順時(shí)針 值遞減 最小值-90度
        turn_angle -= 15
        if turn_angle >= -90:
            s1.angle(turn_angle)
while True:
    if uart.any() > 0:
        val = uart.read()[-1]
        if val == 68:
            setServoTurn(True)
        elif val == 64:
            setServoTurn(False)

到此,關(guān)于“MicroPython紅外解/編碼模塊的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


本文名稱:MicroPython紅外解/編碼模塊的方法是什么
本文URL:http://weahome.cn/article/jpgjoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部