2013年4月8日月曜日

カブトムシの世話(2013春)〜多頭飼育のサイクル化に向けて

昨年の秋から、時々様子を見る程度でほとんど放置状態だったカブトムシの幼虫。5年目の春を迎えてかなり暖かくなってきたので、そろそろ冬眠から目覚めた頃だろうと思ってマットの交換をすることにしました。昨年は、4月の月末近くに世話をしましたが、昨年に比べて今年はカブトムシの幼虫が多かったので、共食いを心配してちょっと早めに様子を見ることにしたのでした。

保湿のために敷いておいた枯葉を取り除き、マットの様子を確認してみました。マットは、昨年にも増して良い感じに水分がしっかり保たれていました。上の方の深さ5cmくらいは、カブトムシたちが通った様子もありませんでしたが、その下のマットにはフンがたくさん混ざっていて、それぞれの幼虫がうまく場所を確保しながら丸まっていました。マットをふるいにかけながらフンを取り除き、出てきた幼虫を別の容器に避難させていきました。秋には25頭いたカブトムシの幼虫でしたが、今回の世話で確認できたのは24頭でした。残骸は何も発見できなかったので、だいぶ早い段階で土に帰ってしまったのだと思います。生き残った24頭は少々大きさにばらつきがあるものの、冬眠から覚めて元気に動き回っていました。

ふるいにかけたマットは、新しいマットと混ぜてまた使い回します。こうすると、夏に次の幼虫が生まれたときの餌にもなるからです。取り除いたフンは、昨年のように植物の栽培に利用します。4回に分けてマットと朽木を入れ、層ごとに6頭ずつカブトムシの幼虫を入れました。最後に上から5層目のマットをかぶせて今回の作業を終了しました。夏前にもう一度様子を見て、餌として消費されたマットを足さなければならないと思います。(既にマットは用意してあります)この方法で多頭飼育のサイクルができるといいなぁと思っています。幼虫が40頭を超えた時に世話がとても大変だったので、30頭くらいまでが調度よいかもと思っています。

2013年4月7日日曜日

改造されたScratchをRaspberry Piで動かせず

Raspberry Piで自律型ロボットを簡単に作る実験をしています。今回は、これまで@abee2さんに改造して頂いた各種Scartchを動かす実験をしました。

まず、インストールされているScratchの状態を確認するところから始めました。Scratchの起動コマンドは、「/usr/bin/」の中にある「scratch」というシェルスクリプトです。これを「vi」で開く(「vi /usr/bin/scratch」でOkay)と、scratchの起動に必要な物がどこにあるかが記述されています。squeakvmは「/usr/lib/squeak/」の中に、Scratchのpluginsは「/usr/lib/scratch/」の中に、Scratch.imageやlocaleは「/usr/share/scratch/」の中にそれぞれあることが判明しました。これに従って、ミュウロボ用と2モータ用のScratchで実験を続けてみることにしました。

手始めに、一番簡単な日本語ロケールファイルの更新(@abee2さんに作って頂いた日本語ロケールファイルは、以前の記事にリンクあり)をしました。「/usr/share/scratch/locale/」以下にあるものに上書き(解凍したpoファイルを「sudo cp *.po /usr/share/scratch/locale/」でコピー)すればOkayです。

