2009/11/02(月)LIPに新しい仲間、NDS充電ケーブル

先日製作の紹介をした携帯バッテリーのLIPですが、コレ用に市販のケーブルを買い足しました。
それは、USB端子からニンテンドーDS Lite(NDS)を充電できる少々怪しい中国製ケーブルです。
先日写真に収めていなかったLIP完成状態を一緒に撮影。
NDS_DCcable.jpg


購入場所は大阪日本橋シリコンハウス共立です。入り口すぐ右の足元に置かれているかごの中に砂ぼこりをかぶり始めたような状態で300円でした。このケーブルがあればLIPに関係なくUSB端子からNDSLiteを充電できるしACアダプタを片付けられる・・・。最近携帯機器だらけで各々にアダプタがあって邪魔なので一石二鳥というわけ。


今この日記を書きながら、LIPからDS充電を試みたら数秒で充電ランプが消えましたorz
LIPの出力電流間に合ってないのかな…。

どうやら「次回に続く・・・」ようです。乞うご期待!はできません。(´・ω・`)

2009/10/25(日)MIDI機器を初購入

ニコニコ動画でFPGAを利用したMIDI機能を内蔵したメトロノームを製作している人を発見。
『Utchy by 砂肝』の館
すごいな~いいな~と思っていたのですが、FPGAもDTM関連も全くの素人。
それどころか、この人の設計がいろいろと凄くて自分なりに機能をまとめると、

・FM音源方式のMIDI音源機能(MIDI-IN)
・MIDIキーボード機能(MIDI-OUT)
・電子楽器機能(MIDI-OUTと同時に音がなる
・リズム機能(メトロノーム)
・どういう訳か動画再生機能w

のようで到底追いつけないようなお人…。
それでも実現できそうな範囲で乗っかりたいな~という思いがあります。

続きを読む

2009/10/06(火)リチウムイオンポータブル「LIP」

去年の年末から構想して、今年の頭くらいから少しずつ進めてきた工作です。
名前が某ゲーム機の語呂をパクって偉そうにリチウムイオンポータブル(全然似てないか…)、でもゲームは全然関係ありません。で、何をする物かというと持ち運びの充電用バッテリーです。有名なのはバリューウェーブが出しているPOCKET MOBAでしょうか。
この会社の商品は出力がUSB端子ですがいろんなものに繋がるように変換コネクタも販売していてかなり便利になってます。今調べたら電源で有名なFILCOも出しているようです、初めて知った。
それを劣化コピーのごとく製作したのがLIPで、スペック的には
・USB-miniB 端子から充電
・3.7V830mAh Li-ion電池搭載
・出力端子USB-A端子
・出力と充電動作は排他動作(同時にできないようにしている)
・充電電流はUSBに優しい100mA前後(約8時間で満充電)
です。バッテリーがデジットジャンク扱いのバッテリーで、この手の用途としては容量が少ないため携帯を満充電まで!などの能力は出ませんでした。それでも600円で売っていたこのバッテリーはなかなかお得だと思います。(2009年9月現在でもかなりの数ありました。)
LIP(sch).PNG
LIP_01.jpg
LIP_02.jpg
LIP_03.jpg

中身を開けた状態の写真、充電中は中の青色LEDが光ります。ケースはタカチのMX2-6-8GSで格好よく仕上げれました。スイッチ部分のケース加工失敗しましたがorz。実際のテストではWillcom携帯のnine+のバッテリを目盛り1から目盛2までを充電。やはり市販品に比べればかなり劣りますが緊急用にはなるので、まぁ良しとします。

今回はできたこと、
・リチウムイオン電池を恐る恐る使用して、通常消費と専用ICによる充電に成功。
・小型なチップ実装のDC/DCコンバータを使用して+5Vの取り出しに成功。
・ただし、効率は実測していない。
MP3プレイヤー製作の布石になったような雰囲気が漂っている・・・?

                  *       *       *

実はこの製作でバッテリーは2個目で、最初DC/DCコンバータ部のショットキーバリアダイオードを逆実装していて動作せず、バッテリーがヤバイ!と思い早々に処分して基板だけになってました・・・。そして、懲りずに2個目を購入して回路図を見直したところダイオード逆接続が発覚し修正後動作がとれて晴れて完成したのでした。

2009/10/02(金)デジットLCDでテトリス完成

数日前に一段落していたのですが、更新は今日になりました。先日からいじっているデジットジャンクLCDに、前回予定していたフォント表示機能を追加しました。これで漸くソレらしいサンプルプログラムになりました。一段落の状態として、

 ・ベースボードはとある講習会の支給品を改造(w
 ・ATMEGA644P@8MHz
 ・デジットLCDの左半分64x64dotを使用
 ・VRAMはマイコン内部メモリ
 ・画像ドット命令、5x7フォント描画機能
 ・ゲームはテトリス
 ・ハイスコアはEEPROMに記録
 ・ブザーによる効果音

です。結局、フォント表示は思い通りにすぐに処理できました。以下に動かしている写真と負電圧生成回路が実装されている状態を貼っておきます。

LCD180_TETRIS1.jpg
LCD180_TETRIS2.jpg


グラフィック液晶に文字表示などできてるし、ゲームが動くとかなり楽しいものです。やってると昔流行ったキーチェーンゲームを思い出します。
今回でデジットLCDいじりは一旦終結する予定で、LCDの最終就職先は・・・どうしようかなぁ最近秋月に簡易ストレージオシロキットが出ましたがそれと似たような自分開発版を作ってみるかな?

今後、このグラフィック液晶路線を鍛錬していくなら、やっぱりOLEDとかかなぁ。
aitendoで安いのが売られているし、ネットでは既に情報がかなりあるし。コミケに出展できそうなゲームとかも作れるかも?

2009/09/26(土)グラフィック液晶用フォント

先日から弄って遊んでいるデジットジャンクLCDですが、漸く落ち着いて今のところは、
・ATMEGA644P@8MHzにて、右半分の表示を捨てれば何とか許せる描画スピード
・画面左半分でテトリス作って遊ぶ
ところまでやって色々試しています。グラフィック液晶を使う上ではやはり、VRAM描画の部分の最適化やプログラム的に利用するときの使いやすさも重要になってきます。
命名は自己流ですが、ドットを打つPSET関数、線を引くLINE関数、円を書くCIR関数、文字を書くFONT関数などのことです。で、自分は、実力不足でPSETしか実装していません。何せ、VRAMが164x64ドット / 8bit = 1024byte なのですが、ビット演算盛りだくさんで処理しているし(かなりてこずった)、線や円なんてどうやって処理を作るか、最適化するか…自分にはまだ勉強するところが多い。orz
で、できる機能でかつ実用性あるのがFONT命令かなと思うし、これならいけそうです。文字が打てるとテトリスのスコア表示とかできるし色々用途も広がります。

先にも書いたように、現在のスペックでは画面を左半分しか使いません。つまり64x64ドットです。さらにゲーム画面として32x64は使用済みです。残るのは32x64、横幅32ドットで以下に良い感じに文字を表示するかです。ここでは、表示文字をローマ字の大小+数字+記号に絞り込みました。キャラクターコードで言うところの0x20~0x7Fです。そして、1文字あたりのサイズですが、プログラム的にきりの良い1byte(8ドット)を横幅にすると4文字しか入りません。そこで1byteの下位3ビットを捨てて5ビット(ドット)にしました。高さも8ドットは縦に長すぎるので7ドットに絞り込み、そうしておいて、
・5x7ドットサイズのフォント
・1列あたり1byte消費(下位3bitは無視)
・1byte x 縦7ドット = 7byteで1文字
・文字の隣接防止のため右1ドットは出来るだけ使わない
と設定しました。こうすることで32x64ドット内にびっちり詰めれば6文字 x 9行 = 54文字表示できる計算です。安直に8x8フォントだと32文字で1行4文字であまりにもきつ過ぎるので、それから比べればかなり良い結果になりそうです。

で、構想は出来ましたが肝心のフォントを製作しないと意味がありません。というわけで早速Excelのマス目を利用して地道に書いてHEXデータも見ながら全て手計算しました。本当はExcelのマクロなどでHEXデータは出せばよいかもしれません。というか、そのほうが早かったかも…。
5x7_font.png

ざーっとは綺麗にいけたかな?と思っています。あとは、コレをプログラムヘッダーファイルに適用させて、関数書いて、いざ表示テストして…結構先は長そう。でも、フォントデータって別に転用できるし秋月のグラフィック液晶使うときなどにも役立ちそう。