ラベル ハード の投稿を表示しています。 すべての投稿を表示
ラベル ハード の投稿を表示しています。 すべての投稿を表示

2023/08/07

インベーダーの効果音はSN76477なのか

「スペースインベーダー」の効果音はSN76477で出している、と言われている。UFOの音はデータシートに載っているサンプルとほとんど同じなのでわかるけど、他のいろんな音をどうやって出しているのかがずっと謎だった。SN76477はソフト的に制御しにくいはずなのにどうやって音を切り替えてるのか、というのも興味深い。たまたま回路図を見つけたので、そのあたりのことをちょっと調べてみた。

効果音の回路の中心にドーンとSN76477があるような感じのものを想像していたけど、ぜんぜんそうじゃなかった。特徴的な発射音やインベーダーに当たったときの音など、ほとんどの音はオペアンプを何個も使ったそれぞれ専用のアナログ回路で出している。インベーダーの歩行音は555(実際は556)。爆発音や発射音に使うホワイトノイズはシフトレジスタによるデジタル回路で作っている。ではSN76477は何に使っているのかというと、結局、UFOの音だけ(!)のようだ。

たしかにSN76477が使われてはいるけど思ったのと違う。。

2023/05/07

6ピン7セグ実装してみた

6ピン7セグの案を実装してみた。

秋月のF基板に回路図のまんまの配置でチップLEDを並べてそのまま配線した。青LEDを使い電源電圧を3Vにするので抵抗も必要ない。6ピンの配置がまるごと14ピンPICのPortC(を裏側から見た場合)のピン配置にぴったり当てはまるのでソフト的にも都合が良い。

ちなみにA8というシールはPICのリビジョンの値。(マーキングではわからないので MPLAB X IDE などで中の情報を読む必要がある。)PIC16F1823のA8はバグ入りらしいけど、この程度なら普通に使える。

2023/04/23

6ピン7セグ

7セグ表示は普通モジュールになってるのを使う。モジュールの中の配線はすべてのLEDの片方がコモンになってるだけというのが多い。もしもLEDを7個並べてそれと同じものを作ろうとしたら、実際の配線は意外と複雑かもしれない。いっそのこと単純にこんな風にしてしまったらどうだろう。

これなら配線が簡単だし、なんと端子数が6個になってる。7セグなのに6個とは。これで全パターン表示できるわけないのだが、できるのだ。複数桁の場合の常套手段であるダイナミック表示を、この1桁の中で行えばいい。1セグメントずつ表示するのを7回繰り返してもいいけど、うまくやると3回にまとめることができる。

(c,f), (b,e), (a,d,g)という3つのグループに分けて点灯させることを考えると、それぞれのLEDの回路がほぼ独立しているので、グループ内で何個点灯する場合でもそれぞれ独立して制御できる。このとき関係ないLEDが点灯しないように、用のない端子は適宜H/Lのどちらかにしておく。一つの端子から複数のLEDに電流が流れることはない(ようにする)ので、各端子は普通に抵抗を入れるだけ(あるいは定電流制御)で良い。

たとえば「0」のパターンを表示するには、各グループごとに6個の端子をこういうふうにする。


123456
1HLLLHH
2LLHHHL
3LLLHLH

横方向が端子の番号を、縦方向がグループを表している。この3グループのパターンを高速で切り替えれば、aからfの全セグメントがデューティ1/3で点灯して「0」に見えるはず。

他の数字についても同様に、3つのグループで表すことができる。一般化するとこうなる。


123456
1H!fLLcH
2L!eHHbL
3LgLdLa

ここで「a」とかはセグメント点灯のときH、消灯のときLにする。「!f」と「!e」は逆に点灯のときL、消灯のときHにする。この表に従って0~9のセグメント構成のパターンでそれぞれテーブルを用意しておけば良い。

(ちなみに点灯するかしないかだけで考えれば3回じゃなくて2回にもできるけど、その場合は一部のLEDを並列で点灯することになるので明るさにばらつきが出てしまう。うまく電流やタイミングを制御してやれば明るさを揃えることはできるかもしれない。)

