Tue 04/01, 2008
札幌おジャンク倶楽部 [Misc. ]

2008年4月1日、札幌市内でこのWebサイトを運営する某氏は札幌おジャンク倶楽部の開設を発表した。氏はかねてよりスローライフならぬスローエンジニアリングを提唱しており、リサイクルよりもリユース、都市鉱山から資源を回収する以前に鉱山そのものの活用を掲げている。「徒に最新、高速、高性能を求める時代はもう終わった、金を出せば何でも揃う御時世にジャンクを活用する手間隙を掛けるのは最高の贅沢である。」とのことだが、昨今のジャンクショップ衰退にはココロを傷めており、微力ながらも某Y-K無線を応援したいと言う意味が込められているらしい。

8x8 Matrix LED with GAINER [Electronics ]

GAINER 8x8 Matrix LED先日製作した GAINER I/O モジュールに 8x8 ドットマトリクス LED を接続してみた。想定されている LED 表示器は BU5004-R が指定だが、手元にあった TOM-1588BH-B を使用した。row/column が逆なために配線はちょっと判りにくいが、「GAINERでMATRIXLEDできた!(ra66it)」に説明されている通りで良い。とりあえず Flash 用のサンプル ledmatrix_8x8.swf で動作を確認したところまで。"HELLO WORLD !!" の文字列がスクロール表示される。写真は例によって露光時間が長いためにスクロールする LED の点灯がだぶっている。

more...
Thu 04/03, 2008
Built with Processing [Computer and Networking , Electronics ]

先日発売になった「Built with Processing - デザイン/アートのためのプログラミング入門」の改定版を購入した。本書はエンジニアと言うよりもアーティストをターゲットとしている。私としては "Inside Processing" 的な内容があると嬉しかったのだけど、まぁそれは仕方ない。本家の http://dev.processing.org/ に当たろう。目的は GAINER I/O モジュール用のライブラリのカスタマイズなのだが、それ以前に Processing システムそのものをもっと理解する必要がある。まずは Processing システムの Build から始めてみよう。"HOW TO BUILD PROCESSING ON YOUR FAVORITE PLATFORM" の通りに進めれば良い。svn で取得したバージョンは 0136 で、通常配布されている 0135 より新しいものになっている。

more...
Fri 04/04, 2008
GAINER 用 Processing ライブラリ [Computer and Networking , Electronics ]

Processing の Build ができたところで GAINER ライブラリの Build に進む。まずは gainer_lib_processing_v1-1-0rc3.zip を展開して libraries/gainer 以下の内容を Processing のソースツリー以下にコピーする。その上で build/windows/make-gainer.sh(Windows 版) を用意して、これを実行するとソースコードがコンパイルされて work/libraries/gainer/library 以下に gainer.jar が出来上がる。make.sh で PDE (Processing Development Environment) を起動して Gainer のサンプルが動作することを確認するが、これだけでは実行時にシリアルポート操作のライブラリが見つからないと怒られるから、library/serial/library 以下の librxtxSerial.* rxtxSerial.dll を gainer.jar と同じフォルダにコピーしておくこと。配布版の gainer.jar に比べて少しサイズが大きく、シリアルポートの動作が不安定な感じがする。どうも Build 環境が違うらしい。やっぱり Java は苦手だ。

Gainer ライブラリの make ができたところで、改めて Gainer.java を眺めてみると MODE7(KONFIGURATION_7、Matrix LED 操作) の操作コマンド "anx...x" を使うメソッドがない。という訳で手始めに AS(Flash) ライブラリと同様の scanLine および scanMatrix メソッドを実装してみた(変更済みの Gainer.java)。

scanLine(int ch, int[] values)
 ch (0..7) 行の 8 個の LED に values (0..15) を設定。
scanMatrix(int[] values)
 64 個の LED に values (0..15) を設定。
現在の状態を記憶しておき、指定位置の LED の状態だけを変更するようなメソッドもあると好いかも知れない。

more...
Tue 04/08, 2008
Matrix LED on Processing [Computer and Networking , Electronics ]

sample movieGainer I/O モジュールの MODE7 (8x8 Matrix LED) に対応した Processing 用ライブラリ(Gainer.java)を使うサンプルを書いて動かしてみた。標準版のライブラリでは動作しないので念のため。

Sketch Archie: MatrixLED.zip
動画: http://www.youtube.com/watch?v=5NifYkdEu1w

more...
Wed 04/09, 2008
USB Serial with NetBSD [Computer and Networking ]

