Raspberry Pi Zero W と Blynk で サーボモータ制御

Home > Raspberry Pi > Raspberry Pi Zero W と Blynk で サーボモータ制御
すき 0
うんこ 0

Raspberry Pi Zero Wを手に入れたので、これまでなんとなく避けていたラズパイでの電子工作にトライしてみました。

ここではスマホアプリ Blynk とラズパイで2軸のカメラマウンタ(サーボモータ2個)をコントロールします。

構成

部品

  • Raspberry Pi Zero W
    [商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

    スイッチサイエンス Raspberry Pi Zero W ケースキット
    価格:2808円(税込、送料別) (2018/10/13時点)

    楽天で購入

     

  • SG90サーボ用 2軸 カメラマウント

blynk設定

ここではblynk のジョイスティックで2個のサーボモータを制御できるようにします。

新規プロジェクトを作成します。ハードウェアはラズパイ zeroがまだないのでとりあえずRaspberry Pi 3Bを選択。Conection TypeにはWiFiを指定します。
AUTH TOKENはコードコンパイル時に使用しますのでメール送信してメモしておきます。

ウィジェットとしてジョイスティックを配置します。

ジョイスティックの設定はヴァーチャルピンV0, V1にそれぞれの軸の数値を出力します。x, yの値はそれぞれ25~0としました。

プログラム

ラズパイのプログラムはpythonやnode.jsなど色々あって軽く迷走した結果、C++を採用しました。Arduinoで親しみも深い言語ですので。。。

Blynkライブラリインストール

ラズパイにBlynkライブラリをインストールします。
詳細は https://github.com/blynkkk/blynk-library/tree/master/linux 通りでターミナルを起動して

$ git clone https://github.com/blynkkk/blynk-library.git

でOK

C++プログラミング

Blynkライブラリがインストールされるとホームにblynk-library/linuxフォルダが生成されます。linuxフォルダをコピーするなどして、その中のmain.cppを以下のように書き換えます。

BlynkのV0, V1で値を受けてサーボの角度として制御しています。

wiringPiのSoftware PWMライブラリを使用してどのGPIOでもPWM出力できると思っていたのですが、ハードウェアPWMに対応したGPIO12, GPIO18でしか動作しませんでした。。。なぜだろう。。。(´;ω;`)ウッ…

コンパイル

main.cppのあるフォルダに移動して以下を実行。

$ make clean all target=raspberry 

Blynk実行

つづいて以下を実行

$ sudo ./blynk --token=Blynkアプリで取得したAuthToken 

上図のようにReadyで準備OK!

動作

Blynkアプリを実行すると以下のようにラズパイ単体でサーボを制御できます。

 

Raspberry Pi Zero W と #blynk で サーボモータ制御

Home Made Garbageさん(@homemadegarbage)がシェアした投稿 –

でも。。。何かしら動かすならマイコンはさんだほうがいいかなぁ(´・ω・`)
不具合起きた際の復帰も遅いし。。。

「Raspberry Pi Zero W と Blynk で サーボモータ制御」への9件のフィードバック

  1. こんにちは!main.cppをC++に書き換えたのですが、その後どうすればサーボモータを動かすのでしょうか?
    サーボモータはひとつだけ使用します。
    Raspberry pi zero whを使っています!

    1. blynk設定やサーボへの配線及びコンパイルが終わってましたら、
      ラズパイのターミナルで
      sudo ./blynk –token=(Blynkアプリで取得したAuthToken)
      を実行してください。

      スマホでBlynkアプリを起動し、実行ボタン(三角の再生ボタンみたいなやつ)を
      押すとラズパイとつながり
      ジョイスティックをいずれかの方向に動かすとサーボが動くはずです。

      ご確認ください。

  2. はじめまして。プログラムの解説などお願いできますでしょうか?また他のサイトで参考にしたのであれば教えてほしいです。

    1. コードは以下を参考にカスタマイズしています。
       https://github.com/blynkkk/blynk-library/blob/master/linux/main.cpp

      解説は少々お待ちください。

      1. あとお手数ですがどのように配線をしているかをよく見たいので実物を見せていただきたいです。よろしくお願いいたします。

        1. 申し訳ございません。
          ずいぶん前に解体しておりますので
          構成の図と動作の動画でご判断ください。

  3. 度々すみません。どうしても動かないのですがwiringPiのインストールなど必要なのでしょうか?配線は直接ラズベリーパイのGPIOに接続しています。Blynkの設定やプログラムは間違いがないと思うのですが他になにか原因ありましたらお願いいたします。

  4. 大変お世話になりました。なんとか動かすことができとても感動しました。ありがとうございました。

  5. 初めまして。プログラム初心者です。
    blynkでボタンにVIを設定し、入力された際にpython プログラムを実行しようと考えています。
    そのようなことが可能なのか教えていただけませんでしょうか。

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください