製作物

【Pico W】QR Clock ver.2 を作ってみた【ハード編】

投稿日:

以前にマイクロQRコードで時刻を表示する時計を作ったのですが(記事書いてなかった)、スマホ標準のQRコード読み取り機能ではマイクロQRコードに対応していなくて、展示会でお客さんに読み取って貰えないという事象がしばしば発生しました。

そこで今回は、スマホ標準で読み取れるように通常サイズのQRコードで表示する時計を作ることにしました。

マトリクスLEDとLEDドライバTM1640

メインとなる部品は秋月電子で購入した 2色ドットマトリクスLED(赤緑) 8×8ドット LTP-12188M-08 です。秋葉原店2階で15個300円で売っていました。

またLEDドライバとしてTM1640を使用します。これはカソードコモンの16桁7セグLED用なのですが、配線を考えるとマトリクスLEDでも使用することができます。

1つのLEDマトリクスにつきTM1640を1つ使用します。LEDマトリクスはアノードが 8 row, カソードが 8 col x 2色となっているので、7セグドライバのセグメントをrow、グリッド(コモン)をcolに接続します。

マトリクスLEDとLEDドライバの接続を表す回路図

これを16セット用意して、Raspberry Pi Pico W(以下Pico W)で制御します。クロックは全体で共通で、データ線はパラレルに制御します。

リアルタイムクロックIC DS1302

DS1302はバックアップ電源端子付きのリアルタイムクロックICで、切り替え可能な抵抗とダイオードを内蔵していています。そのため電池によるバックアップの他、コンデンサを用いてトリクルチャージによるバックアップにも対応しています。

今回はバックアップに静電容量1 Fの電気二重層コンデンサを用いることにしました。

DS1302とその周辺回路の回路図を以下に示します。外付け部品はコンデンサと32.768 kHzの水晶発振子だけです。マイコンとの通信は3本の線を用いる独自のシリアル通信です。

注意点として、Vcc2がメイン電源で、Vcc1がバックアップ電源となっています。逆にしないように気を付けましょう。(一敗)

DS1302とその周辺回路の回路図

ロータリーエンコーダ

モード選択などの操作用にクリック付きのロータリーエンコーダを使用することにしました。

回路図を以下に示します。A端子とB端子が回転の情報を得る端子です。プルアップが必要ですが、マイコンの内蔵プルアップを使用するので回路図には登場していません。

S1端子とS2端子は通常のプッシュスイッチと同様に扱えます。こちらもマイコンの内蔵プルアップを使用して動作させます。

クリック付きロータリーエンコーダの回路図

全体の回路図

全体の回路図を以下に示します。Pico Wに今まで紹介した回路を接続した形になっています。

LEDマトリクスとTM1640の組はKiCadの階層シート機能を利用して、同一の回路を16セット並べています。データ線はバラバラですが、クロックは一つにまとまっています。

電源はPico WのUSBに5Vを供給して、Pico Wのピンから3.3Vが基板側に供給される形になります。

全体の回路図。Raspberry Pi PIco WにマトリクスLEDとLEDドライバのセットが16セット接続されている。

基板設計

KiCadで基板設計を行いました。KiCadで3D表示した画像を以下に並べます。

基板の寸法は178 mm x 148 mmです。

表面:

基板表面の3D表示画像

裏面:

基板裏面の3D表示画像

LEDマトリクスの寸法はデータシートでは1辺31.9 mmとなっていますが、並べたときに入らないと困るので僅かに余裕を持たせて32.0 mm間隔で並べました。

TM1640は対応するLEDマトリクスの裏面に配置しています。

16セットのLEDマトリクスとTM1640の組については、コピペ&スクリプトによるリファレンス書き換えで同じパターンを並べています。この方法の詳細が気になる方は以下の記事を参照してください。

PCBWayで基板製造

設計した基板を製造してもらうのですが、今回はPCBWayから基板製造のオファーを頂きました

PCBWayの紹介リンクを貼っておきます。このリンクから新規ユーザー登録すると登録者と紹介者(私)にそれぞれクーポンがもらえるようになっています。

製造用のデータはKiCadで使えるJLCPCB用のプラグインであるFabrication Toolkitで出力したデータがPCBWayでもそのまま使えます。

