オラ、ドラゴンレーダーを作るぞ(10)

*** 10.1 画像も表示できたよ

前回の記事からさらに一ヶ月経ってしまいました。
その間何をしていたかと言いますと、来る10月31日にサービス終了してしまうBloglinesの代替サービスを作っていました。
それについてはまた後ほどアナウンスするとして、ようやくその代替サービスの開発が一段落したので、まだドラゴンレーダー作りを再開です。

前回、ようやくLCDとArduinoがつながったところまで進めていたので、もう少しLCDの使い込みをすることにします。
ここから先はソフトウェアの領域なので、ハンダゴテを握らなくて済むのが楽だー。

画像出力のサンプルコードを以前拾っていたので、それを動かしてみました。

楽勝楽勝♪
これまでのハードウェアで難儀したのが嘘のように、あっさり動作しました。

*** 10.2 描画速度が3倍に!

画像の出力は出来ましたが、何だか描画が遅いかなあ・・・
テケテケ~と表示されるのは、作った本人は楽しいものですが、人が見たら遅いと思うだろうなあ。

サンプルコードとは別のライブラリコードを見ていたところ、何だか電子工作室 – 2.4/2.8インチ QVGA液晶表示器の制御で公開されているライブラリコードのほうがすっきり書かれていることに気がつきました。

ということで、電子工作室のライブラリを頑張って移植してみました!

例えば↓これ。

変更前
void LCD_Writ_Bus(char VH,char VL)  
{  
  unsigned char i,temp,data;
  data=VH;
  for(i=0;i<8;i++)   {     temp=(data&0x01);     if(temp)       digitalWrite(i,HIGH);     else       digitalWrite(i,LOW);     data=data>>1;
  }
  digitalWrite(LCD_WR,LOW);
  digitalWrite(LCD_WR,HIGH);
  data=VL;
  for(i=0;i<8;i++)   {     temp=(data&0x01);     if(temp)       digitalWrite(i,HIGH);     else       digitalWrite(i,LOW);     data=data>>1;
  }
  digitalWrite(LCD_WR,LOW);
  digitalWrite(LCD_WR,HIGH);
}

変更後。こんなにすっきり
void LCD_Write_Bus(char VH,char VL)
{
    // 上位バイト出力
    PORTD = (VH & 0xFF);
    digitalWrite(LCD_WR,LOW);
    digitalWrite(LCD_WR,HIGH);

    // 下位バイト出力
    PORTD = (VL & 0xFF);
    digitalWrite(LCD_WR,LOW);
    digitalWrite(LCD_WR,HIGH);
}

データの出力を行うD0~D7の8ピンに対して、元のソースでは何度もdigitalWrite関数を呼び出していたのですが、新コードではPORTD(Arduinoのポート操作用のキーワード)を使ってすっきり簡潔になりました。

この変更により、ものすごく描画速度が早くなった!
これぞ8bitアクセスの醍醐味!(?)

この移植作業を行ったおかげで、Arduinoのコーディング方法がだいぶ理解できてきた~。

*** 10.3 文字も表示できた!

移植した電子工作室のライブラリには文字表示の関数も用意されていたので、それを使って文字表示できることを確認しました。

↑ちょっと見えづらいですが、カタカナや一部の漢字もきれいに表示出来ています。
ありがたや~

それと、改めてLCD(ILI9325)のリファレンスを読み直していると、縦表示と横表示の切り替えができることがわかりました。
今回作るドラゴンレーダーでは横表示の方が都合が良いので、横表示に変えてみました。

変更したのはLCD_Init関数の中の下記の箇所です。

LCD_Out(0x0003, 0x1028); → LCD_Out(0x0003, 0x1018);

