MESH公式ブログ

MESHの展示情報や販売、ワークショップ、アプリ更新情報をお伝え致します。

GPIOブロックの使い方講座 第4回 旗を自動でふらせよう!

f:id:mesh_editor:20151229152324j:plain

本レシピは「GPIOブロックの使い方講座」の第4回目となります。
本連載は電子工作初心者の方でも簡単に理解できる内容となっています。

 第1回 身近なものをスイッチに!
 第2回 LEDを光らせよう!
 第3回 モーターを回そう!
 第4回 旗を振らせてみよう!
 第5回 歩く恐竜をコントロール!

第4回は「旗を振らせてみよう!」です。

GPIOブロックの「PWM出力機能」を使うことで、モーターの回転を制御することができます。
今回はPWM出力機能の基本的な使い方を理解するために、
「音を感知したら、旗をあげてお知らせする」
という簡単なレシピを作っていきます。

 

 

使用するブロック:

今回使うMESHブロック

GPIOブロック ×1
f:id:meshprj:20151211192422p:plain

今回使う拡張ブロック
その他用意するもの

・紙、セロハンテープ、ペン、はさみ など、自作の旗を作成する道具、素材
・サーボモーター HXT500

※ 他のサーボモーターを利用した場合、GPIOブロックで制御できない可能性や、
 以下の作り方と同一の設定ではうまく動かない可能性があります。

作り方:

  1. 紙、はさみ、セロハンテープなどを使って旗を作り、
    自分がお知らせしたい内容を書き込みます。
    f:id:meshprj:20151211211521j:plain
  2. GPIOブロックとサーボモーターを下図を参考に、
    赤色の線を電源供給(VOUT)ピンに、
    茶色の線をグラウンド(GND)ピンに、
    黄色の信号線をPWM出力(PWM)ピンにつなぎます。
    f:id:meshprj:20151229102408p:plain
    繋いでみるとこのようになります。

    f:id:meshprj:20151211211536j:plain

  3. サーボモーターの腕に自作の旗をセロテープなどではりつけます。
    f:id:meshprj:20151211211551j:plain
  4. MESHアプリを開いて、下図のレシピで示すようにマイクブロック・GPIOブロック・タイマーブロックを置いてつなぎます。
    f:id:meshprj:20151211183310p:plain
  5. マイクブロックをタップし、機能が「音を感知したら」であることを確認し、手を叩いた時に反応するように感度を調整してください。
  6. 一つ目のGPIOブロックをタップし、機能を「Vo 電源」に切り替えて、値をOnに設定してください。
  7. 二つ目のGPIOブロックをタップし、機能を「PWM出力」に切り替えて、Duty比を設定してください。
    適切な設定値は腕の取り付け方などによって異なるので、実際に回路を動かしながら最後に調整を行ってください。
  8. タイマーブロックをタップし、機能が「待つ」であることを確認し、時間を5秒程度に設定してください。
    ここで設定した時間が旗を上げている時間になります。
  9. 三つ目のGPIOブロックをタップし、機能を「PWM出力」に切り替えて、Duty比を設定してください。
    適切な設定値は腕の取り付け方などによって異なるので、実際に回路を動かしながら最後に調整を行ってください。
  10. これで、手を叩いて音が感知されると、サーボモーターが回って自動で旗が上がる装置の完成です。
  11. 必要に応じて、MESHブロックとサーボモーターを入れ物に組み込みます。
    今回は、紙コップで作った入れ物に組み込んでみました。

    f:id:meshprj:20151211211509g:plain

  12. マイクブロックを別のブロックに置き換えることで、様々なお知らせの用途に使えます。
    例えば、人感ブロックと置き換えれば、ある場所を人が通ったらお知らせする、というようにも使い方もできます。

 

仕組み:

GPIOブロックのPWM出力機能では、PWM出力用のピンに対して、
Duty比を指定したPWM信号の出力を行うことができます。

サーボモーターは、受け取ったPWM信号のDuty比の値に応じて腕の角度が変わるため、異なるDuty比のPWM信号を時間を置いて送ることで、旗を一度上げた後に下げるという動作を可能にしています(作り方 7, 8, 9の部分に対応)。

また、サーボモーターを動作させるためにはPWM信号以外に、電源を供給する必要があるため、GPIOブロックの「Vo 電源」機能を使っています(作り方 6の部分に対応)。