NetBSD/i386-3.1 機に Interface 誌付録の FR 基板をつないでみたら、USB-UART アダプタを UART デバイスとして認識してくれない。どうやら 3.x では未対応デバイスらしい。4.x に移行するのも使用機では苦しいから「私的日常非日常記録」の記事を頼りに対応カーネルを build してみた。OpenBSD 4.1 から持ってきたドライバ(uslcom.c)と既存のヘッダにちょいと手を入れ、config には次のような定義を追加して make する。

uslcom* at uhub? port ?         # Silicon Labs CP2102 serial adapter
ucom*   at uslcom? portno ?
出来上がったカーネルで起動し、デバイスを接続すると下記のように認識される。/dev/ttyU0 19200bps でサンプルのマウスデータを受信できた。
uslcom0 at uhub0 port 1
uslcom0: Silicon Labs CP2102 USB to UART Bridge Controller, rev 1.10/1.00, addr 2
ucom0 at uslcom0 portno 0: portno 0
と言う事で大島さんに感謝。ありがとうございました。

more...
Thu 04/10, 2008
Arduino clone on BreadBoard [Electronics ]

Arduino clone on BreadBoard勝手に "Clone on BreadBoard" シリーズ。今日は Arduino. Gainer I/O モジュールと同様、これまた回路図等が公開されているから、それに従って BreadBoard 上に組み立てる。日本版 Make:04 にも記事が掲載されている。USB-UART モジュールは Gainer で使用したものを流用した。サンプルの Blink で基本動作を確認。

Boot Loader の書き込みはおおよそ「hatayanlog: ArduinoのBootLoader インストール方法(ATmega168用)」の通りで良いが、この他に拡張ヒューズバイトの設定が必要だ。BOOTRST ヒューズビットをプログラムし、リセット時には Boot Loader を起動させる。この設定をしないと、一度 Arduino IDE から I/O ボードにプログラムをアップロードすると、その後は Boot Loader に戻れなくなってしまう。本来は(パワーオン)リセットで Boot Loader が起動した後、しばらくしてユーザプログラムが書かれていれば、それが動きだすようになっている。リセット直後の Boot Loader の起動は LED の短い点滅で確認できる。ユーザプログラムを書く前の初期状態では、Boot Loader が再起動するために、定期的にこの点滅が見られる。

more...
Sun 04/13, 2008
7-seg LED with GAINER [Electronics ]

7-seg LEDGAINER I/O モジュールの Matrix LED 用コンフィギュレーション(KONFIGURATION_7)で 7 セグ LED を使ってみた。Gainer の cookbook では KONFIGURATION_6 (dout * 16)での例が紹介されているが、今回の方法では最大 8 個の 7 セグ LED を使うことができる。とりあえず 4 桁分だけ用意した。anxxx* (scanLine) コマンドで 1 桁の LED を制御できるように接続している。手元にあったのがアノードコモンのものだったため、PNP トランジスタでドライブした[回路図(部分)]。このため 0 が点灯で F が消灯になる。例えば '1' を表示するにはコマンド "a0F00FFFFF*" を I/O モジュールに送れば良い。このタイプの 7 セグ LED は着色透明のアクリル板を挟むと視認性が良くなる。

more...
Mon 04/14, 2008
GAINER with DWM ARM board [Electronics ]

ARM Cortex-M3 北海道でもようやく入荷した Design Wave Magazine。 早速、付属の ARM 基板を試してみた。 この基板は USB コネクタまで実装済みであるため、USB-UART ドライバを Windows PC にインストールして接続するだけで直ちに動作確認できる。 書き込み済みのサンプルプログラムは GAINER アプリケーションとなっており、そのままで 3 軸加速度センサ付 GAINER I/O モジュールとして機能する。PC 側のサンプルは Flash のプログラムだが、手っ取り早く試すにはシリアルターミナルを用意するだけでよい。 シリアルポートの接続パラメータは 38400bps/8bit/non-parity だ。 ファームウェアは GAINER I/O モジュールとしてのコマンドと汎用の加速度センサデータ出力に対応している。 CD-ROM 中のソースコード(/articles/0805_a02/Acc3_V5_gainer/source/main.c)を見れば判るが、対応コマンドは次の通り。とりあえず '*' をタイプすれば xxx,xxx,xxx 形式でセンサ出力を観察できる。

more...
Fri 04/18, 2008
GAINER on NetBSD [Electronics ]

NetBSD でも GAINER を動かして見たい。

