Maker.io Staff
このプロジェクトでは、周囲環境の状態をセンサで読み取ることができ、Bluetoothで制御される簡単なロボットを作ることを目指します。このようなロボットは、放射能汚染地域や壊れた建物などの危険な環境のほか、惑星探査ローバーや人工衛星のように遠く離れた地点でもしばしば使用されます。このプロジェクトのロボットは、放射能汚染区域での作業には苦労するでしょうが、Atmosphere IoT Studioが単純なIoTセンサデバイスより高度なものに使用できることを実証しています。
BOM
- Micro:bot kit
- H Bridge 1 Click
- TEMT6000 Ambient Light Sensor
- ADT7410 + ADXL343 Feather Wing
- Adafruit Huzzah32
- 20W Adjustable DC-DC converter
- Wires
- Breadboard
- AndroidまたはiOSのスマートホン、およびAtmosphere IoT Studio
回路図(Scheme-Itによる)
物理的なBot
モータ、ホイール、ボディ、ドライバ基板がセットになったmicro:botキットで、ロボット(というよりローバー)が組立てられます。このキットはmicro:bitでの使用を想定しており、モータドライバにはmicro:bitを簡単に挿入できるmicro:bitカードスロットを搭載しています。ただし、今回はAtmosphere IoT Studio: H-Bridge 1Clickで使用するために設計された別のモータドライバを使用するため、物理的なフレーム、モータ、ホイールのみが必要です。
このロボットには、モータが左右に1つずつ搭載されており、前進、後退、旋回などの運動ができるようになっています。ロボットの転倒を防ぐため(2輪では足りないため)、ロボットの前面には小さな車輪があり、その車輪は自由に向きが回転できるようにベアリングで支えられています。
ハードウェア:Huzzah32およびH-Bridge 1 Click
ロボットの電子制御では、AdafruitのHuzzah32を中核として、Bluetooth接続、センサ読み取り、モータ制御を行います。モータは、2つのHブリッジを1つのパッケージに統合したH-Bridge 1 Clickコントローラで制御されます。H-Bridge 1 Clickは主にステッピングモータ用に設計されていますが、2つの別々のDCモータを制御するために使用することができ、それぞれのブリッジは2つのモータの回転方向を独立に制御することが可能になっています。
今回のAdafruit Huzzah32は、ADXL343フェザーウィングに直接接続するのではなく、ブレッドボードに接続しています。その理由は、他に接続が必要なデバイスが多いからです。フェザーウィングにははんだ付けしかありません(これは好ましくない)。また、多くのセンサはI2Cベースであり、すべて異なるアドレスを持っているので、同じI2Cバスに接続しても問題はありません。
H-Bridgeとモータの接続は非常に重要です。モータの極性を間違えると、モータを前進させるように指示しても、実際には後退してしまうという逆の動作になるからです。モータ(ギアボックスに接続されているもの)には、端子の横に「+」のマークがあります。このコネクタは極性コネクタで、どの端子をプラスにするとモータが時計回りに回転するのかを示しているのですが、先にテストをしておくとよいでしょう。極性を特定したら、次にH-Bridgeの真理値表(下図)を理解する必要があります。
H-bridgeコントローラは2つのブリッジで構成されていますが、その動作は逆であることを認識することが重要です。しかし、モータが同一で互いに反対方向を向いており、前進と後退の動作では2つのモータを反対の向きに回転させる必要があるため、このことは有利になります。したがって、ロボットが前進するためには(右モータが時計回りに回転していると仮定すると)、左モータはその極性に対して反時計回りに回転する必要があり、そのため右モータから見て時計回りに回転することになります。これは、言葉で説明するよりも、実際に見てもらった方がわかりやすいと思います。
つまり、左のモータのプラス端子をI2Aに、右のモータのプラス端子をI1Aに接続すれば、それぞれのモータは同じようにH-Bridgeに接続されることになります。
ソフトウェア:Atmosphere IoT StudioのBluetooth
複数のBluetoothエレメントを挿入できるため、ロボットのソフトウェアが簡素化されています。これによりパケット解析が不要になり、受信メッセージにはコマンドが含まれるようになります(このコマンドは、正しいモーター信号が送られるcomparativeエレメントに渡されます)。デバイスのソフトウェアは、4つの回転とセンサを含む各機能のBluetoothエレメントで構成されています。
SensorProbeと呼ばれる intervalエレメントは、単に接続されたセンサを調べてデータを取得し、Bluetooth経由でモバイル端末に送信するだけです。movement Bluetoothエレメントは、H-Bridgeコントローラの状態を変更するために使用され、モータによってロボットは前進、後退、左旋回、右旋回のいずれかに動きます。ロボットはMoveStop Bluetoothエレメントがメッセージを送るまで動作を続けるので、ボタンを押し続けたり、繰り返し信号を送る必要はありません。H-Bridgeの状態を変更する役割を担うBluetoothエレメントは、H-Bridgeエレメントに値は送信しません(単にトリガするだけです)。その理由は、モータコントローラはその方向に動く要求があったことだけが分かればよいので、エレメントをトリガするだけで十分です。
アプリ側は、前進、後退、左旋回、右旋回、停止の各動作を示すボタンを配置し、コントローラとして使用することを想定しています。これらのボタンが押されると、対応するBluetoothエレメントが「GO」というメッセージを送信し、アプリ側で接続されているBluetoothエレメントがH-Bridgeエレメントをトリガする仕組みになっています。ただし、このメッセージは重要ではありません(何でもよい)。アプリ側のBluetoothエレメントは書き込まれるとH-bridgeの状態を変更するためです。また、アプリには、記録されたロボットの周囲温度と光量を表示する2つのラベルが含まれています。intervalエレメントは、光センサと温度センサのBluetoothエレメントを調べてデータを取得し、それぞれのラベルに渡すために使用されます。
主要部品とコンポーネント
- 1568-1656-ND
- 1471-2014-ND
- 1568-1048-ND
- 1528-2880-ND
- 1528-2514-ND
- 1738-1293-ND
- 1568-1511-ND
- 1738-1326-ND