はむ吉(のんびり)の練習ノート

プログラミングとことばに関する話題を中心に,思いついたこと,試してみたこと,学んだことを,覚え書きを兼ねてまとめます.その際に役立った,技術書,参考書,辞書,機器などの紹介も行います.

Raspberry Pi 4 Model B をとりあえず簡易タブレット PC 化して動かしてみる

ふとしたきっかけで,私は Raspberry Pi 4 Model B を手に入れました.こういったものに接したのは初めてなので,まずは習熟も兼ねて,簡易タブレット PC を作ることを目的とし,部品の選定からソフトウェア的設定までを試みることにしました.以下には,その過程を記します.

きっかけ

株式会社アカリクさまの Twitter キャンペーンに何気なく応募したところ,なんと,特賞の Raspberry Pi 4 Model B をいただきました.かねてから Raspberry Pi には関心があったので,喜びもひとしおでした.ただ,私には電子工作の技量もなければ,自作 PC の経験もありませんでした.また,最近話題の IoT という観点から,何か作ろうとも思いましたが,このような状況から,いきなりそういったものを作るのは難しいと感じました.そこで,Raspberry Piスマートフォンサイズの簡易タブレット PC にするということを当面の目標に,とりあえず動作を確認してみることにしました.

f:id:hamukichi_nbr:20210502123852j:plain
Raspberry Pi 4 Model B を箱から取り出したところ.

microSD カードに Raspberry Pi OS と関連ソフトウェアを書き込む

まずは,Raspberry Pi に装着する microSD に,OS などの諸ソフトウェアを書き込む必要があります.この作業は,以下の手順に従い,Windows 10 搭載機(Microsoft Surface Book 2)上で行いました.

OS と関連するアプリケーションをすべて格納するという性質上,microSD としては高頻度の読み書きに耐久性のあるものを使用する必要があります.ここでは,以下の Samsung 製 64 GB microSD カードを採用しました.ドライブレコーダーなどでの使用を想定した高耐久性を謳っていること,および Raspberry Pi と各種 microSD カードの相性をまとめたページでも,同社の microSD カードはおおむね正常に動作するとあることが,決め手となりました.購入後に気づきましたが,microSD から SD へのアダプタも同梱されているのが,いいところです.容量が 32 GB を超えるため,PC に挿入 *1 後,exFAT でフォーマットを行いました.

f:id:hamukichi_nbr:20210502130119p:plain
Windows 10 上で microSD カードを exFAT でフォーマットしている様子.

OS の選択肢はいくつかあるようですが,ここでは公式ウェブサイトで紹介されている Raspberry Pi OS を採用し,microSD カードへの書き込みを行いました.これを容易に行う手段として,Raspberry Pi Imager が提供されています.私は Windows 10 環境に Chocolatey を導入していたため,コマンド cinst -y rpi-imager を管理者権限で実行し,同ソフトウェアを導入しました.これを起動すると,以下のように OS とストレージを設定する画面が表示されます.ここでは,Choose OS 画面で Raspberry Pi OS Full (32-bit) を,Choose Storage 画面で先述の microSD カードをそれぞれ指定しました.後者を誤ると,予期しないファイルの削除のもとになるため,十分に注意しましょう.その後,Write を押下し,注意書きに同意すれば,書き込み作業が始まります.通信環境と PC の性能によりますが,私の環境ではこの作業に 20-30 分ほどを要しました.気長に待ちましょう.

f:id:hamukichi_nbr:20210502131751p:plain
Raspberry Pi Imager の起動画面.

ハードウェアの接続

microSD の準備ができたのち,これと最低限の給電装置および入出力装置を Raspberry Pi に接続しました.以下に,その概要を示します.

f:id:hamukichi_nbr:20210502145938j:plain
Raspberry Pi 4 Model B に電源アダプタ,ディスプレイ,キーボード・マウスのレシーバを接続したものを,画面の裏側から見たもの.
f:id:hamukichi_nbr:20210502145928j:plain
上記の様子を,画面の表側から見たもの.

電源アダプタ

Raspberry Pi への電源供給は, USB-C 端子を介して行うことができます.このために,AC アダプタを導入しました.ここでは,記事「Raspberry Pi 4 model B導入編 - PCまなぶ」で紹介されている,以下の製品を選択しました.On/Off のスイッチがついているため,電源を切る際にいちいちケーブルを抜かなくて済むのが便利です.

タッチ機能付きディスプレイ

今回の目的である小型簡易タブレット PC には,タッチ機能の付いたディスプレイが不可欠です.ここでは,手持ちのスマートフォンに近いサイズのものとして,以下の製品を使うことにしました.組み立て自体は,付属の説明書に従って,ピンやコネクタの挿入と,ねじ回し程度で完了しました.ただし,以下のように,ドライバ等のソフトウェアに関する設定は,別途行う必要があります.

キーボード・マウス

上記のディスプレイだけでも入出力はできますが,やはり慣れ親しんだキーボードとマウスもあるとよいでしょう.特に,後述するように,ディスプレイのドライバを導入するまでは,タッチ機能が正常に機能しないこともあるため,キーボードとマウスによる手段を確保することが十四です.ここでは,たまたま手元にあった,以下の製品を暫定的に使用しました.ワイヤレス方式で,キーボード用とマウス用のレシーバが一つになっているので,便利です.ただ,携帯用には,もう少し小さいものでもいいかもしれません.

