RaspberryPi演習記録13 -サーボモータ演習

投稿日: 作成者: ussy

今日はサーボモーターという回転位置を指定できるモーターを使った演習をします。

デジタル・マイクロサーボ SG90 (1個)

新品価格
¥440から
(2020/6/20 13:40時点)

※ブレッドボード、配線などは前回同様です

テキストはいつも通り下記を使用します。

電子部品ごとの制御を学べる! Raspberry Pi 電子工作実践講座

新品価格
¥2,728から
(2020/3/29 08:13時点)


今日の演習はP155-P162まで

      1. ラズベリーパイ本体 RaspberryPi Zero使用 1台
      2. サーボモーター SG-90 1個
      3. 配線 適量
    1. 詳細
      1. 配置図
      2. 回路図
    2. プログラムは次の通り

       import wiringpi as pi

      servo_pin = 18
      set_degree = 180

      CYCLE = 20
      MIN_PULSE = 0.5
      MAX_PULSE = 2.4
      MIN_DEG = 0
      MAX_DEG = 180
      RANGE = 2000

      clock = int (19.2 / float(RANGE) * CYCLE * 1000)
      min_val = RANGE * MIN_PULSE / CYCLE
      max_val = RANGE * MAX_PULSE / CYCLE

      pi.wiringPiSetupGpio()
      pi.pinMode(servo_pin, pi.GPIO.PWM_OUTPUT)
      pi.pwmSetMode(pi.GPIO.PWM_MODE_MS)
      pi.pwmSetRange (RANGE)
      pi.pwmSetClock (clock)

      if(set_degree <= MAX_DEG and set_degree >= MIN_DEG):
      move_deg = int((max_val – min_val) / MAX_DEG * set_degree)
      pi.pwmWrite(servo_pin,move_deg)

    3. 実物写真
    4. 実行結果

総括

今回のサーボモータは細かい動きをコントロールできるので実践で便利そうです。仕様で細かい設定をしなければならないのがちょっと面倒そうですが、制作物の範囲が広がります。