🫖

Raspberry Pi Pico Wでバーサライタを作成① 本体部分

2024/05/05に公開

バーサライタとは

LEDを直線状に配置し、高速回転させると、残像を利用して円形のディスプレイとして機能する。これをバーサライタ(Versa Writer)[1]という。商品化もされているし、多くの方が自作されている。n番煎じなのだけど、Raspberry Pi Pico Wで作ってみた。


バーサライタのイメージ:直線状に配置したLEDを高速回転させる。
LEDを適切なタイミングで点滅させることで、任意の絵や文字が表示できる

作成するバーサライタの仕様

  1. LEDの点灯制御にはRaspberry Pi Pico Wを使用する。Webページから操作できると楽しそうなため、Wi-Fiモジュールを搭載したPico Wにした。
  2. 板の上に、LEDの基板、Pico W、モバイルバッテリー、フォトセンサーを配置する。これがバーサライタの本体となる。これを高速回転させる。
  3. LEDは5mmの砲弾型を16個使用し、シフトレジスタとトランジスタを使って制御する。LED16個ならシフトレジスタを使わなくてもいけるが、今後もっとたくさんLEDを使うことを想定して、練習のために使ってみた。
  4. たまたまあった、いらない扇風機の羽を折って、その上にバーサライタ本体を取り付ける。


バーサライタの本体

先駆者の方々

https://homemadegarbage.com/tag/バーサライタ
https://prototype09.com/archives/426
http://www.ze.em-net.ne.jp/~kenken/versawriter/index.html

LED基板の部分

主要な部品たち

部品 詳細 リンク
LED V_F=3.1V, 15cdくらいの超高輝度の青色LED アマゾン
基板 サンハヤトの薄型ユニバーサル基板(36穴×73穴)を切って使用 アマゾン
シフトレジスタ 8bitのシリアル入力-パラレル出力 (U74HC595AG-D16-T) 秋月電子通商
トランジスタ 普通のNPNトランジスタ (2SC1815) 秋月電子通商
抵抗 コレクタ側に120Ω、ベース側に10kΩ

できるだけ明るくするために、各LEDには15 mA程度流したい。するとGPIOやシフトレジスタからの電流では足りないので、USBの5Vから電流を取ることにした。それをシフトレジスタとトランジスタを使ってスイッチングする。

LED1つをトランジスタでスイッチングする回路

2.54mmピッチのユニバーサル基板に隙間なくLEDを配置する。5mmLEDのツバが邪魔でそのままでは配置できないが、ツバをヤスリで少し削り落とせば良い。端材に5mmの穴を開けた治具を作ると、作業が捗る。


LEDのツバを簡単に削る方法

入手が簡単なシフトレジスタ74HC595は8bitなので、2台をカスケード接続して使用する。あまり凝った使い方はせず、\overline{\text{SRCLR}}をHighに固定し、\overline{\text{OE}}をLowに固定している。


LED基板の回路図

無駄なく配線するのが好きなので、細長いレイアウトを考えた。縦幅は限界まで削り6穴、横幅は基板いっぱいの73穴。これで横幅が約19cmになり、扇風機にピッタリ収まる。最左のLEDが回転中心になるように板に固定する。なおシフトレジスタをLEDの図中の下側に配置する方が配線しやすいのだが、それだと基板の重心が中心からずれすぎてしまう。重心が中心にないと、回転時に激しく揺れるので、注意が必要である。とはいえこのレイアウトでこれ以上シフトレジスタをカスケードさせるのは厳しいので、配置は要検討である。L字ピンヘッダを90度回転させると、ジャンパー線が遠心力で外れる可能性があるので注意である。


LED基板の配線図

裏面にスズメッキ線で主要な配線を済ませた後、ポリウレタン銅線(エナメル線)の配線をした。予め接続先へ多めにハンダを盛っておいて、温度を高めにしたハンダコテで融かし、ポリウレタン銅線を数秒突っ込むだけで、被膜が融けて素早くに接続できる [2]。見た目よりずっと簡単である。ポリウレタンはハンダを弾き、銅はハンダに濡れるので、被膜が剥がれる瞬間もわかる。なおこの量と密度の配線をビニル皮膜線でやるのはかなり辛い。


LED基板の裏面の配線

配線図みのポリウレタン銅線にハンダゴテが当たると被膜が融けてショートする可能性があるし、そもそも接続先の皮膜がうまく剥がせていないかもしれないので、その都度テスターで確認しながら作業した。この方法で失敗したことはまだないのだが、配線ミスしたり、ショートしてたりした場合、修正はきっと大変だろう。その辺りのことも考えて、シフトレジスタは直接ハンダ付けせず、ICソケットへ載せることにした。

フォトセンサーの部分

https://zenn.dev/ythk/articles/ythk-raspico-photoreflector

フォトセンサーはバーサライタの回転周期を測定するのに使用する。そうすることで、現在の回転角度が計算できるのである。フォトセンサーの部分は、バーサライタ本体の端にL字アングルで固定できるように、別の小さい基板にまとめた。このようにユニットごと作ることで、途中で柔軟に設計を変更できる。エミッタ側の10kΩは半固定抵抗にして、アナログではなく、デジタルで読み取れるようにしてもよかったかもしれない[3]


フォトセンサーの回路図


フォトセンサーの配線図


フォトセンサーの写真

Pico Wとの接続部分


Pico Wを載せる部分の配線図

重心の調整


Pico Wを載せる部分の配線図

バーサライタの重心が、回転中心に一致していないと、回転時それはもう激しく振動する。基本的に高速回転させればさせるほど綺麗に表示されるわけだが、その分重心のずれによる振動も大きくなる。そのようなわけで重心を中心に取ることが大切となる。今回は、バーサライタ本体を裏側から糸で吊りつつ、車用のタイヤ用のバランスウェイトを使って重心を調整した。

続きはこちら

https://zenn.dev/ythk/articles/ythk-versawriter2

脚注
  1. POV(Persistence of vision)ともいう ↩︎

  2. ポリウレタン銅線側へハンダメッキするべきかもしれないが、この方法でも特に接続不良になったことはない。それよりも被膜を剥がしすぎてショートすることの方が怖い。 ↩︎

  3. PicoWのADコンバーターの処理速度(500kサンプル/s)は扇風機の回転に比べて十分早いので問題にはならないはず ↩︎

Discussion