frisk domino dice


フリスクのケースにLEDを入れてドミノ型のサイコロを作ります。

サイコロ表示の仕組み

サイコロの1~6の目は、7個のLEDで表現できます。中心の1個以外は必ず2個ずつ連動するので、連動するものどうしで4組に分けて制御すると効率的です。組ごとにa~dの記号で表したのが下の図です。(下の段のサイコロについてはe~hで表しています。)

  

回路図

PIC12F683の5個のI/Oを使います。下のような割り当てにしておくと、基板が完成した後でもプログラムの書き込みができます。
GP0につながっている圧電スピーカは、音を出すだけではなく振動センサの役割も果たします。ケースをたたいたときに発生した電圧を見て、サイコロを転がしたり(?)、スリープから起きたりします。470Kは、ちょうど良い感度になるように適宜調整してください。2個の保護用ダイオードは省略してもあんまり支障はないかも。
サイコロ2個分で合計8組のLEDを制御するには、4個のI/Oが必要です。(もちろんダイナミック点灯。) 結線方法はいろいろ考えられますが、こういう風にしておくと、なにかと都合が良いのです。(詳しくは後で説明します。)
LEDは赤などのVf=2V程度のものを使ってください。抵抗が入ってないですが、LEDおよびPICの定格範囲内の電流しか流れないので大丈夫です。

表示の制御

全部で8組あるので、普通にダイナミック表示しようとすると1サイクルあたり8ステップということになりますが、いくつかの組み合わせは同時に点灯できるので、実際には次の4ステップで十分です。
    1. a/e
    2. b/f
    3. c/g
    4. d/h
上と下のサイコロの目がどういう組み合わせでも、必ず4ステップで表示できます。点灯する組とI/Oの状態を表にすると、次のようになります。


aとeだけLEDが1個、それ以外は2個並列なので、aとeは他よりも明るく点灯しますが、これはダイナミック表示のパルス幅で調整できます。a/eを表示するステップの時間を他より短くすれば良いのです。

ソフト

HEXファイル: frisk1.HEX


ċ
frisk1.HEX
(3k)
nsh,
2011/03/06 7:31
Comments