2012年2月25日土曜日

Puppy LinuxでArduino-IDEを使えるようにする

前回までに、PuppyJavaをインストールして、Dolittleを動かすことに成功しましたが、Arduino-IDEを使えるようにしてPuppyのリマスタCD(Puppy4Robo)を作ってしまおうと考えて作業を進めています。

Arduino-IDEでプログラミングしてArduinoに流しこむためには、それぞれの過程で必要なものがたくさんあります。まずは、前回インストールしたJREをJDKに置き換える作業を行いました。Javaのダウンロードサイトからダウンロードした「jdk-6u31-linux-i586.bin」を「/usr/java」フォルダ内で解凍します。すると、「jdk1.6.0_31」という フォルダができあがって、必要な実行ファイルやライブラリ類などが現れます。このままでは動かないので、「/usr/bin/」内で「ln -s /usr/java/jdk1.6.0_31/bin/java java」としてシンボリックリンクを作ります。これで、Javaが使えるようになります。

次に、日本語フォントを設定します。「/usr/java/jdk1.6.0_31/jre/lib/fonts/」の中に、mkdirで「fallback」というフォルダを 作って、その中に「ln -s /usr/share/fonts/default/TTF/M+1P+IPAG.ttf M+1P+IPAG.ttf」としてシンボリックリンクを作りました。これで日本語表示も問題なくなりました。

この状態でもArduino-IDE自体は起動するのですが、使える状態ではありません。できるだけ簡単に使えるようにしたいと考えて探しまわっていると、「arudino-ubuntu-lucid-i386-debs.tar(※私の間違いではありません)」という便利なものがあることを知りました。(Puppy Linux Discussion ForumのHow to Install Arduino on Lupu-500に詳しく書かれています)早速ダウンロードして、片っ端からインストール(debファイルをクリックするとインストールするか聞かれるので指示に従う)してみました。すると、「gcc-avr」だけはどうもうまくインストール出来ませんでした。

 そこで、gccのdebパッケージを探すことにしました。Debianパッケージサイトから安定していて、バージョン番号が揃いそうなところを選んでダウンロードしました。インストールしたものをインストール順に並べると以下のようになります。
  1. cpp-4.3_4.3.2-1.1_i386.deb
  2. gcc-4.3-base_4.3.2-1.1_i386.deb
  3. gcc-4.3_4.3.2-1.1_i386.deb
  4. gcc-4.3-locales_4.3.2-1.1_all.deb
  5. gcc-avr_4.3.2-1.1_i386.deb
これをインストールすると、Arduino-IDEでプログラムしたものをコンパイルして、Arduinoに流しこむことに成功しました。(Lチカも確認できました)これで、Puppy4Roboの完成が見えてきました。

2012年2月23日木曜日

Puppy LinuxでJavaソフトを動かす

前回は、Puppy LinuxScratchを動かすところまでできましたが、Javaをインストールして、DolittleArduino-IDE、Processingなどを動かせたら4Roboとしても申し分ない状態になるので、それをめざして実験を続けてみました。

はじめに、PuppyパッケージマネージャからJava関連の物を探しましたが見つからず、OpenJDKで何とかならないかと思っていろいろとやってみたのですが埒があかない感じだったのでこちらも断念しました。そこで、初心に返ってOracleのJavaを使うことにしました。
#「[Puppy]Javaのインストール」に詳しいので参考にしてください。

Javaのダウンロードサイトから、Linux用の自己解凍版をダウンロードして、「/usr/」の中に、mkdirで「java」フォルダを作ってその中で解凍します。すると、「jre1.6.0_x(xはバージョン番号)」というフォルダができあがって、必要な実行ファイルやライブラリ類などが現れます。このままでは動かないので、「/usr/bin/」内で「ln -s /usr/java/jre1.6.0_x(xはバージョン番号)/bin/java java」としてシンボリックリンクを作ります。

ここまでで、debパッケージのdolittleをインストールして動かしてみましたが、文字化けして何が何だか訳がわからないものの、起動することには成功しました。

あとはフォントの設定だけなので、以前にやったことを生かして 「/usr/java/jre1.6.0_x(xはバージョン番号)/lib/fonts/」の中に、mkdirで「fallback」というフォルダを作って、その中に「ln -s /usr/share/fonts/default/TTF/M+1P+IPAG.ttf M+1P+IPAG.ttf」としてシンボリックリンクを作りました。これで、日本語表示も問題なくできるようになります。

今回の作業でJREの設定が出来ましたので、JDKのインストールも難しくないかもしれないと思っています。Arduino-IDEなどのインストールまでにはもう少し時間がかかりそうですが、少しずつ作業を進めていきたいと思います。

2012年2月21日火曜日

Puppy Linuxで子ども向けフィジカル・コンピューティング環境を構築する

