MobileHackerz
HOME > ウェアラブル奮闘日記:2003/09


2003/09/23

DesignWave ちょっと間が空いたので近況報告です。
そういえば報告してませんでしたが(笑)ちゃんとDesignWaveの10月号は買いました。とりあえず3冊。
一応コネクタだけはつけておきましたが、まだ手付かずです。いろいろいじりたいなぁ…。


そして、ここのところ数日、「STEP3」として、トリビアボタンに音を出す回路を組み込むためにいろいろ検討してみました。

9月9日に書いたように、当初はPIC+EEPROM+圧電サウンダで、EEPROMにあらかじめ入れたデータをPWM再生することを想定していたのですが…。今回、「なるべく入手しやすい部品で簡単につくる」ということを考えているのでちょっと厳しいかなぁと。あと、PWM+圧電サウンダで鳴らした「へぇ」が思ったより綺麗に聞こえなかった、というのもあります。

超ミニボイスレコーダー それでは…ということで、ELEKITの「超ミニボイスレコーダー」という音声録再モジュールを買ってきてみました。これに「へぇ」音を録音して、ボタンにぶら下げるだけで簡単高音質に発声できるんじゃないかなと。
電源電圧は5〜6Vなので、電池を2本増やして…とか考えます。
しかし、買って帰ってよく説明書を見ると、「ボタンを連打した時の動作」は「一回押す→再生、もう一回押す→再生停止、さらにもう一回押す→最初から再生」という動作。うーん…。「連打すると『へぇへぇへぇ…』」という動作はちょっと望めないようです。うまくこのモジュールを改造してどうにかならないかな、と基板を眺めてみても、肝心のモジュール部分が完全にワンチップに収まっていて全然手出しできる余裕がありません。


と、ここまで考えて「まぁその問題は一旦忘れて、とりあえず作るぞぉ」という気分になったところで…、ふと思いつきました。

ちょっとまて、PICを使って、PWMではなく、PCM再生したらもうちょっとマシにならないかな?

EEPROMのアクセスが重荷になるというのであれば、内蔵ROMに全部納めてしまえばいいんじゃないかと。プログラムROMは1Kワードしかないからなぁ、となかばあきらめていたのですが、よくよく考えれば1Kワードあるんです。 8pinのPICで、電源に2本、ボタンに1本割り当てても4bit分の抵抗ラダー出力が取れそうだし…!?
生のPCMでは無理でも、サンプリングレートを落として、DPCMかADPCMあたりで無理くり押し込めば、「へぇ」くらい入るんじゃないだろうか…?