Raspberry PI を起動してみる

f:id:hamukichi_nbr:20210502152127j:plain
Raspberry Pi OS を起動して直後の画面.

電源アダプタのスイッチを入れると,基板上のランプが赤色に点灯しました.ほどなくして,画面上に Welcome to Raspberry Pi のウィンドウが表示されるため,キーボード・マウスを用いて作業を進めました.地域と言語の設定,パスワードの設定,画面表示の設定,Wi-Fi の設定,ソフトウェアのアップデートなどを行いました.特に,アップデートには時間を要するため,気長に待ちましょう.

ディスプレイドライバの導入

最後に,以下の手順でディスプレイのドライバを導入しました.

まずは,Raspberry Pi を終了し,microSD カードを取り出す必要があります.デスクトップ 画面で「ログアウト」 を選択し,Shutdown を押下後,画面が No Signal となるのを待って,電源スイッチを切ります.その後,慎重に microSD カードを取り出します.

その後,microSD カードを SD への変換アダプタを介して PC に挿入し,ルートにある config.txt を表示して編集します.この作業の際に,「ドライブのフォーマット」を求める画面が表示されることがありますが,システムやデータの損失を防ぐため,必ず「キャンセル」しましょう.その後,ディスプレイの取扱説明書に従って,以下の記述を同ファイルに加えました.

# --- added by elecrow-pitft-setup ---
hdmi_force_hotplug=1
max_usb_current=1
hdmi_drive=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,
swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900
display_rotate=0
# --- end elecrow-pitft-setup ---

続いて,microSD カードを Raspberry Pi に戻し,システムを起動して,残りのインストール作業を行いました.取扱説明書に記載されている通り,端末上で以下のコマンドを実行しました.ほどなくして,システムが自動的に再起動され,タッチ機能が問題なく利用可能になりました.

git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD5-show

右クリックを長いタッチで代用するための設定

このままでは,画面をタッチして左クリックに相当する操作はできても,右クリックにあたる入力を行うことができません.そこで,長いタッチにより右クリックを疑似的に行えるよう,「[AOB] 3.5inch LCD (480x320)」を参考にして,/etc/X11/xorg.conf.d/99-calibration.conf の End Section の前に以下の記述を加えました(要 sudo).私の環境では,チャタリング (?) が激しいために,EmulateThirdButtonThreshold の値を大きめに設定しました.

        Option  "EmulateThirdButton"            "1"
        Option  "EmulateThirdButtonTimeout"     "750"
        Option  "EmulateThirdButtonThreshold"   "60"

ソフトウェアキーボードの導入

タッチ機能を活用した文字入力ができるように,記事「RaspberryPiでソフトウエアキーボードを使用できるようにする - uepon日々の備忘録」を参照し,ソフトウェアキーボード matchbox-keyboard を導入しました.私の環境では,sudo apt install matchbox-keyboard を実行し,同ソフトウェアを起動するだけで,正常に動作しました.また,標準で Mozc が導入されており,Ctrl + Space による日本語入力への切り替えもできました *2

今後の予定:主にハードウェア面で

現状では,以下のような展開を考えています*3

ケースと冷却

ディスプレイを張り付けているということもあり,現状では基板の片面がむき出しの状態になっています.これについては,周辺機器と干渉しない形のケースを,追加で購入予定です.

CPU の冷却

現状では,CPU の冷却という面ではほとんど何の対策もとっていない状況であり,これからの季節は特に,熱による性能への影響が気になります.現状でも,少し動作確認をしただけで相当熱くなっています.ひとまず,ヒートシンクやファンなどを導入することを検討しています.実は,上記の装置と合わせて以下のファンを購入したのですが,タッチ機能付きディスプレイと同時に使おうとするとピンが不足するという問題が生じました.できれば,このファンを活用したいものです.

電源の携帯化

現状では AC アダプタを用いて Raspberry Pi に給電しており,携帯性や,瞬間的停電への対処という点では難があります.そのため,バッテリーを用い,これを改善することを考えています.現状では,所有している以下のモバイルバッテリーを用い,動作が可能であることは確認しています.ただ,それでもケーブルとバッテリがややかさばるという問題があるため,さらなる軽量化を検討しています.

カメラ

Raspberry Pi の性能には注意する必要がありますが,今回構成した簡易タブレット PC で,写真や動画の撮影ができるとなお便利でしょう.そのため,カメラモジュールの追加,あるいは外部の Web カメラ等の接続を検討しています.

リアルタイムクロック

Raspberry Pi はリアルタイムクロックを装備していないため,電源を切った状態では時刻のカウントを行わず,起動時にインターネット等を利用して時計合わせを行うことになります.そのため,可能であればリアルタイムクロックモジュールを追加することを検討しています.ただ,現状では Wi-Fi の完備された環境での使用が主となるため,優先度はあまり高くありません.

おわりに

Raspberry Pi は初めてであり,周辺機器の購入の際にも不安がありましたが,とりあえず一定の動作まではこぎつけました.今後も,ハードウェア面およびソフトウェア面での機能追加を進めたいと思います.

*1:上述の microSD → SD アダプタを用い,つまみが LOCK 状態にないことを確認しました.

*2:ソフトウェアキーボード上では,連続してタッチする動作になります.

*3:もしかしたら,いい加減なことを書いているかもしれません.