これまで、KNOPPIX 6.0.1で作ってきた子ども向けフィジカル・コンピューティング環境(Scratchと各種マイコンボードの組み合わせ)でしたが、USBメモリの扱いがイマイチなので、他のLinuxを使うことを検討していました。以前は、Mint 12でやってみましたが、1.起動が遅い、2.カスタマイズドCD作りが面倒、3.日本語化がかなり不完全、という理由で別のものを探していました。

PC自体がかなり古いし、ハードウエアが特殊(?)なので、うまく動くものがなかなか見つからなかったのですが、以前からサイズの小ささで注目していた「Puppy Linux」でdebパッケージがインストールできるようになったという噂を聞いて、試して見ることにしました。

早速、Puppy Linux日本語版ダウンロードサイトから5.1.1-01jのISOイメージファイルをダウンロードして、CDに焼いて古いPCで起動するか確認しました。こちらは難なく成功。第1段階クリアでホッとしました。はじめにつまずいたのは、HDDへのインストールでした。取りあえず、情報を求めて探してみるとAZISATOさんのブログに詳しい手順が載っていたので、参考にさせて頂くことにしました。
これでようやく使えるようになりました。しかし、debパッケージのインストールまでには、まだ克服しなければならないことがありました。debパッケージをクリックするだけでインストール作業をしてくれるらしいことはわかったのですが、何も変化が無いのでどうやら失敗している様子。詳しく調べてみると、必要なライブラリ類が十分に揃っていないことがわかりました。とするとインターネットに接続しなければなりません。自宅に持ち帰ってネットにつないで作業を続けました。

 ネットへの接続は、自宅のサーバ経由で簡単に出来ました。次に、画面左下の「メニュー」から「セットアップ」とたどって、「Puppy パッケージマネージャ」を起動しました。「PETgetパッケージマネージャの設定」をクリックして、データベースを「ただちに更新」しました。(「パッケージレポジトリ」は「puppy-4-official」以下のすべてにチェックを入れました)そして、「dpkg」を検索すると「dpkg-1.15.3.1-w5c」が見つかったので、これをインストールしました。それから、Scratchのdebパッケージファイルをクリックしてインストールしました。今度は、うまく行った感じがしたので、「メニュー」→「ユーティリティ」→「Scratch」とたどって起動を試みましたが起動しません。どうやら、実行ファイルやプラグインファイルのパーミッションの設定がダメなようです。

そこで、デスクトップ上の「端末」を開いて、「/usr/lib/scratch/」内の実行ファイルや「Plugins」内のファイルを「chmod」して実行できるようにしました。これでもまだダメなので、「/usr/bin/scratch」をviで開いて「-vm-sound-pulse」を「-vm-sound-ALSA」に変更しました。これで何とかScratchを動かすことに成功しました。もう少し作業は必要ですが、ここまで出来れば後はそれほど難しくないと思います。

次は、Javaの開発環境をインストールして、DolittleArduino-IDE、Processingなどを動かしたいと考えています。

2012年2月18日土曜日

市販のLEGOをロボット化する実験

気がつけば、何も書かないうちに2月も半ばを過ぎていて、ちょっと慌てて1つだけ今やっていることを書いておきます。LEGO WeDoで使ったUSBハブとモータを使って、既存のLEGOブロックで作った物を動かすことはできないか、実験をはじめたところです。

手始めに、LEGOの青バケツに入っていた車輪などをつかって車らしきものを作り、WeDoモータでプロペラを回して進むかどうかやってみました。(制御ソフトはScratch 1.4を使用しました)青バケツに入っていた小さなプロペラを回しただけでは何も起きないので、直径6cmのDCモータ用のプロペラを加工して取り付けてみました。それでもダメなので、Amazonで購入したCrazy Action Contraptionsの部品を使ってプーリーを組み、回転数を上げて実験を続けると、プーリーを2段にしてプロペラを回転させたところでわずかに動きました。どうやら、構造が複雑になるほど重たくなるために、うまく動かないのだということがわかりました。また、この方法だと例え動いたとしても、静止や左右旋回などのコントロールが難しいので、あまり実用的ではないと判断しました。

次に、Crazy Action Contraptionsで車らしきものを作って、WeDoモータで動かしてみました。はじめは、プーリーで回転数を上げたものをそのまま使ったので、勢いよく飛んでいってしまいました。そこで、逆に回転数を下げて制御しやすい速さに調整しました。すると、前後へ細かく動かすことができるようになり、とても扱いやすくなりました。

 そして、いよいよ一番やりたかった、2つのWeDoモータで車を制御する実験を行うことにしました。Scratchは前回も使わせて頂いた@abee2さんカスタマイズの「NanoBoardAGWithMotors」を使いました。モータが大きくてかさばるので作り方に工夫は必要ですが、前後進だけでなく、左右回転もスムーズに動くものを作ることができました。これなら、子どもたちに作らせることも可能だと思いました。

これからSPPに応募するのですが、並行して来年度の活動をどんなものにしようか思案している最中です。(イヤ、締切間近なので急がないと…)