【 第29回 】Visual Studio Codeからサーボモーターをフルスイング!

0
1523

【第26回】でサーボモーターをフルスイングしたときは、ターミナル画面でPython3を起動して、今では推奨されていない”WiringPi2″をインポートして実行しましたが、今回は、【 インストール編 】でインストールしたVisual Studio Codeの画面内で、最新の”WiringPi”をインポートしたプログラムを組み、デバッグ、実行までを行いました。

今回使った部品

  • Raspberry Pi 3 Model B × 1
  • 40Pinフラットリボンケーブル
  • 40Pin T型GPIO拡張ボード
  • ブレットボード × 1
  • サーボモーター SG90 × 1
  • 電源アダプター5V 2.5A × 1
  • microUSB用変換基板 × 1
  • ジャンプワイヤー(オス/オス) × 5
デジタル・マイクロサーボ SG90
梅本合同会社
売り上げランキング: 11,230
サンハヤト USB用変換基板 CK-37
サンハヤト
売り上げランキング: 36,117

実体配線図

回路は【第25回】と同じで、サーボモーターSG-90の電源は、Raspberry Piの電源アダプターとは別の電源アダプターを用意し、microUSB用変換基板を介して供給します。

・モーター端子(茶色) → GND

・microUSB用変換基板(GND) → GND

・モーター端子(赤色) → microUSB用変換基板(VCC)

・モーター端子(橙色) → GPIO12

Visual Studio Codeからサーボモーターをフルスイングさせる

Visual Studio Codeを起動し、【 第28回 】で作ったプログラム”blink10.py”を開きます。

メニューバーから「ファイル」→「名前を付けて保存」をクリックします。

【 ワークスペースの設定 】で設定したワークスペース”/home/pi/Python”が開くので、「名前」の入力欄に新しいプログラム名を入力して「保存」ボタンをクリックします。

“blink10.py”を元に、プログラムを上書きしてプログラムを作ります。ハードウェアPWMの設定は、【 第25回 】【 第26回 】と同じで、デューティー比を”25/1024″から”123/1024″としたフルスイングを10回実行し、GPIOを初期化して終わるというプログラムにしてみました。

import wiringpi
import time

wiringpi.wiringPiSetupGpio()
wiringpi.pinMode(12, wiringpi.GPIO.PWM_OUTPUT)
wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS)
wiringpi.pwmSetRange(1024)
wiringpi.pwmSetClock(375)

counter = 0
while (counter < 10):
    wiringpi.pwmWrite(12, 25)
    time.sleep(1)
    wiringpi.pwmWrite(12, 123)
    time.sleep(1)
    counter = counter + 1

wiringpi.wiringPiSetupGpio()

プログラムができたら、画面左端のアクティビティーバーの「デバッグ」アイコンをクリックします。

サイドバーに現れたデバッグ右の「▶」ボタンをクリックします。

1行目でデバッグが中断するので、画面上部デバッグ用ツールバーの「↓」ボタンをクリックして続行します。

2行目でもデバッグが中断するので、画面上部デバッグ用ツールバーの「↓」ボタンをクリックして続行します。

4行目で再びデバッグが中断するので、画面上部デバッグ用ツールバーの「↓」ボタンをクリックして続行します。

今度は5行目でもデバッグが中断するので、画面上部デバッグ用ツールバーの「↓」ボタンをクリックして続行します。

デバッグが終わったら、画面右下、統合ターミナルのタブ「問題」をクリックします。

いつもの”イチャモン”以外、特に問題もないようなので、エディター画面の何もないところで右クリック→「Run Python File in Terminal」をクリックします。

いつもは「”sudo”を忘れたんかいっ!」と怒られるのですが、今回は「”sudo”を試してみる?」とのやさしいお言葉。

やさしいアドバイスに従って、「↑」キーを押して同じコマンドをコピーし、カーソルを先頭に移動して”sudo(半角スペース)”を入力して「Enter」キーを押します。

フルスイングの回数を動画では5回に減らしましたが、プログラムは正常に実行できました。

メニューバーから「ファイル」→「保存」をクリックしておきます。

GPIO12の設定を既定に戻しておく

設定をリセットする前に、Python3を終了しようと思って、いつものように”exit()”したら・・・ムムムっ!

exit()

プロンプトが返ってこないので、何か変だなと思ったのですが、とりあえず設定を確認しようと、いつものコマンドを打ち込んでみました。

gpio readall

“syntax error”(構文エラー)になってしまいました。

そのままワークスペース内で、「↑」キーを押して同じコマンドを打ち込むと・・・

gpio readall

ちゃんとGPIOの設定状態が表示されました。やはり、Pyton3で初期化してもGPIO12の設定は”ALT0″のままでした。

次のコマンドでGPIO12の設定を既定の”in”に戻しておきます。

gpio -g mode 12 in

念の為、もう一度、設定を確認してみます。

gpio readall

今度は既定の”in”に戻っていました。