…なんかできそうな気になってきました(;´Д`)

そんなわけでただいまPCM各種アルゴリズム検討中です。PICにはまだコーディングせず、PC上で。
(いや、PICは未経験なんですけど…こちらのページを見て、あ、なんとかなるんじゃないかな、という予感が。)
いまのところ、7KHz 2bitDPCMで「ざらついているけどPWMよりマトモに聞こえる」感じにはなりました。が、「へぇ」がわりと高音成分を含むので、7KHzでは結構こもっちゃうんですよねぇ…。
12KHz 1bitADPCMでなんとかならないかと試行錯誤しています。1bitってのはかなり厳しい…けど、なんとかならないかなぁ。うーん…。





2003/09/15

引き続き、極力入手しやすいものばかりを集めて作るリアルトリビアボタンです。

STEP 2:電球を増やして見た目をさらにへぇボタンへ

ふたたび材料 STEP2では電球を増やして「へぇボタン」っぽく改造します。電球は模型店でも売っていますが、ソケット(受け皿)つきのものは1個120〜130円くらいしますので、2個100円のタッチライトを100円ショップで買ってきて分解したほうが安上がりに調達できます。
完全に部品取りにして他の部分は使わず捨てますので、2個100円のものがあれば迷わず買いましょう。

必要なもの:
  STEP1の改造を終えたタッチライト
  タッチライト  7〜8個
  (部品取りに使うので2個100円の小サイズが最適)

必要な工具:
  ドライバー各種(精密ドライバーなど、こまかいもの)
  半田ごて, はんだ(電子工作用)
  配線材(銅線)  適量
  穴あけ用キリ、丸やすり、カッターなど
  (工具はどれも100円ショップで購入可能)



電球を取り外す 「部品取り」用のタッチライト(別名:いけにえ)を分解し、電球をむき出しにします。中サイズ以上のタッチライトは電球のみ(分解せずに)取り外せますが、小サイズのものは完全に分解しないと外せません。
このソケット(簡易なものですが)は、電球ごとひっぱるとスポっとそのまま抜けます。次にスイッチの時と同様、ついている配線を半田ごてを当てて外します。


取り外した電球 完全に電球を取り外しました。この電球を取り出して使うためだけにタッチライトを買ってくるという超贅沢仕様。でもそれでも電球単体を模型屋で買ってくるより安かったりするわけですから…。

さて、そんなわけで、次にこの電球をボタンの周囲に埋めていきます。


電球の位置を検討 ベースとする(STEP1の改造が終わった)タッチライトをもう一度分解し、枠を外します。そして電球が入る位置を検討します。電球は内側にある程度埋まる形でつけますので、内側のスペースに余裕がある場所を選んでください。場所を決めたら油性マジックなどで位置をマークしていきます。


穴あけ 位置を決めたら、そこに穴をあけます。まずキリで穴をあけ、その穴にドライバーを突っ込んでぐりぐりしたり、丸やすりで削ったり、カッターやニッパなどで削ったりしながら穴を広げていきます。


電球が入るくらい 電球がソケットなしでぴったりささるくらいまで穴が広がればOKです。


ソケットで固定 電球をさし、反対側からソケットを閉めるとちょうど(簡単に)固定できる、という仕掛けです。


穴あけ完了 同じように電球をつける場所全部に穴を開けます。念のためベースに仮止めして、電球と他の部分が干渉しないことを確認しましょう。(この写真では面倒なので片側だけしか作業してませんが (゚ε゚)キニシナイ!! 。以下同様(笑))


配線図
さて、それではいよいよ配線です。この図を参考にして、「電球どうしが並列接続になるように」配線します。
最初についていた電球も、後から追加した電球も、それぞれ一律並列につながっていることを確認してください。
直列に繋いでも構わないといえば構いませんが、明るさが暗くなってしまいます。


組み立て あとは組み立てです。今回はこの工程が一番注意が必要かもしれません。
注意することは、
・側面の電球をセットする前に、押し部分(透明のドームと、反射用ボール紙)をあらかじめセットしておかないと後からでは入らないので注意する
・電球をセットする際に、あまり強く電球をねじると電球が壊れてしまうので注意(強くねじらなくてもはいる程度には穴を広げておきましょう)
・配線が他と接触しないか、また、配線が切れたりしないか注意する

また、電球の固定ですが、場所が決まったらソケットを接着剤かホットボンドなどで固定してしまってもいいかもしれません。
ただし、固定する際はその前に、完全に組みあがる(他の部品の邪魔にならない)ことを確認してください。


完成 完成です。
結構それっぽくなったかな?


完成図(1) 完成図(2) 点灯するとこんな感じになります。………ああっ!案の定組み立てる時に電球一個壊しちまった(;´Д`)
一個ついてないのはとりあえず見なかったことにしておいてください……

結構電力消費しますので、使う電池はアルカリ単三電池にしておきましょう。







2003/09/14

極力入手しやすいものばかりを集めて作るリアルトリビアボタン

そんなわけで(?)「100円ショップで買えるもの」を中心に、できるだけ手に入りやすいものを組み合わせてへぇボタンっぽいものを作ってみよう、という試みです。夏休みの宿題…にはちょっと間に合いませんでしたが(笑)、ご要望におこたえしてというかそんな感じで。

STEP 1:スイッチを改造して「押すと光る」ボタンに!

へぇボタン素材 へぇボタンを作る上で、まず素材とするのはご存知「タッチライト」です。100円ショップ各社で売っています。
とはいえ最近ダイソーでは売っていないこともあるみたいなので、売っていなかったら他の100円ショップもまわってみましょう。

必要なもの:
  タッチライト(中)   1個

必要な工具:
  ドライバー各種(精密ドライバーなど、こまかいもの)
  半田ごて, はんだ(電子工作用)



