日経LINUXに連載中の記事「Raspberry Piで始めるかんたんロボット製作」と連動したキットの完成品を販売いたします。
Raspberry Piを使ったLinuxで動くお手軽学習用ロボットとして開発しました。デバイスドライバを用意しているため、LEDやスイッチ、ブザー、モータ、距離センサを、簡単にどのようなプログラミング言語でも扱うことができます。
サイズは、お掃除ロボットをふたまわり小さくしたくらいの手のひら程度の移動ロボットなので、気軽に扱うことができます。
そして何が簡単かといえば、デバイスドライバを用意しているので、シェルでロボットを操作することが可能なのです。
たとえば、Raspberry Pi Mouseに搭載されたLED2を点灯させる場合はターミナル上で、
$ echo 1 > /dev/rtled2
と入力するだけで、LED2が点灯します。逆に消灯するときは、
$ echo 0 > /dev/rtled2
にしてあげると、消えます。
スイッチ入力の読み出しもシェルで行えます。スイッチ1が押されている場合は、
$ cat /dev/rtswitch1 0
というふうに、0を読み出すことができます。押されてない場合は、1が読み出されます。
ブザーを鳴らすことも可能で、周波数を指定してあげることで音色を出すことができます。たとえば440Hzを出したいときは、
$ echo 440 > /dev/rtbuzzer0
を入力すると、ブザーから440Hzである「ラ」の音がでます。音を消すときは、
$ echo 0 > /dev/rtbuzzer0
にしてあげると、音がやみます。
モータも同じような簡単さで操作できます。
1.モータ駆動トルクを許可する(モータイネーブルをON)
$ echo 1 > /dev/rtmotoren0
2.左右のモータの回転速度を指定する(400Hz=タイヤ1回転/秒)
$ echo 400 > /dev/rtmotor_raw_l0 $ echo 400 > /dev/rtmotor_raw_r0
このコマンドでRaspberry Pi Mouseは前進します。ゆっくりバックさせるときは、
$ echo -100 > /dev/rtmotor_raw_l0 $ echo -100 > /dev/rtmotor_raw_r0
といったように、マイナス数値を入れてあげればOK。
その場で停止させたいときは、両方に0を入れてあげるとモータの回転が止まります。
$ echo 0 > /dev/rtmotor_raw_l0 $ echo 0 > /dev/rtmotor_raw_r0
ステッピングモータを使用しているので、熱くならないように必要がない場合は励磁を切っておきます。
$ echo 0 > /dev/rtmotoren0
赤色LED距離センサーの値を読み出すときは、catで読み出すことができます。
$ cat /dev/rtlightsensor0 184 192 188 190
4つの値を同時に読み出せます。
これらを組み合わせて、シェルスクリプトで動作を記述してあげれば、簡単に知能化することが可能です。
もちろん、C言語やPython、Javaなどで動かすことも容易です。
Linuxを使ったロボットの実験、または今話題の人工知能の研究に使っていただけるかと思います。