![]()
21.ここからが本当のスタート! (2020.2.1-2023.11.21)
これまではテキストに従っての学習がメインでした。Raspberry PiとPythonによるプログラミングの基礎がある程度わかったところで、いよいよ実践のスタートです。ここからは何かの目的を実現するための装置を製作し、実験しながら理解を深めていきます。
その前に、Raspberry PiをPCからリモートで操作できるようにします。私は普段Windowsで作業していて、PCはほとんど常時稼動しているような状態にあります。わざわざRaspberry Piのためにディスプレイ等の周辺機器が占有されるのも非効率なため、Windows上から操作できれば助かります。幸いRasbianの最新バージョンでは、リモートデスクトップを実現するVNCサーバー(GUIで他のPCからリモート操作できる)が標準でインストールされています。設定を少し変更すればすぐに使える状況にあるので、早速試してみました。
Raspberry Pi側での設定は簡単で、左上のメニューアイコンをクリックしてから「設定」→「Raspberry Pi の設定」→「インターフェース」の順に選択し、表示された項目の中から「VNC→有効」にします。ついでにターミナルからもコマンドで操作できるように「SSH→有効」にしておくと良いと思います。VNCが有効になると、デスクトップの上のバーにVNCアイコンが表示されます。ここをクリックするとウインドウが開き、そこに現在のIPアドレスも表示されるので控えておきます。このアドレスがPC側から接続する際に入力するアドレスになります。接続の際にはログインのためのユーザーID(デフォルトはpi)とパスワード(自分で設定した値)も必要で、インストールの際に設定した値を使います。
続いてPC側の準備です。SSHにはTera Term、VNCにはVNC Viewerを使うことにします。インターネットの該当サイトからダウンロードして、PCにインストールします。やはりGUIの方が操作しやすいため、私は後者をメインに使うことになると思います。VNC Viewerを起動すると上部に入力ボックスが現れるので、前述で控えておいたIPアドレスを入力します。そうすると確認を促すダイアログが表示され、Continueをクリックして続けます。次にユーザーIDとパスワードを促すダイアログが表示され、それぞれを入力してOKをクリックすれば、Raspberry Piのデスクトップ画面が表示されます。後はRaspberry Pi上で作業するのと同じように、この画面上で操作すれば良いわけです。ネットに色々と情報が上がっていることもあり、ここまでは実にスムーズに準備を進めることができました。
ところで、Raspberry PiはOSであるRaspbianをインストールしただけでは、日本語表示はできても日本語の入力ができません。
参考)後のOSバージョンで標準で日本語入力が可能になりました。(Fcitx-Mozcがインストールされる)
日本語入力を可能にするため、Google日本語入力の「Mozc」のパッケージをインストールします。ターミナル(LXTerminal)にて下記のコマンドを実行。
sudo apt-get install fcitx-mozc
インストールが終了したら一度リブートします。デフォルトではCtrl+Spaceキーで入力モード切り替えするようになっているので、これをWindowsのように半角/全角 漢字キーで切り替えられるようにしました。ニューから「設定」→「Fcitx設定」を選択し、「入力メソッドの設定」から「全体の設定」タブを選択します。ホットキーの「入力メソッドのオンオフ」の右側にある「Ctrl+Space」(デフォルトの設定)をクリックするとキー入力待ちとなるので、「半角/全角 漢字」キーを押して確定します。(別のキーの組み合わせ等も可)
VNCクライアントであるWindows PCから切り替えする場合は、PC側のキーボードの「半角/全角 漢字」キーで切り替えます。環境によっては切り替わらないかもしれないので、その場合はリモート画面上のRaspberry Piデスクトップの右上にあるキーボードアイコンをマウスでクリックして切り替えます。
余談になりますが、ここまで使用してきたのは初期モデルのRaspberry Piです。さすがに今となってはRaspbianでの動作は遅いと感じます。何をやっても時間待ちが多く、デスクトップ環境としてはあまり実用的では無いと感じました。手元には以前に購入しておいたRaspberry Pi 3 Model Bもあるため、プログラム開発や実験にはこれを使うことにします。CPUもかなり強化されており、使用した感触ではあまりストレスを感じません。無線LANも搭載されていて使い勝手も上々です(最新の4なら更に快適に使えるでしょう)。初期のモデルについては、実際の組み込み用として活用していくつもりです。
Raspberry Piの応用について現在予定しているのは、まずはGPIOの入出力拡張です。元々のポート数でもある程度間に合いますが、多目的で使用するために32または64の入出力ポートを用意しておこうと思います。また、防犯システム(いずれはホームシステム)等も考えているため、カメラを接続してパン・チルト・ズーム機能等も持たせたいところです。なお、無線LAN経由でRaspberry Piを外部からコントロールするのも目標の1つです。
<追記(2020.3.10)>
私の環境ではVNCクライアントにWindows7機を使っており、インストールしたのはVNC Viewer(RealVNC)と呼ばれるアプリです。Windows7もこの1月でサポート切れになったので、セキュリティを考えるとネットへのアクセスにはそろそろWindows10機への転換が必要です。実を言うと、出来損ないのWindows10は本当は使いたく無くて、ネット関連はAndroidタブレット等をメインにしようと考えていますが、これまでの経緯からしてやはりWindows環境の維持も必要で、最終的には併用もやむなしと言ったところです。
それはさておき、ローカルの環境では未だWindowsXp機を主流で使っています。基本的にインターネットに接続しないプライベートLANでの作業では、Xpの方が個人的に遥かに使いやすいからです。何よりもセキュリティ絡みの不定期な速度低下等も無いため、マウスのひっかかり等も無くて動作がスムーズなのが好感度につながっています。そこで、Xp機でもVNCクライアントで接続できないか試してみました。ところが実際に試してみるとうまく接続できません。ネットでもXp機での情報が少なくて、結局は自分で試行錯誤するしかありませんでした。Windows7機では何も考えなくても簡単につながったため、まさかXp機で苦労するハメになるとは予想もしていなかったのです。
最終的にはうまく接続できたので、備忘録も兼ねて補足しておきたいと思います。接続できない原因は大まかに言うとセキュリティに絡む原因でした。最も重要なのはRaspberry Pi側のVNCサーバー設定です。その方法を順に説明します。
1.上部のメニューバーの右の方にVNCアイコンがあるのでクリックして下図のような表示ウインドウを開きます。
2.表示ウインドウの右上に三本線のマークがあるのでクリックして設定ウインドウを開きます。