タッチライト裏面 まずタッチライトを分解します。裏からネジが4本止められているのでこれを外します。100円ショップものらしく、あまり精度のよろしくないネジを使っているので(笑)プラスドライバーを使うよりは、ぴったりのサイズのマイナスドライバーを使ったほうがまわしやすいかもしれません。


タッチライト内部 分解すると、内部はこのようになっています。赤矢印の先にあるのがメインのスイッチです。今回はこのスイッチを改造します。


スイッチ本体 スイッチ部分は引くと抜けますので、配線を半田ごてを使って取り外します。半田ごてをあたためて当てれば簡単に外せます。


スイッチ(タイプ別) スイッチは、製品によって2種類あるみたいです。今回は左のタイプを前提に説明しますが、右のタイプでもグレーのカバーの形が違うだけでやることは同じです。


スイッチの分解(1) さぁ、ここから非常に細かい作業になります。
この位置に小さいマイナスドライバーを突っ込み、「つめ」でひっかかっているグレーのプラスチックを押し込み、スイッチを分解します。

スイッチは「黒いプラスチックのベース」に「グレーのプラスチックのカバー」がつめでひっかかっている構造になっています。ちょっと力が要りますが、もともとこのスイッチは直接見えるところにあるわけではないので、多少傷がついたりするのは気にせず思い切って分解してください。


スイッチの分解(2) ボタン部分(白いプラスチック)、カバー部分(グレーのプラスチック)、ベース部分(黒いプラスチック)、ばね、押さえ金具(ワの字形)、接点(とても小さいクリップ状の金属部品)
分解すると、このような部品にわかれます。

このうち、ワの字形の金具(赤い矢印で示している部品)が「カチッ」とスイッチをロックする機構です。今回、この金具を入れずに再度スイッチの組み立てを行うことで「スイッチ」から「ボタン」への改造を行います。


組み立て作業(1) 接点(とても細かいクリップ状の金属部品)は、ベース(黒いプラスチック)の金属部分にこのようにはまります。クリップで金属板を挟むような形になります。


組み立て作業(2) そして、その接点をボタン部分(白いプラスチック)のくぼみの部分に当てはめます。これで、ボタン部分(白いプラスチック)が上下することで同時に接点(クリップ状の部品)が移動し、スイッチのON/OFFが行われる仕組みです。


組み立て作業(3) 次に接点の反対側(赤矢印で示した場所)にばねを入れます。写真では飛び出していますが、この部分に(ベースとボタン部分の間に押し込むように)ばねを埋め込みます。精密マイナスドライバーでばねを押さえながら押し込むようにするとうまく入ると思います。
押し込むともちろんボタン部分(白いプラスチック)が押し出されそうになりますから、外れないように手で押さえながら次の作業に進みます。


組み立て完了 あとはグレーのカバーを元通りにかぶせるだけです。つめをひっかけるように押し込むとかちっと元通りにはまるはずです。
ばねが飛び出さないようにカバーを戻すのは結構大変ですが、落ち着いてやればできるはずです。
最終的には写真のように、ワの字の金具が取り外され元通りの形になったスイッチ(ボタン)になります。
この段階でカチカチというスイッチのロックは無くなり、押すと戻るボタンになったはずです。


再び半田付け 再び元の配線を半田付けしなおします。
電池ボックスのマイナスから伸びた線(電池のマイナス側から伸びている線)を中央に、電池ボックスのプラスから伸びた線(電池のプラス側から伸びている線)を写真の通り(スイッチの"足"が手前(上)にある状態で、右側)に半田付けしてください。


完成 あとは元通りタッチライト全体を組みなおせばSTEP1完成です。
いままで「一回押すとスイッチON(ライトON)」「もう一回押すとスイッチOFF(ライトOFF)」だったタッチライトが、「押している間だけ光る」というへぇボタンっぽいものに変身したはずです。
なお、「そのままで点きっぱなし、押すと消える」という状態になってしまった場合は、スイッチへの半田付けが間違っています。3本足の中央はそのままで、左右を入れ替えてみてください。





2003/09/13

へぇボタンアドバンス(改)
数字表示がつきました

ROMイメージのお持ち帰りはこちら

またちょっと仕事が一息ついたので「へぇアドバンス」をいじってみました。かなーりイマサラ感がありますが、まぁ、リハビリというかちょっとした手慰みにはお手ごろということで。