Perl や C でシリアルポートを操作するプログラムを用意すれば手っ取り早いのであるけれど、ここはやはり Processing で使ってみたい。Processing 本体はとりあえず動いた。ここで壁になるのが Java 用のシリアルライブラリの rxtx で、Linux 用のものではエラーになるし、NetBSD をサポートしているようなことが書かれているが、make できない。それならば gsp や funnel_server の代替を用意するのはどうだろう。

more...
Sat 04/19, 2008
別冊太陽・河鍋暁斎 [Art ]

Taiyo-Kyosai.jpg現在、京都国立博物館では「絵画の冒険者 暁斎 Kyosai - 近代へ架ける橋」として大規模な展覧会が開かれており、河鍋暁斎への注目が高まっている。別冊太陽スペシャルでは「河鍋暁斎 奇想の天才絵師」として暁斎の多岐に渡る画業を紹介している。はじめて暁斎の作品に触れる人にとっても良い図録だと思う。お薦めの1冊。

Arduino with ATmega88 [Electronics ]

ATmega88先日失敗した ATmega88 で Arduino に再挑戦。Bootloader だけでなく、cores/arduino のコードに手を入れて何となく動くようになった。手順は実に乱暴で、__AVR_ATmega168__ が定義されている箇所に OR 条件として __AVR_ATmega88__ を追加しただけ。

[変更前]
#if defined(__AVR_ATmega168__)
[変更後]
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega88__)
ただし、Bootloader のソースコード内で CPU signature (SIG2,SIG3) と PAGE_SIZE が定義されている部分だけはそのままにしておく。
#elif defined __AVR_ATmega88__
#define SIG2	0x93
#define SIG3	0x0a
#define PAGE_SIZE	0x20U	//32 words

#elif defined __AVR_ATmega168__
#define SIG2	0x94
#define SIG3	0x06
#define PAGE_SIZE	0x40U	//64 words

more...
Mon 04/21, 2008
Arduino with ATmega88 (2) [Electronics ]

Arduino with ATmega88ATmega88 で Arduino。ユニバーサル基板に組んでみた。配線は ATmega8 や ATmega168 の場合と変わらないし、もちろんそれらを載せても構わない。具体的には Make: 04 に掲載された畑山さんの Arduino クローンからレギュレータを省略しただけだ。写真はサンプルの "Loop" を動かしているところ。PWM 出力の "Fading" も動いた。USB-UART 変換モジュール用のソケットに丸ピンタイプを使ったのはちょっと失敗。もっとコンパクトに綺麗に組んでみたい。

more...
Sun 04/27, 2008
新日曜美術館・河鍋暁斎 [Art ]

NHK-ETV「新日曜美術館」は 2003 年以来の河鍋暁斎特集。題して「変幻自在に秘めた執念 幕末・明治の絵師 河鍋暁斎」。現在、京都国立博物館で開催されている展覧会「絵画の冒険者 暁斎 Kyosai - 近代へ架ける橋」と連動している。実は同時に「明治日本のギャグマスター 暁斎漫画展」が京都国際マンガミュージアムで開催されているのだけども、そちらの内容は敢えて無視したような形になっていて、多少違和感が残る内容であった。そのどちらもが暁斎なのであって、どちらかの型に嵌めようとするのは、故人のもっとも嫌う事かも知れない。司会の壇ふみはそれほど興味が無いようだし、暁斎の「風流蛙大合戦之図(無為庵乃書窓に図版あり)」にインスパイアされたようにも見える「當世おばか合戦(MIZUMA ART GARALLY に図版あり)」と題された作のあるゲストの山口晃氏のコメントも微妙に歯切れが悪いような気もする。展覧会に行かれる方は是非両方を見て欲しい。

* 蒼猴軒日録 - 2008.04.262008.04.27

Posted by masato at 09:16 PM | トラックバック(0)
Tue 04/29, 2008
休日日記 [Electronics ]

Junk-H8休日小物工作その他。最初は秋月電子通商の H8S ジャンク基板。しばらく前に入手して放っておいたのにプログラムを書き込んでみた。ネタ元は http://h8.or.tp/sono2/index2.html をそのまま。搭載された LCD に時計などを表示する。バックライトとカラーフィルタで綺麗に表示される。このプログラムはシリアルコンソールで使用できる超ミニ BASIC のバックグラウンドで動く。いくつかの動作モードがあってパネル上のタクトスイッチで変更できる。この写真では 2 行目に気温を表示している。RTC 用のバックアップ電池を取り外したため、電源を切ると短い時間で現在時刻が失われる。時刻の調整などはシリアルコンソールからしなければならないのがちょっと不便だ。

more...