HN 日本語サマリー

← 一覧へ戻る
Web開発

円形LCDクロックの作り方

How to build a circular LCD clock (blinry.org)

111 pointsby birdculture50 コメント

要約

この記事では、円形LCDディスプレイとRaspberry Piを使用して、カスタマイズ可能な円形クロックを作成する方法を解説しています。必要なハードウェア(Waveshareの7インチ円形LCD、Raspberry Pi 3-5など)とソフトウェア(Raspberry Pi OS、VNC、タッチジェスチャー設定)について説明し、画面の明るさ調整や、スイス鉄道時計風、ミニマリスト、カートゥーン風など、様々なデザインの時計フェイスの実装方法を紹介しています。

全文翻訳

円形LCDクロックの作り方 2026-07-09 / blinry / CC BY-SA 4.0 / 作成、ソフトウェア 私たちのキッチンでは、時間を表示する唯一のデバイスはオーブンです!:D それを見るのはいつも少し面倒でした。そこで最近、円形LCDスクリーンで壁掛け時計を作りました!好きな時計の文字盤を表示できるので、自分でコーディングしたものさえ表示できます!あなたも欲しいなら、ここにその方法があります! ハードウェア あなたが必要なもの: Waveshareの7インチ円形LCD これは1080 x 1080ピクセルで、表示領域は直径7インチ(約18cm)です。コントラストと明るさは良好で、マルチタッチ機能もあり、楽しいインタラクティビティが可能です!当初、もう少し大きい円形スクリーンが欲しかったのですが、それらは非常に高価で、このサイズで十分に満足しています。 Raspberry Pi 3-5 このミニコンピュータが時計の電源になります。Pi 3B+は、簡単なアニメーションをレンダリングするのに十分なようです。Raspberry Pi Zero 2でも試しましたが、残念ながら512MBのRAMでは最新のブラウザを実行するには少なすぎました。Pi 4は、処理能力と価格の間の良いスイートスポットになると思います。 ストレージとしてのmicroSDカード、少なくとも16GB。 OSをフラッシュできるように、microSDカードリーダー。 良好なUSB-C電源アダプター 最初は、ランダムな電話充電器を使用していましたが、Piは常に低電圧の警告を発し、CPUをスロットルしていました。vcgencmd get_throttledの出力を確認し、このサイトを使用して結果のビットパターンの意味を学ぶことができることを学びました。そこで公式のRaspberry Pi電源アダプターを入手し、それ以来問題はありません。 白いUSB-AからUSB-Cケーブル これはPiをスクリーンに接続し、電力とタッチ情報を転送します。また、これを使用して明るさを設定することもできます。下記参照。黒いスクリーンが白い壁の前でより際立つように、白いケーブルを選びました。 白いHDMIからmicro HDMIケーブル Ebayでランダムなものを見つけ、HDMIプラグの後ろにある大きすぎる部分を取り外すことができたので、ケーブルが接続されたスクリーンが壁に少し近づきました。 初期設定のためにUSB-Aに接続できるマウス オペレーティングシステム オペレーティングシステムとしてRaspberry Pi OSを使用しました。SDカードにフラッシュしてくれる便利なRaspberry Pi Imagerがあります。 組み立て スクリーンには、Piをスクリーンの背面に固定するためのネジとコネクタが付属していますが、スタック全体が約4cm厚くなり、それは多すぎると感じました。そのため、Piを棚に置き、USB-CとHDMIケーブルをPiからスクリーンに配線しました。 USBポート「Touch」を使用してPiをスクリーンに接続します。USBポート「Power」は接続したままでも構いません。「Touch」ポートはスクリーンの電源を供給します。 リモートコントロール Raspberry Pi OSが起動したら、Preferences → Control Centre → Interfaces → VNCの下にある組み込みVNCサーバーを有効にし、(例えば) TigerVNCを使用して接続できます。これにより、マウス/キーボードを接続せずにスクリーンをリモートコントロールするのが容易になります。VNC接続をすばやく開くために、clockというBashスクリプトを作成しました。clockはPiに設定したホスト名でもあります: #!/usr/bin/env bash set -eu -o pipefail export VNC_USERNAME=<username> export VNC_PASSWORD=<password> vncviewer clock.local タッチジェスチャー Raspberry Pi 3でマルチタッチがうまくいかない場合(指でページをスクロールするのではなくテキストを選択してしまう場合)、Preferences → Control Centre → Screenを開き、スクリーンを右クリックして、タッチ入力がマウスのエミュレーションではなくマルチタッチとして設定されているか確認してください。スクリーン自体にはスマートフォンにあるような「戻る」や「メニュー」ボタンがないため、ジェスチャーでブラウザを操作するのが便利だと感じました。Touchscreen Swipe NavigationはFirefoxでうまく機能しました:右にスワイプして履歴の前後に移動したり、下にプルしてリフレッシュしたりできます。「Touch」ボタンはスクリーンの背面にあるため、タッチ入力を90度回転させることができます。適切に回転させるために数回押す必要があるかもしれません。 明るさの制御 裏側にある「ON/OFF」ボタンは明るさコントロールとしても機能します。長押しすると、スクリーンは5つの明るさモードを循環します。私たちのキッチンでは、最も暗いモードで十分だと感じました。しかし、夜間にスクリーンを暗くしたいと思うようになりました。それをどのように行うかは、あなたのPiによります: Raspberry Pi 3 Raspberry Pi 3では、gammastep(Waylandをサポートするredshiftのフォーク)というプログラムを使用できました。コマンドはgammastep -b 1:0.3 -l <my lat>:<my lon> のようになり、夜間はスクリーンが30%の明るさに、日中は100%に暗くなります。これはソフトウェア側の調光であり、バックライトは同じままです。 Raspberry Pi 3-5 しかし、Raspberry Pi 4および5では、ファームウェアがgammastepをサポートしていないようです(詳細についてはMaxのブログ記事を参照してください)。そのため、別の方法が必要です。再びWaveshareのサポートに助けを求めました(彼らの製品サイトではスクリーンの明るさがソフトウェアで制御できると宣伝されているため)。そして、彼らはスクリーンのUSBインターフェースに直接話しかけて、明るさを0から100の間の値に設定するPythonスクリプトを送ってきました!そのスクリプトを少し磨き、日中の自動調光を追加し、その結果をここに公開しました。 時計の文字盤 時計の文字盤を表示する最も簡単な方法は、Piでブラウザを開き、フルスクリーンにすることかもしれません。自分でいくつかの時計の文字盤を作成しました。概要はclocks.blinry.orgで見つけることができます。このページは私の「ホームスクリーン」としても機能します。時計の文字盤をタップしてアクティブにし、前述のスワイプジェスチャーで戻ることができます。 スイス鉄道時計 スイス鉄道時計の分針の停止を実装しました。@Fluyarにヒントをいただきました!別の実装(Draemmliによる)はこちらで見つけることができます。これは非常に満足のいく方法で針をアニメーション化します! ミニマリスト時間スケール Jürgenがこのブログ記事を見せてくれて、自分のバージョンを実装しなければなりませんでした!12時間表示のすべての目盛りを描画しますが、ズームインされているため、単一の針でもかなりの精度が得られます!「目盛り」の間は10分です。 カートゥーン風 気に入ったスマートウォッチの文字盤にインスパイアされました。Modakフォントが多くの作業を行っており、それがとても気に入っています! スクエア風 Pebbleデバイス用のAlinaのSquared 4.0に基づいていますが、ゼロから再実装しました。コードにはいくつかの異なる遷移タイプが含まれており、秒を表示するモードさえあります!