2011年11月28日月曜日

Dashメニューのアプリケーションアイコンの設定

自宅で使っているUbuntu 11.10で、ネットでダウンロードしたり、後からパッケージマネージャでインストールしたりしたアプリケーションのアイコンやカテゴリーがうまく設定できないという問題が発生していました。今までのインターフェイスなら、プルダウンメニューにアイコンが小さく表示されるだけだったので気にならなかったし、カテゴリーが不明な場合でも、探すのは難しくなかった(←詳しくは忘却の彼方)のに、新しいDashメニューだと大きなアイコンが使われることもあって、とても使いにくいし探すのが面倒だと感じていました。そこで、以前の経験を踏まえて「/usr/share/applications/」フォルダの中の.desktopファイルをいじればどうにかなるだろうとあたりを付けて、設定してみることにしました。

まずは、ネットでダウンロードしてインストールしたLPCXpressoのdesktopファイルの設定を見ましたが、インストールが成功しているだけで、中身はほとんど設定されていない状態でした。そこで、まずICONづくりから始めることにしました。Webサイトから適当な画像をダウンロードして、GIMPを使ってそれらしく切り取って、名前をつけて保存し、「/usr/share/icons/」フォルダに入れました。

次に、「sudo vi …」でLPCXpressoのdesktopファイルを開き、「icon=/usr/share/icons/(iconファイル名)」の項目を設定しました。カテゴリーなどの設定は、同じ「/usr/share/applications/」フォルダ内のscratch.desktopファイルを参考にして設定をしました。ここで再起動すると、無事にアイコンも表示されて、意図したカテゴリーに分類されているのが確認できました。

Ubuntuソフトウェアセンターからインストールしたものの中に、アイコンがまともに表示されないものがあったので、同じようにICONを作って設定を試みました。ネットでダウンロードしたものに比べて他の設定には問題がなかったので、「icon=」の設定だけを変更しました。こちらも無事にアイコンが表示されるようになりました。

ここまでやってきて、この操作がデフォルトなら、もう少し簡単にできる方法はないだろうかと感じました。(きっとあるんだろうと思いますが…)

2011年11月22日火曜日

KNOPPIXの時刻設定…失敗

常用しているKNOPPIXがインストールされているPCで、画面下のパネル部分に表示されている時刻がずれているのが気になっていました。GUIだけで設定できるようになっていないか、あっちこっち探してみたり、右クリックでメニューが出てこないか試してみたりしましたが、いずれも徒労に終わりました。

仕方がないので、ネットで情報を探してみると、何となく「date(システム時刻)」コマンドや「hwclock(ハードウェア時刻)」コマンド辺りを使うのだということがわかってきました。このPCは、スタンドアローンなため、タイム・サーバのお世話になるわけにもいかず、何とか手動で時刻の設定をしたかったのです。

まずは、「Root Shell」を起動し、dateコマンドを使って以下のように設定をしてみました。

# date -s "2011/11/dd hh:mm"
※「dd」は設定した日付、「hh」は時間、「mm」は分。実際には2ケタの数字が入ります。

これで、dateコマンドで確認すると、確かに時刻が変更されていました。続けてhwclockコマンドでハードウェア時刻をシステム時刻に合わせました。

# hwclock -w

これも同じく、hwclockコマンドで、ハードウェア時刻が合っているのを確認しました。

ここまでで時刻の設定は完了と思ったら、タイムゾーンの設定がUTCになっていることに気づきました。このままでも支障はないのですが、様々なファイルを他のPCやMacと共有しているので、日本時間(JST)にしておきたいと考えました。しかし、dateコマンドのヘルプを見ても設定の仕方がわからなかったので、またまたネットに頼って探してみました。すると、「# export TZ=JST-9」を使ったり、「/etc/localtime」を「/usr/share/zoneinfo/Asia/Tokyo」へのシンボリックリンクにしたりする方法があることが分かりましたが、どれもうまくいきません。再起動すると、元に戻ってしまうのです。解決方法が見つかっていませんが、取りあえずやったことだけ書いておきます。

  1. タイムゾーンを再設定する
    「# dpkg-reconfigure tzdata」で設定ウィザードが起動するので、「Asia」→「Tokyo」に設定する。
    「# vi /etc/default/rcS」で設定ファイルを開くと、「UTC=no」になっていた。これは、再起動しても変わらなかった。
  2. 「date」コマンドでJSTになっていることを確認できた。
  3. 「# hwclock -w  --localtime」でハードウエアに時刻を書き込んで、「hwclock」コマンドで時間にずれがないことを確認しました。
  4. この時点で「/etc/localtime」が、「/usr/share/zoneinfo/Asia/Tokyo」にリンクされていることを確認した。

これで、タイムゾーンが日本時間になりました。ところが、再起動すると、また元のUTCに戻ってしまい、すべての設定がパァになってしまいました。時計は正しいのに、UTCなのは気持ちが悪いし、シンボリックリンクを作ったはずなのに、跡形もなく消えてなくなっているのがどうも腑に落ちないのですが、これ以上いじっていても時間の無駄なのでこのまま使うことにしました。
#そろそろ、KNOPPIXを使うのも考えないといけませんね。Ubuntuをカスタマイズして4Roboを作ろうかなぁと考えているところです。

2011年11月17日木曜日

OpenJDKの日本語フォントの設定

