QT4でサーボモータ(SG90)の操作パネルを作成

QT4でサーボモータ(SG90)の操作パネルを作成

ネットで安価なサーボモータを探してまとめ買いしたのですが、動きをテストするのにプログラムを書き換えるとか、キーボードで角度を入力するのは面倒だったので、GUIで操作できるようにしました。

GUIはQT4で作成するので、まずはそのインストールから。
なお、動作環境はRaspberry Pi 3でOSはUbuntu mateです。

QT4インストール

ターミナルに以下のコマンドを入力し、QT4をインストールします。

プログラム

GUIはQT4ですが、モータの動作はRPi.GPIOで行います。
今回使用するサーボモータはSG90という型式のもので、動作範囲は-90~90度であり、
これをDuty cycleで指定します。
また、PWM周波数の50HzはGPIO.PWMで指定します。

GUIの方は、角度の表示パネルとスライダーで構成しています。
このスライダーを動かすとその角度にモータが動きます。

 

実行結果

動画は撮っていないので、載せられませんが、プログラムを実行すると、下記の画像のような
ウィンドウが表示されます。下のスライダーを動かすと、
-90~90度の範囲でモータが動きます。

今回地味にハマった点は、スライダーの動きを検出する関数にどうやって数値を渡すか、です。
lambdaを使ったことは無かったですが、色々とググって試してみると上手くいきました。