SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

両用7セグ立型基板

7セグメントLEDで数字を光らせる立型基板です。


IchigoJam/IchigoDakeのCN4ソケットに差して、プログラムで数字を表示できます。


ベース基板に差して、コンピュータ無しで単独で動かすこともできます。

7セグ立型基板

回路図


ソケットのOUT1~OUT4からの4ビット入力を、7セグメントデコーダIC・4511で変換して、7セグメントLEDを点灯させます。
BASICプログラムでは、「OUT 0」で「0」表示、「OUT 1」で「1」表示…「OUT 9」で「9」表示、と簡単です。

基板データ

*同じ基板を4枚配置しています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2023 Shiro Saito (https://www.ichigojaman.jp)

材料

以下の順番ではんだ付けすると作りやすいです。

プログラム:ルーレット

スペースキーを押すごとに、0~9の数字がランダムに表示されて回ります。

10 FOR A=0 TO 9
20 OUT RND(10)
30 BEEP 10,2
40 WAIT 6
50 NEXT
60 IF INKEY()!=32 CONT
70 GOTO 10

ルーレットベース基板


電子回路で0~9のルーレットを回すベース基板です。ボタンを押すとルーレットが回って止まります。
コンピュータ無しでも7セグ立型基板を動かすことができます。

回路図


トランジスタ×2個の発振回路でクロックを発生。4ビットBCDカウンタ・4518をカウントさせて、2進数の0(0000)~9(1001)を出力します。

基板データ

*同じ基板を2枚配置しています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2023 Shiro Saito (https://www.ichigojaman.jp)

(5/23追記)さいころベース基板


実物のさいころと同じく、1~6を表示するベース基板です。

回路図


Dフリップフロップ・4013でオリジナルのバイナリカウンタを組んで、1~6を表示します。

回路の出典

Dフリップフロップでバイナリカウンタを組んで1~6を点灯させる今回の回路は、40年前の電子工作雑誌「初歩のラジオ別冊 松本悟のデジタル・ゲーム製作集」(誠文堂新光社、1981年)に掲載されていた記事を参照しました。


記事の初出は、雑誌「初歩のラジオ」1980年10月号のようです。

基板データ

*同じ基板を2枚配置しています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2023 Shiro Saito (https://www.ichigojaman.jp)

材料

以下の順番ではんだ付けすると作りやすいです。

かんたんLightsOut

以前に作ったパズルゲーム「LightsOut」
www.ichigojaman.jp
のプログラムを簡略化したバージョンです。

遊び方

  • 起動すると、5×5=25個のライトがランダムにON/OFFされて表示されます(ON=●、OFF=○)
  • 反転するカーソルをカーソルキーで上下左右に動かして、スペースキーを押すと、そのライトおよび上下左右に隣接するライトが反転(ON→OFF、OFF→ON)します。
  • 25個のライト全てをOFFにするとゲームクリアです。ライトの下では手数を表示しています。できるだけ少ない手数でクリアを狙いましょう。
  • ギブアップする時はESCキーでプログラムを止めてください。

単純なゲームですがかなり頭を使います。必ず正解があるパターンで出題されますが、私はなかなかクリアできません…

プログラム

10 CLV:VIDEO 3
20 M=5:N=M-1
30 FOR I=1 TO M*M
40 X=RND(M):Y=RND(M):GSB @W
50 NEXT
60 GSB @L:X=0:Y=0
70 @LOOP
80 LC X,Y,1
90 K=INKEY()
100 X=X-(K=28)*(X>0)+(K=29)*(X<N)
110 Y=Y-(K=30)*(Y>0)+(K=31)*(Y<N)
120 IF K=32 BEEP:T=T+1:GSB @W:GSB @L
130 WAIT 6
140 IF L>0 GOTO @LOOP
150 BEEP 10,30:CLK:END
160 @W
170 Z=X+Y*M:[Z]=![Z]
180 IF X>0 [Z-1]=![Z-1]
190 IF X<N [Z+1]=![Z+1]
200 IF Y>0 [Z-M]=![Z-M]
210 IF Y<N [Z+M]=![Z+M]
220 RTN
230 @L
240 CLS:L=0
250 FOR I=0 TO M*M-1
260 ?CHR$(232+[I]);
270 IF I%M=N ?
280 L=L+[I]
290 NEXT
300 ?:?T
310 RTN

IchigoJam webではこちら。

20行の「M=5」を変えると、ライトの個数が変わります。
現在は5行5列=25個ですが、「M=6」だと6行6列=36個、「M=7」だと7行7列=49個…と増えて、クリアするのが難しくなります。
配列変数の個数制限があるので、最大は「M=10」の10行10列です。

いらいら棒FF

以前にイライラ棒基板をリレーとフォトカプラで作りました。
www.ichigojaman.jp

今回はロジックICを使った論理回路(RSフリップフロップ)で作ってみました。
説明動画はこちら。

www.youtube.com


簡単な回路なのでブレッドボードでも組めます。ブレッドボード版については下↓へ。

遊び方

  • 導線コースの根本に輪をくぐらせた状態で、電源スイッチをONにします。
  • 導線コースに触れないように、輪を抜けばゴールです。途中で導線コースに一度でも触れてしまうと、ピーとブザーが鳴ってLEDが光ります。
  • リセットボタンを押すと、最初の状態に戻ってリプレイできます。

回路図


ロジックIC(NANDゲート)を使ったRSフリップフロップ回路でできています。

NANDゲートをたすきがけにしたRSフリップフロップの論理表
  • S(Set)入力・R(Reset)入力とも抵抗でプルアップされているので、通常はHになっています。電源ON直後は、出力側は「Q=H・Q=L」となり、Q出力につながったLEDとブザーはOFFになります。
  • 輪がコースに接触すると、S入力がLに落ちて、出力が「Q=L・Q=H」に切り替わり、Q出力につながったLEDとブザーはONになります。その後に輪がコースから離れてS入力がHに戻っても、出力は「Q=L・Q=H」の状態を保持します。つまり、一瞬でも輪がコースに接触すると、その後離れてもLEDは光りっぱなし、ブザーは鳴りっぱなしになります(自己保持回路)。
  • リセットスイッチを押すとR入力がLに落ちて、出力は「Q=H・Q=L」に切り替わり、LEDとブザーがOFFになって最初の状態に戻ります。

RSフリップフロップの動作解説はいろいろな本やサイトに出ているのですが、いらいら棒を作った事例がなぜかありません。フリップフロップの性質がよくわかって、いい教材になるのではないかと思います。

NORゲートをたすきがけにしたRSフリップフロップ

RSフリップフロップの動作解説では、NORゲートを使った回路が出ていることが多いです。NORゲートのフリップフロップは正論理(入力が一瞬でもHになると出力が切り替わる)、NANDゲートのフリップフロップは負論理(入力が一瞬でもLに落ちると出力が切り替わる)なので、正論理のNORゲートの方がわかりやすいのです。
ではなぜNANDゲートのフリップフロップを今回使ったかと言うと、NORゲートのIC・74HC02よりもNANDゲートのIC・74HC00の方が、ショップ在庫が豊富で入手しやすいからです。

基板データ

*同じ基板を4枚配置しています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2023 Shiro Saito (https://www.ichigojaman.jp)

ブレッドボード版


今回の回路は簡単なので、ブレッドボードでも組めます。
デジタル回路入門にいかがでしょうか。

IchigoJamでは…

BTN端子とGND端子に線を差して、

10 IF BTN() BEEP 10,1:LED 1
20 LED 0:GOTO 10

の2行で、いらいら棒ができてしまいます。
以前にクリスマスツリー形で作りました。
www.ichigojaman.jp