この方式の場合、とりあえず1桁だけなら普通の7セグよりも一つ少ない6個の端子で制御できる、というのは一応メリットといえるかもしれない。でも複数桁をマトリクスにしたりできないので2桁以上だと非常に効率が悪い。つまり1桁だけでよくて7セグのモジュールを使わなくてGPIOが7本はないけど6本ならある、という場合にはこの方式が有効だろう。一つ問題があるとすれば、おそらくそんな場合などない、ということだけだ。

2022/09/02

すごいゲームコントローラ

しばらく使っていたPCのゲームコントローラで、ときどき接続が切れたような動作をしたり回復したり、みたいなことが起きるようになった。だんだん調子が悪くなっていって、やがてケーブルを押さえたら認識されるけど少しでも動いたらまた切れるみたいな状態になり、ついにはまったく認識されなくなった。

ケーブルの途中でいきなり断線とかいうことはあまりないはず。状況からコントローラ本体側の端が怪しいと見て詳しく調べてみた。とりあえず基板へのはんだ付けは問題なさそう。見えてる範囲でおかしいところがないので、本体から外に出ているケーブルをちょっと切り取って中を調べてみたら...

本当にこのままのものがケーブルの中に収まっていました。なにそれ。

原因箇所がはっきりわかったので修理できたけど、この状態でしばらくは普通に使えていたというのもある意味すごい。

2022/07/18

シャープ測距モジュールGP2Y0A21YK(その4)


過去に作ったものの記録をブログに書いておくといい、というのを実感しています。これ本当にやった方がいい。メンテに必要な情報やノウハウを覚えてなくても過去の記事を見れば思い出せるという実用的な意味もあるし、いずれ壊れたりなくなったりしても、作ったときの思い出はいつまでも残せます。

これを作ったのは10年ほど前。いろいろ知らずに試行錯誤してなんとか動くものができたレベルだったのに、(ほぼ)そのままで10年も動作してくれました。そう、つい最近まで。

どうやらGP2Y0A21YKが動作しなくなったようです。直射日光も雨も当たらない場所とはいえ屋外で砂埃にさらされながら、よく10年も壊れなかったものです。このセンサ自体は今でも売ってるので、これを交換すれば直せそうですが...

今の車には壁との距離を知らせてくれる機能とか車の周囲の映像を見れるモニターとかが付いているので、もはや必要ないというのも事実。なのでこれはこのまま引退ということになるでしょう。

こういう使い方をして10年ぐらいで壊れた、という情報として記録しておきます。ちなみに写真は現在すなわち最後の状態。

2014/01/05

シャープ測距モジュールGP2Y0A21YK(その3)

GP2Y0A21YKを使ってだいたいの距離をLEDで表示するやつの情報を簡単にまとめました。このページからHEXファイルをダウンロードできます。
距離センサ
作ってから3年ぐらいになりますが、今でも順調に動いています。 車を使うのは週に1~2回程度なので、単3アルカリ電池2本で半年ぐらい持ちます。 表示が不安定になったら電池切れの合図。

2013/11/17

フリスクにLEDマトリクスはやっぱり無理があった

(flickr)
しばらく前に、フリスクのケースにLEDマトリクスと3次元加速度センサを入れてみることにはなんとか成功したものの、その後大きな問題が見つかったので、しばらく放置していました。 その問題というのは、単純に、電源の容量がぜんぜん足りてなかったのです。

2013/11/10

LED裸電球を改良

壊れたLED裸電球は、結局、直して使うことにしました。

2013/07/28

LED裸電球その後

4年ほど前に作ったLED裸電球もどきを毎日使っていたら、いつの間にか暗くなってきました。よく見たら、3個あるLEDのうち1個しか点灯してない。

この3個のLEDは直列にしています。これが電球だと、どれか1個が死んだらぜんぶ点灯しなくなるところですが、LEDの場合はそうじゃないみたいです。

2013/05/06

ニトリとIKEAの時計を比べてみた

IKEAで、回転させて使う時計を買ってきました。 温度計などの機能もあって、置く向きによって4通りに表示が変わるようになっています。 ニトリでも、これとほぼ同じものが売られています。(左がニトリ版、右がIKEA版。)
4wayclock1

2012/12/30

PL2303SA

USBをシリアルに変換するIC、PL2303SAが、共立エレショップに再入荷したようです。
USB/シリアル変換というとFT232RLがありますが、0.65mmピッチの28ピンという非常に扱いにくい代物でした。それに比べてPL2303SAは、機能がシンプルな代わりに1.27mmピッチの8ピンなので、扱いはぜんぜん楽です。しかも値段はたったの150円。
もう、わざわざこんなことをしなくても良い時代になったのです。。

