謎の水装置

円周率1万桁電光版(Rev.1)


実機画像

="パッケージ"/ ="表面と裏面"/ ="裏面クローズアップ"/

3Dモデル

サポート情報

$ gunzip led_pi.bin.gz # ファイルの伸長
$ minichlink -D #PD7 をGPIOとして使う
$ minichlink -w led_pi.bin flash -b #バイナリの書き込み

装置概要

Q&A

装置について:

Q : これは何をするもの?
A : 円周率を眺めて楽しむものです。
暗黒通信団の「円周率百万桁」と見比べながら楽しんでも良いでしょう。
プログレスバーが全て点灯すると謎の達成感を味わえるかもしれません。
Q : どうして1万桁しかないの?
A : マイコンのメモリが16KBしかないからです。プログラム上は2万桁ぐらい出せますが、区切りが良いところで1万桁にしました。
Q : マイコンで計算すれば、いくらでも桁を増やせるのでは?
A : マイコンの演算速度が遅いのでリアルタイム演算が間に合いません
Q : もっと色々な機能をつけたらいいのに
A : ハード的にこれが限界です
 マイコンの20ピンのうち、LEDに16ピン、表示変更に1ピン、デバッグ用に3ピンと全て使っているため、これ以上は機能を増やせないのです
Q : 治具A(電池抜き)を無くしました
A : ピンセットやワリバシで代用できます
Q : 治具B(速度調整)を無くしました
A : ピンセットやドライバーで代用できます
Q : 説明書を無くしました
A : リンク先に取扱説明書があります。
Q : 故障しました
A : 少数生産のため在庫がなく交換に応じられません。すみません。
Q : 百均で売ってそうな作りなのに高い
A : 同人ハードでは百均の販売力に太刀打ちできません

機能について:

Q : ときどき数字以外が表示されるのは何?
A : 百桁ごとにプログレスバーが表示される仕様です
 プログレスバーが全て点灯したら1万桁表示終了です
figure1
Q : 数字が時々カクっと上下にブレるのはなぜ?
A : フリップ表示で同じ数字が続くときに、上下にずらすことで「更新」を表しています。これがないと表示が固まったように見えてしまうのです。
figure2
Q : 表示が暗い
A : 装置の性質から長時間駆動が必要なので、バッテリー消費を抑えるために暗めに設定しています。
 USB Type-Cに接続すると明るく表示されます。

技術について:

Q : どういう仕組み?
A : ch32v003という1個50円のマイコンを使っています(CH32V003F4P6)。
このマイコンで64個のLEDの電圧を個別にオンオフしています
Q : 開発環境は?
ch32v003funというオープンソースの開発環境を使っています。これはユーザー側でペリフェラルを有効化する手間がありますが、サンプルが豊富でバイナリサイズが小さくなる利点があるため採用しました。
ソースコードを開発環境の"ch32v/ch32v003fun/examples"直下に展開して、"led_pi"フォルダで"make"を実行するとビルドと書き込みが行われます。
Q : 装置から出ている3本の金属棒は何?
A : デバッグ端子です。ユーザーが任意のプログラムを書き込むことができます
WCH-LinkEエミュレータに"SWIO/TMS","GND","3V3"というピンが出ているので、円周率表示器の"SWIO","GND","3V3"にそれぞれ接続してください。
Q : どうやったらプログラムを書き込めるの?
A : 必要なものは次のとおりです
WCH-LinkEエミュレータ1個(750円)
・ジャンパーワイヤ(メス-メス)3本(3本で約100円)
・USB端子のついたパソコン(OSはLinux, Mac, Windowsいずれも可)
ソースコード(tar.gz)
Q : "minichlink"というコマンドが見つかりません
A : 開発環境ch32v003funをインストールし、パスを設定すると見つかるはずです。
Q : 書き込んでみたけど左から4列目が表示されません
A : PD7のGPIOが無効化されていることが原因です。下記コマンドで有効化してください。
$ minichlink -D