[{"content":"ご質問やご意見、仕事のご依頼などがございましたら、以下のフォームよりお気軽にお問い合わせください。\nお名前 メールアドレス 件名 メッセージ内容 送信する ","date":"August 25, 2026","externalUrl":null,"permalink":"/contact/","section":"Home","summary":"","title":"お問い合わせ","type":"page"},{"content":" 個人情報取り扱いに関する基本方針 # 楽ちんな人生ブログ（以下、「当サイト」と言います。）では、ご利用頂くお客様の個人情報を適切に保護するため、個人情報の保護に関する法律、その他の関係法令を遵守すると共に、以下に定めるプライバシーポリシーに従って、個人情報を安全かつ適切に取り扱うことを宣言いたします。\n個人情報の定義 # 「個人情報」とは，個人情報保護法にいう「個人情報」を指すものとし，生存する個人に関する情報であって，当該情報に含まれる氏名，生年月日，住所，電話番号，連絡先その他の記述等により特定の個人を識別できる情報及び容貌，指紋，声紋にかかるデータ，及び健康保険証の保険者番号などの当該情報単体から特定の個人を識別できる情報（個人識別情報）を指します。\n個人情報の取得方法 # 当サイトはユーザーが利用登録をする際に氏名，住所，電話番号，メールアドレスなどの個人情報をお尋ねすることがあります。また、ユーザーと提携先などとの間でなされたユーザーの個人情報を含む取引記録や決済に関する情報を、当サイトの提携先（情報提供元，広告主，広告配信先などを含みます。以下，｢提携先｣といいます。）などから収集することがあります。\nクッキー（Cookie） # 当サイトでは、アクセス解析サービス、各種アフィリエイトプログラム、広告配信サービスを利用しております。これらの広告配信業者は、ユーザーのご興味に応じた商品やサービスの広告を表示するため、ユーザーの当サイトおよび他サイトへのアクセスに関する情報Cookieを使用することがございます。\nCookieは、ユーザーが当サイトあるいは他サイトを閲覧された際、使用されたコンピューターやデバイス内に記録されます。ただし、この情報には、お名前・ご住所・メールアドレス・電話番号など個人を特定できるものは一切含まれません。\nCookieによる情報収集を好まれない場合、ユーザーご自身でブラウザで受け入れを拒否するよう設定することも可能です。ただし、この設定により一部のコンテンツが正しく機能しない場合、またサービスが受けられない場合がございます。あらかじめご了承ください。\nなお、設定方法に関してはGoogleポリシーと規約にてご確認いただけます。\nアクセス解析ツール # 当サイトでは、Googleの提供するアクセス解析ツール『Google Analytics』を使用しています。Google Analyticsはトラフィックデータの収集のためCookieを利用します。このトラフィックデータは匿名で収集されており、個人を特定するものではございません。\nユーザーは、Cookieを無効化することにより、データの収集を拒否することができます。お使いのブラウザより設定をご確認ください。\nなお、この規約に関しては、Google アナリティクス利用規約およびGoogleポリシーと規約でご確認いただけます。\nコメントについて # 当ブログへのコメントを残す際に、IP アドレスを収集しています。\nこれはブログの標準機能としてサポートされている機能で、スパムや荒らしへの対応以外にこのIPアドレスを使用することはありません。\nなお、全てのコメントは管理人が事前にその内容を確認し、承認した上での掲載となります。あらかじめご了承ください。\n個人情報の利用目的 # 当サイトが個人情報を収集・利用する目的は，以下のとおりです。\n当サイトのお問い合わせ，メールマガジンへの登録の際に，名前（ニックネーム）、メールアドレス等の個人情報を入力いただく場合がございます。\nこれらの個人情報は，質問に対する回答や必要な情報を電子メールなどでご連絡する場合に利用させていただくものであり，個人情報をご提供いただく際の目的以外では利用いたしません。\n当サイトでは，有料のサービスを提供しております。その際の利用料金のご請求をするために利用しております。\nその他に，当サイトを不正・不当な目的で利用しようとするユーザーがいた場合，ユーザーの特定をし，ご利用をお断りするために利用します。\n当サイトが利用している広告サービス # 当サイトは、以下の第三者の配信する広告サービスならびにアフィリエイトプログラムを利用しております。\nA8.net\nこれらのサービスにおいて取得・収集される情報については、各プログラムのプライバシーポリシーにてご確認ください。\nGoogleアドセンス # 当サイトは、第三者配信の広告サービス「Google Adsense（グーグルアドセンス）」を利用しています。当サイトにおいて広告が配信される過程で、Cookieやデバイス特有の情報、位置情報、当該デバイスから収集されるその他の情報が利用される場合があります。ただしその過程で個人を特定できる情報は収集されません。\nまた、Google AdSenseに関して、このプロセスの詳細や情報が広告配信事業者に使用されないよう、ユーザーご自身で設定することができます。ただし、この設定により一部のコンテンツが正しく機能しない場合、またサービスが受けられない場合がございます。あらかじめご了承ください。\nなお、この設定方法に関してはGoogleポリシーと規約にてご確認いただけます。\nAmazonアソシエイトプログラム # Amazonのアソシエイトとして、当サイト運営者は適格販売により収入を得ています。\n個人情報の管理方法 # 当サイトは第三者に皆さまの重要な情報を読み取られたり、改ざんされたりすることを防ぐために、SSLを使用しております。\nSSL(SecureSocketLayer)とはデータを暗号化して通信するセキュリティ機能です。 SSLで暗号化することによってお客さまの個人情報をハッカーやクラッカーから守り、安全に情報を送信することができます。\n個人情報の第三者提供 # 当サイトは次に掲げる場合を除いて、あらかじめユーザーの同意を得ることなく第三者に個人情報を提供することはありません。\nただし、個人情報保護法その他の法令で認められる場合を除きます。\n個人情報の開示、訂正などの手続きについて ご本人からの個人情報の開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させて頂いた上、速やかに対応させていただきます。\n免責事項 # 当サイトのコンテンツ・情報について # 当サイトで提供している記事内容、各種コマンド、スクリプト、設定例、構成図等の技術情報につきましては、可能な限り正確な情報を掲載するよう努めておりますが、正確性や安全性を保証するものではありません。情報が古くなっている場合や、環境の違いにより期待通りの動作をしない場合があります。\n損害等の責任について # 当サイトに掲載された内容を実行・操作したことによって生じたシステム障害、機器の故障、データ消失、セキュリティ上の問題、その他一切の損害・不利益について、管理者は一切の責任を負いかねます。作業の実施は必ずバックアップ等を行い、ご自身の責任（自己責任）において実施してください。\nまた、当サイトからのリンクやバナーなどで移動した外部サイトで提供される情報、サービス等についても一切の責任を負いません。\n著作権について # 当サイトのコンテンツ（写真や画像、文章など）の著作権につきましては、 原則として当サイトに帰属しており、無断転載することを禁止します。\n当サイトのコンテンツを利用したい場合は、別途お問い合わせください。\nリンクについて # 当サイトは完全リンクフリーです。リンクを行う場合の当サイトへの許可や連絡は不要です。\n個人情報の取扱いに関する相談や苦情の連絡先 # 個人情報の取り扱いや免責事項に関するお問い合わせは、当サイトの お問い合わせフォーム よりご連絡ください。\n","date":"August 23, 2026","externalUrl":null,"permalink":"/privacy/","section":"Home","summary":"","title":"Privacy","type":"page"},{"content":"","date":"August 22, 2026","externalUrl":null,"permalink":"/tags/epaper/","section":"Tags","summary":"","title":"EPaper","type":"tags"},{"content":"","date":"August 22, 2026","externalUrl":null,"permalink":"/tags/python/","section":"Tags","summary":"","title":"Python","type":"tags"},{"content":"","date":"August 22, 2026","externalUrl":null,"permalink":"/categories/raspberry-pi/","section":"Categories","summary":"","title":"Raspberry Pi","type":"categories"},{"content":"","date":"August 22, 2026","externalUrl":null,"permalink":"/tags/shell/","section":"Tags","summary":"","title":"Shell","type":"tags"},{"content":"ラズパイを使ってWaveshare のePaper（カラー電子ペーパー）に写真を表示させる方法を紹介します。\n我が家では思い出の写真を映していて、写真は一定時間で別のものに切り替わるようにもしてます。\n切り替えができるのはePaper ならではの楽しみ方です。\n使ったもの # ラズパイ zero WH（これ） 電子ペーパー Waveshare のリンク（これ） 百均のフレーム（たぶんSeria に売ってた） ラズパイの電源（マイクロB）、マイクロSDカード、ラズパイを覆えるな袋的なもの 作り方 # ePaper に写真が映るまでの仕組みは、以下の通りです。\nディレクトリの中に写真がいくつか入ってる ↓ ランダムに一枚の写真を選ぶ（shell） ↓ その写真をePaperに映す（python） 本来なら全部Python で書けるのですが、ゆくゆくはNASのディレクトリをマウントする動作とかも盛り込む予定なので、写真を選ぶ作業だけはshell を使っています。\nハードウェア設定 # ePaper とラズパイを接続 # ePaper 本体とラズパイの中間アダプターボードを接続します。\nFPC（金色のペラペラのやつ）の先込み向きは決まってて写真のように取り付けます。厳密に言うと、FPCの先端が金色の方が基盤側を向くように取り付けます。\n中間アダプターボードは黒い部分を上げてロック解除できるので、ロック解除後FPCを差し込みます。\nそして中間ボードの逆側は40ピンのメスがあるボードにつながってるので、それをラズパイ40ピンと接続します。\nラズパイゼロにOS入れる # 今回はePaper に映し出すため専用なので、デスクトップ環境は不要で、Raspberry Pi OS Lite (32-bit) を入れました。\nOSを入れるときはいラズパイイメージャーを使って、sshも有効にしておきます。このOS は「Raspberry Pi OS (Other)」から選べます。\n起動や再起動には5～10分かかります。洗い物とかしながら待ちます。 起動後はIP を固定しておくと今後便利です。\nIP固定 nmtui sudo nmtui ↓ wlan0を選択（Wi-Fiじゃない場合は使ってるネットワークを選ぶ） ↓ IPv4 CONFIGURATION の項目が \u0026lt;Automatic\u0026gt; になっているので\u0026lt;Manual\u0026gt;へ ↓ 固定したいIPとルーターのIPアドレスを設定 ↓ 完了したら最初の画面のQuitを押下 ↓ 再起動 SPI を有効にする # ePaperの制御にはSPIインターフェースの有効化が必須なので、有効化します。\nsudo raspi-config を実行 ↓ Interface Options → I4 SPI をYes に ↓ reboot 再起動後、ls /dev/spidev0.* で /dev/spidev0.0や /dev/spidev0.1が見れればOKです。\nソフトウェア設定 # ソフトウェア側では大まかにこんな感じの設定をします。\npython: ePaperに写真を表示 bash: 表示したい写真をランダムに選ぶ cron: そのbashを時間指定で繰り返し 作業を進めると、最終的なディレクトリ構造は以下のようになります。\n# 筆者は一連の作業を`ePaper`というディレクトリで行いました ePaper |-- images # 写真を集めたディレクトリ |-- main.py # ePaper に写真を表示するスクリプト |-- main.sh # 写真を選択 \u0026amp; main.py を呼び出し └-- e-Paper # Waveshare が提供するライブラリ いろいろインストール # 必要なライブラリをインストールします。 python 画像処理ライブラリpillow をインストール↓\nsudo apt update sudo apt install python3-pillow 今回使用したePaper はWaveshare のもので、ライブラリはGithub に用意されてます。ただ、ラズパイzeroのイメージにはgitが入っていないので、まずはgit のインストールからします。\n# gitのインストール sudo apt install -y git # Waveshare のラズパイをクローン git clone https://github.com/waveshare/e-Paper.git Python スクリプト（ePaper に表示） # images ディレクトリを作って、ePaper に映したい写真を入れときます。\nssh にTeraterm を使っている場合はドラックアンドドロップで移せます。（/tmp とかに一旦入れ、そのあと作ったディレクトリに動かしましょう）\nmkdir images # ここに表示したい写真を入れる 次に以下のようにmain.py を書きます。（Gemini ありがとう）\nmain.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 import sys import os import argparse from PIL import Image, ImageOps BASE_DIR = os.path.dirname(os.path.abspath(__file__)) sys.path.append(os.path.join(BASE_DIR, \u0026#39;e-Paper\u0026#39;, \u0026#39;RaspberryPi_JetsonNano\u0026#39;, \u0026#39;python\u0026#39;, \u0026#39;lib\u0026#39;)) from waveshare_epd import epd7in3e # 7.3inch e-Paper (E) color palette (RGB) PALETTE_COLORS = [ 0, 0, 0, # black 255, 255, 255, # white 255, 0, 0, # red 255, 255, 0, # yellow 0, 0, 180, # blue 0, 255, 0, # green ] + [0] * (768 - 18) def convert_in_memory(image_path, target_size=(800, 480)): img = Image.open(image_path).convert(\u0026#34;RGB\u0026#34;) img = ImageOps.exif_transpose(img) img = img.resize(target_size, Image.Resampling.LANCZOS) # img = img.transpose(Image.ROTATE_180) palette_img = Image.new(\u0026#34;P\u0026#34;, (1, 1)) palette_img.putpalette(PALETTE_COLORS) dithered_img = img.quantize(palette=palette_img, dither=Image.Dither.FLOYDSTEINBERG) return dithered_img.convert(\u0026#34;RGB\u0026#34;) def main(): parser = argparse.ArgumentParser( description=\u0026#34;A CLI tool to display an image to 7.3inch color ePaper (HAT E)\u0026#34; ) parser.add_argument( \u0026#34;image_path\u0026#34;, type=str, help=\u0026#34;path you want to display（ex: /mnt/nfs/photos/my_photo.jpg）\u0026#34; ) args = parser.parse_args() image_path = os.path.abspath(args.image_path) if not os.path.exists(image_path): print(f\u0026#34;error: {image_path} was not found\u0026#34;) return try: print(\u0026#34;processing...\u0026#34;) frame_image = convert_in_memory(image_path) print(\u0026#34;initializing ePaper...\u0026#34;) epd = epd7in3e.EPD() epd.init() epd.Clear() print(\u0026#34;drawing...\u0026#34;) epd.display(epd.getbuffer(frame_image)) epd.sleep() print(\u0026#34;done\u0026#34;) except Exception as e: print(f\u0026#34;error: {e}\u0026#34;) if __name__ == \u0026#34;__main__\u0026#34;: main() 実行するには、引数として写真のパスを渡します。（表示には20〜30秒かかります）\npython3 main.py image_path 筆者が試すと、映し出された写真の青色が強めだったのでPALETTE_COLORSの値を青のみ180としています。 他の色も調整したい場合は、その色の値を増減させます。振り幅は0～255です。\n# 7.3inch e-Paper (E) color palette (RGB) PALETTE_COLORS = [ 0, 0, 0, # black 255, 255, 255, # white 255, 0, 0, # red 255, 255, 0, # yellow 0, 0, 180, # blue 0, 255, 0, # green ] + [0] * (768 - 18) また、もし表示された写真の上下が逆なら以下のコメントアウトを外します。\nmain.py# img = img.transpose(Image.ROTATE_180) bash（写真をランダムに選ぶ） # ePaper に投影されただけでも喜びMAXですが、ここから写真のランダム抽出と自動化を実装します。\n先に述べたように、現在は写真をローカルに置いていますが、今後表示したい写真が増えたとき、NASのディレクトリをマウントしてそこから写真を選ぶようにしたいと思っています。\nマウント絡みはbash で書く方が楽だと思うので、このような方針で設定してます。\nmain.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #! /bin/bash cd /home/pi/ePaper get_image() { images=(images/*) count=${#images[@]} if [ \u0026#34;$count\u0026#34; -eq 0 ]; then echo \u0026#34;there are no images\u0026#34; exit 1 fi rand_index=$(( RANDOM % count )) selected_image=\u0026#34;${images[$rand_index]}\u0026#34; echo \u0026#34;$selected_image\u0026#34; } /usr/bin/python3 main.py $(get_image) 最後にcronで自動実行させます。 設定するにはcrontab -eで設定を開き、最後の行に以下を追加します。\n以下の例では、午前と午後の3時と再起動時にmain.shが実行されるようにしてます。\ncrontab にて 1 2 3 0 3,15 * * * /home/pi/ePaper/main.sh @reboot sleep 60 \u0026amp;\u0026amp; /home/pi/ePaper/main.sh 再起動したり指定した時間になって写真が切り替わればOKです。 cron で正しく動作しないときは、以下のようにしてログを確認してみてください。きっとAI が助けてくれます。\ncrontab にて 1 2 3 0 3,15 * * * /home/pi/ePaper/main.sh \u0026gt;\u0026gt; /home/pi/ePaper/cron.log @reboot sleep 60 \u0026amp;\u0026amp; /home/pi/ePaper/main.sh \u0026gt;\u0026gt; /home/pi/ePaper/cron.log 完成 # あとはフレームに入れて完成です。フレームは100均とかで売ってる挟むタイプ（伝われ）が使いやすいです。こんな感じ↓\nePaper本体以外の中間ボードやラズパイ本体の収納はどうするかというと、結論、「各々で頑張れ」なのですが、筆者は絶縁ビニールに入れてフレームの裏側に置いてます。 「普段見えないからこれでいいや」です。\nこの記事が写真を表示する以外にもラズパイとePaper を使った工作の参考になれば嬉しいです。\n今後はNAS を設定して、そこから写真を選べるような変更を加えたいと思います。また別の記事にするので見ていただければと思います。\n","date":"August 22, 2026","externalUrl":null,"permalink":"/posts/photo-station/","section":"Posts","summary":"","title":"思い出をePaper に映そう！","type":"posts"},{"content":"","externalUrl":null,"permalink":"/en/","section":"A Cushy Life Blog","summary":"","title":"A Cushy Life Blog","type":"page"},{"content":"","externalUrl":null,"permalink":"/en/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/en/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","externalUrl":null,"permalink":"/en/posts/","section":"Posts","summary":"","title":"Posts","type":"posts"},{"content":"","externalUrl":null,"permalink":"/en/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/en/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"}]