2010年11月30日火曜日

MacでPK2Cmdを使う

前回の続きですが、「プリント基板で作るPIC応用装置」の中で紹介されている、PIC24FJ64GA002を使ったテレビ表示装置を作ってみることにしました。
#部品は、我が子と都内へ出かけたついでに買ってきました。

まずは、MacからPIC24FJ64への書き込みが可能かどうか調べてみると、PICkit2のサイトから(前回使った)Macに対応した「PK2CMD V1.20 Mac OS 10.4 & 10.5 Universal Binary」をダウンロードしてインストールすればよいことがわかりました。とはいえ、インストーラがある訳ではないので、ターミナルからCUIで作業ができるように、手作業で必要なファイルをコピーすることにしました。

PICkit2のサイトからダウンロードしたPK2CMDの.zipファイルを展開し、ターミナルを起動して展開したフォルダへ移動してから、以下のコマンドでそれぞれのファイルをコピーします。

$ sudo cp pk2cmd /usr/local/bin
$ sudo mkdir -p /usr/local/share/pk2
$ sudo cp PK2DeviceFile.dat /usr/local/share/pk2/

この後、「cd」で自分のユーザフォルダに戻って「.bash_profile」をviで開いて編集します。書き加えるのは、次の一行です。

PATH=/usr/local/share/pk2:$PATH

これで無事に使えるようになりました。試しにターミナルで「$ pk2cmd」と打ち込むと、ヘルプが表示されます。(表示されなければインストールがうまくいっていません)また、「$ pk2cmd -P」とすると、PICkit2につながっているPICの種類を表示します。(見つからない場合は、PK2DeviceFile.datへのパスがうまく通っていません)

最後に「プリント基板で作るPIC応用装置」のサポートサイトからテレビ表示装置用の.hexファイル(.zipファイルに圧縮されている)をダウンロードして自分のユーザフォルダに展開し、以下のコマンドでPIC24FJ64に流し込んでみました。

$ pk2cmd -P -F/Users/<ユーザ名>/ntsc-video/ntsc-video.hex -M -R

これで「KnutPK2(クヌートピーケーツー)」が対応していないPICにも.hexファイルを流し込むことができるようになりました。調子に乗って、「8ピンPICではじめてのマイコン工作を始める」とPIC12F683を購入して、ユニバーサル基板で何か作ってみようと思っています。

2010年11月8日月曜日

Mac & LinuxでPIC開発環境を構築する

以前から気になっていたMicrochip社製のマイコンであるPICを使った電子工作やフィジカル・コンピューティングに挑戦してみようと思い立ち、MacやLinuxで何ができるのか調べてみました。Winなら簡単にPICの開発環境が構築できるようですが、MacとLinuxしか使っていない私は、まずはメインで使っているMacでPICの開発環境を構築するために、あっちこっち調べ回って次のサイトを見つけました。

Mac OSXでPICプログラミング

ここに書かれていることから、とりあえずMacでPICの開発環境を構築することが無理なことではないということがわかったので、教材として「プリント基板で作るPIC応用装置」を購入し、部品を集めて電子工作することにしました。抵抗やコンデンサなどは自宅に在庫があったので、重複して買うのはもったいないと思い、キットではなく足りない部品だけを買い集めることにしました。
#詳しくは、ラトルズのサポートページをご覧ください。

PIC開発環境の構築は、HI-TECHソフトのWebサイトからPIC用のCコンパイラ(正しくは「HI-TECH C for the PIC10/12/16 MCU Family」という名前で公開されている)をダウンロード(ユーザ登録してからログインする必要あり)して展開するところから始めました。すると、「picc-pro_9…」からはじまる.run実行ファイルが現れるので、これをコンソールで「chmod +x(実行権限を加える)」して「./」をつけて実行します。これで、自動的にインストール作業が進んで行くのですが、途中、ライセンスについて同意を求められたり、自分の環境に合わせてどこにインストールするのか聞かれたりするだけで、無事にインストールは成功しました。
#「久世に訊け!!ver.2008」の「HI-TECH C PRO for the PIC10/12/16 MCU family(Lite)」を参考にして作業を進めました。
#「./docs/licence.txt」と表示されたら、キーボードの下向き矢印を押すと続きが表示されます。

ここで、HI-TIDEを探しましたがいくら探しても見つけることができなかったので、「久世に訊け!!…」の記述を信じてXcodeでPIC用Cコンパイラを動かすことにして、先に進めることにしました。

次に、秋月で購入したPICkit2でPICにプログラムを流し込むソフトを導入します。PICkit2のWebページの下の方にある、「pk2cmd(Mac版およびLinux版は非サポートでVer.1.20)」というコマンドラインベースのソフトウエアをダウンロードして展開します。ありがたいことに、先の「久世に訊け!!…」のサイトに、「KnutPK2(クヌートピーケーツー)」というGUIツールが公開されているので使わせてもらうことにしました。

