MicroPython 如此簡單系列: 舵機 (Servo)

Yungger
5 min readMay 13, 2021

--

認識 Servo 伺服馬達 (舵機)

Servo 伺服馬達, 亦稱為舵機。常用於遙控飛機、機器人、智慧小車 … 等等, 做為裝置的方向,角度與轉速的控制之用。

基本上分為:

  • 180度型: 用於控制轉向與轉角
  • 360度型: 用於控制轉向與速度。
  • 標準舵機的規格:頻率 f: 50Hz, 脈衝寬度: 500us~2500us

*** 不同廠牌與型號的舵機, 其脈衝寬度可能略有不同, 使用前須特別注意。但若引用 MyKitServo 則它可自動判斷, 並允許您可彈性調整設定 ***

MyKitServo 的基本控制概念

  • 控制值範圍: -90 ~ 90, 對180 度型舵機而言是角度值,360 度型舵機則是速度,正負值為轉向。
  • 180 度型舵機: 0 為中間值, 通常可設為 HOME 位置。正值順時針, 負值逆時針, 值越大轉角越大, 反之轉角越小。
  • 360 度型舵機: 0 為中間值, 速度為 0, 馬達停止轉動。正值順時針, 負值逆時針, 值越大速度越快, 反之速度越慢。

Step 1: 下載與安裝函式庫

首先, 必須先上傳下面的函式庫到 MCU 板子上:

***如果您尚不熟悉或想知道我是如何將函式庫上傳至 MCU 的, 那麼您應該會有興趣參考我的另一篇文章 “MicroPython 如此簡單系列 — ESP8266/ESP32 MCU 檔案管理. ***

Step 2: 來點基本測試範例

接下來的範例, 基本上程式的最上頭, 都會需要先包含以下敘述:

import utime as time
from MyKitServo import myServo
svo = myServo("YOUR SERVO NAME", continuous=True) # MG90S, SG90, S35, MG995, MG996, MG996R, ...svo.attach(YOU_SERVO_PIN) # 舵機掛載

Example 1: 180度型舵機的角度控制

svo.go(角度值) # 角度值:-90~90
svo.goHome() # 回到預設的原點
svo.detach() # 舵機停止並卸載
180 Degree Servo (SG90, MG90S, …)

Example 2: 360度型連續旋轉型舵機的速度控制

用法同 180 型舵機的控制函式, 差別只是360型控制的是速度, 而180型是轉角。
360 Rotation Continuous Servo DEMO (MG995, MG996R, S35 STD, …)

DEMO: 一次控制 5 個不同規格舵機的轉向 , 轉角, 與速度 (含 180度型與360度型連續旋轉型舵機)

這個 DEMO 很適合作為 “機器手臂” 或 “機器人” 的基礎範例ㄡ !!

import utime as time
from MyKitServo import myServo
def test(svo):
svo.go(90)
time.sleep(1)
svo.go(0)
time.sleep(1)
svo.go(-90)
time.sleep(1)
svo.go(0)
svo180_1 = myServo("SG90")
svo180_2 = myServo("MG90S")
svo360_1 = myServo("MG995")
svo360_2 = myServo("S35")
svo360_3 = myServo("S35")

svo180_1.attach180(14) # ESP8266:D5
svo180_2.attach180(12) # ESP8266:D6
svo360_1.attach360(5) # ESP8266:D1
svo360_2.attach360(13) # ESP8266:D7
svo360_3.attach360(15) # ESP8266:D8

print("Function test: Angle 180 and Speed 360 ....")
test(svo180_1)
test(svo180_2)
test(svo360_1)
test(svo360_2)
test(svo360_3)
svo180_1.detach()
svo180_2.detach()
svo360_1.detach()
svo360_2.detach()
svo360_3.detach()

如此而已, 就是這麼簡單, 希望能對你有發生了一點點小幫助 !

作者:Yungger 勇哥

若覺得此文真對您有幫助, 點點左上方的拍手圖示, 鼓勵一下。若還想 請喝杯咖啡 鼓勵一下勇哥的繼續創作, 也感謝 😘 😘 !!

--

--