今回、日記の流れ的にはかなり唐突に「いきなりGBAソフトの自作話が出てきた」のですが…
実はなんというかその、ある日なんとなくGBA関連のページをさまよっていたら ゲームボーイアドバンス用ネイティブBASICコンパイラなんて恐ろしいモノがあるということを知ってしまい、いじってみたくて いじってみたくてしょーがなくなってしまったのでした。
で、とりあえず簡単に作れそうなものは…というわけで、「へぇアドバンス」を作ってみようと。

最初(9/3)の「音だけ版」は、実にこのBASICコンパイラ(DragonBASIC)を触りだして30分後、ソースにして5行くらいの実にシンプルきわまりない状態。
絵を入れてみようとしたものの試用版の出力サイズ制限に引っかかって駄目、それじゃあまずは音だけ…、と。
でもこの段階でかなりオモシロくてシビレてたので(笑)、さっさとレジスト。Kagi経由で$50は安い安い!

で、次(9/4)はレジストしたコードが届いたので(サイズ制限が無くなったから)絵を入れてみたじょー、というわけだったのでした。

というわけで、オススメです、DragonBASIC。なんだかえらい簡単にGBAソフトが作れてしまいました。
まぁ、少し凝ったことをしようとすると、GBAというハードウェアの理解が必要になってきたり(BG,スプライトなどのハードウェア構成の理解が必須)しますが、このあまりにものお手軽さは驚異的。
ただ、お手軽お手軽とはいいつつちょっと癖はあるので(今回数字を出すのに手間取ったのは、スプライトとして定義するための(DragonBASICが解釈してくれる)画像データを作るのに困ったため。 チュートリアルではPCXで画像を用意してあるのですが、手ごろなアプリで適合するPCXを吐けるものがどうしても見つかりませんでした。Irfanviewで4bit(16色)に減色し、4bitBMPを出力すると読めるファイルになります)誰もに薦められるというものでもないですが、 少なくともこのページを好んで読んでいるような人は大丈夫。(笑)

というわけで、(ちょっと汚らしいというか試行錯誤の跡があってたいへん「美しくない」ソースですが)参考のためのソース(DragonBASIC)も上げておきます。DragonBASICをレジストしないとビルドできませんので注意。


このROMイメージを実機で動かす方法

どうしてもゲームボーイ実機で動かしてみたい、または、DragonBASICでいろいろ自分で(実機で)試してみたい、という人に実機で動かす方法を。

いくつか手軽な方法がありますが、一番わかりやすい(GBA本体の改造や特殊な手順が必要ない)のは、ブートケーブルUSBFlash2AdvanceのROMに書き込んで使う方法かと思います。
ともに秋葉原ならITプラザで(運がよければ)買えます。ブートケーブルUSBは5500円、Flash2AdvanceのROMは64Mbでやはり5〜6000円くらいです(自作プログラムを書いたりして遊ぶくらいなら一番容量の少ないもので充分)。
あとはこちらのページから、USBドライバとdevman_usb.exeをダウンロードして、

1.ブートケーブルUSBをPCに挿す
2.デバイスドライバを入れる(2回目から省略可能)
3.ブートケーブルUSBの反対側をGBAに挿し、GBAにFlash2AdvanceのROMを入れる
4.devman_usb.exeを起動
5.指示通り、GBAを"SELECTとSTARTを押しながら"電源を入れる
6.あとはへぇボタンのROMイメージを選択して書き込む

これでOKです。あとはGBAの電源を入れなおせばお手元へぇボタンのできあがり。

こういう一種怪しげな世界と縁が無い人だと「一体どうやってGBA本体で動かせばいいのか」全くわからないと思いますが、実はそのための道具はわりと簡単に手に入ります。先に紹介したDragonBASICとともに、ちょっと一風変わった遊びとしてオススメしておきます(笑)





2003/09/09

