二進数の箱
これは二進数の箱です。数のいろいろな二進数表現を説明したり、実践したりする物です。
Nerd Nite Kyushuでアダム・ミラーチップの二進数についてのトークを見てこれを作ることを思いつきました。
エンジニアカフェで小学生たちにコンピューターについて少し教えることを約束して、その後でこの箱を作ることを考えつきました。二進数は小学生にピッタリなトピックスだし、パソコンの画面で見るよりも実際に触れる物が楽しいと思いました。
プロジェクトのゴールは直観的に触れる物を作ることです。スイッチを入れるとLEDディスプレイで出ている数字が即座に変わるのでビットと数字の関係がわかりやすいです。
パーツ
箱の中は4つのパーツに分かれています。ビットを示す8個のスイッチ、数字を表示する7セグメントディスプレイ、モードを変更するディップスイッチ、Raspberry Pi Picoです。Raspberry Pi Picoは初心者に最適なマイクロコントローラーです。近くの電子パーツ専門店で500円で買いました。電源はUSBマイクロまたは電池です。Micropythonでプログラムが書けます。出入力ピンが多いのでスイッチやLED、センサーなどをたくさんつなげます。
箱
箱はレーザー加工機で切った4ミリの板材で作りました。便利なboxes.pyを使って制作しました。切る時の注意点は板材の厚みを正確に図ることです。大きいもの作る前に練習で小さい箱をいくつか作ったほうがいいと思います。
エンジニアカフェのレーザー加工機が使えて幸いです。実は、材料を運ぶのは一番大変です。
プログラム
プログラムは割とシンプルでわかりやすいと思います。正の整数、負の整数、2の補数、フロート(浮動小数点数)、BCD(二進化十進数)が含まれます。コードは文字列の変更などをよく使ってちょっと誤魔化しました。普段見られないことですが1の補数のモードで「-0」を表示することにこだわりました。
ラーメン
突然ですが、ちょっとラーメンの話をします。昔初めて日本に来た時、九州の大学で留学しました。食堂でよく「ラーメン」と頼んで、美味しく召し上がりました。日本に来て3ヶ月のところ、東京へ行きました。同じ風に「ラーメン」と頼んで、出てきたものを食べてみると「なんだこれ」と思って、「ラーメンじゃない!」。実は、ラーメン=豚骨ラーメンと誤解しました。