這篇文章主要介紹“MicroPython怎么實現(xiàn)旋轉(zhuǎn)按鈕控制脫機(jī)擺動”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“MicroPython怎么實現(xiàn)旋轉(zhuǎn)按鈕控制脫機(jī)擺動”文章能幫助大家解決問題。
成都創(chuàng)新互聯(lián)公司是專業(yè)的惠濟(jì)網(wǎng)站建設(shè)公司,惠濟(jì)接單;提供做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行惠濟(jì)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
一、實驗?zāi)康模?/p>
學(xué)習(xí)在PC機(jī)系統(tǒng)中擴(kuò)展簡單I/O 接口的方法
學(xué)習(xí)TurnipBit拼插編程
了解舵機(jī)工作原理
學(xué)習(xí)TurnipBit擴(kuò)展板舵機(jī)和旋轉(zhuǎn)按鈕接線方式
二、所需原器件:
TurnipBit一塊
TurnioBit擴(kuò)展板一塊
杜邦線若干
usb數(shù)據(jù)線一條
舵機(jī)一個
旋轉(zhuǎn)按鈕一個
三、實驗原理:
1. 舵機(jī)的組成與參數(shù)
舵機(jī),又稱伺服馬達(dá),是一種具有閉環(huán)控制系統(tǒng)的機(jī)電結(jié)構(gòu)。舵機(jī)主要是由外殼、電路板、無核心馬達(dá)、齒輪與位置檢測器所構(gòu)成。 其工作原理是由控制器發(fā)出PWM(脈沖寬度調(diào)制)信號給舵機(jī),經(jīng)電路板上的IC處理后計算出轉(zhuǎn)動方向,再驅(qū)動無核心馬達(dá)轉(zhuǎn)動, 透過減速齒輪將動力傳至擺臂,同時由位置檢測器(電位器)返回位置信號,判斷是否已經(jīng)到達(dá)設(shè)定位置,一般舵機(jī)只能旋轉(zhuǎn)180度。
舵機(jī)的接線
舵機(jī)有3根線,棕色為地,紅色為電源正,橙色為信號線,但不同牌子的舵機(jī),線的顏色可能不同。
舵機(jī)的控制原理
舵機(jī)的轉(zhuǎn)動的角度是通過調(diào)節(jié)PWM(脈沖寬度調(diào)制)信號的占空比來實現(xiàn)的。
占空比:
1.指高電平在一個周期之內(nèi)所占的時間比率。
2.正脈沖的持續(xù)時間與脈沖總周期的比值。例如:正脈沖寬度1μs,信號周期10μs的脈沖序列占空比為0.1。即:脈沖的寬度除以脈沖的周期稱為占空比。標(biāo)準(zhǔn)PWM(脈沖寬度調(diào)制)信號的周期固定為20ms(50Hz),理論上脈寬分布應(yīng)在1ms到2ms之間,但是,事實上脈寬可由0.5ms到2.5ms之間,脈寬和舵機(jī)的轉(zhuǎn)角0°~180°相對應(yīng)。
四、接線方法:
TurnipBit擴(kuò)展板與發(fā)光二極管接口對應(yīng)如下表:
五、源代碼:
from microbit import * #----------- #github:https://github.com/microbit-playground/microbit-servo-class #------------ class Servo: def __init__(self, pin, freq=50, min_us=600, max_us=2400, angle=180): self.min_us = min_us self.max_us = max_us self.us = 0 self.freq = freq self.angle = angle self.analog_period = 0 self.pin = pin analog_period = round((1/self.freq) * 1000) # hertz to miliseconds self.pin.set_analog_period(analog_period) def write_us(self, us): us = min(self.max_us, max(self.min_us, us)) duty = round(us * 1024 * self.freq // 1000000) self.pin.write_analog(duty) self.pin.write_digital(0) # turn the pin off def write_angle(self, degrees=None): degrees = degrees % 360 total_range = self.max_us - self.min_us us = self.min_us + total_range * degrees // self.angle self.write_us(us) sv1 = Servo(pin1) temp=0 while True: #讀取旋轉(zhuǎn)按鈕傳入的值,范圍2~1023 read_val=pin0.read_analog() #舵機(jī)旋轉(zhuǎn)180度,將1023分割成180份,約等于5.67 angle=round(read_val/5.67) if (temp!=angle): temp=angle sv1.write_angle(angle) sleep(60)
關(guān)于“MicroPython怎么實現(xiàn)旋轉(zhuǎn)按鈕控制脫機(jī)擺動”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。