ひぇぇぇ、やじうまWatchにも載ってしまいましたかΣ(・ε・;)
自分ではGBAへぇボタン、絵がとりあえず出ただけで結構満足してしまったんですが、思ったより注目されているようでびっくりです。
もしよかったらトップページとか、変なスカウターディスプレイをいじくり倒している様子とかも見ていってね(^^;




2003/09/04

ゲームボーイアドバンス版「へぇボタン」、絵が全く無いというのもちょっと寂しいので、とりあえずボタン画像だけ入れました。LED表示は…まだ入ってません(遅
へぇボタンアドバンス
エミュレータで動かすとこんな感じ


へぇボタンアドバンス(実機動作例)
実機で動かしている様子
ROMイメージのお持ち帰りはこちら

ボタン押すとへぇへぇ言いながらボタンがペコペコと動くのはやっぱり楽しいです(笑)
しかしちょっと画像アレンジしないと、GBAの液晶だと基台の部分がなーんにも見えませんな…(SPだと見えるのかなぁ…)


Eyetop なんか若干忘れられがち(というか本人が忘れ気味(笑))なので再確認。ほんとうはこのディスプレイで「ウェアラブル・ゲームボーイ」をやりたいからいろいろいじっているんですよー。確か。





2003/09/03

仕事が一段落…はしてないけど、一瞬一息ついたのでいろいろうごめいてみるテスト。

へぇボタン素材 最近やっぱりトリビアの泉が面白い、というわけで、「へぇボタン」を作ってみたくなりました。これを実際のモノで作ってしまおう!というわけですね。
とりあえず素材として100円ショップでタッチライトをゲット。大きさがいろいろあるので、中と小を買ってみました。


内部スイッチ 中をばらしてみると、大きさにかかわらず左のようなスイッチが中に入ってました。まずはこれを置き換えるモーメンタリ(押すと戻る)スイッチを探します。今回はかなりぴったりのスイッチ(右側)を発見したので大購入。BB-25というタイプで、鈴商で一個150円でした。(ほかの店では350円くらいしたので安い店を探しましょう(笑))
スイッチの頭をニッパで短くしてやると元々ついていたスイッチと置換可能です。


次に内蔵する「へぇ」という音声を発する部分をどうするか考えます。なんとなく「ちっこいPICとそこそこの容量のEEPROMを組み合わせればなんとかなるんじゃないかなー」とか検討します。思ったよりタッチライトの内部にスペースが無かったので、完全に内蔵させるためにはなるべくコンパクトにする必要がありそうです。
となるとちっこいPIC確定…かな?…ちっこいPIC(12系)はI2CのI/Fを持っていないので、I2CでEEPROMに自力でアクセスし、なんとかして音声を再生する必要がある、ということですか。
正直、PICは一度使ってみたいと思いつつ今まで触ったことがないので、いきなりPICで作り始める前に、まず手馴れたH8/3664で作ってみることにしました。

中の音源 で、これがその試作です。秋月H8/3664基板+H8/3664 I/Oボードに、EEPROMと圧電サウンダだけぶら下げてある状態です。
ここで自力I2Cアクセスを行いEEPROMの読み書き、またPWMでの音声再生にチャレンジ!


ソース(一部)
H8/3664用ソース(実験途中版)

とりあえずなんとなく音が鳴った+なんとなくEEPROMへのアクセスができた、というところまではなんとかなりました。EEPROMアクセスの超書きかけコード、ならびにPWM音声再生の超書きかけコードをあげておきます。
秋月のH8/3664基板(16MHz)のP84に圧電サウンダをぶらさげただけのものにバイナリを書くと、なんとなーく「へぇー」という音っぽいものが鳴るはずです。(EEPROM関連のコードはソース見ての通り現在殺してあります)

もはや色々な意味で人に見せられるようなソースではない、実験途中のいろいろ書き換えている真っ最中!という整理もへったくれもない状態のコードですが、今回ばかりはこれで放置します。

…なんで放置するかって…?
ちゃんとしたものが発売されちゃうんだもんなぁ…(;つД`)


ついしん。ちょっとくやしかったので、ゲームボーイアドバンス版を作ってみました(笑)。
このGBAファイルをFlash2AdvanceなどでROMに書き込んでGBA本体に挿すか、エミュレータなどに食わせてあげると「ボタンを押すと『へぇー』と鳴る」装置になります。まだ画面とかまったく無いですが。












管理人へのメールについてはこちら
MobileHackerz - It is not cracking but happy hacking!