リファレンスに詳しく(英語で)書かれていますので、必要な方はリファレンスのp.55~56(8.2.5. LCD Driving Wave Control (R02h)をご参照ください。

*** 10.4 ケース発見!

そして、今日一番の出来事ですが、ドラゴンレーダーを収めるのにぴったりなケースをGeogesで見つけてしまいました!

ドラゴンレーダー用のケース。本当は写真入れです。
ドラゴンレーダー用のケース。本当は写真入れです。

以前から「惜しい」ケースをGeogesで見つけていたのですが、こんなにぴったりのが売られているなんて・・・・
写真ケースにはむしろ微妙なデザインですが(おい)、ドラゴンレーダーを収めるには本当にサイズぴったりで、見つけたときは自分のために作ってくれたとしか思えませんでした。
ありがとうGeoges!!

周りがチャックになっていて、ぱかっと開く。しかも中はふわふわ。
周りがチャックになっていて、ぱかっと開く。しかも中はふわふわ。
丸い穴部分が少し大きいので、ボール紙でマスキング。改良の余地あり。
丸い穴部分が少し大きいので、ボール紙でマスキング。改良の余地あり。
後ろにも窓が付いていて、これがなんとILI9325と超ぴったり!もはやILI9325のために作ったとしか思えない。
後ろにも窓が付いていて、これがなんとILI9325と超ぴったり!もはやILI9325のために作ったとしか思えない。

今は配線をブレッドボードで行っているのでごちゃごちゃしていますが、ユニバーサル基盤できれいに作り直したら早速はめてみます。
楽しみだ~

*** 10.5 本日までの報告書

本日版の最終ソースです
移植した電子工作室のライブラリも含まれていますので、良かったら使ってください。

あと、PORTDを使うために少し配線も見直しました。

|~LCD側|~Arduino側|
|DB10|D0|
|DB11|D1|
|DB12|D2|
|DB13|D3|
|DB14|D4|
|DB15|D5|
|DB16|D6|
|DB17|D7|
|RS|D8|
|WR|D9|
|CS|D10|
|RESET|D11|
|LEDA、VCC(3箇所)、RD|3V3|
|DB0~DB7、LEDK1~LEDK4、GND(2箇所)|GND(1kΩの抵抗を一つ入れて)|


オラ、ドラゴンレーダーを作るぞ(9)

*** 9.1 LCDが動かない!ピクリともしない!

前回のエントリーからなんと1ヶ月くらい経ってしまいました。
その間帰省をしていたり、仕事が忙しくなったということもあるのですが、なんといってもLCDが動かないのでブログも書きようがないという状況です。

この1ヶ月間何をしていたかというと、とにかく知識をつけるために電子工作の本を読みまくっていました。
図書館に行って理解できそうな本を取り上げてはざっと読んでみて、ためになりそうな本は借りてきて・・・を繰り返し、その都度分かったことをドラゴンレーダーに適用しては失敗してという感じです。

その中でも一番勉強になったのは次の本です。

★ 作る・できる/基礎入門 電子工作の素 [単行本]

各ページの横に電子工作についての基礎知識がふんだんに書かれており、これまでどの本を読んでも書いていなかった電子工作の「常識」が少しずつ理解できるようになってきました。
もう図書館に返却してしまいましたが、この本は自分でも一冊買おうと思っています。

↑に挙げた本やその他の本で知った、今回のLCDトラブルに関係ありそうな知識として、次のようなものがありました。

|GNDとVCC|間違いなく笑われそうですが、LCDにGNDとVCCをつなげていませんでした。だってどこにも書いてないんだもん・・・。
GNDとは電源のマイナス側、VCCとは電源のプラス側のことで、あまりにも常識なので回路図などでは省略されることもあるそうです。
今回購入したLCDにもVCCとGNDというソケットがあったのですが、これまで見てきたサンプルでは触れられていなかったので、全く無視していました。
電源なしでは何も動きませんよね(笑)|
|プルアップ・プルダウン|これはWebで得た知識ですが(プルアップ・プルダウンについて)、単純にVCCとGNDに線をつなぐだけだと電流の向きが不安定になるそうで、GND側に抵抗を入れるのだそうです(これはプルダウン)。プルアップはその逆なんだそうですが、いまいち理解できていません。。
最初はこのプルダウンの抵抗を入れていなかったのですが、GND側に抵抗を入れるようにしました。|
|電圧のスレッショルド|パーツには有効な電圧の範囲があって、その範囲を外れると正しく動かないのだそう。|
|間違った電圧をつなげたとき|アンプ関係の話で読んだ知識ですが、高すぎる電圧をかけるとパーツから「ブーン」という唸りがすることがあるそうです。|

以上の知識を踏まえて色々と模索した結果、前回Arduinoを3.3V化したつもりが、どうもこれが上手くいっていないのではないかと。
購入したLCDの動作電圧は「2.6~3.5V」となっており、Arduino Duemilanoveそのままの5Vでは動いてくれません。

LCDと悪戦苦闘しているときにLCDから突然「ブーン」という小さな唸り音が聞こえてきたことがありました。
何をやってもうんともすんとも言ってくれなかったので、ちょっとでも反応があって喜んでいたのですが(バカ)、後から得た知識からするとどうも5Vを流してしまって規定の動作電圧を超えた電圧を流していたのではないかと思われます。

その後妥協の電子工作:4線式抵抗膜方式タッチパネル付きLCDパネルの試用に書かれてあった

ちなみに「WBX280V009」でも同様の方法で8ビット化できますが、この場合は、11番端子をVCC(6番)に接続しないと8ビットモードでは動作しません。

妥協の電子工作に書かれていた8bit化のための処置
妥協の電子工作に書かれていた8bit化のための処置


を行い、プルダウン抵抗を取り付けた後、3.3VにしたときだけArduino本体についているLEDが点滅しなくなったことに気がつきました。
5Vに設定したときだけLEDが点滅するので、3.3V化に失敗しているのかなと。

前回行ったのは次の写真の作業。

だめだめ3.3V化
だめだめ3.3V化


それで今回行ったのはパターンカットのやり直しと(ちゃんと切れていなかったようなので、もう一回やり直してみたら、明らかに線が残っていた・・・)、次の写真の箇所のはんだ付け。
一つ前の写真で「ここはどこともつながっていない」と書かれているところ。

三端子レギュレータの「IN」とおぼしき場所をつなげた
3端子レギュレータの「IN」とおぼしき場所をつなげた

もともと三端子レギュレータの「OUT」しかつなげてなかったので、電流が流れるはずがない。。とは思っていたものの、どう見てもこの場所は無関係な出っ張りだろうと思い、無視していました。
反対側の「IN」とつながっているのかなあというのが今の理解。

*** 9.2 LCDの現状

たった今さっき三端子レギュレータのハンダ付けを行ったところで、物は試しとPCとUSB接続したところ、なっなんと、LCDが光った!!光ったよ~っっっ!!!

LCDとごちゃごちゃ配線
LCDとごちゃごちゃ配線

LCD側についていた「LEDA」というソケットとArduinoの5Vをつなげていたのですが、「LEDK1」~「LEDK4」をGNDにつなげるようにしたところ、突然LCDが真っ白く輝いてくれました!!!
ふぎゃーーっっ

LCDもArduinoも壊れていなかったんだ~。
心底ほっとしましたよ!

*** 9.3 ・・・と思ったら、今LCDが動いた!色が出た!!

ここまでブログを書いてきてあれっと思ったのですが、なぜかLEDAを5Vにつなげていました。
なんでだっけと思いだしていたところ、ITDB02-2.4 8Bit Mode Demoに書かれている接続方法を真似たことを思い出しました。

それでもう一度このページを見なおしたところ、なんと!LEDAは3.3Vって書いてあるぞ?色々やっているうちに接続を間違えてしまっていたようです。
でも動いていたしなあと思いながらも、LEDAを3.3Vにつなげ直したところ、さっきよりも明るさが減ったような感じ・・・
と見ていたら、夢にまで見た綺麗なブルーが我がLCDに写っているではありませんか!
ま、マジですか?!

勢いでYoutubeに動画をアップしてしまった。

一番の難関をやっとこさ越えたぞ~~~~~っっっっっ!!!

*** 9.4 ここまでのまとめ!

ということで、いったん現在のドラゴンレーダーの配線についてまとめて置きます。

|~LCD側|~Arduino側|
|RD|D1|
|DB12|D2|
|DB13|D3|
|DB14|D4|
|DB15|D5|
|DB16|D6|
|DB17|D7|
|RS|D8|
|WR|D9|
|CS|D10|
|RESET|D11|
|DB10|D12|
|DB11|D13|
|LEDA、VCC(3箇所)|3V3|
|DB0~DB7、LEDK1~LEDK4、GND(2箇所)|GND(1kΩの抵抗を一つ入れて)|

それでこっちがスケッチ(Arduinoのソース)
あちこちのサンプルソースをツギハギしているので、元ソースがどこだったのか思い出せませんが・・・

*** 9.5 今日までの報告書

ブックマークしたページ

|~タイトル|~説明|
|妥協の電子工作 – 4線式抵抗膜方式タッチパネル付きLCDパネルの試用|数少ないWBX280V009の情報でした。ありがとうございました!!|
|電子工作室|ここの2.4/2.8インチ QVGA液晶表示器の制御というページで、「QVGA液晶表示器用ライブラリ」というライブラリが公開されており、大いに参考にさせていただきました。|
|ITDB02-2.4 8Bit Mode Demo|このページを見て、ArduinoとLCDの接続にはVCCとGNDの接続が必要なことを知りました。|
|プルアップ、プルダウン|分かりやすく説明されたページです。|

次は文字表示だ!

オラ、ドラゴンレーダーを作るぞ(8)

*** 8.1 Arduino Duemilanoveの3.3V化

例によってワタシ、ハードウェアワカリマセン状態に変わりはないので、3.3V化改造に書かれている手順の通りに進めました。

すごく分かりやすく書かれているのですが、あちらこちらで理解できない説明があるんですよね・・・
自分なりに読み解いて、こんな感じでつなげてみました。

!注意!まだこの組み立てで動いていません!良い子は真似しないでください!
!注意!まだこの組み立てで動いていません!良い子は真似しないでください!


あと、表面のパターンカットも自信ないのですが、ググってみたところカッターナイフやマイナスのドライバーで傷をつけるということなので、そのようにしてみました。

分かりにくいけど、パターンカットした後。違うところまで傷ついているような・・・
分かりにくいけど、パターンカットした後。違うところまで傷ついているような・・・


あと、ピンヘッダそのものは購入していたのですが、2つのピンヘッダをつなげるコードを買っていない!
っていうか、このコードなんていう名前なの?(T T)
ピンソケットが両側にくっついているような感じなんだけど・・・

そういえば、LCDのピンソケットで半分にぶった切った残りがあるから、それをジャンパワイヤの先にくっつけちゃえ。
我ながらいい思い付きだと思ったのですが、ピンソケットをニッパーできるのはかなり無理があり、どんどん駄目パーツが増えていく・・・

ピンソケットの亡骸。ほんとごめんなさい。
ピンソケットの亡骸。ほんとごめんなさい。


とにもかくにも、やっと3.3V化が完了したぞ~。

パターンカットが一番びびりました。後戻りできないから・・・
パターンカットが一番びびりました。後戻りできないから・・・


*** 8.2 配線してみたけど・・・

Arduino Forum › Software › Development › Arduino control the 2.4″ TFT LCDを参考に、ArduinoとLCDをつなげていきます。
が、購入したLCDと微妙に違うので、なんか番号が違うんだよなあ。。

とりあえずこんな感じでつなげてみました。

|Arduino Duemilanove側|WBX280V009-PCB(ILI9325)側|
|デジタル0|DB10|
|デジタル1|DB11|
|デジタル2|DB12|
|デジタル3|DB13|
|デジタル4|DB14|
|デジタル5|DB15|
|デジタル6|DB16|
|デジタル7|DB17|
|デジタル8|RS|
|デジタル9|WR|
|デジタル10|CS|
|デジタル11|RESET|
|GND|DB0~7をブレッドボード経由で|

そして、USBでPCにつなげて、itdb02のサンプルコードを流し込む!!
一発で動くといいなあ~♪
(そんなに甘くはない・・・)

これがサンプルコードのスケッチ。

#include <ITDB02.h>
 
ITDB02 lcd(0,1,2,3,4,5,6,7,8,9,10,11);
 
void setup()
{
  lcd.Initial();
  lcd.CleanLCD();
}
 
void loop()
{
  lcd.Setcolor(0x00,0xffff);
  lcd.Dispshowstr(80,300,"iteadstudio.com");
}

どきどきしながら「アップロード」ボタンを押す!
ってこんな無造作にアップしていいものなのかもよく分からない!

いつものようにTXとRXのLCDがテケテケと点滅し、そして・・・あれ、TXだけが延々点滅しているぞ・・・
よく分からないけど、いったんUSBを外し、うーんどうしよう。

*** 8.3 問題の切り分け

いっぺんにLCDの8bit化とArduinoの3.3V化をやったので、原因箇所とおぼしきものはすごく多い。
とりあえず大まかに切り分けるとこんなところでしょうか。

  • LCDの8bit化のチップ抵抗付け替えをミスった
  • Arduinoの3.3V化の手順に誤りがある(配線方法の間違い)
  • Arduinoの3.3V化の作業に誤りがあった(ハンダ付けがへた)
  • ArduinoとLCDの配線に誤りがある
  • LCDが壊れている。または自分が壊した。
  • Arduinoを壊した。

一番嫌なのは、Arduinoそのものが壊れたのではないかということです。
いったん配線を外して、一番シンプルな、LEDをデジタル13ピンとGNDにつけて点滅させるプログラムが動くかどうかを試してみました。

と、アップロードしようとすると今度はArduino IDEにエラーメッセージが。
こんな感じのエラーが出ます。

avrdude: stk500_getsync(): not in sync: resp=0x30
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

あ~・・・どんどん悪くなっていく~・・・
どうもコードの接触不良とか配線ミスが原因らしいのですが、なんといってもさっきパターンカットとかしたばっかりだしなあ(大汗)

3.3Vのほうについていた電源切り替えのピンソケットを5Vに変えて再トライしたところ、今度は動いたっっ!!!
LEDが点滅してくれました。良かった~。Arduinoそのものはまだ死んでいないようです。

5Vに差し込んだり3.3Vに差し込んだりしても、いずれも問題ないようなので、改めて3.3VにつなげてLCD用のサンプルコードをアップロードします。
今度はTXとRXが数秒点滅した後止まって・・・LCDを期待の目で見つめるのですが・・・うんともすんとも言わないなあ。
まったく無反応です。

う~ん・・・やっぱり配線が悪いのかなあ。
また後日チャレンジすることにします。

現状の組み立て。動いてないこともあり非常にしょぼく見える。
現状の組み立て。動いてないこともあり非常にしょぼく見える。

オラ、ドラゴンレーダーを作るぞ(7)

*** 7.1 ILI9325の8bit化

先日注文したハンダゴテが届きました!が、意外にコテ先が大きいなあ・・・
もっと針みたいのを想像していたんだけど、これであの米粒6分の1サイズのチップを外したりつけたり出来るのか。
ともかくもねむいさんの該当記事お気楽工作日記を開いてハンダゴテを温める。。

ええい、ままよっ!と左手にはんだ吸取線、右手にハンダゴテを持ってチップの接着部分をジュウジュウ温めること3分。変化ないなあ。
ラジオペンチでぐいぐい引っ張ろうにも、小さすぎてつかむことが出来ないし。
さらにハンダゴテで温めつつコテ先でぐいぐい押していたら、ずるっと斜めにずれた!
よしっとばかりにさらに力を加えたところ・・・どこかへチップが飛んでった!!!

ぎええ!あんなに小さなチップ、一度なくしたら絶対見つからないぞ!
慌ててきょろきょろと探しまくりますが、右手には高温のハンダゴテ、前方には興味深々で近づいてこようとする1歳11ヶ月の息子!
「アッチッチだからね!」「こっちこないでね!」と絶叫しながらハンダゴテの電源を抜き、もしかしたら自分の服についたかもしれない、床に落ちたかもしれないと目を皿にしてチップを探します。
とはいえせいぜい1mmくらいしかないチップなので、見つからない・・・
あんなのどうやって注文したらいいのか分からないし、こんな情けない形でプロジェクトが終わるのか・・・と思うと探す気力も萎えてくる。

灯台下暗しだと改めて基盤のそばを探していると、、あった!!!!!!もう絶対なくさんぞ!!!

この写真を撮っているときはまだ心臓がどきどきしています
この写真を撮っているときはまだ心臓がどきどきしています

*** 7.2 外した抵抗チップの取り付け

一息ついて、またハンダゴテを温め直します。
付けるほうがまだ簡単だろうと思いながら、さっき見つけたチップをラジオペンチでつかみつつハンダゴテを当てますが、チップが小さすぎてラジオペンチでつかみながらというのはほぼ不可能。
それではと目標となるR2の場所にチップを置いて、そこにコテ先を当てる感じで作業したところ、良さ気にチップがくっついたかな・・?
出来るだけ真っ直ぐになるように微調整して終了!ということにしよう!

付いたけど、周辺がハンダゴテで焦げていないか不安
付いたけど、周辺がハンダゴテで焦げていないか不安

*** 7.3 ついでにピンソケットもつける

同じくLCDのキャリーボードに、LCDと一緒に購入したピンソケットをハンダでくっつけます。
↓ の動画で見えているやつ。

が、間違えててピン数40のを2列買っちゃった!
正しくはピン数20の2列ですが、半分に切らないと・・・とニッパーで無理やり半分のぶった切りましたが、すごくいい加減な感じになってきたぞ。
まあ気にするな俺!

裏面からハンダ付けしますが、さっきのチップと比べると超簡単です。
とはいえど素人の私なので、出来上がりを見るとすごくムラだらけ。
これでちゃんと動くのかな・・・

こうやって写真で見るとますます粗が目立つ。
こうやって写真で見るとますます粗が目立つ。

これで動くかどうかを確認するには更にArduinoの3.3v化と、いまだよく分かっていない配線の問題をクリアするまでお預けです。

*** 7.4 今日までの報告書

理解した用語

|~用語名|~説明|
|はんだ吸取線|一度つけたハンダを取り除くのに使う布状の金属線。素人仕事の場合ハンダをのせる時間より、これを握っている時間の方が長くなる傾向がある。あっという間にハンダが吸い取られるのが気持ちいい。うかうかしていると吸取線そのものがあっちっちになる。|

オラ、ドラゴンレーダーを作るぞ(6)

*** 6.1 タッチパネルについて

待ちに待った2.8インチTFT液晶が届きました!
縦長なので、上のほうにドラゴンレーダー、下のほうに操作関連のボタンなどを配置できればと思っています。
そう!この液晶はタッチパネルなのです。

はじめタッチパネルは無視しようと思っていたのですが、今回購入した液晶のコントローラチップ(ILI9325)でも使えるらしいArduino用のライブラリを作っている人がいたのです!

itdb02

す、すばらしい・・・
2010/6/1に最初のバージョンがアップされていますので、本当に出来立てほやほやです。
今日現在ではV1.2が最新バージョンです。
使い方などを少し見てみましたが、これなら衝撃的初心者の私でも扱えそうなレベルにまでブレイクダウンされています。

LCDの扱いは8bitもしくは16bitのようで、SPIでの処理は検討されていない模様。。
やっぱりそういうものなのか~。

逆にタッチパネル用の接続をSPIで行うようで、そうなると8bit接続(つまりラインが8本のIOピン必要)と併せると12本のIOピンが必要になります。
ますますGPSが使えなくなるぞ。

*** 6.2 ピンについて再調査

以前ブックマークしたなんでも作っちゃう、かも。 Arduinoで遊ぼう – GPSを使った高精度な時計みたいに、アナログINのピンを使えるといいんだけどなあ・・・ということであらためてググってみて、衝撃の事実が・・・!

アナログINピンはデジタルIOピンとしてつかえるそうな。

Arduino Referenceより
Note
If the pin isn’t connected to anything, digitalRead() can return either HIGH or LOW (and this can change randomly).
The analog input pins can be used as digital pins w/ numbers 14 (analog input 0) to 19 (analog input 5).
※この情報は日本語訳サイトや教本「Arduinoをはじめよう」にはまだ未掲載です。

ただ、「digital pins w/」の最後の「w/」って書き込みだけってこと?
まあ試してみれば分かるかな。

これを使えば、デジタルIOピン14本+アナログINピン6本=最大20ピンをデジタルIOピンとして使えるわけだ!
8bitモードでLCD接続してタッチパネルも扱うとしても、ぎりぎりGPSやコンパスも乗っけられそうだ・・・

*** 6.3 よーし液晶をつなげるぞー

とはいえ、まずやらなくてはいけない難関が2つ。

  • 1. LCDの8 bit化
  • 2. Arduino Duemilanoveの3.3V化

「2. Arduino Duemilanoveの3.3V化」は3.3V化改造 – arduinoまとめサイトに書かれているパーツを追加購入したので、それの到着待ち。

ということは「1. LCDの8 bit化」を先にやってみよ~と、あらためてねむいさんの該当記事を確認してみました。

んでもってWBX280V009もJ4にあるチップ抵抗をR2に移すと8bitバス化できるけど
この改造でIM0が端子に引き出せられるようになるので外部から簡単にバス幅を切り
替えられますよぅ!!
(20100720追:
 当たり前ですがこの改造を行ったら外部に出たIM0端子は使用するバス幅に
合わせてちゃんとレベルを決めてやらないとだめです)

なんのことやらと思っていたこの文章ですが、LCDが届いてみて初めて意味を理解できました。
LCDにくっついているビニールぽいコネクタケーブルについているチップ型の抵抗をいったん外して隣りのラインにハンダ付けするということだそうです。
思わずデキルカボケーと叫んでしまいました。だって、数mmの世界なんですよ(T T

できるかぼけー
できるかぼけー

まあ、うすうすこういうことかとは思っていたのですが、こんなにも小さいとは想像していませんでした。
私が持っているごついハンダゴテでは、ケーブルに穴を開けるのが関の山というところです。

仕方がないので、またも出費・・・新しいハンダゴテ(HOZAN(ホーザン) H-130 ハンダゴテ 15W 2,356円(税込))を購入しました。
いつ先に進めるんだー!!

*** 6.4 今日までの報告書

ブックマークしたページ

|~タイトル|~説明|
|TFT-2.4″-320*240-With-Touch-Shield-(Arduino-Compatible)|今回買ったLCDに似てるLCDシールド。ソースコードを参考に出来そう。|
|Arduino control the 2.4″ TFT LCD|今回利用させていただくitdb02はこのフォーラムから生まれた!ITeadさんVery Thank you!!!です。|
|New Ball Prototype|ドラゴンレーダーとは関係ないけど、真似したい!ボールがころころ動きます。なぜか癒されます。|

オラ、ドラゴンレーダーを作るぞ(5)

*** 5.1 もしかしてドラゴンレーダーだめ?だめ?

一つ前の日記にも載せていた動画。
早ければ明日にも注文したLCDが来るということもあり、ヒマさえあれば何となく眺めていました。

それで気がついたのですが、デジタルIOピンのほとんどがLCDとの接続に使われてる・・・?
外部パーツを制御するのに使うデジタルIOピンはArduino Duemilanoveで14ピンあるのですが(pin 0~13)、そのうち12本くらい使われているように見えるぞ・・・。

LCDを表示してお終いなら構わないのですが、ドラゴンレーダーにはGPSやデジタルコンパス、もしかしたら加速度センサーもつける予定です。
ArduinoにはデジタルIOピン以外にもアナログINピンが6本(pin 0~5)あるので、もしかしたらセンサー関係はこっちにつなげられるのかもしれませんが、残るデジタルIOピンが2本だけというのは多分致命的な気がします。

あわてて「Arduino ピン数 増やす」とかでググったりしましたが、見つかるのはDuemilanoveのピン数少ないよね的な話題ばかり。
Arduino MEGAという姉妹品はデジタルIOピンが53本もあるのですが、6,980円と高めの値段設定。いや、これも最初に買っていれば安いものかもしれない。
いやいや、MEGA買ったとしてもこんなの大きすぎるぞ。。

iPhoneとかあんなに小さいのに、GPSもカメラもLCDもタッチセンサーもよく詰め込まれているなあ・・・

*** 5.2 大は小を兼ねない電源

ピン数のことでショックを受けている私に追い打ちをかけるように、もう一つ別の問題に気がつきました。
注文したLCDの電圧は2.6~3.5Vとのこと。そういえば5Vとか3.3Vとかってどこかで読んだなあ・・・
Arduinoについている電源は5Vなので、そのまま接続するとパーツが壊れるかもしれない・・・?

5Vがあるんだったら抵抗とかトランジストとか使って3.3Vに小さく出来るんじゃないかと軽く考えていたのですが、いろいろなページを読んでいるとそういう簡単なものでもないらしい。
電圧の変換はレベルシフトと呼ぶそうですが、ケースバイケースなので「このチップをはさめばOK!」的な感じではないようです。

Arduino Duemilanoveの仕様書を見ていて5Vと3.3Vの電源が用意されていることに気がつきましたが、3.3Vは50mAまでしか使えないそうです。
LCDって何mAなんだろ。

さらにウェブ検索していると、3.3V化改造 – arduinoまとめサイトというページに3.3Vに対応する改造法が載せられていました。
「対象デバイスは50mA以上の消費電流を持つTFTディスプレイやCMOSカメラです。」とあるので、今回の僕のドラゴンレーダーでもこの改造は必要なのか・・・
パターンカットってなんだ。。基盤の裏にくっつけてるのは何なんだ。。!

気落ちしながらも一番上のLCDの接続サンプル動画をもう一度見ていたら、3.3V化改造してるじゃん!!
・・・実は一番最初にこの動画を見たときも、なんか自分の基盤にはないのがくっついてるぞと思っていたのですが、見てみない振りをしていました(おい)。

しょうがない!3.3V化改造は避けては通れないか。
ということで、追加のお買い上げ~(とほほ)

|~商品名|~単価|~個数|~金額|
|電解コンデンサー 100μF 25V 85℃|10円|5個|50円|
|表面実装型低損失CMOS三端子レギュレーター3.3V500mA NJU7223DL1(4個入)|100円|1個|100円|
|ピンヘッダ(オス) 1×40 (40P)|50円|1個|50円|
|はんだ吸取線 CP-3015|190円|1個|190円|
|デジタルマルチメータ MAS-830L マニュアルレンジ|1,000円|1個|1,000円|
|透明熱収縮チューブ φ1mm 1m|58円|1個|58円|

「はんだ吸取線」と「デジタルマルチメータ」はせっかくなので一緒に注文しました。
そうじゃないと送料の方が高くつくので悔しい。

*** 5.3 LCDのマニュアルを読むことに

電圧の方は何とか対応できそうですが、問題はピン数。
LCDって何でこんなにピンを使うんだろ。
しかもいまだに取り付け方や扱い方が全く分かっていない。

LCDを購入したaitendoさんのページに、英語ですがLCDのマニュアルがついていましたので、それをよく読むことにしました。
今出来ることはそれぐらいだもんなあ。

|~マニュアル名|~内容|
|コントローラチップ:ILI9325(PDF)|一番大きなドキュメント。これがメインドキュメント|
|詳細データシート(PDF)|インターフェース仕様の概要。あと取り扱いの注意点など。|
|アプリケーションノート(PDF)|何だか初期化の方法?みたいのが書いてある。あまり関係なさそう。|

メインドキュメントの目次を見ていると、「7. システムインターフェース」という項目があり、「18ビットシステムインターフェース」「16ビットシステムインターフェース」「9ビットシステムインターフェース」「8ビットシステムインターフェース」「SPI」「VSYNCインターフェース」「RGBインターフェース」と色々なインターフェース(接続方法)が説明されています。
そういえばArduinoで8ビットで使うためにはどこかの抵抗を移動するとか何とか書いてあったなあと読んでいたら、「SPI(Serial Peripheral Interface)」で使う端子の数がすごい少ないことに気がつきました。
4本しかいらないの??(nCS/SCL/SDI/SDOの4本らしい)
多分電源とかは別途つなげるんだろうけど、10本以上つなげなくちゃいけないと思っていたら、こんな簡易なインターフェースもあるのかな。本当かな。
でも、16本とか10本使うところをたった4本で行うんだから遅いんだろうな。でもでも、ドラゴンレーダーってチープなインターフェースで済むし、SPIでいけるのならこれでいいじゃん!

あらためて「Arduino SPI LCD」とかで検索すると、やっぱり4本でつなげることが出来るらしい。しかもやっぱり少し遅いらしい。
それでも今回のドラゴンレーダーにはぴったりだ!SPIで接続できるといいなあ~!

*** 5.4 今日までの報告書

ブックマークしたページ

|~タイトル|~説明|
|3.3V化改造 – arduinoまとめサイト|詳しい解説をありがとうございます!うまく出来るかなあ・・・|
|お気楽工作日記 FRマイコンでLCD・・・|Arduinoではないですが、今回買ったLCDの8bit化する手順を書かれています。|
|ねむいさんのぶろぐ ねむいさんは心がきれいだからウソなんて付けない|ここにも8bit化の手順が書かれていました。バス幅という用語はググってみたけど、何となく分かったような・・・?|
|REDUINO-GHOST644U|ピン数と電源の問題があって、またこんなの見てた。|
|なんでも作っちゃう、かも。 Arduinoで遊ぼう – GPSを使った高精度な時計|このLCD、なぜかデジタルIOではなくアナログINに挿しています。何でこんなこと出来るんだろう。裏技?|
|132×132 Serial Color Graphic LCD|サイズが小さいLCD。こいつは5Vでもいけるらしい。|
|Arduino control AD7843 to achieve handwriting|買ったLCDのチップでも同じコードがいけるらしいサンプルコード。|
|エレキジャック ArduinoにSPI通信を行う機器を接続する(1)|書かれている用語はいまだ理解できないのですが、SPIはやっぱり4本でいけるらしいですよ。|
|INAの日記 今週末のINA|僕と同じようにArduino+ILI9325にトライしていて、しかも成功しています!ただ8bitインターフェースなので、13本(!)の線をつなげています。|
|Arduino cheat sheet|Arduinoのチートシート。これ便利かも。回路図とかいちいち本を開くの面倒だもんね。|
|2.8 inch QVGA TFT LCD with Touch Screen|似た感じの液晶の販売ページ。サンプルコードとか参考になるかしら。|
|Arduino Forum – i2c Vs SPI LCD connection|i2cとSPI、LCDをつなげるのはどっちがいいの?という話題。よく分からないけど、今回買った液晶もi2cっていうの使えるのかな。|
|マイコミジャーナル シンプルなバス(その5):SPI(その1)|SPIの説明。マスターとスレーブって言うのがいまだ理解不能。何となく懐かしい響きなんだけどIDE的に|

オラ、ドラゴンレーダーを作るぞ(4)

*** 4.1 LCDを注文した

最後の最後まで迷いに迷いましたが、aitendoで2.8インチTFT液晶(キャリーボード付き)[WBX280V009-PCB]を注文しました。

2.8インチTFT液晶(キャリーボード付き)[WBX280V009-PCB] 2,580円 (税込)
2.8インチTFT液晶(キャリーボード付き) / WBX280V009-PCB / 2,580円 (税込)

一回り小さい2.4インチTFT液晶(キャリーボード付き)[YHY024006A-PCB]ノキア液晶3300の3点セット[NOKIA3300LCD-SET] はArduinoとの接続成功例などありましたが、ドラゴンレーダーとしては少し小さすぎるかなあと・・・。

まあ失敗して買いなおしたとしても1,500~2,000円くらいだし、まずは自分が欲しいと思うものからトライしようと思います。

2.4インチTFT液晶(キャリーボード付き)[YHY024006A-PCB] 1,980円 (税込)
2.4インチTFT液晶(キャリーボード付き) / YHY024006A-PCB / 1,980円 (税込)
ノキア液晶3300の3点セット[NOKIA3300LCD-SET] 1,480円 (税込)
ノキア液晶3300の3点セット / NOKIA3300LCD-SET / 1,480円 (税込)

あと、せっかくなので他にもいくつかパーツなど購入してみました。
Arduinoなしでも動かすことが出来そうな電子工作がありましたので、それらも一緒に作ってみたいと思います。

|~商品名|~単価|~個数|~金額|
|緑色LED(5mm)(50個入り)[CSL-500G1AT-50P]|200 円|1 個|200 円|
|ボタン電池(3V)[CR3032]|100 円|5 個|500 円|
|電池ボックス(単3×2本)[BATTERYBOX-T3-2]|120 円|1 個|120 円|
|カラーキーボードスイッチ(○3.5/10個入り) (色: 黄)[SW-6X6X5H]|100 円|1 個|100 円|
|ジャンプワイヤ(70本セット)[JWIRE-80X60P190X10P]|590 円|1 個|590 円|
|2.8インチTFT液晶(キャリーボード付き)[WBX280V009-PCB]|2,580 円|1 個|2,580 円|
|ピンソケット(2.54mmピッチ・メス・単列)(ピン数:: 40)[PSOKET-2.54PT-S]|50 円|2 個|100 円|

上記注文リストのうち、一番下の2つ以外はドラゴンレーダーとは関係なく買ったものです。

そうそう、今日買うのを迷った2.4インチTFT液晶(キャリーボード付き)[YHY024006A-PCB]のArduinoとの接続サンプル動画を見ていたら、Arduinoとの接続部分に商品には含まれていないパーツがありました。

ピンヘッダとかピンソケットというものらしいのですが、いまいち自信がない・・・。
動画を見る限りピンソケットのように見えるので、これも一緒に注文しました。
今回買った液晶にも同様のものが必要そうです。

ハンダ付けが必要そうなパーツですが、なぜかハンダごてとハンダは持っています。
以前から憧れていた世界ですので、何かの折に秋葉原で買った記憶があります。

*** 4.2 今日までの報告書

理解した用語

|~用語名|~説明|
|マイコン|マイクロコンピュータのこと。パートナーに「Arduinoって何?」と聞かれて「マイコンだよ」と答えたのですが、「マイコンって何?」と聞かれて「マイコンピュータの略じゃない?」なんてことを答えていました。|

ブックマークしたページ

|~タイトル|~説明|
|Arduino 日本語リファレンス|言語仕様はJavaに似ているため、何の違和感もなく使えます。こりゃ楽だ。|
|PIC AVR 工作室別館 arduinoの館:キャラクターLCD表示ライブラリ|ドラゴンレーダーではキャラクターLCD(文字表示)ではなくグラフィックLCD(グラフィック表示)を使うのでそのまま真似することは出来ないですが、丁寧に書かれているため私にも理解できます。|
|ねむいさんのぶろぐ|液晶関係の記事が充実しています。何している人なんだろう・・・|
|BL-TFT240320PLUS V2| BL-TFT240320PLUS V2 とは TFT LCD QVGA 3.2インチの開発ボード(タッチスクリーンつき)だそうです。Arduinoのシールドとして使えるのでこれを買えば一発でLCDのハードウェアは解決するのですが、何となくつまらないんだよなあ。|
|How to use LCD TFT Arduino shield BL-TFT240320PLUS LCD|上記LCDシールドの使い方ページ。なんだかんだ言って気になっている。|
|2.4″ TFT LCD Screen Module: ITDB02-2.4|これもArduinoのシールドになるLCDパーツ(別売りのでかいコネクタが必要)。|
|TFT-LCD Shield|まだ発売前みたいですが、これもArduinoに取り付けできそうなLCDシールド。あれ、「ネムイ・トリノミアスさまデザイ」ってこれねむいさんだ。|
|エレ玩 Konyaの開発記録:AitendoのTFT液晶モジュール(ZY-FGD1442701V1)を使う|この方も詳しくLCD関係の記事を載せています。私の場合ハードウェア愛が少ないんだよなあ・・・|

オラ、ドラゴンレーダーを作るぞ(3)

*** 3.1 Arduinoが到着

到着する数時間前にたまたまみた動画。なんて不吉な・・・・!

爆発する電子部品(HD版)

via なんでも作っちゃう、かも。

まあ、とりあえず教本どおりに進めるのが吉ですね。。
まずは箱をあけてパーツを確認します。
・・・と、Amazonに書かれているパーツより格段に多いんですけど?!

どれが何なのかまったく知らない上に何の説明書きもないので、のっけから途方に暮れる。
Amazonの説明書きと教本を読みながら、送られてきた箱にメモ書きをしていきます。

特に抵抗のカラーバーが分からん。こちとら色弱でい!
特に抵抗のカラーバーが分からん。こちとら色弱でい!

ジャンパ線が各種いっぱい入っていることが分かりました。

教本といい、このはじめようキットといい、初心者向けとは思えない・・・
Amazonの評価には↓な感じに書かれていたのに・・・

本当に「入門」な人には購入をお勧めします。

もしかしてこの分野の人たちは、初心者に厳しいのか。

*** 3.2 日々のお勤め

私も一応社会人ですので、平日は大体(?)働いています。
今日は夕方6時までPC労働を行い、その後市民農園へ行って野良仕事。
今年すごくよく出来ているモロヘイヤやトマトなどを収穫しました。

ご飯を作ったりお風呂に入ったり録っといた映画を見たりと一通りの一般市民的な活動を行った後、おもむろにArduinoへと向かうのでありました。

ちなみに今日見た映画は「バグダッド・カフェ ニュー・ディレクターズ・カット版」と「ブレードランナー ファイナル・カット(の最初の15分だけ)」。
ブレードランナーの最初のほうに出てくる↓みたいな光が、バグダッド・カフェのジャスミンの部屋にかかっている「ハリウッドで背景画を書いていた男の作品」として描かれていたのが面白いと感じました。

ジャスミンのビジョンとしてなんども登場するイメージ
ジャスミンのビジョンとしてなんども登場するイメージ

ブレードランナーが1982年公開、バグダッド・カフェが1987年公開ということですので、意外と本当に本当かもしれませんよ。
「砂漠」というキーワードも両方に登場するしね(ブレードランナー・・・砂漠を歩いていて亀をひっくり返すという挿入話。バグダッドカフェ・・・モハーヴェ砂漠が舞台)。

*** 3.3 ようやくLED点灯

といった与太話はこれくらいにして、いよいよArduinoをPCに接続です。

USBケーブルははじめようキットにはついていないので、以前買ったjouet bleuのを使おうとしたらサイズが合わない。
デジカメ、プリンタなど色々確認してみましたがみんな合わない!!
あわあわとさらに探していたら、ようやく外付けHDDに使っていたUSBがぴったりだったので、これを使うことにしました。

PC上のIDE(開発用のソフトウェア。3~4日前からこれのインストールだけは済ましておいた)でポートの設定を行い、「Arduinoをはじめよう」の最初のサンプルを試す。
わーい。光った光った。

次にタクトスイッチを使った押しボタン式ランプのサンプルを試す。
・・・あれ、ボタンを押さなくても光りっぱなしだぞ・・・

Example02の間違ったタクトスイッチのつけ方
Example02の間違ったタクトスイッチのつけ方

もしかしてタクトスイッチの向きが悪いのかなと横向きなのをたてにすると、今度はブレッドボード(配線が簡単に出来る基盤。上記写真の穴だらけの部分)のabcdeのたて5マス部分に収まらない。。
教本の絵の通りなんだけどなあ。。

と、ここで気がつきました。

正しいタクトスイッチの向き。たてに使うこと!
正しいタクトスイッチの向き。たてに使うこと!

次のブロックだと電気が通らないと思い込んでいたのですが、ジャンパ線(電線)使うと別ブロックでもいいわけだ。なるほど~。

その他、Macのスリープ風点滅や、光センサーを使ったLEDの強弱指定など、はじめようキットで出来ることは一通りやってみました。
よーし次はLCDだ(お前に出来るのかーという声が方々から聞こえそうですが)。

*** 3.4 今日までの報告書

ゲットしたもの

|~内容|~リンク|~説明|
|ブレッドボードではじめる電子工作 – 初歩のラジオ製作||事前にいろんな回路図など見ていたのですが、まったく自分に理解できそうなものではなかったので、良さそうかなと思って図書館から借りてきました。しかし!小さく書かれていたサブタイトルの通りラジオ作りの本でした。。パーツの予備加工の方法などはとても参考になります。|
|最新LED活用工作ガイド||これも図書館で借りてきました。パーツの説明や配線の細かい図解などが素人には非常にありがたいです。|

ブックマークしたページ

|~タイトル|~説明|
|Little Bird Electronics – Arduino|Arduino関連のいろんなパーツが紹介されています。ぼけーっと眺めていると飛ぶように時間が過ぎていきます。|

オラ、ドラゴンレーダーを作るぞ(2)

*** 2.1 何を作るのか

具体的に何を作るのかということですが、これが完成イメージです。

ドラゴンレーダーの作り方
ドラゴンレーダーの作り方

技術的に可能なのかどうかもいまひとつ分かっていませんが、何となく上手くいく意味不明な自信だけはあります。

遊び方としては、

  1. お宝の位置情報(緯度、経度)を本体にセットする(LCDとボタンによる画面操作か、現在地をそのまま使用)。お宝は最大20個くらいまで登録できるようにする。
  2. お宝を探す人にドラゴンレーダーを渡す。
  3. お宝を探す人はドラゴンレーダーの表示から、お宝までの距離と方向を大雑把に知ることが出来るので、お宝の場所まで向かう。
  4. お宝を見つけたら、見つけたことをドラゴンレーダーに通知し、次のお宝探しに向かう。
  5. お宝を全部見つけたらミッションコンプリート!

という感じです。

ユーザーインターフェースは大きく次の3つになると思います。

  • 位置情報セット(管理画面的な)
  • お宝探索(現在地とお宝位置表示、つまみによる縮尺変更、場所移動や回転の即時反映)
  • 見つけたときの通知セット(お宝に近づいているときだけ使用可能)

ハードウェア周りとしては次の4つを使うことになりますが、現在のところどれ一つとして理解していません。
というか、電圧、電流、抵抗について、今日はじめて知りました。というくらいの素人です。

  • ボタンやつまみによる入力処理
  • LCD処理
  • GPS処理
  • デジタルコンパス処理

*** 2.2 フィジカルコンピューティングについて

能書きはいいからさっさと作らんかいという言葉が聞こえそうですが、もう少し現在の私自身の情報をお伝えしようと思います。
そもそも手元にArduinoが届いていないし。

普段私はWeb系のアプリケーションのみを開発しています。
どんなにすばらしいアルゴリズムを思いつこうと、最先端のプログラミング手法を学ぼうと、出来ることはWebブラウザに表示することだけです。
なので、以前からWebブラウザの外、ディスプレイの外のコンピューティングに強い興味を持っていました。

たまにそれっぽい雑誌や本を眺めることはあったのですが、インピーダンスだのレジスタだの意味を想像することも出来ない言葉たちに臆病になり、結局いつもどおりのJavaやPHPやAjaxに逃げ込んでいるという状況でした。
そのぶ厚く聳え立っていたハードウェアへの心の敷居を、例のGeekDadが軽々と崩してくれたのです。

今回作るドラゴンレーダーもWebブラウザで動かすだけのものであれば半日仕事で終わるようなものなので、普段からハードウェアに親しんでいる人にとってはあっという間に作り上げられるちょろいものかもしれません。
私にとっては配線一つとっても一日がかりになりそうな予感がしますので、完成までは何ヶ月かかるのか分かりません。
それでも今日どこかでチラッと読んだ「続けた人が勝ち組」の言葉を信じて、今度こそ自分の力で新しいハードウェアを作り上げたいと思います。

*** 2.3 今日までの報告書

ゲットしたもの

|~内容|~リンク|~説明|
|Arduino解説書||買おうと思ったら図書館に置いてありましたので、速攻借りてきました。|
|Arduino初心者のためのスターターキット||Arduino互換機で良さそうなのがあったのですが、結局Arduino Duemilanove 328が入っているこれにしました。明日か明後日くるはず。|

ブックマークしたページ

|~タイトル|~説明|
|スタパ齋藤の「週刊スタパトロニクスmobile」 ■ 2009年、Arduinoの現在|Arduinoのこれまでの歴史をざっとふり返ることが出来ます。|
|aitendo 「LCD」検索結果|秋葉原にショップがあるaitendoのWebサイト。安い。|
|[備忘ログ] 時計・SDカードリーダー付Arduino互換機「Seeeduino Stalker」|位置情報を記憶するためにSDカードが必要かと思い、最初はこれを買おうとした。でもArduino本体にEEPROMという保存用の領域があるので、これを上手く使おうと思い、スタパ齋藤さんもおすすめのArduino Duemilanoveを選択しました。|
|デバイスの接続|GPSやデジタルコンパスへの接続例を紹介してくれています。|
|スイッチサイエンス 超小型トラックボールモジュール|スイッチサイエンスさんは色々なパーツを売っているお店。今回購入したスターターキットもこちらで作っているそうです。|
|2.8 TFT Color LCD,touch screen shield V1.2 for Arduino 168/328|タッチパネル式の液晶シールド。海外からの取り寄せになるので割高になるけど、これもありかなあと見ていました。たぶん買わないけど色々参考になりそう。|
|aitendo I/F変換基板[IFB-LQ080T3AG01]|LCDは既成のシールドを使わずに自分で作りたいのですが、何が必要なのか皆目わからん・・・。このパーツは必要なのか??|
|arduinoにnokiaのLCDを接続 800円とちょこっと部品|ちょうどいいことやってる人見つけた!分からなくなったらこの人に聞こう・・・|
|Learning About Arduino and Nokia LCD|Nokiaの液晶(安い)を使うためのノウハウリンク集。超初心者向けのページが欲しいんだけどなあ。|
|Arduino Tutorial – connecting a parallel LCD|このページが一番詳しく配線とか書いてくれています。いつか理解したいものです。|
|NokiaLCDライブラリでNOKIA3300-LCDが動いた|これまたありがたい情報です。ただつなげ方が分からん!|
|千石電商オンラインショップ SparkFun GPS-09487|このGPSめちゃくちゃ安いです。1695円て。|
|Arduino + グラフィック液晶|配線が詳しく書いてあります!応用できるといいんだけど。|

今一番自信がないのはLCD。
とりあえずGPSとコンパスからはじめるか・・・

オラ、ドラゴンレーダーを作るぞ(1)

*** 1.1 事始め

先週、カリフォルニアにあるシャスタ山に再訪してきました。
シャスタ山へは3年前に初めて訪れ、その時の日記はこぶたのラッパに書いています。
今回の旅行記はメンドクチイので興味のある方はパートナーのブログをご覧ください。

その旅行中に立ち寄った本屋さんで一冊の本を購入しました。
それが『Geek Dad(ギークなパパ)』。
まだ翻訳されていないので、アメリカのAmazonへのリンクになっています。

今でも2歳の息子とはよく遊ぶのですが、まったく考えたこともないような遊び方の提案に大興奮し、帰りの機中で読破してきました。
そんなに英語は得意ではありませんが、実用的な内容なので結構簡単に読み進められました。

その中でも作ってみたい!!と思ったのがこれら。

まえがき:Arduinoを使ったオートパイロット飛行機
4. エレクトリック・折り紙
5. サイボーグ風ハロウィンかぼちゃとギーク・オーナメント
11. ラジコンカーを使った破壊対決
12. 風船を使って空からデジカメで撮る
14. いつでも蛍
17. アウトドア・ムービー・シアターを作る
24. 二進法カレンダー
27. LEGOランプ

「子供を遊ばせる」ことではなく「子供と一緒に最高に楽しみ遊ぶ」ことを目標とした本で、著者のKen Denmeadさんが実際に自分の子供たちと一緒に作ったり、自身のサイト「GeedDad」に投稿された選りすぐりのアイディアが満載です。
読んでるとわくわくしてきますよ~。

特に気になったのが、Arduino(アルドゥイーノ)というマイコンキット。
これまでも一度jouet bleuというマイコンキットを購入したことがあったのですが、あくまで教育用ということで拡張機能なしのため、LEDを光らせたりボタンでLEDを制御することくらいでおしまい。もっと色々作りたい!と思わせるものではありませんでした。

Arduinoも基本的な使い方はjouet bleuと同じですが、センサーやもろもろの拡張モジュールが世界中で開発・公開・販売されていて、一大コミュニティが出来上がっています。
主な遊び方として、LED、赤外線センサ、GPS、デジタルコンパス、LCD、モーター、3軸加速度センサ、サウンド、etc.. とにかくいろいろあるんです!

*** 1.2 なぜドラゴンレーダーなのか

そもそもドラゴンレーダーが何かをご存じない人のために説明しますと、漫画ドラゴンボールに登場する、ある意味もっとも重要なアイテムです。
漫画ドラゴンボールは、世界に7つある「ドラゴンボール」を集めると、シェンロンと呼ばれる龍の神様が現れて願いを一つかなえてくれる(その後ボールは世界中に飛び散り、一年間石となる)という設定がベースになっています。
ドラゴンレーダーはそのドラゴンボールを探すためのこういう機械。

ドラゴンレーダーを操作するブルマ
ドラゴンレーダーを操作するブルマ

今回作る予定のドラゴンレーダーは、ドラゴンボールを見つけるというハイスペックなものではなく、事前に設定した緯度経度の場所を画面上にマッピングするごくごく簡単な(に違いない)機械です。

*** 1.3 ここで昔話

昔、私がまだ高校生だったころ、当時小学生だった妹とその友達から、次のようなお願いをされました。
「ねえねえ、宝の地図つくってよ」
よく漫画に出てくる○○から東へ20歩、さらに北へ5歩いき・・・的なものをお願いされた覚えがあります。

当時の私は非情にも、「えーめんどくさい」とむげに断ってしまいました(まあ、今でも同じように答えるかも・・・)。
妹もしぶとく何度かお願いしてきたのですが、「めんどくさい」「また今度」でお茶を濁して、結局宝の地図を作ることはありませんでした。

この出来事を妹が覚えているかどうか走りませんが、私の中ではなぜか1年に一回くらい良心の呵責とともに思い出され、「ああ、作ってやればよかったなあ」と何とはなく遠くを見つめることになるのでありました。

このドラゴンレーダーが完成した暁には、お宝をあちこちに設置した後に、お宝の位置を記憶させたドラゴンレーダーを妹に渡すことになるはずです。
美談で終わるとよいのですが・・・