【第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
実体配線図
回路は【第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”が開くので、「名前」の入力欄に新しいプログラム名を入力して「保存」ボタンをクリックします。
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”に戻っていました。