2013年6月2日日曜日

運動会での金管バンド演奏

先日、無事に運動会が終わりましたが、久しぶりに金管バンド(音楽クラブ)の演奏での行進に取り組みました。これまでの学校では、9月に運動会を行なっていたため、十分に練習期間があったのですが、現任校では5月に行われるため、今までの4年間は断念しておりました。

昨年度、音楽クラブに入ってくれたのは、20人足らずの子どもたちだったのですが、4,5年生を中心に、まじめに練習する子どもたちが多く、欲張って2曲(内1曲はメドレーのような形なので実質短い3曲)をみっちり練習しました。この内、行進曲アレンジの「ヘビーローテーション」を運動会の行進曲として演奏したのでした。

熱心な学校からすると、「えっ?たったそれだけ?」と思われることでしょう。私自身もこれまでの学校では、短いものを合わせて5〜6曲はやっていましたから。夏休み中までに校歌、運動会の歌、得賞歌の3曲と、行進用の曲(「となりのトトロ」か「鉄腕アトム」+α)をやって、後半に発表会用の曲を1〜2曲やる感じでした。すると、1年間で人前で演奏できる曲が3〜4曲になるため、ちょっとした演奏会ができるわけです。そのため、赴任校の教職員の協力や理解、保護者の皆さんのご協力や子どもたちの熱心さもあって、年に数回発表する機会を頂いておりました。

ところが、現任校では発表の機会が限られているだけでなく、朝練習はできないし、放課後練習も簡単にはできません。月3回のクラブ活動と業間休みや昼休みを使った練習だけですので、無駄にできる時間は一切ありません。また、私自身が担任を持っているために、音楽クラブに没頭しているわけにもいきません。条件的にはかなり厳しい。この悪条件を子どもたちがカバーしてくれたのでした。

昨年度とほぼ同じメンバー+新しいメンバーを含めて30名弱に増えたため、運動会までは今までと同じ楽器&こちらが任意で指定した楽器という約束で練習開始。今までのメンバーが新しいメンバーに教える姿も微笑ましく、日に日に音が厚くなり、当日を迎える頃にはかなり安定した演奏ができるようになってくれました。

入場行進の「ヘビーローテーション」も閉会式の「得賞歌」も、出だしの音で会場の「お〜っ」というざわめきが聞こえて来ました。1音1音丁寧に音を作り、細かくタイミングを合わせる練習をして来ました。それが実を結んだ瞬間でした。何より、子どもたちの誇らしげな顔つきは、練習ではじめて校庭で吹いたときとは雲泥の差でした。短期間でしたが、子どもたちはこんなにも成長するものなのだということを改めて思い知らされました。

運動会終了後、正式に楽器を決めて新たに練習をはじめました。今年できたからといって、来年も同様にできるとは限りませんが、このサイクルを定着させていきたいと思っています。昨年度ともに指導してくれた音楽の先生や、今年度本校に赴任して一緒に指導してくれている音楽の先生、貴重な時間を音楽クラブに使わせてもらうことを承諾してくれた本校教職員の皆さんや温かい目で影で支えてくださった保護者の皆さん、そして、厳しい練習に耐えてがんばってくれた子どもたちに深く感謝しております。

2013年5月4日土曜日

Raspberry Piを使ってわかったこと(VGAとBluetooth)

このところ、使用頻度が高くなっているRaspberry Piですが、ここで新たにわかったことを2つ紹介しておきます。既知の現象のようなので、私自身の備忘のためなのですが…。

以前に購入した、HDMIとVGAを変換するケーブルを使って、自宅にあったSHARPの古い液晶モニタにRaspberry Piをつないでみようと考えました。はじめは、そのまま挿せば使えるだろうと思っていたのですが、どうもうまく表示しません(チラッとは映るのですが、すぐに消えてしまってその後は反応なし)でした。しばらく放置の後、先ほど@robo8080さんのつぶやきを拝見し、「これなら行けるか!」と実験再開。ちょっと情報を追加するために、ググって探したら「Raspberry Pi にモニタをVGA接続」というそのものズバリのブログ記事を見つけました。これらを参考にして、RaspbianをインストールしてあるSDカードの中に入っている「config.txt」をテキストエディタ(別のPC(Ubuntu)でやりました)で開いて以下の2つについてコメントアウトを外しました。

  • hdmi_force_hotplug=1
  • hdmi_drive=2

日本語ではありませんが、「HDMI to VGA Converter for Raspberry Pi & New Pi Enclosure Design Idea」という動画も参考になりました。これを観ると他にも設定しているようですが、私の環境では上で紹介した2つを変更しただけで無事に表示してくれるようになりました。

この実験の過程でわかったことがもう一つ。Bluetooth USBドングルを挿しっぱなしで使う場合、しばらくRaspberry Piに電源を入れていないとBluetoothドングルが反応しなくなるという現象が発生することがわかりました。以前にやったように電源をいれる前にBluetoothドングルを抜いておいて、起動してから挿す方法も試してみましたが、うまく認識してくれません。「壊れたのか?」と思ったりもしたのですが、電源を切ってしばらく放置し、再び電源を入れ直してみました。すると、BluetoothドングルのLEDが点滅し、無事にキーボードとマウスを接続することができるようになりました。なんだか天邪鬼な感じが否めませんが、気長に付き合っていこうと思っています。

2013年4月14日日曜日

Raspberry Piで改造したScratchを動かす