KNOPPIX 6.7.1には、OpenJDKが導入されていて、Javaがすぐに使える状態になっています。しかし、日本語フォントの設定ができていないため、日本語が表示されないという問題があります。今回は、「ライブCDの部屋」から、比較的日本語対応が進んでいるKNOPPIX 6.7.1CD(実はDVDにしか入らない)をダウンロードしてDVD-Rに焼き、職場で常用しているHPのPCにインストールしてみました。
#そのためにCD-RWドライブをDVD-RWドライブに換装しました。

そこに、Dolittle 2.3をインストールして使うことができるか試してみました。(そもそもKNOPPIXでDolittleが使えるようにしたかったのでした)うまくいくことを期待していたのですが、結果はダメでした。仕方が無いので日本語フォントを設定してみることに。ネットでいろいろと探し回った結果、OpenJDKの日本語フォント設定は、それほど難しくないことがわかりました。その手順を以下にまとめておきます。

  1. 日本語フォントを格納するフォルダを用意する
  2. KNOPPIX 6.7.1のOpenJDKで使う日本語フォントは、「/usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallback/」以下に日本語フォントファイルの実体もしくはシンボリックリンクを入れておくことで使うことができるようになります。まずは、このフォルダを用意します。
    $ cd /usr/lib/jvm/java-6-openjdk/jre/lib/
    $ sudo mkdir fonts/fallback -p
  3. 日本語フォントのシンボリックリンクを作る
  4. 次に、今作った「fonts/fallback/」フォルダの中に日本語フォントファイルへのシンボリックリンクを作ります。日本語フォントは、「/usr/share/fonts/truetype/」内のものを使うことにしました。
    $ cd /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallback/
    $ sudo ln -s /usr/share/fonts/truetype/takao/TakaoPGothic.ttf
    $ sudo ln -s /usr/share/fonts/truetype/takao/TakaoPMincho.ttf

たったこれだけで、Javaのソフトで日本語が表示されるようになります。試しに先述のDolittleを使って日本語表示に問題ないか確認しましたが、「かめた=タートル!つくる。」も含めてまったく問題はありませんでした。過去に同じ問題に遭遇した時、sun-Javaを使うことにしてOpenJDKは諦めてしまったことがありました。でも、今回は必要に迫られてOpenJDKでの日本語表示に挑戦しましたが、これほどあっさりできてしまうと、諦めずに挑戦しておけばよかったなぁとちょっと後悔しました。

2011年11月3日木曜日

小学校フィジカル・コンピューティングの教材研究

今年もSPPの支援を受けたフィジカル・コンピューティングの学習活動が始まりました。今年の研究テーマは、「フィジカル・コンピューティング環境を活用して豊かな未来を創る子どもたちを育てる」としました。子どもたち(6年生)の学習課題は、「みんなの願いが実現する社会を目指して---人と人とをつなぐコミュニケーションツール作り---」とし、ScratchKNOPPIX上で使用)にPicoBoardWeDoHelloBoardなのぼ〜どなどを接続して、人間関係を豊かにするためのコミュニケーションツールを作る活動をしています。
#昨年度の報告書は、平成22年度実施報告書としてサイトにアップされています。

子どもたちに教えるためには、こちらも教材研究をしておかなければならないということで、授業を進めながらせっせと教材研究に励んでいるところなのですが、先日、拙作のWebサイトを更新し、今年の教材研究でわかったことをまとめました。その続きとして、なのぼ〜どで実験したことを記録しておきます。

授業のために用意した赤外線LED(TLN110(F))と赤外線フォトトランジスタ(TPS611(F))は、確実に動作するものをと考えて、仕様書などを確認しながらこの組み合わせを選びました。秋月で扱っている安価なものは自費で買っていたのですが、確認する暇がなかった(単に知識が不足しているだけですが)のです。今回、教材研究の合間に、秋月で扱っているものでちょっと実験をしてみたところ、OSI5FU5111C-40に1.6kΩくらいの抵抗をつけて、L-51ROPT1D1を赤外線センサとして使う(Aに接続する)と、良い感じに使えることがわかりました。反応する角度が狭いので、真っ直ぐ向きあわせなければなりませんが、ピッタリ合うと抵抗値がかなり低くなりました。
#赤外線LEDは、更に安価なOSI5LA5113Aでもいけると思います。

ついでに、もう少し実験を続けてみました。圧電スピーカーなどの小型のスピーカーで音が出たので、超音波スピーカー(超音波センサとしても使える)でもできるのではないかと思ってやってみました。結論としては、反応しないこともないのですが、微妙な感じでした。もしかすると、PWMの周波数の問題ではないかと思いましたが、どうすれば良いのか解決する方法がわかりませんでした。

次に、振動センサで抵抗値の変化を測定してみましたが、反応はイマイチで使えるとまでは言えませんでした。同じように圧力センサでも実験してみましたが、こちらは十分に使えるレベルでした。

一方、WeDoのUSBハブにモータではなくLEDをつけてつくかどうかやってみました。普通のScratchでは、残念ながら何も起きないので、例によって阿部さんにお願いをしてScratchをカスタマイズして頂き、LEDがつくようにして頂きました。モータも一緒に動かすことができるので、ちょっと面白い使い方ができそうです。ScratchにLEGO WeDo USBハブとLEDをつなげて、可視光通信システムなんてのもできそうな感じです。