GreenPAKで遊ぶ(その5)電子サイコロ [GreenPAK]
前回の記事では習作として自身にリセット命令を送信するという奇抜な課題でしたが、今回は打って変わって電子サイコロを作ってみたいと思います。
1.今回の課題
SLG46826G に LED と スイッチを付けて電子サイコロを作ります。条件としては
2.基本設計
今回の課題を実現するために必要と思われる主要な機能について次のようにします。
3.回路設計
今回作成した回路を下図に示します。機能の割にはかなりコンパクトにまとまったのではないでしょうか? もし汎用ロジック IC で組んだらかなりのチップ数になると思います。
電源は 3.3V を使用して、それぞれの LED 制御用の 16~19 ピンには LED と直列に 2.7k の電流制限抵抗を接続後、GND に接続します。スタート入力用の1ピンはスイッチを介して GND に接続します。
下図はシミュレーション結果です。
尚、今回作成した GreenPAK Designer の設計ファイルはここからダウンロードできます(商用利用以外であれば自由に使用可能)。
★追記 2024/06/08
X(旧Twiiter)に投稿したメッセージに添付した動画を貼っておきます。
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
1.今回の課題
SLG46826G に LED と スイッチを付けて電子サイコロを作ります。条件としては
- スタートスイッチを押すことで何度でもサイコロを振れるようにする。
- 表示は LED を使い、本物のサイコロの模様を表現する。
- 転がっているサイコロが次第に停止する様子も表現する。
- 回路は可能な限り簡潔なものにする。
2.基本設計
今回の課題を実現するために必要と思われる主要な機能について次のようにします。
- 乱数発生
K4zuki さんが公開されている GPAK-AppsNote-c55ed02.pdf を参考にさせて頂き、 Pipe Delay を使い、15 ビットの M系列を利用します。
但し、後段に 15 ビット目の D-FF は置かず、Pipe Delay から 14 と 15 ビット目が出力されるようにします。これを XOR して帰還すると all 0 になり、乱数が生成されないので 14,15 ビットを XNOR し、入力として帰還します。先頭のビットは 1 PIPE OUT として出力されているのでこの先頭ビットと14と15の3ビットを0~7の乱数として扱います。
- 次第に停止するサイコロの表現
PGEN を使用します。設定パターンを 1011011101111100 とし、0 の値が出力された時に乱数発生を一時停止し、サイコロの目を表示するようにします。最後の 00 はデリミタとして扱い、00 を検出すると乱数発生を止めサイコロの動きを停止します。乱数の停止時(一時停止も含む)は乱数値が6か7の場合は乱数発生を継続し、5以下になった時点で乱数の発生を停止するようにします。
- サイコロの LED 制御
1~6の目を表現するためには LED が7個必要ですが、LED の点灯制御は4ビットで可能です。今回は次のように割り振ります(番号は SLG46826G のピン番号)。19 18 17 16 17 18 19
3.回路設計
今回作成した回路を下図に示します。機能の割にはかなりコンパクトにまとまったのではないでしょうか? もし汎用ロジック IC で組んだらかなりのチップ数になると思います。
電子サイコロの回路 |
|
電源は 3.3V を使用して、それぞれの LED 制御用の 16~19 ピンには LED と直列に 2.7k の電流制限抵抗を接続後、GND に接続します。スタート入力用の1ピンはスイッチを介して GND に接続します。
下図はシミュレーション結果です。
電子サイコロのシミュレーション結果 |
|
尚、今回作成した GreenPAK Designer の設計ファイルはここからダウンロードできます(商用利用以外であれば自由に使用可能)。
★追記 2024/06/08
X(旧Twiiter)に投稿したメッセージに添付した動画を貼っておきます。
GreenPAK Designerでの習作として電子サイコロを作ってみました
— skyriver (@wcinp) June 7, 2024
転がっているサイコロが次第に停止する様をPGENを使い表現
機能の割にはコンパクトにまとまりました^^
詳細は下記のURLを参照して下さいhttps://t.co/WQPW6Hrd3k#GreenPAK #SLG46826 pic.twitter.com/Kb6TfVkFyy
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
コメント 0