2011年1月29日土曜日

HAIKU r1α2インストール成功

今さら何のために?という質問はなしにして頂きたいのですが、(^_^;;; BeOS(既にBe社が解散しているのでWikipediaを参照)の後継OSとして、オープンソース・コミュニティによって開発が進められている「HAIKU(日本では、HAIKUユーザーグループJPBE.netで情報提供されています)」ですが、α2が公開されたので、以前にインストールしていたr1α1をアップデートすることにしました。

実は、だいぶ前にα2のISOファイルをダウンロードして、CDに焼いてインストールを試みていたのですが、どうしてもうまくいかず試行錯誤を続けていました。今回は、はじめからインストールし直すことにして、HDDをKNOPPIXのcfdiskで初期化してからインストール作業を始めました。作業にあたっては、HAIKUユーザーグループサイトの「インストールガイド」を参考にしました。
#JPBE.netの「はじめよう!HAIKU」にも情報がまとまっています。

上記のWebサイトを見て行くと「libwebcore.soのインストール中に General System Error が出る場合は…」という記述があり、対処方法を示す英語のページに飛ぶことができます。これまで、インストールがうまくいかなかったのはこのためだったので、書いてある通りに対処することにしました。

まず、HAIKUをCDから起動して、デスクトップのDeskbarメニューから「Applications」→「Terminal」を起動します。次のコマンドで、一時的に一部の.soファイルを削除します。
rm -rf /boot/apps/WebPositive/lib/*.so
#CDから起動しているので、再起動すればもとの状態で使うことができます。

この後は、インストールガイドに従ってインストール作業を行って、悔しいくらい何の問題なく動作確認することができました。(CPU:Celeron D 330、MEM:1GBの自作機です)もっと早くこの情報に巡り会いたかったです。

次に、「日本語環境を整える」を参考にして、日本語が使えるようにしました。日本語表示は、Fontsの設定(標準でインストールされているVL PGothicを使う)をして、Localeを「Japanese」優先(マウスで上位に移動させる)にするだけです。日本語入力は、Terminalを起動して以下のコマンドを実行すると、CannaIMが使えるようになります。
ln -s /boot/optional/system/add-ons/input_server/methods/canna /boot/system/add-ons/input_server/methods/canna
Webブラウザを使いたい場合は、先ほどのインストール作業で一時的に削除してしまった.soファイル群を回復しなければならないので、Terminalで以下のコマンドを実行します。
installoptionalpackage webpositive
#DHCPサーバが動いている環境が必要です。

現状ではたいしたことはできませんが、今日のところは取りあえずここまでということで。

2011年1月20日木曜日

ツェナーダイオードの代わりにLEDを使う

これまで、格安Arduino互換機を作るために、DiavolinoejackinoMetaBoardなどを試してきましたが、Metajackino?(仮称)が完成し、その作り方を拙作Webサイトで公開しました。今まで様々な形でご支援いただいた皆様に感謝いたします。m(_ _)m

中でも、「ちびでぃ〜の」の件でお世話になった「ちっちゃいものくらぶ」の@tomonnn1さんには、その後のMetajackino?を作る過程でもお世話になりました。見ず知らずの私のようなものに対しても、快く対応していただいて、本当に感謝しております。で、わかったことを一つ。

Metajackino?をUSBにつなぐために作った専用ケーブルの回路の中で、ツェナーダイオードを使う部分があるのですが、ちっちゃいものくらぶのちびでぃ〜のの作り方では、発光ダイオード(LED)になっているのがずっと気になっていました。MetaBoardの回路図USB直結Arduino互換ボードの回路図ではツェナーダイオードになっているのに、LEDを使うというのはどういうことなのか。しかも、アノードとカソードのつなぎ方が逆になっているし。取りあえず、やってみるだけやってみようと思ってちびでぃ〜のキットを完成させましたが、まだよくわからないので、自分で作ったときには小信号ダイオード(1N4148)でやってみました。これでも動かないこともない状態だったので、まぁいいかと思っていたところ、@tomonnn1さんから「Vfが足りない」との指摘がありました。

そもそも電子部品の知識なんてほとんどないに等しい私ですので、Vfとは何ぞやと思って調べてみました。確かにLEDの仕様の中にVfの項目があり、数V程度の値が記されています。すると、Wikipediaの「発光ダイオード」について書かれた中に、「ツェナーダイオードの代用品として」という記述を見つけました。つまり、LEDはツェナーダイオードと代替できるということのようです。そのための手がかりとしてVfの値が重要だということのようで、@tomonnn1さんの「白か青」との指定に従って、ネットで白と青のLEDを探して、Vfの値を調べてみました。確かに、白や青のLEDは3.xV程度のVfになっているものが多かったです。これは、今回必要なツェナーダイオードの降伏電圧の値に近い値です。(小信号ダイオードではVfが1.0Vになっていました)

ここまでわかったので、Metajackino?のUSB接続ケーブルを直すことにしました。幸い、手元に青色LEDがあったので、それを使いました。使用感としてはさほどの差はありませんが、なぜ、ちびでぃ〜のキットではLEDを使っていたのかということがわかってすっきりしました。

2011年1月10日月曜日

MetaBoard(ちびでぃ〜の)を試してみました

できるだけ安価にArduinoを作ろうと考えて、いろいろと試しているところですが、拙作のWebサイトでも吐露した通り、USBポートへの接続(FT232RLなどのUSBシリアル変換ICが必要)がネックになっていました。そんな折、ATmegaxx8をUSBに直接つなぐ方法があることがわかったのでネットで探し回ると、MetaBoardというものがあることがわかりました。子どもたちに使わせることを考えると、ブレッドボードに載せて使うものよりも、Arduino UNOのようなボードになっているものの方が良いと思っているので、これを使おうと考えました。

日本でMetaBoardを制作・頒布されている「ちっちゃいものくらぶ」で問い合わせたところ、MetaBoardは、本家Arduinoボードのちょっとズレたピンソケットを変更してあるので、Arduino用シールドには対応していないとのこと。それでは、これまでArduino用に作ってきた自作シールドたちが無駄になってしまいます。そこで、「ちびでぃ〜の」キットを使って、Arduinoに合わせた互換ボード(Diavolino PCBATmega168/328用マイコンボードなど)と組み合わせてArduino互換機を作ってみることにしました。

早速ちびでぃ〜のキットを購入して、ArduinoやMetaBoardの回路図を見ながら、「アーデュイーノ互換マイコン・ボードを作る」に付いていた「ejackino-mini」に載せて動作確認してみました。(とりあえず、最小の部品構成と回路の変更で、どこまでArduinoらしくなるかをチェックしたかったので、Metajackino-mini?的なものを作りました)ATmega328Pを載せる28ピンICソケットの13番ピンをGNDにつながるようにジャンパーして、MetaBoardブートローダ書き込み済みのATmega328Pを挿し、「USB直結Arduino互換ボード」や「ちびでぃ〜の作り方」を参考にしながら、USBのD+とD-に抵抗(R1,2…51Ω、R3…1.5kΩ)やLED、ツェナーダイオード、セラミックコンデンサをつないで、4番ピンと6番ピンに接続しました。USBから供給される5VとGNDは、ejackino-mini基板のVとGにそれぞれ接続しました。

次に、Arduino-IDEの設定に取りかかります。まず、Arduino-IDEの内容を表示して、「Java」までたどったら、「hardware」→「arduino」内のboards.txtにMetaBoardの情報を書き込みます。MetaBoardに対応した.hexファイルは、MHVBoard用ファイル群に含まれているので、これをダウンロードして展開し、同じくArduino-IDEの「arduino」フォルダ内の「bootloaders」の中へ「metaboard」フォルダをコピーします。(この他にもファイルやフォルダがあるので、必要に応じてコピーします。ただし、boards.txtをファイルごとコピーしてしまうと、設定が168用なのでうまく動きません。テキストエディタで開いて、必要な部分だけをコピー&ペーストするのが良いでしょう)

こうしてできあがったejackino-miniに組んだちびでぃ〜のに、Arduino-IDEから「Lチカ」スケッチを流しこんでやると、無事にArduinoらしい動作をしてくれました。これで、FT232RLなどのUSBシリアル変換ICを使わなくても、USBに接続可能なArduinoが作れることがわかりました。
#スケッチをATmega328Pに書きこむ際には、Uploadボタンを押した直後に、ejackino-miniのリセットスイッチを押す必要があります。(1度うまくいかなくても、再度挑戦するとうまくいくことがあります)

この実験で得られた知見を利用すれば、秋月のATmega168/328用マイコンボードをベースにして、格安のArduino互換機が作れそうです。部品の構成をどこまで減らせるのか、その際、どの程度回路を変更(パターンを切ったりジャンパしたり)すれば良いのかを検討する必要がありますが、今後も時間を見つけて研究を進めていきたいと思っています。

【追記】ついでに、ちょっと古いですが「AVRFuses」というAVRライターソフトを見つけました。これを使うと、簡単にブートローダなどが書き込めるらしいです。(Arduino-IDEで用は足りているのですが…)(2011.1.10)

2011年1月8日土曜日

Arduino互換機を作ってみました

前回も話題にしたDiavolinoですが、基板のみを買ったものに部品を付けて組み立ててみることにしました。使用した部品は以下の通りです。(数字は必要数)
  • 1kΩ抵抗…1
  • 10kΩ抵抗…1
  • 0Ω抵抗(ジャンパー)…1
  • 0.1μF積層セラミックコンデンサ…4
  • 18pFセラミックコンデンサ…2
  • 16MHzクリスタル…1
  • 小型タクトスイッチ(2端子タイプ)…1
  • ATmega328P…1
  • ICソケット(28ピン)…1
  • 三端子レギュレータ(XC6202P502TB:5V150mA)…1
  • 10μF電解コンデンサ(背の低いもの)…1
  • LED…1
  • ピンソケット(1×6)…2
  • ピンソケット(1×8)…2
  • ピンヘッダ(2×3)…1
これだけの部品を用意すれば、Arduino互換機が作れちゃうのですからありがたいものです。入手しにくかったのは、2端子タイプのタクトスイッチと三端子レギュレータ、背の低い電解コンデンサです。Diavolino基板のシルク印刷を見ると、三端子レギュレータのところには「750L05」と刻印さ れています。しかし、この部品を見つけることができず、必要な電圧と電流の値を手がかりに、上記のものを選びました。あとの2つは、あっちこっち探し回っ て何とか見つけることができました。

次に、以前にJapaninoのクリスタルを使えるようにするために購入した「AVRISPmkII」を使って、ATmega328Pにブートローダを書き込みます。(この作業をしないとArduino互換機にはなりません)ネットで探しまわっても、MacからAVRISPmkIIとArduino-IDEを使ってATmega328Pにブートローダを書き込む方法についての詳しい情報が見つかりません。(むしろ、「できない」「やめた方がいい」という情報ばかり)そこで、本当のところはどうなのか実験も兼ねてやってみることにしました。

〈作業手順〉
  1. 最新のArduino-IDE(今回は0022を使用)をダウンロードして展開し、「アプリケーション」フォルダにコピーする。
    #CrossPack-AVRは、以前の作業でインストール済みですが、まだの場合はこれも必要です。
  2. 組み立て終わったDiavolinoのICSPピンに、Macに接続したAVRISPmkIIをつなぐ。(「▼」マークを合わせるようにつなぐこと)
    #Diavolino自体にも電源が必要なので、電池などをつないでおく必要があります。
  3. Arduino-IDEの「Tools」メニューから、「Board」→「Arduino Pro or Pro Mini (5V,16MHz) w/ ATmega328」を選択して、同じく「Tools」メニューから「Burn Bootloader」→「w/ AVRISP mkII」でブートローダを書き込む。
    #AVRISPmkIIとDiavolinoのLEDが点滅して、書き込んでいる状態が確認できます。少し時間がかかるので、慌てずに待ちましょう。
以上で作業は終了です。試しにLチカ実験をしてみましたが、問題なく動いてくれました。この方法が一番簡単だと思います。

ついでに、マルツパーツ館で購入した「Arduino Pro(5V,16MHz)」にピンソケットやピンヘッダをハンダ付けして、Diavolinoと同じように使えるか実験をしてみました。こちらも問題なく使えました。できるだけ安価で気軽にArduinoが使えるようになることを、そして、子どもたちのアイデアをカタチにする道具として使えるようになることを目指して、これからも研究を重ねていきたいと思っています。(…続きは次回)

2011年1月2日日曜日

Diavolinoは教材として使えるか

アメリカ・カリフォルニア州にあるEvil Mad Science LLCで開発・販売されている「Diavolino」というArduino互換機があります。簡単に手に入る市販部品を使って、最小限の部品で構成されたもので、キットだけでなく基板のみでの販売もしています。(10枚セットで$36)残念ながら日本に取り扱い店がなく、通信販売の個人輸入で購入するしかありません。そのため、どうしても送料が高くなる上に、注文から到着まで、えらく時間がかかるという問題があります。とはいえ、使ってみないことにはどれだけのことが可能なのかわからないと思い、個人輸入に初挑戦してみました。

注文してからすぐにメールが届き、次いで「ご注文の品を送ったよ!」というような文面のメールが来ました。できるだけ送料を安くあげようと考えて、ちょっとリスクのあるUSPSのPriority Mail Internationalで送るようお願いをしたので、総額は$44弱。2週間がかりでやっと届いたDiavolinoのキットと基板は、簡単な包装で、日本郵便EXPACK500のような、A4サイズの平たい厚紙の封筒に入っていました。

中の部品や基板に問題はありませんでしたので、正月に組み立ててどの程度使えるものか実験をしてみました。
#詳細は、拙作のWebサイトをご覧ください。

結論から言うと、チープな割に問題なく使えます。手に入りやすく電子工作に向いている部品を使っている(表面実装部品ではないということ)ので、基板だけ大量にあれば気軽にArduino互換機を作ることができます。問題は、Diavolinoは直接USBポートにつなぐことができないので、USBシリアル変換ケーブルなどを用意しなければならないことです。それも、TTLレベルでの変換が必要なので、USB-TTL変換ケーブルを購入するか、FT232RLを使ってUSBシリアル変換基板を作らなければなりません。

このあたりの問題を乗り越えることができれば、Diavolinoを教材として使うのもそう難しいことではないと感じました。