2012/12/16

回路の素101

マイコンを使えば、ちゃんとした電子回路の知識がなくてもそれなりのものがサクッと作れてしまうのですが、やっぱり基本的なことを理解してないと、作れるものは限られてしまいます。何かの回路図を参考にしようとしても、「何でそういう回路になるのか」が理解できてないと、応用が利きません。
この本には、そんな私のような状態の人にとって、ちょうど知りたいことがぎっしり詰まっています。

1冊まるごと読まなくても、必要なところだけ読めば良いように構成されています。きわめて実用的。

2012/04/08

充電式ライト

以前調べたシェーバー を改造して充電式のライトにしてみました。
light2e
スイッチをONにしても充電スタンドに置いた状態だと点灯せず、充電スタンドから取ったり停電になったら自動的に点灯します。
light2a
中身はこういう状態。モーターがあった場所に基板をはめ込んでいます。刃を動かすメカがあった所にLEDとかが入ります。バッテリーは新しいもの(といってもジャンクですが。。)に交換しましたが、充電回路はそのまま流用しています。
light2b
追加した部分には、例によって 超薄型ユニバーサル基板 を使っています。何度も何度も修正したので、無駄に複雑なレイアウトになってしまいました。
light2d
LEDは2個並列にして、簡易的なリフレクタ(100円ショップで売っているネイルチップをホットボンドで接着してアルミテープを巻いたもの)を付けてあります。 シェーバーの刃の部分は簡単にはずせるので、このようにLEDがそのまま露出した状態にして懐中電灯として使うこともできます。
light2f
右半分が、追加した回路です。 light2_2
モーターへの配線に来ていた電源を昇圧してLEDを点灯します。 ただし充電中は点灯しないようにMOS-FETでスイッチングします。 ...動作原理としてはそれだけなのですが、実際やってみたら全然思ったように動かなくて苦労しました。。

2011/09/25

フリスクでLEDマトリクス

フリスクのケースにLEDマトリクスと3軸加速度センサを入れてみました。 frisk2_app1
中はこんなことになっています。基板は一部2階建て構造。例のユニバーサル基板が大活躍です。 frisk2_inside1
ハードはもう完成していますが、ソフトの方はまだ目標の30%ぐらい。 こんな感じで、メニュー画面でアプリを切り替えて使うようなスタイルを考えています。
前半は加速度センサのテストで、X/Y方向の傾きをドットの位置と音で表しています。
後半は nyan cat のデモ。延々とループします。(5分ぐらい放置したら自動的に電源オフしますが。)

2011/08/12

超薄型ユニバーサル基板が便利すぎ

超薄型ユニバーサル基板は便利ですよ。
超薄型 両面 ユニバーサル基板(緑) t=0.4mm 230×320mm RoHS対応品
値段は高いですが、かなりサイズが大きいので、単位面積あたりで考えるとそうでもないです。
普通のはさみで厚紙を切るみたいに切れるので、必要な分だけ簡単に無駄なく切り出して使えます。

適当に切り出した基板にチップ部品を乗せて足を付けたら、ブレッドボードで使えます。
smd transistor for breadboarding
特にこういう小さいサイズの基板を切り出すときに、普通にはさみで切れるというのが楽でいいですね。

特殊な形の基板を作るのも簡単です。さらに、切り出した基板に銅箔テープを貼り付けると、簡易的なプリント基板になります。
fake pcb out of perfboard and copper tape
ちなみにこれはCR2032を乗せる電池ホルダ。銅箔部分がマイナス、両側の針金(ホッチキスの針)部分がプラスです。

この基板の欠点は、すごく薄いので簡単に曲がってしまうことです。あんまり大きな部品を乗せると重さで曲がってしまうし、はんだ付けしたときの熱(?)でも曲がったりします。(手で簡単に直せますが。)
なので、汎用的に使えるわけじゃないのですが、こういう小物を作るときにはとても重宝します。

2011/07/30

ECBとGDS

トランジスタのピン配置は、左から順番に「エクボ」(=ECB) と覚える、というのが有名ですね。FETの場合はどうでしょう。

