目玉モデルを作る(ラズパイ5+カメラ)

視覚相当機能はラズパイ5の標準カメラで実現しますが、ロボットなので目玉風に格納したい

目玉の中心部にカメラ、カメラを覆うような形でサーボモーターで瞼を動かしてみる

<瞼側>

<眼球側>

サーボモーターを取り付け部分はそのままだと造形できないので、仮にサポートを立てて、後でハンダゴテで溶かしてニッパーで切り落とし、最初からニッパーだとストレスで割れます

 

<カメラ取り付け>

<カメラの外観>

<可動部分>

<動作の動画>

マイムービー – SD 480p

カメラからの画像をどう扱うかはこれから、YOLOとか有力だと思うけど

 

<サーボモーター駆動のコード>

PWM機能はgpiodにないのでソフトでPWM作成

import gpiod
import time

CHIP = 'gpiochip4'  # Raspberry Pi 5では'gpiochip4'を使用
PIN = 18  

chip = gpiod.Chip(CHIP)
line = chip.get_line(PIN)
line.request(consumer="Servo", type=gpiod.LINE_REQ_DIR_OUT)

def set_servo_angle(angle):
    duty_cycle = (angle / 18) + 2.5
    pulse_width = duty_cycle / 100 * 20000  # 20ms周期

    line.set_value(1)
    time.sleep(pulse_width / 1000000)
    line.set_value(0)
    time.sleep((20000 - pulse_width) / 1000000)

try:
    while True:
        for angle in range(80,141, 5):
            for _ in range(10):  # 各角度でn回パルスを送信
                set_servo_angle(angle)
            time.sleep(0.1)
except KeyboardInterrupt:
    pass
finally:
    line.release()

 

admin

 

コメントを残す