前回の作業で、ようやくRaspberry Piで動く改造したScratchイメージ(ScratchMyu4RPi.imageとScratchMotors4RPi.image)ができあがりましたが、今回は、これらをRaspberry Piで簡単に動かせるようにする方法をまとめてみます。

まず、改造したScratchイメージを「/usr/share/scratch/」の中に保存します。次に、以前にやったように、起動コマンドスクリプトを作ります。「/usr/bin/」内のscratchコマンドスクリプトのコピーを2つ用意して、scratchmyuとscratchmotorsという名前に変更しました。この2つのファイルを「/home/pi/」内にコピー(sudo cp …)して、Leafpadで開いて「IMAGE="/usr/share/scratch/…"」のところだけをそれぞれScratchMyu4RPi.imageとScratchMotors4RPi.imageに書き換えました。これを、再び「/usr/bin/」以下にコピー(sudo cp …)すれば、スクリプトファイル名がそのままコマンドとして使えるようになります。
#パーミッションの設定も確認しましたが、変更されていませんでした。

このままでも使えることは使えるのですが、いちいちターミナルを開いてコマンドを打ち込むのは面倒です。そこで、LXDEメニューに登録するところまで作業をしてみることにしました。

以前にKNOPPIXでやっていたので、これを参考にしながら作業を進めました。まず、「/usr/share/applications/」内のscratch.desktopファイルから2つのコピーを作って、scratchmyu.desktopとscratchmotors.desktopという名前に変更しました。次に、「/home/pi/」内にこの2つの.desktopファイルをコピーして、Leafpadで開いて「Exec=…」「Name=…」の2ヶ所を変更します。「Exec=」以下をコマンドスクリプトの名前にそれぞれ変えて(今回は、scratchmyuとscratchmotors)、「Name=」以下を任意の名前(メニューに表示される)にしました。これを、再び「/usr/share/applications/」以下にコピー(sudo cp …)すれば、LXDEメニューから起動することができるようになります。

そもそも、需要は少ないのかもしれませんが、これでだいぶ使いやすくなりました。自律型のロボットが完成するまで、もう少しな感じです。(^_^)

2013年4月11日木曜日

Raspberry Pi用にScratch.imageを改造する

前回の作業で、今まで他のLinuxで使っていた、改造されたScratchがRaspberry Piで動かないことがわかり、twitterでつぶやいたところ、Scratch Day 2013 in Tokyoの準備などでお忙しい@abee2さんから情報を頂きました。結論だけ言うと、Raspberry Piに含まれるScratchは特別なものであるため、他のScratchイメージを持ち込んでもうまく動かない可能性があるということでした。そこで、初体験ではありますが、Scratch.imageの改造をやってみることにしました。

改造と言っても、既に作成して頂いている.csファイルをRaspberry Pi付属のScratch.imageに組み込むだけです。参考にしたのは、「チェンジセット(差分集合)の書き出しと読み込みの方法」です。今回改造したScratchイメージファイルは、ScratchMyu4RPi.imageとScratchMotors4RPi.imageという名前にしましたが、改造の内容をまとめると以下のようになります。

まず、SensorBoardWithMotorからWeDoLight.1.csを書き出します。作業はMacBookでやりましたが、「チェンジセット(差分集合)の書き出し…」を参考にして難なくクリア出来ました。Macの場合は、「マウスの右ボタンをクリック」ではなく、項目を選択するとウィンドウの左側にスクロールバーが表示され、その上にスイッチらしきものが表示されるので、それをクリックします。また、特にSqueakVMとの関係を気にする必要がなく、Raspberry Piから持ってきたScratch.imageファイル(/usr/share/scratch/に入っていた)をダブルクリックするだけで勝手にSqueakVMで開いてくれました。予め「Scratch.image」を「ScratchMyu4RPi.image」などのように、別名で保存しておくとわかりやすいと思います。今回は、2つのイメージファイルを作ったため、別の名前で2つのイメージファイルを作ってから作業をしました。

問題は、チェンジセットを読み込ませたいScratchイメージファイルから起動して、シフトキーを押しながら「ファイル」メニューを開いても、「Exit User Mode」という項目が出てこないことです。そこで、よく知られた裏ワザとして、シフトキーを押しながら「SCRATCH」のロゴの「R」をクリックするという方法を使いました。シフトキーを押しながら「R」をクリックすると小さなメニューが表示されます。その中から「turn fill screen off」を選ぶとScratchの窓が少し小さくなって、右下にSqueakのデスクトップ(ワールド)が表示されます。あとは先述の「チェンジセット(差分集合)の書き出し…」を参考にして作業をすれば問題ありません。作業が終わったら、再びシフトキーを押しながら「R」をクリックし、「turn fill screen on」を選択してユーザモードに戻します。最後に、同じくシフトキーを押しながら「R」をクリックして、出てきたメニューの中から「save image for end-user」を選んで変更した内容を保存すれば、改造したScratchイメージファイルの出来上がりです。

こうして作ったイメージファイルをRaspberry Piに持ち込んだところ、無事に動いてくれました。\(^o^)/
#起動からLXDEメニューへの登録まで出来ましたが、詳細は後日書くことにします。

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で画像が見られます)単にラジコンカーのようなものを作っただけなんですが、いろいろと可能性が感じられてわくわくしています。センサを追加したり、キーボードからの命令を工夫したりすればもう少し複雑な動きもできそうなので、時間を見つけてやってみたいと思います。