様々なセンサーやモジュールを利用

特に最近は小型のセンサーなどの新しいデバイスが頻繁に登場します。
いかに製品作りに利用するか、それらの利点や可能性をキャッチする。
そして、キャッチした情報やデバイスを実際に使えるようにするため、素早くテストすることが大事です。

そんなわけで、ドローンにも色々なデバイスを利用させてもらいましょう。

デバイスをCPUなどと接続する場合、一昔前まではパラレル接続が基本でした。
データバス8~32本、アドレスバス数本~数十本を並列につなぐので、パラレル接続と呼びます。
もう一つの方法がシリアル接続。1本~数本くらいで接続する方法です。
パラレル接続の場合は、1回(1クロック)で1つの情報を転送できますが、シリアルの場合は複数回(数十クロック)で1つの情報を転送します。
その為、シリアル接続の場合は様々なルールに則って情報のやり取りを行います。
複雑になりますし、時間もかかります。
しかし、技術の進歩や積み重ねにより、シリアルを用いるケースが増えてきました。

小型のモジュールで採用されているシリアル接続インターフェースは、概ね以下の2種類です。
I2C(IIC)
SPI

I2Cは(SPIと比べて)シンプルで扱いやすい反面、スピードは低速です。
SPIは(I2Cと比べて)接続方法が数パターンあって仕様の確認が必要ですが、スピードが高速です。

koebi02では、この2つを簡単に接続できるコネクタを複数用意しています。

I2C(IIC)

特にI2Cは簡単です。
空きコネクタにモジュールを接続して電源ON。
PCに無線ドングル挿してログイン。
i2cgetコマンドを入力するとモジュールから情報が読み取れる。
i2csetコマンドを入力するとモジュールに設定を書き込むことができる。

このくらい簡単です。
Linuxの恩恵ですね。

GPIO

LEDやスイッチ、特殊なインターフェースを接続する場合は、GPIOを使用します。
GPIOは、最も単純で、最も自由度の高いインターフェースです。
ほとんどのGPIOは、信号1本毎に入出力を自由に指定できます。
入力に指定した場合、リアルタイムに信号の状態を読み取ることができ、出力に指定した場合、任意のタイミングでハイ・ローを制御できます。
その為、LEDを光らせるだけ、スイッチのON/OFF状態を見るだけ、といった単純な用途に使われる一方で、複数のGPIOピンを複雑な組み合わせで用いることにより、特殊なインターフェースとして利用することもできます。

アナログ入力

温度センサや距離センサなどの一部のデバイスは、アナログ信号で接続します。
電源と信号1本を繋ぐだけなので接続は簡単ですが、GPIOなどのデジタル信号と違い、電圧で情報を伝達します。
例えば、温度が上がると電圧が下がる。
例えば、距離が近づくと電圧が上がる。

PWM

PWMは、指定した周波数、指定した間隔で出力信号をHigh/Lowするインターフェースです。
一定のパターンを送出するのに利用したり、High/Lowの割合を指定できる、というところを利用して、
LEDやバックライトの明るさ制御に利用したりします。
モーターの出力(パワー)調整などにも利用されます。

koebi02では、多数のGPIOピンとアナログ入力、PWMピンが空いているので、ジャンパして利用することができます。
これらも、I2Cの様にLinuxの基本的なコマンドで制御できるので、テストも簡単に行うことができます。

テストが済んだら、プログラムを書いて、アイデアを形にしていきましょう。