2013.04.01

有機ELグラフィックディスプレイモジュールをArduinoで

というわけで、マイコン電子工作の定番ディスプレイモジュールといえばドットマトリクスキャラクタ表示のSunlike SC1602といったHD44780コントローラの液晶モジュールですが、物理インターフェース互換でグラフィックス表示も可能な有機ELディスプレイモジュールを ストロベリーリナックス で見つけて購入、それを Arduino (実際は学研・大人の科学のJapanino)でコントロールして表示させてみました。

Japaninooled

ハードウェア的にはキャラクタ液晶とまったく同じで、初期化にはArduinoのLiquidCrystalライブラリがそのまま使えます。

内部RAMと表示位置の対応は、上8ドットと下8ドットを CGRAM Address Set (RS=0, DB7=0, DB6=0)で上(0)か下(1)で選択、横座標は左からドット単位で0, 1, ... , 99を DDRAM Address Set(RS=0, DB7=1)で指定し、その8ドット(ビット)を下がDB7(MSB)で上がDB0(LSB)となるようCGRAM/DDRAM Data Write(RS=1)してやれば表示されます。

で、PC上で作成した白黒2値イメージImageを、加工するコードを書かずにArduinoスケッチで扱うために、ImageMagickのconvertコマンドでビット配置を変更しC言語と互換性のあるXBM形式に変換します。


convert image.bmp -rotate 90 -flop xbm:image.h

これでイメージデータが

#define image_width 16
#define image_height 100
static char image_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x0C, 0x30, 0x06, 0x60, 0x32, 0x44,
0x1A, 0x4C, 0x13, 0x48, 0x31, 0x48, 0x01, 0xC9, 0x21, 0xC8, 0x39, 0x48,
0x1B, 0x48, 0x32, 0x4C, 0x06, 0x64, 0x0C, 0x30, 0x18, 0x18, 0xF0, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x20, 0x00, 0x00,
0x00, 0x1C, 0x10, 0x34, 0x10, 0x24, 0x10, 0x34, 0xFC, 0x1F, 0x10, 0x18,
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x88, 0x01, 0xC8, 0x20, 0x68, 0x20,
0x78, 0x10, 0x58, 0x10, 0xC8, 0x18, 0x80, 0x07, 0x00, 0x00, 0x80, 0x00,
0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00,
0xE0, 0x38, 0xA0, 0x27, 0x20, 0x30, 0x38, 0x18, 0x0E, 0x08, 0x1C, 0x18,
0x30, 0x33, 0xE0, 0x3F, 0xC0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x0C,
0x20, 0x1F, 0xF8, 0x03, 0xC0, 0x00, 0x40, 0x00, 0x20, 0x30, 0x20, 0x18,
0x20, 0x0C, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x08, 0x00, 0x88, 0x39,
0xC8, 0x24, 0xE8, 0x24, 0xB8, 0x3C, 0x88, 0x20, 0x80, 0x31, 0x00, 0x1F,
0x00, 0x00, 0x00, 0x18, 0x18, 0x3E, 0xE0, 0x23, 0x80, 0x21, 0x80, 0x20,
0xC0, 0x20, 0x40, 0x20, 0x38, 0x20, 0x30, 0x20, 0x60, 0x00, 0x0C, 0x00,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };

のような形のimage.hとして得られるので、Arduinoスケッチ名のフォルダの中(スケッチ名.pdeまたは.inoと同じ階層)に置いた状態でスケッチを開き、#includeしてやればディスプレイに転送するデータが用意されます。

グラフィックモードへの変更は、従来キャラクタ液晶では下位2bitがDon't CareであったCursor/Display Shiftを、00なら従来通り、11ならDB3の値によりキャラクタモード(0)/グラフィックモード(1)切替(DB2はPWRビットで内部DC-DCコンバータをON(1)/OFF(0)と拡張しています。

これらの操作は、Arduino LiquidCrystalライブラリLiquidCrystal.cppの中で、LiquidCrystal::commandおよびwriteメソッドを使用して行うことができます。
結局スケッチ内容は


#include
#include "image.h"

#define xbm image_bits

LiquidCrystal lcd(13,12,8,9,10,11);
int i;

void setup(){
lcd.begin(20,2);
lcd.command(0x1f); // Graphic mode

for(i=0; i<200; i++){
lcd.command(LCD_SETDDRAMADDR | (i/2));
lcd.command(LCD_SETCGRAMADDR | (i%2));
lcd.write(xbm[i]); // Put 8 pixels
}
}

void loop(){
}


スケッチを新規作成した後、image.hが#includeできるためには、一旦スケッチを閉じて再度開く必要があるので注意ください。(image.hファイルがある状態でスケッチを開くと、スケッチ画面にimage.hのタブができている)

| | Comments (1153) | TrackBack (0)

2004.04.20

すごいよ、株式会社ウェディングさん