出力したzipファイルを注文ページにアップロードし、基板の枚数や厚さ、色などを指定することができます。

配送会社にOCSを指定して注文したところ、注文から1週間も経たずに基板が到着しました。

基板の色は黒を選択しました。カッコいいのですが反射が気になってしまったので、つや消しの黒の方が良かったかなと少しだけ後悔しました。

基板の品質については何も気になりませんでした。趣味の工作には十分すぎる品質です。

アクリルパネル

前作のQR時計はユニバーサルB基板で作って秋月のB基板用アクリルパネルを取り付けたのですが、それが結構良かったので今作もアクリルパネルを取り付けたいと思いました。

今回はオリジナルサイズなのでアクリルもカスタムで設計する必要があり、アクリルショップのはざいやを利用しました。

まずは商品ページでアクリルの色や厚みとサイズを指定します。今回は表用にグレースモーク(530 K)、裏用に透明(P)を選択し、厚みはともに2 mm、サイズは基板よりも一回り(1 mm)大きくして180 mm x 150 mmとしました。

その後、加工もWeb上で指定することができます。板加工を選択して角丸とねじ穴を開けます。表側に関してはロータリーエンコーダのシャフトが通るための穴も開けます。

アクリル2枚で加工費込みで¥1,249と思ったよりもお手頃な価格で注文できたのでとても満足しています。

部品実装

部品はすべて手作業ではんだ付けしました。設計時は何も考えていなかったのですが、マトリクスLEDは24ピン、TM1640は28ピンあるのでこれを16セットはんだ付けするのは割と大変でした。

基板に部品を実装した画像

諸々を実装して動作テストした後に気付きましたが、DS1302のメイン電源とバックアップ電源が逆になっていたので、パターンカットとジャンパワイヤで対処しました。(前述の回路図は修正後のものです)

またこの画像に写っているICのフットプリントは、16個のTM1640のクロックをドライブするのにPico Wのドライブ能力が足りないと困るのでバッファICを載せられるようにしておいたものです。結局不要だったので回路図からも抜いています。

仕上げ

アクリルパネルを取り付けて、ロータリーエンコーダのつまみを取り付けたらハードウェアの完成です!

ロータリーエンコーダのシャフトが直径4 mmだったのですが、秋月に売っているつまみは内径6 mmのものしか無かったので、内径4 mm、外径6 mmのスペーサーを3Dプリンターで作って隙間を埋めています。

横から見た写真はこんな感じです。アクリルに合わせて表側と裏側でスペーサーの色を変えているのがチャームポイントです。

作品を横からみた画像

ソフトウェア

Pico Wのソフトについては長くなりそうなので別の記事で紹介したいと思います。(準備中)

完成するとこんな感じでQRコードを表示できるようになります。

QRコードを表示している様子

またこの作品の紹介動画をニコニコに投稿しているので、よろしければこちらもご覧ください。

-製作物

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

USB給電の小型吸煙器を作ってみた

今回はUSB給電で動作する小型の吸煙器を作ってみました。 今まではんだ付けの際はヤニの煙を吸わないように気を付けながら行っていましたが、吸煙器を使うことでとても快適になりました。 もっと早く作ればよか …

PICでカラーLCDモジュールを動かしてみた話【ST7789】

今回は以前に Amazon で購入したまま積んでいた フルカラーグラフィックLCD を PIC で制御してみました。 激ムズというわけではありませんでしたが、いくつかつまずいたポイントがあったので備忘 …

8x8x2色ドットマトリクスLEDの制御基板を作ってみた

今回は秋月電子で販売されているこちらの 8x8x2色ドットマトリクスLED を4個並べて 16x16x2色 のLEDを制御できる基板を作成しました。   なおこの記事は PCBGOGO にス …

アナログライフゲーム2.0を作りました

以前にライフゲームを抵抗とコンパレータを使って計算する「アナログライフゲーム」という作品を作りました。 自分の作品の中でもお気に入りの作品で、何度かイベントにも展示したりしたのですが、この度バージョン …

【PIC】圧電素子を使って2000円で電子マリンバを作ってみた

前回の記事で圧電素子の使い方について紹介したので、今回はその応用編として電子マリンバを作ってみました。 以前ネットで電子マリンバなるものを見つけたとき、めちゃくちゃ欲しいと思ったんですが、ウン十万とい …