3.一番上のSecurity項目で、右の設定の中にあるAuthenticationをVNC passwordに変更します。新しいパスワードが求められるので入力します。これはシステムに設定したものと同じでも大丈夫のようです。私はそのまま使いました。セキュリティを重視するなら別のものにした方が良いかもしれません。ネット情報ではこれで接続されるとありますが、私の環境ではだめでした。

4.User & Permissionsの項目で、右の設定の中のAddボタンをクリックして新たなユーザー(administrator user)を追加します(下のAllowのチェックボックスが全てチェックした状態になる)。

更にPrivacyの項目で一番下のSend anonymous・・・のチェックボックスをチェックします。OKをクリックして設定を反映させれば完了です。

5.それではXp機からリモート接続してみます。アプリケーションはあらかじめインストールしておいたRealVNCを使いました。起動すると下図のウインドウが表示されるので、サーバーにRaspberry PiのVNCアドレスを入力します。

6.次にユーザー名とパスワードを求められるので、それぞれを入力します。これが表示されない場合、サーバーのアドレスにミスがあるか、セキュリティ関連で拒否されている可能性があります。再度Raspberry PiのVNC関連設定やPC側のセキュリティ状況等(セキュリティソフトやファイヤーウォールの設定)を見直して下さい。

WindowsXpは既にかなり過去のOSになってしまいましたが、後発のハードウェアでサポート対象の場合、優れたハードウェア性能と相まって大変快適に使えるOSです。intelならCore2~初期のCore iシリーズ、AMDならAthlon IIX4やPhenom IIシリーズ等、高いCPU処理能力が利用できます。廃棄や眠らせておくのは惜しいので、こうしてリモートアクセスに使用するのも1つの活用方法です。私の場合、TVチューナーを組み合わせて視聴や録画にも使えるようにしたり、ネット以外の様々な作業用マシンとして、これからも現役でバリバリ利用していくつもりです。多くは既に10年以上(更に古いと15年以上)経過したハードウェアになるわけですが、大事に使えばまだまだ大丈夫だと思えます。もちろん内蔵電池(5~10年で枯渇)は定期的に交換の必要がありますし、接点の接触不良防止のためメンテナンスも重要です。長期稼動による電解コンデンサ等の電子部品の劣化も考慮しなければなりません。少なくともデータバックアップは必須で、普段から安全運用に心がけたいものです。
<追記(2023.11.21)>
久しぶりにOSのセットアップを試みたところ、VNCサーバーを有効にしているのにサーバーが起動しない事態が発生しました。色々調べてみたところ、原因はディスプレイ表示がX11からWaylandに変更されたことにあるようです。デフォルトで使われるRealVNCはX11(Xウインドウ)用に作られているため、Waylandでは表示されないと言うわけです。従って従来のX11に戻せば表示可能になります。もしWaylandのまま続けるならば、TigerVNCのインストールが推奨されています。X11に戻す方法ですが、raspi-configのメニュー内に用意されています。
ターミナルを開き、sudo raspi-configと入力すると設定画面がポップアップ表示されます。その中のAdvanced Opsionsをクリックして、WaylandからX11へ切り替えます。切り替えるとRaspberry Pi設定のインターフェースで行ったVNCの有効化が無効になるため、再度有効化します。再起動するとVNCが有効になるはずです。ただ、OSのバージョン等によってはこの操作を行っても有効にならない場合もあって、必ずしもうまくいくとは限らないようです。
![]()