京都に本社のある宝石販売業・株式会社ウェディングといえば、今年のWeb界で大流行となった会社だけど、その取締役が「ウェディング問題を考える会 第一回総会」の場に出て、Beyond((仮))氏に対し民事・刑事の訴訟を起こし、後にそれを取り下げた経緯を、家族のエピソードとかも交えて話したのだとか。
“敵”の集まる場に堂々と乗り込んで、手の内を語るなんて、すごいね。なかなかできることじゃないよ。
そんな勇気あふれる同氏の指にはもちろんウェディングの指輪が……あったかどうかは不明。

| | Comments (1260) | TrackBack (1)

2004.04.06

W社と悪マニ

悪徳商法マニアックス関係では、


と大きな動きが。

そして雑誌では


とか。ふむふむ。

| | Comments (101) | TrackBack (1)

2004.02.29

株式会社ウェディング、匿名掲示板(仮)に対し提訴

小欄でも何度か取り上げた株式会社ウェディングだが、匿名掲示板(仮)に対し、本当に訴訟を起こしたようで、京都地裁より訴状が仮さんの所に送達されてきたとか。

ACCSは(脆弱CGIを放置した自己の責任についてどう考えているのか知らないが)個人情報漏洩の被害者と共同でOfficeさんを訴えるし、どこも訴訟で大変だなぁ。

| | Comments (286) | TrackBack (0)

2004.02.12

「株式会社ウェディング」問題

前の記事で触れた、行政書士のラッキー☆齋藤さんが株式会社ウェディングの販売方法を賞賛していたページが、該社関係者から「当社は勧誘の際、宝石の販売目的であることをつげて、店舗に来てもらっている。また長時間に及ぶ勧誘も行っていない。そのような勧誘は違法であることを知っていますし、行わないように指導しています」(後述リンク先より)との指摘を受けて、内容を大幅に変更されたとのこと。指摘が本当であれば、納得できる対応かと私には思われる。

また徳保隆夫さんによる「趣味のWebデザイン」下のGoogle と 悪徳商法?マニアックス
をはじめとする は、悪徳商法?マニアックスの掲示板への投稿記事を「この投稿が徹頭徹尾、ウェディングに対する悪意ある憶測に基づいた(明確な)根拠のない中傷であることは明らか」……(1)とし、それに対する株式会社ウェディング、そしてGoogle・はてなの対応を企業として当然とするもので、Beyondさんやこの件で株式会社ウェディングを非難する論を諌めつつ、決して株式会社ウェディングのやり方を正しいとするものではない、とオチをつけて締めくくる構成が見事。

私個人としては(1)の点が(引用された文だけ読む限りでは)疑問に思われるが、後の「『確かな根拠なしに悪印象をばら撒く発言だ』ということまでは否定できない」は認めざるを得ず、結局ウェディング側が怒るのも無理は無い、と愚考するに至った。で、元のツリーを見ると、そもそも発端となった相談内容は単に「販売担当者と連絡がとれない」というもので、これに対する前述の投稿コメントはちと飛躍気味かという気もする。
まぁそれにしてもウェディング社 田中代表取締役・米盛担当連名のメール(掲示板投稿記事)も、唐突にずいぶん高圧的に出たものだという印象は受けるわけだが。

| | Comments (182) | TrackBack (0)

2004.02.03

googleで「株式会社ウェディング」という語句を検索

悪徳商法?マニアックスさんがgoogleから消され、さらにはてなダイアリーでも削除されたことで話題の「株式会社ウェディングという語句

実際に検索してみると、件のはてなだいありーキーワードに続いてそういう名前の会社、そして同一ホスティングサービスの同一IPな複数のサイトによる(らしい)、同社を賞賛する内容のページが幾つもヒットする。
そんな中で
外かんのできる街で: 株式会社 ウェディングが悪徳商法?マニアックスを訴えるのか?

の順位が上がってきたのでリンクしたりトラックバックしたり。

2ちゃんねるのウ社スレ
もがんがってageれ!

< 2004/02/08追記 > 今は1に本家・2にはてな・あとは謎の賞賛サイトと今回の件に注目したページが混戦という状態になりました。「外かんのできる街で」の記事も更新されたのですが、
クーリングオフに詳しい行政書士さんが書いた株式会社ウェディングの勧誘上手ぶりを褒め、弱点にアドバイスするページはいいですね。

| | Comments (171) | TrackBack (2)

2003.12.07

旧式無線LANカードで128bit WEP

私が以前購入した無線LANカードはコレガのPCC-11で、WEPは40bitしか対応していない。
しかるに最近、128bit WEPが要求される公衆無線LANサービスが登場している。
これらのサービスを使うために、無線LANカードを買替えねばならぬのか?
…………。
……。
検索したところによると、何やらドライバやファームウェアを変更することで、旧式の無線LANカードを128bit WEPに対応させることができるらしい。
prism純正ドライバ wepでググる

| | Comments (216) | TrackBack (0)