FETだと一般的にはGDSという順番ですが、「エクボ」みたいにインパクトのある覚えやすい語呂合わせがないので、他の方法を考えてみます。

各ピンの役割で考えると、対応関係はこうなります。
ベース(B) = ゲート(G)
コレクタ(C) = ドレイン(D)
エミッタ(E) = ソース(S)
役割で考えると、ピンの並びがちょうど逆順なのです。

ということで、FETの場合は「エクボの逆」で良いと思います。

2011/07/03

Seeed Studio で買ったもの

去年 Seeed Studio で DSO nano V2 を買うときに、ついでにいくつか他のパーツも買ってみました。
opening the box
下の金額は当時の価格と為替レートによるもので、今はもうちょっと高くなっていると思います。(そのころはちょうど何かのセールだったらしく、普段より少し安くなっていました。)
ただ、もともとの値段が安いし、日本からの注文でも50ドル以上で送料無料になるので、国内の通販と比べてもぜんぜん安いと思います。

先がものすごく細い防磁ピンセット。約180円。
tweezers
チップ部品のはんだ付けに重宝します。ピンセットを使っているとだんだん磁化されて部品がくっつくようになって困ることがありますが、これだと大丈夫のようです。
最初は先端が1mmぐらいずれていた(!)のですが、接合部分をプライヤーでグイッと調整したら良い感じになりました。値段の割には使いやすくて気に入っています。

3mmの青LED。100個入りで、1個あたり約5円。
3mm Blue LEDs
超高輝度です。
5V - 1kΩ - LED で使ってみたら、せいぜい2mAぐらいしか流れてないはずなのに、まぶしいほどの明るさ。これだけ明るかったら3Vの回路でも使えそうです。

5mmのフルカラーLED。20個入りで、1個あたり約17円。
5mm RGB LED
脚が1直線に並んでいるタイプです。
まだ使ったことがないので明るさとかは分かりません。

5V1W出力の太陽電池。約300円。
1W solar cell
これもまだ使ったことがないので、実際にどの程度の電力が取れるのかは不明です。

4方向+押し込みが判定できるスイッチ。約170円。
5-way joystick switches
日本のアルプス電気製のようです。国内で普通に買うより安いです。

2011/05/01

また555を使って1.5VでLEDを点滅してみた

1.5VでLEDを点滅させるやつを少しだけ改良しました。
555 blinky (slightly modified)
改良といっても、いらない配線を省略しただけで、ほとんど変わってないのですが。

LEDが点灯している瞬間を写真に撮るのが非常に難しいので、なんとか動画にしてみました。


詳しい作り方をまとめたページもどうぞ。

2011/04/23

16セグLED

やたら大きくて異常に安い16セグLEDの在庫がまだあるようです。
16seg_size
これにはデータシートが付いていませんが、内部の結線やピンの配置などは秋月で売っているものと同じなので参考になります。
大きさは、よくあるユニバーサル基板とちょうど同じ。ということはオレオレドゥイーノと同じサイズ。とりあえず実験用に、1桁だけの16セグLEDシールドを作ってみました。普通に乗せるといろんなところに干渉してしまうので、横向きに取り付けます。
16seg_shield
完成したシールドを載せると、こんな感じ。そのままスタティック点灯するだけなので、スケッチは非常に簡単です。...ん??
16seg_n
セグメントが16個あると、数字やアルファベットだけじゃなく、一応ひらがなも表現できますね。

あくまでも一応というレベル。判読困難な文字がかなりあります。
同様にカタカナもできますが、難易度的にはひらがなと大差ありません。

2011/04/03

555を使って1.5VでLEDを点滅

555コンテストの Minimalist Category に応募し...てはいないのですが、サイズも消費電力も最小のものを目標に、555でLEDを点滅させる回路を作ってみました。
555blinky_n
555の裏にジャンパが1本ありますが、基板のレイアウトはかなりシンプル。
電池はこんな感じで固定していて、555自体が電池ホルダの一部になっています。
555blinky_m
回路は、1.5Vから555でチャージポンプしてLEDを点滅させるだけのものです。
ゆっくり充電して一気に放電、というのを約1.5Hzぐらいで繰り返します。デューティを大きくはできても小さくはできない、という555の特性を考慮して、電圧を上げるのではなく負電圧を作ってLEDのカソード側をマイナス方向に引っ張っています。