Hana道場【師範】のブログ

IchigoJamの徹底解説ブログ

楽しく二進法入門!Hana道場発のLEDサイコロ基板がUpverter公式Twitterで紹介されました。

Hana道場発の楽しく二進法が学べるキット「LEDサイコロ基板」をご紹介!

 

商品ページ:https://hanadojo.official.ec/items/24804122

はんだ付け方法:http://hanadojo.sblo.jp/article/186826146.html

 

 

 ↑僕が初めて基板設計をした作品がこのLEDサイコロ基板(基板データ

無料・web上で基板設計ができるサービスUpverterの公式アカウントで紹介もされました。

IchigoJamに接続し、LEDをサイコロの目の配置で光らせます。

 

(接続)

f:id:hanadojo_sihan:20201212200450j:plain

(6の目)明るい場所

f:id:hanadojo_sihan:20201212200550j:plain

(1の目)暗い場所

f:id:hanadojo_sihan:20201212200724j:plain

 

LEDはそれぞれIchigoJamのOUT1〜7につながっています。

f:id:hanadojo_sihan:20201212201033p:plain

1の目を光らせる時はこのように書きます。

OUT 4,1

OUT4をオン(1)

簡単ですね。

しかし、サイコロ6の目はどうなるでしょう?

OUT1,1:OUT2,1:OUT3,1:OUT5,1:OUT6,1:OUT7,1

サイコロの6の目を再現するには少々長くなりますね。

 

ここで登場するのが二進法です。

(この基板は二進法を楽しく学ぶためにつくりました)

二進法は、0と1の二つの数だけで全ての数を表現します。

 

(ただ、0と1だけでは桁が増えすぎて人間には分かりづらいので、普段は十進法0〜9の十個の数で表現しています)

 

二進法を使うとサイコロ6の目に光らせるには下のようになります。

OUT `1110111

f:id:hanadojo_sihan:20201212202125p:plain

IchigoJamOUTポート1,2,3,5,6,7をオン(1)、4をオフ(0)にしています。

 

これでも相当短くなりましたが、この二進法を十進法に変換するとより短くなります。

OUT 119

f:id:hanadojo_sihan:20201212200550j:plain

たった「OUT119」だけで6つのLEDが同時に制御されました!

 

個別に6つ制御

OUT1,1:OUT2,1:OUT3,1:OUT5,1:OUT6,1:OUT7,1
二進法で同時に6つ制御
OUT `1110111
十進法で同時に6つ制御
OUT 119
 

 

各サイコロの目の十進法への変換はこんな感じです。

(累乗のわかる人向け)

f:id:hanadojo_sihan:20201212201049p:plain

 

(累乗がわからない小学生向け)

光らせたいLEDに書いてある数字を足せばOK!

f:id:hanadojo_sihan:20201212204254p:plain

例)サイコロ4の目の時

1+4+16+64 = 85

 

(ランダムにサイコロを振るプログラム)

10 LET[0],8,20,28,85,93,119
20 OUT [RND(6)]

 

(音と光の演出付き)

10 LET[0],8,20,28,85,93,119
20 OUT [RND(6)]

30 BEEP RND(100)
40 WAIT 3
50 GOTO20
escでサイコロの目を決定します。
WAITを長くして目押しできるようにしても面白い?
 
LEDサイコロ基板で楽しく二進法を学びましょう!!

 

<やってみよう>

・LED7つ全てを十進法で光らせてみよう!

・LED7つ全てを消してみよう!

・スゴロクを作ってみよう!

 

ーーーーーーー

(補足)

ロボット(カムロボなど)のモーターを2つ同時に制御するのに十進法表現がよく使われます。

valed.press

<OUT2とOUT5をオン>

◆二進法の場合

OUT `10010

◆十進法の場合

2^4 + 2^1 = 16+2 = 18

OUT 18

 

<OUT1とOUT6をオン>

◆二進法の場合

OUT `100001

◆十進法の場合

2^5 + 2^0 = 32+1 = 33

OUT 33

 

OUT18やOUT33の謎が解けましたね!

CC BY shoichi1031da / @shoichi1031da

twitter.com