2010年10月31日日曜日

KNOPPIX4Robo 2.xの更新

前回の1.x系の更新に引き続き、KNOPPIX4Roboの2.x系の更新作業を行いました。更新の中心は、1.x系の更新と同じ作業をすることと、Arduino-IDEProcessingをインストールすることです。今回は、今まで$HOME(/home/knoppix/)にインストールしていたものを、できるだけ「/usr/local/bin/」に移動し、$HOME内をスリム化することも作業リストに入れました。
#同様の作業を1.x系でも行って、作業環境としての共通性を保持することにしました。

必要なファイルとフォルダを所定の場所に配置した後、chrootで作業開始。etoys(3.0)を削除したり、Scratchのソースから作って頂いた各種Scratchを1つにまとめて、それぞれをシェルスクリプトで起動できるように(この作業は1.x系でも行った)したり、更新したApplicationをLXDEメニューから起動できるようにdesktopファイルを書いたり、必要ないファイルやフォルダ(更新のために使って必要なくなったものも)を削除したりして、無事に更新作業は終了しました。

ところが、この作業が終わった段階で、sourceフォルダが1.9GB近くまで膨れ上がってしまいました。これでは、圧縮しても700MBのISOに収めるのは難しいです。そこで、あっちこっちフォルダを覗き込んでいらないファイルを削除した後、Processingのexampleフォルダから、フィジカル・コンピューティングに関係ないファイルを削除しました。

さて、おもむろにあの長いコマンドを打ち込んで、KNOPPIXを圧縮します。今回は、「create_compressed_fs」に「--best」オプションをつけてみました。すると、その作業時間の長いこと!圧縮作業が終わるまで、約3時間もかかりました。1回目は700MBオーバーしたためにやり直して、2回目はdesktopファイルの設定ミスでやり直して、三度目の正直でようやく完成しました。(合計約9時間!!!)