これで、「プリント基板で作るPIC応用装置」で紹介されているいくつかのものは、作れそうです。問題は、KnutPK2がサポートしているPICマイコンの種類が少ないこと。きっと、よく使われるものだけに限定しているのだろうと思いますが、「プリント基板で作るPIC応用装置」で紹介されているものの中に、サポート外のものがあります。また、Gainer miniで使われているPIC18F2550も使ってみたいと思っていますが、これもサポート外です。GUIのツールがダメなだけなので、コマンドラインで使えばよいのかもしれませんが、Macらしくない感じがして微妙な気分です。

【追記】PICのユーザーズガイドを読んでいて、「Eclipse」で開発環境を構築できることがわかってきました。早速、Mac&LinuxでEclipseを導入し直して、PIC開発環境を構築してみました。「POINT YOUR DRAGON」(英語)というサイトがとても参考になりました。これを見ると「GPUTILS」や「SDCC」を使うとよい感じだということがわかりました。幸い、UbuntuのSynapticパッケージマネージャからダウンロード&インストールが簡単にできたので、これを使ってみようと思っています。MacでのSDCCの使い方は、「久世に訊け!!…」がわかりやすいです。ちょっと古いのですがsdcc 3.x系を使えば問題ありません。(2010.11.10)

2010年11月5日金曜日

KNOPPIXのsources.listを直しました

KNOPPIX 6.xのSynapticパッケージマネージャでソフトの更新ができなくなってしまっていましたが、先ほど、気になっていたaptのsources.listの設定の仕方について検索して、以下のサイトを参考にしながら、KNOPPIX4Robo(HDDインストール済)の「/etc/apt/sources.list」を編集してみました。
Linuxゲリラ戦記
Debian JP Project

書き込んだ内容は以下の通りです。

deb http://ftp.jp.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free

sources.listの中身がごちゃごちゃしていて、重複しているものもあったのできれいに整理しました。すると、Synapticパッケージマネージャが落ちなくなって、更新作業ができるようになりました。やはり、整理・整頓というのは大切なんですね。(しみじみ)

次は、KNOPPIXがインストールしてある20台ほどのラップトップPCの更新作業が控えています。これまで、手つかずの状態だったのですが、時間を見つけて作業をしたいと思います。

ちょっと疑問なのは、Scratchのdebパッケージがいつも削除の対象になることです。PulseAudioの設定につまずいているのはわかっているのですが、それにしても更新のたびに削除されたのでは困ります。これも何とかならないものかと思っています。

【追記】安定版だけだとあまりにも古い感じなので、テスト版も含めることにしました。追加したリポジトリは以下の通りです。

deb http://ftp.jp.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free

ついでにvolatileも復活させました。

deb http://volatile.debian.org/debian-volatile stable/volatile main
deb-src http://volatile.debian.org/debian-volatile stable/volatile main

これでもちゃんと動いてくれました。(2010.11.7)

2010年11月4日木曜日

KNOPPIX4RoboをUSBメモリにインストール

これまで更新作業を行ってきたKNOPPIX4RoboをUSBメモリにインストールしてみようと思い立ち、2GBのUSBメモリを2つ用意して作業を開始しました。

もともと、KNOPPIX 6.0.1をベースにして作っているので、KNOPPIX4RoboをCDブートしてUSBメモリを挿し、「システムツール」メニューから「Install KNOPPIX to flash disk」を選べばO.K。のはずだと思ってやってみたのですが、USBメモリへのインストールはできるものの、いざ起動しようとするとX Windowがうまく起動しません。以下のサイトを参考に(ちょっと古い感じだけど、このくらいしか見つからなかったので)チートコード付きで起動を試みました。
http://www.eng.tohoku-gakuin.ac.jp/knoppix/cheatcode.html
http://www.aichi-c.ed.jp/apecknoppix/base34r2/knoppix_chap1.htm

とにかくいろいろと試してみましたが、納得が行く結果は得られず、「knoppix 3」でCUIでの起動には成功したものの、それじゃあ意味がないという感じ。いくつかの違うPCで試してみましたが、どれも似たような結果でまともに起動しません。

CDからは起動できるのに、USBメモリからは起動できないということは、CDのイメージが丸ごとUSBメモリに反映される訳ではないということか、あるいは、CDの場合とUSBメモリの場合とでは起動の仕方が微妙に違っているということか…などといろいろ考えてみましたが解決策が見えません。もう少しがんばってみようと思いますが、消耗戦になりそうです。

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