次に、ミュウロボ用のimageファイルとなのぼ〜どAG用のimageファイルを同様の手順(解凍したimageファイルを「sudo cp *.image /usr/share/scratch/」)で「/usr/share/scratch/」へコピーしました。その後、それぞれのlocaleフォルダ内のpoファイルもコピー(面倒なので、piユーザフォルダ内に解凍したフォルダを置いて「sudo cp */locale/*.po /usr/share/scratch/locale/」でコピーしました)して準備完了。

起動コマンドを作るために、scratchの起動コマンドがあった「/usr/bin/」へ移動し、scratchのシェルスクリプトからファイル名を変えて(今回は「scratchmotors」と「scratchmyu」の2つにしました)コピーを作り、中身の設定をすることにしました。しかし、「sudo vi …」で起動しても、うまく変更できなかったので、ダメ元でLeafpadでやってみることに。直接保存はできないものの簡単に開いて編集することが出来ました。
#編集したものをpiのユーザフォルダ(/home/pi/)に入れておいて、あとで「sudo cp …」すればOkay)

さて、ここから大きな壁にぶち当たります。当初は、シェルスクリプトのimageファイル名のところだけ変更すれば簡単に起動するだろうと思っていたのですが、何だかうまくいきません。真っ白い窓が開いてCPUフル稼働状態になり、マウスの動きも鈍くなる感じです。しばらく待つと窓が閉じて「out of memory」というメッセージと起動プロセスを示す大量のログが表示されて止まります。メモリーが足りないのかな?と思って新しく買った512MBの方でもやってみましたがダメ。今まで、KNOPPIXやPuppyで使っていた起動用シェルスクリプトをRaspberry Piの設定に合わせて書き換えてやってみてもダメ。同じ方法で、Scratch.imageだと問題なく起動するので、改造したものの個別の問題だろうと推察しました。
#もちろんですが、パーミッションの設定も確認しました。

というわけで、今回はうまく動かなかった報告になってしまいました。

【追記】成功したやり方については、2013年4月11日の記事をご覧ください。(2013.4.13)

2013年4月1日月曜日

Raspberry PiとWeDoモータで簡易ロボット制御

Raspberry Piでロボット制御の実験中です。これまでに、モバイルバッテリーで動作することを確認し、Bluetoothキーボードを使えるように設定しました。この実験を進めていく過程で、Raspberry Piに入っているScratchWeDoが動くことが判明し、まずはこれでロボット制御のようなことができるかどうかやってみようと考えました。

モニタとUSBマウス(まだBluetoothマウスを購入していないので)をRaspberry Piに接続し、以前に購入したUSBモバイルバッテリーを使って起動しました。ここで、Bluetooth USBドングルを挿して、Bluetoothキーボードの好きなキーを押してRaspberry Piに認識させます。コンソール画面からBluetoothキーボードを使ってログインし、「startx」でLXDEを起動してからScratchを起動します。この時点で、2つのUSBポートは使い切っているので、WeDoのレゴUSBハブを挿すところはありません。これを挿せば自動的にモータのブロックが表示されるのですが、USBマウスを抜くと作業ができないし、Bluetooth USBドングルを抜いてしまうと、また認識させるのに時間がかかってしまって面倒です。そこで、Scratchの「編集」メニューから「モーターのブロックを表示する」を使って無理やりモータのブロックを表示させました。これを使って、単純にスペースキーを押したら1秒間モータが回るというプログラムを作りました。

最後に、USBマウスとモニタを外してレゴUSBハブ(モータがつながっている)を挿し、BluetoothキーボードのenterキーでScratchのプログラムを動かし、プログラム通りに動作するか確認すると、見事に動いてくれました。(YouTubeで画像が見られます)単にラジコンカーのようなものを作っただけなんですが、いろいろと可能性が感じられてわくわくしています。センサを追加したり、キーボードからの命令を工夫したりすればもう少し複雑な動きもできそうなので、時間を見つけてやってみたいと思います。

Raspberry PiでBluetoothを使う

Raspberry PiWeDoなのぼ〜どAGをつないで、Scratch(改造したものも含めて)から制御することで自律型のロボットが出来ないだろうかと考えて、細々と実験中です。

さしあたって、キーボードの呪縛(と言うほど大げさなものでもないか…)からRaspberry Piを開放するために、Bluetooth USBドングルを挿して無線キーボードを使うことが出来ないかと考えました。同じようなことを考えている方はいないかとググってみたところ、結構たくさんの人がチャレンジしている様子。中でも一番わかり易かったYengawa Systemsさんのブログ記事を参考に、作業を進めていくことにしました。
#今回の作業はインターネット接続必須です。DHCPサーバが動いている環境がお勧めです。

まずは、Raspberry Piにキーボード、マウス、モニタ、LANケーブルをつないで、前回用意した電源をつなぎました。起動&ログイン後、GUIで作業を進めるために「startx」でLXDEを起動しました。次に、デスクトップにあるターミナルを起動し、「sudo apt-get update」と打ち込んでapt-getのリストを更新します。その後「sudo apt-get install bluetooth bluez-utils blueman」でBluetoothを動かすのに必要なものをインストールしました。
#これが結構時間がかかります。

インストールが終了したら、Bluetooth USBドングルを挿します。今回は、プラネックスのBT-MicroEDR1XというBluetooth Ver.2.1とEDRに対応したものを使いました。ターミナルで「lsusb」と打ち込むと、確かに「Cambridge Silicon Radio, Ltd. Bluetooth Dongle (HCI Mode)」が見えました。

次は、GUIツールの出番です。LXDEメニューから「設定」→「Bluetooth マネージャー」を起動し、Bluetoothキーボードの電源を入れて「CONNECT」ボタンを押してから、Bluetooth マネージャーの「検索」を押します。今回は、iPad2のために購入したK1280 BTというキーボードを使いました。(Amazonで購入しましたが現在売り切れ)ペアリングにはランダムなキーを使うことにして、ウィザードに従って設定をすると、無事にBluetoothキーボードが使えるようになりました。

【追記】 起動&ログインからBluetoothを使いたい場合は、Raspberry Piを起動してログイン待ち状態になってからBluetooth USBドングルを挿して、(2013.4.1)
予めBluetoothドングルを挿してRaspberry Piの電源を入れて、LEDの点滅を確認してからキーボードの好きなキーを押したりマウスをクリックしたりしてしばらく待つと、BluetoothキーボードやBluetoothマウスが使えるようになるようです。(2013.5.4)

結構簡単にできるものだなぁと感心しましたが、さらに使いやすい環境にするためにはまだまだ道のりは長いので、時間を見つけて作業を進めたいと思います。

2013年3月31日日曜日

自宅にあるマイコンボード

これまでたくさんのマイコンボードを購入してきて、だんだんわけがわからなくなってきたので、自分のためにちょっと整理してみることにしました。
  1. PicoBoard系
  2. Arduino系
  3. ARM系
  4. Gainer系
  5. その他 
やっぱり多すぎですね。(まだあるかもしれない…)自分でも使いこなせていない感じです。(そりゃそうです。だって私は素人だもの)今後は、この中からできるだけ教育用途に向いているものを重点的に教材研究して行きたいと思っています。

2013年3月14日木曜日

Raspberry Piを使ってみる

最近、私の周辺でも話題になっているRaspberry Piですが、ARMマイコンを載せた小型のパソコンとして、発売前から注目していました。特に教育用途のための仕様と価格が、とても魅力的だと考えていました。多忙なために購入後かなり経っているのに起動すらしていない状況だったのですが、仕事の合間に起動するところまでやってみることにしました。今回用意したのは、以下のような環境です。

Raspberry Piの電源は、Micro USB B端子で供給するようになっているのですが、単純にどんなACアダプタでもよいというわけではありません。5Vは当たり前として、電流は最低でも700mA必要だということなので、よく見られる500mAのものでは足りないことが予想されます。(自宅にあったのは、ほとんどが500mAでした)以前購入したiPad2用の小さな充電アダプタなら2.1Aまで出せるので、これを使えば大丈夫なのですが、常用するとなるとやはり別の電源を用意すべきだと考えました。そこで、Amazonで手頃な価格で容量を満たしているものを探したところ、上記のものにたどり着きました。

モバイルバッテリーの方は、Raspberry PiでScratchを動かして、なのぼ〜どなどを経由してモータなどを動かせば、自律型のロボットを自作することができるのではないかと考えて、その実験のために購入しました。こちらも問題なく起動させることが出来ました。(Login:pi password:raspberry)もともとRaspberry PiにはScratchがインストールされているのでありがたいです。次の目標は、ワイヤレスキーボードなどを使えるようにすることです。これから、時間を見つけて教材研究をして行きたいと思っています。

2013年2月27日水曜日

NanoBoardAGをScratchから使えるようにする

前回までに、NanoBoardを2モータ対応にすることについては解決しましたが、その後、私費で購入したNanoBoardAGが動かなくて困っておりました。作者の@tomonnn1さんのアドバイスをもらいながら、なんとか無事に動くようになったので、その顛末をまとめてみます。

まず、私が持っていたのはNanoBoardAGの初期のもので、 現行のVer.1.1の作り方ではなく、なのぼ〜どAGの作り方の方を見ないといけなかったのでした。最大のつまずきは、作り方のページの真ん中よりやや手前に書いてある、USBコネクタのパッチをしていなかったことでした。それまでは、USBシリアル変換ICがうまく動いていないのかもしれないとか、いろいろと考えてしまっていたのですが、実はかなり単純な話だったということだったのです。とりあえず、これで無事にパソコンと繋がるところまでは行きました。

次に問題になったのは、Scratchとの接続でした。いろいろといじり倒しているうちに、PicoBoard互換機としての機能を失ってしまったような感じでした。そこで、AVRISP mkIIを使って修復することにしました。

まず、Arduino-IDEの設定をしなければなりません。ちっちゃいものくらぶの記事を参考にしながら、ページの中央あたりにある「optiboot_atmega8-8m」を頂いてきて解凍しました。次に、Arduino-IDEの中身を開いて、(Macの場合は)「Contents」→「Resources」→「Java」→「hardware」→「arduino」→「bootloaders」とたどっていって、「optiboot」の中に先ほど解凍した「optiboot_atmega8-8m.hex」を入れます。最後に、いつものboards.txtに以下のものを追加します。

########################################
atmega8o8.name=[Optiboot] ATmega8 8MHz

atmega8o8.upload.protocol=stk500
atmega8o8.upload.maximum_size=7680
atmega8o8.upload.speed=115200

atmega8o8.bootloader.low_fuses=0x94
atmega8o8.bootloader.high_fuses=0xDC
atmega8o8.bootloader.path=optiboot
atmega8o8.bootloader.file=optiboot_atmega8-8m.hex
atmega8o8.bootloader.unlock_bits=0x3F
atmega8o8.bootloader.lock_bits=0x0F

atmega8o8.build.mcu=atmega8
atmega8o8.build.f_cpu=8000000L
atmega8o8.build.core=arduino
atmega8o8.build.variant=standard

########################################

これで、Arduino-IDEの設定は終了です。

この状態で、Arduino-IDEを起動してAVRISP mkIIでブートローダを流し込みました。これは、エラーもなく無事に完了。その上で、ちっちゃいものくらぶで配布されている「NanoBoardAGWithMotorTrio」をダウンロードして解凍し、「NanoBoardAGWithMotorTrio.pde」をArduino-IDEで開いてNanoBoardAGにアップロードします。すると、無事にPicoBoard互換機としての機能を取り戻すことができて、Scratchからも使えるようになりました。これで、学校で子どもたちにも使わせることが出来そうだという見通しがたちました。あとは、SPPの結果待ちという状況です。
#待ち遠しいけど、学期末なのでそれどころではなかったり…。orz