一応、必要なソフトウエアは動作することを確認しました。(ハードウエアをつないでいないので本当に動くか微妙ではありますが…)今回は、いろいろな作業の合間をぬって行ったので、本当に疲れました。(^_^;;;

2010年10月23日土曜日

KNOPPIX4Robo 1.xの更新

授業で使うために、約1年ぶりにKNOPPIX4Robo 1.1を更新することにしました。これまでの経緯は、リンク先からたどって頂ければありがたいのですが、いかんせん、本職が忙しくてなかなか本格的な更新作業に取り組めません。そこで、純粋に授業に使うものだけを収録した1.x系列の更新のみを行うことにしたのでした。

とは言え、既に1年前の話となっているので、sourceファイルを探すところからスタート。自宅にあるHDDのどこかにあったような気がしていたのですが、諸々の作業の合間に削除してしまったらしく、どこを探しても見当たりません。しかたがないので、昨年作ったKNOPPIX4Robo 1.1のCDから起動して、取り出すことにしました。
#この方法は、ある意味で効率的です。

更新作業は、(1)Scratchを更新してWeDoが使えるようにする、(2)Dolittle 2.1をインストールしてミュウロボが使えるようにする、の2つの作業を行いました。

(1)については、最新版のScratch 1.4のdebパッケージをインストール(sudo dpkg -i 〜)し、これまでと同様に、日本語poファイルを上書きしました。続いてWeDoに対応させるために、OLPC用のScratch-16.xoをダウンロードし、「.xo」を「.zip」にリネームして展開し、以下の作業を行いました。
#例によってabee2さんに教えて頂きました

$ cd Scratch.activity
$ sudo cp WeDoPlugin-disabled /usr/lib/scratch/Plugins/WeDoPlugin
$ sudo ./installWeDoRules.sh

#「WeDoPlugin」ファイルのパーミッションを一般ユーザまでリード可能にしておかないと、思い通りの動作をしてくれません。

これで、Linux版のScratchでもWeDoが使えるようになります。

(2)については、わたやんさんのdebパッケージを利用して、インストール作業(Scratch 1.4と同様)を行いました。debパッケージを作って頂いたおかげで、本当に作業が楽になりました。今までLinux用にカスタマイズした状態で$HOMEに保存していたフォルダも、きれいさっぱり削除しました。これで、ちょっと軽くなりました。

ついでに、Etoys 4.0を同4.1(今見たら、4.1.1になっている…)に置き換えました。こちらは、debパッケージがないので手動でLinux用にカスタマイズし、LXDEのメニューに登録する作業を行いました。

という訳で、またいつもの長いコマンドと格闘しながらどうにかKNOPPIX4Robo 1.2のISOファイルを作ることができました。CDに焼いて動作確認をしましたが、2度の失敗の後、ようやく満足できるものができ上がりました。次は時間を見つけて、2.x系列の方に入っている、Arduino-IDEやProcessingの更新作業をして行きたいと思います。

2010年10月16日土曜日

KNOPPIXのソフトを更新できません

先日、ハードウエア的なトラブルに見舞われてUbuntu 10.04での運用を断念したマシーンをKNOPPIXで再生しようと考えて、以前にKNOPPIXをインストールしてあったHDDに再インストールしてみました。インストールそのものは難なく終わったのですが、そのままでは味もそっけもない感じ。そもそも、インストール直後はデスクトップが真っ黒で「Compiz」も動いていないので、使いにくいことこの上なしです。

そこで、カスタマイズを始めたのですが、ソフトウエアを更新したりインストールしたりしようと思ってSynapticパッケージマネージャを動かすと、パッケージリストの更新作業中にエラーを吐いて停止してしまいます。繰り返し行ってもダメなので、一度閉じて再び作業をしようとすると、パッケージマネージャ自体が起動しなくなりました。どうやら、リポジトリに関する設定ファイルが開けないと言っているらしいことが分かりました。

しかたなく、いろいろなサイトを見て回って、何となく「/etc/apt/sources.list」や「/var/lib/dpkg/status」あたりの問題ではないかと考えてパーミッションの設定を変えてみましたが、まったく改善されません。「/etc/apt/apt.conf.d/」の中身のファイルもパーミッションを変更してみましたが意味がなかったようでした。

このままだと、来週使う予定の「KNOPPIX4Robo」の更新がままならないので、とても困った状況になりました。とはいえ、いつまでもこんな作業ばかりをしているわけにもいかないので、各種ソフトウエアは古いまま、必要最小限の更新で我慢するしかありません。いずれにしても、これまで苦労してきたことが報われない状況にありますので、このままで終わらせるのはちょっと悔しい気がします。また、時間を見つけてリベンジしてみたいと思います。

2010年10月10日日曜日

Mac & LinuxでPepperの動作テスト

そろそろフィジカル・コンピューティングの授業(←サービス終了につき閲覧不可)のために準備をしようと考えて、購入したキットを組み立てる作業をはじめました。手始めに、Pepperから作り始めよう(部品数が少なくてすぐに作れるから)と考えて、以前にスイッチサイエンスさんで購入して組み立てたままになっていたのPepperがあったのを思い出し、まずはこいつから動作テストをすることにしました。

軽い気持ちでUbuntu 10.04で動かしているPCとPepperをつなぎ、Processingからそれらしいプログラムを流してみました。しかし、どうにもうまく行きません。Linuxだからダメなのかもしれないと思ってMac OS X 10.5.8からもやってみましたが、やっぱりダメです。「ハンダ付けが下手なのか?」と疑ってみましたが、それぞれの環境で「/dev」以下を覗いてみると、ちゃんと認識されているのです。さてはProcessingに関する問題だろうと推察し、いろいろと調べて回りました。すると、次のような手順でセッティングをしないと、Pepperを動かすことができないということがわかりました。
#やらなければならないことは、MacもLinuxも同じですが、やり方が少し違うので注意が必要です。

  1. Pepper用の「gainer.jar」を導入する
    デフォルトのGainerライブラリだと、Pepperをうまく認識してくれないようなので、PepperのダウンロードサイトからPepper用のgainer.jarをダウンロードして、Processingに導入します。
  2. Pepperに対応した「RXTXcomm.jar」を導入する
    Pepperを接続した際、Macでは「/dev/cu.usbmodem****(「*」は数字とアルファベット)」として認識され、Linuxでは「/dev/ttyACM*(「*」は数字)」として認識されます。この状態で、デフォルトのRXTXライブラリではProcessingとPepperをつなぐことができないため、Pepperに対応したRXTXcomm.jarを導入します。
    #ページの中央付近にリンクされています。
  3. Processingのpdeファイルに接続先を明示する
    いわゆる「Lチカ」で動作確認するために、Pepper用に書かれたpdeファイルを探した(横着ですみません…)ところ、エレキジャックさんのWebサイトにフォローアップ記事があり、これを使うことにしました。それぞれの環境で「/dev」以下を確認し、どのように認識されているのかを確認した上で修正します。
    • 修正前:gainer = new Gainer (this, Gainer.MODE1);
    • 修正後(Mac):gainer = new Gainer (this, "/dev/cu.usbmodem****", Gainer.MODE1);
      修正後(Linux):gainer = new Gainer (this, "/dev/ttyACM*", Gainer.MODE1)
    #フォントが導入されていない場合は、続く「myFont…」と「textFont…」の行をコメントアウトしてください。
  4. 回路を組んでPepperをつないで動作確認する
    記事の通りに回路を組んで、Processingからpdeファイルを動かす(Run)と、ちゃんと期待通りに動いてくれました。他のものも試してみましたが、問題ありませんでした。

はじめは、すぐに済むだろうと思ったPepperの動作テストでしたが、思いの外時間がかかってしまいました。KNOPPIX 6.2では、Ubuntuと同じ方法でやっても動きませんでした。こちらはもう少し時間がかかりそうです。たぶん私以外にも苦労されている方がいらっしゃるだろうと思って、ここにまとめてみましたので参考にしてみてください。
#「自己責任で」というのは、いつものパターンですが…。

2010年9月18日土曜日

2年目のカブトムシの幼虫飼育中

猛暑が続いた夏を過ぎて、秋の気配が感じられるようになってきました。まだカブトムシが生きている8月から始めた卵からの幼虫飼育ですが、昨年の同じ時期に比べてたくさんの幼虫がみつかりました。とはいえ、飼いきれないほどたくさんのカブトムシを育てても仕方がないので、14匹は麦茶ボトルに飼育用マット(クヌギベース)を入れて個別に育てて、残りの卵はバケツと飼育ケース(成虫が入っていた)に入れたまま、しばらく放置していました。1ヶ月半ほど経ったのでマットの様子を見てみると、糞の比率がだいぶ多くなってきていたのでマットの交換をすることにしました。

卵はすっかり幼虫に孵化し、出るわ出るわで29匹もおりました。顔だけの残骸も2つ見つけたので、適当に淘汰されたであろうことはわかりましたが、それでもちょっと窮屈な状態です。そこで、飼育ケースをもう一つ購入しようと、近所のホームセンターに行きました。9月も半ばだというのに、カブトムシ飼育用品コーナーが残っていて、幼虫飼育もちょっとしたブームなのかと思いながら、飼育用マットと飼育ケース(特売品でサイズ的にちょうどよいものが見つかった)を購入してきました。

自宅に戻って、バケツと飼育ケースの中身をひっくり返してふるいにかけて糞を取り除き、以前に買っておいた飼育用マットに加水して混ぜました。(今回購入したものは、11月頃に使う予定)バケツ飼育をやめて2つの飼育ケースにそれぞれ大きさ別に幼虫を入れてやりました。今まで使っていた大きくて深い飼育ケースには大きな幼虫を、今回購入した平たい飼育ケースには小さい幼虫を入れました。幼虫たちは、早速もぞもぞとマットの中に潜り込んで行きました。これからしばらく、旺盛な食欲を見守って行きたいと思います。

3年目を向かえたコクワのメスは、飼い主(私)の忙しさからパートナーに巡り会わないまま越冬することになりそうです。コクワがこんなに長生きだとは、思ってもみませんでした。

2010年8月21日土曜日

プログラミングができるWebアプリケーション(2)

以前に、プログラミングができるWebアプリケーションとして、「eBasic」と「オンライン版ドリトル」を紹介しましたが、これらのWebアプリケーション以外にも、子ども向けのプログラミング学習環境として活用できそうなものがあっちこっちで紹介されていたので、以下にまとめておきます。

PEN
Webサイトでも「初学者向けプログラミング学習環境」として紹介されているだけあって、とてもわかりやすい作りになっています。PENで使われるプログラミング言語は、「xDNCL」と呼ばれるもので、大学入試などに使われる「DNCL」に準拠したものだそうです。アプレット版があって、Web上で使うことができます。プログラミングの経験があれば、簡単に使いこなせると思います。

ビスケット
Web上でプログラミングをすることを前提とした作りになっているものです。おもしろい特徴として、絵を描く場所(キャンバス)を共有することができ、共同作品を作ることができます。もちろん、独りでコツコツと作り上げても良いのですが、いずれにしてもネット上で公開することができるので、友だちの作業を引き継ぎながら完成させて行くということも可能です。残念ながらMac版のFirefoxでは、部品を作る窓の下の方がうまく表示できず、作品を作ることができませんでした。これはとても残念です。(改善して頂けるとうれしいです。)

プログラミン
文部科学省のサイトで公開されているもので、かなり手の込んだ作りになっています。はじめの見た目はそうでもありませんが、使っているとScratchによく似ていることがわかってきます。部品のキャラクターはとても親しみやすいのですが、各部品をドラッグしてくるまで各部品同士にどのような関連性やつながりを持たせられるのかがわからず、ブロックの形や色で使い方や関連性をアフォードするScratchに比べると、完成度は今一かなぁという気がします。また、コンピュータやネットワークの環境によっては、かなり重たく感じる場合もあるのではないかとも思います。

いずれにしても、子どもたちに使わせてみないと本当に使いやすいかどうかわかりませんが、各Webアプリケーションが競い合って独自の方向を目指すのではなく、共通化できる部分は共通化し、互換できるところは互換させつつ、それぞれのよさが生かせるような流れになってくれるとうれしいなぁと思います。
#贅沢な要望とは思いますが…。

2010年8月20日金曜日

フィジカル・コンピューティングでおもちゃがロボットに

フィジカル・コンピューティングを小学校に持ち込む(←サービス終了につき閲覧不可)研究をしていますが、「ロボット制御」という切り口で考えたときに、安く手に入る市販のロボット教材が、どれもWinのみに対応したものばかりで、MacやLinuxを使う私にとっては、動作確認すらできない状態なのがとても歯がゆく感じていました。
#もちろん、ロボットを動かすためのGUIのツール(アプリケーションソフト)がないというだけで、シリアルポートを開けてコマンドを流し込めば動く可能性があるのでしょうけど、そんなことをする技術力もないし、動くかどうかもわからないものを購入できるほどの経済力もないのです。(^_^;;;

しかしちょっと発想を変えて、ArduinoGainerなどのオープンハードなマイコン基板を使うことで、電池で動くおもちゃや電子部品などを仕込むことができるおもちゃを、立派(?)なロボット仕立てることができるのではないかと考えました。つまり、MacやLinuxとArduinoなどをつないで、そこにおもちゃをつなげるようにするとおもちゃがロボットになるということです。これなら、もともとおもちゃですからWin専用ということもなく、穏やかな気持ちで作業に取り組めます。(私は、100円ショップやリサイクルショップなどを愛用しています。)

また、ArduinoならPCがなくても電池で動作するので、さまざまなおもちゃを自律型のロボットに仕立てることもできます。光らせたりメロディICをならしたりする程度なら、フォトカプラとの組み合わせでON/OFFを制御することが可能です。振動モータ程度ならトランジスタでもO.Kですが、普通のDCモータを動かしたいのならモータドライバIC(ブリッジドライバ)を使うことで動かせるようになります。いずれも、数十円から数百円程度で手に入る部品ばかりです。ちょっとだけ電子工作の知識や技術が必要ではありますが、それでも、数千円から数万円するロボットを購入することを考えれば、だいぶ経済的ではないかと思います。
#その意味から考えると、ミュウロボのコストパフォーマンスはすばらしいですね。できることは限られていますが、ArduinoやGainerなどで同じようなことをしようとすると、どうしてもコスト的に勝てません。(Pepperなら何とか行けるかな?)

もう一つ考えたいのは、リモコンやラジコンの利用です。コントローラをちょっと改造することで、本体に手を加えることなくロボットとして使うことができます。特に無線のコントローラで動作するおもちゃは、ArduinoやGainer+PCなどをコントローラにつなぐことで、本体に改造を加えることなく自律型のロボットにすることができます。ついでに、各種センサを取り付けて動きを変えることができたら最高ですね。これでチープなおもちゃも立派なロボットです。(私は、イスペット赤外線リモコンユニットを活用しようと考えています。有線のコントローラもあります。コストはちょっと高くなってしまいますが…。)

やりたいことはたくさんありますが、そろそろ子どもたちとどんな活動をするか決めて行かなければならないので、計画を文章化しながら考えを整理したいと思います。