これまで、色々なマイコンデバイスを使って電子工作を行ってきました。
ところで、電子工作用のマイコンデバイスといえば、真っ先に思い浮かぶのは「Raspberry Pi」ですが、私はこれまでRaspberry Piを使ったことがありません。
そんな訳で、一度くらいはRaspberry Piを触ってみようと思い、セットアップを体験してみることにしました。
試したのは、安価でさまざまな電子工作に活用できると思われる「Raspberry Pi Zero WH」です。
なお、セットアップにあたっては、以前購入していた以下の書籍を参考にしました(2017年6月の発行です。本を買ってから試すまで、なんと2年以上もほったらかしにしていたことになります)。
必要な部材
今回準備した部材は以下のとおりです。
Raspberry Pi Zero WHの他に、新たに購入したのは、「mini-HDMI – HDMI変換アダプタ」だけで、その他は、既に家にあったものを流用しました。
「mini-HDMI – HDMI変換アダプタ」はなかなか見つからず、ようやく日本橋の「デジット」で購入しました。500円程度でした。
- Raspberry Pi Zero WH
- mini-HDMI – HDMI変換アダプタ(mini-HDMIオス, HDMIメス)
- HDMIケーブル
- ディスプレイモニタ
- microUSB – USB変換アダプタ(micro-Bオス, Type-Aメス)
- USBハブ
- USBキーボード
- USBマウス
- microUSBケーブル(micro-B, Type-A)
- ACアダプタ(USB接続)
- microSDカード(8GB)
起動用microSDカードの準備
基本的には、参考書籍に記載されている手順に沿って実施しました。なお、本準備作業はWindows PCで行いました。
- Raspberry Pi公式サイトから、NOOBSファイルをダウンロードします(時間がかかります)。なお当初は、現時点の最新版をダウンロードしたのですが、後のOSインストールのフェーズで、「Raspbian Full」と「LibreELEC_RPi2」の2種類しか選択できず、「Raspbian Full」では8GBのmicroSDカードでは容量不足となってしまいました。そのため、今回は、大変古いバージョンになってしまいますが、参考書籍に載っている「2017-04-10」をダウンロードしました。
- SD AssociationのWebページから「SD Card Formatter」をダウンロードします。
- ダウンロードファイルを展開し、exeファイルをダブルクリック、指示に従ってインストールします。
- インストールが完了したら、SD Card Formatterを起動します。
- microSDカードをPCに挿入します。
- 「フォーマットオプション」を「上書きフォーマット」にして、フォーマットを行います(時間がかかります)。
- NOOBSファイルのダウンロード、microSDカードのフォーマットが共に完了したら、ダウンロードしたNOOBSファイルを展開し、中の全データをmicroSDカードにコピーします。
初期設定
それではいよいよ、Raspberry Piを起動し、初期設定を行っていきます。
- 準備した部材を使って、Raspberry Piにディスプレイモニタ、USBキーボード、USBマウスを接続します。
- microSDカードスロットに、OSを書き込んだmicroSDカードを挿入します。
- ACアダプターで、Raspberry Piを電源に接続すると、起動が開始します。
- 「Language」で「日本語」を選択します。
- インストールするOSとして「Raspbian with PIXEL」を選択して、「インストール」をクリックします(時間がかかります)。
- インストールが完了したら、「Top」>「Preferences」>「Raspberry Pi Configuration」をクリックします。
- 「System」>「Change Password」をクリックして、パスワードを変更します(初期パスワードは「raspberry」です)。
- 「Localisation」>「Set Locale」をクリックして、「Language」を「ja(Japanese)」、「Country」を「JP(Japan)」、「Character Det」を「UTF-8」に設定します。
- 「Localisation」>「Set Timezone」をクリックして、「Area」を「Asia」、「Location」を「Tokyo」に設定します。
- 「Localisation」>「Set Keyboard」をクリックして、「Country」を「Japan」、「Variant」を「Japanese」に設定します。
- 「Localisation」>「Set WiFi Country」をクリックして、「Country」を「JP Japan」に設定します。
- 画面右上の「ネットワーク」アイコンをクリックし、使用しているWi-Fiネットワークを選択、パスワードを入力します。接続が完了すると、アイコンの絵柄が変わります。
OSの更新
- 「Top」>「アクセサリ」>「LXTerminal」をクリックします。
- $ sudo apt update
- $ sudo apt upgrade(時間がかかります)
- $ sudo apt install fonts-ipafont fonts-ipaexfont fonts-takao
ネットワーク設定
- $ sudo chmod 666 /etc/dhcpcd.conf(次のフェーズで、固定IPへの変更権限がないというメッセージが出たので、この処理を行いました)
- 画面右上の「ネットワーク」アイコンを右クリックし、「Wireless & Wired Network Settings」を選択します。
- 「Configure」で「wlan0」を選択します。
- 「Automatically configure empty options」のチェックを外します。
- 「IPアドレス」に、DHCPで現在取得されているアドレス(「ネットワーク」アイコンにカーソルを持っていくと表示されます。このアドレスを固定IPアドレスとして採用します)を入力します。
- 「Router」に、Wi-Fiルータのマニュアルに記載されている、ルータのIPアドレスを入力します。
- 「DNS Servers」に、「$ cat /etc/resolv.conf」で表示される値を入力します。
- 「適用」をクリックします。
リモート操作
リモート操作は、Macintoshから行うこととして、準備を行います。
- 「Top」>「設定」>「Raspberry Piの設定」をクリックします。
- 「インターフェース」>「SSH」を「有効」に設定します。
- Macで「ターミナル」を起動します。
- $ slogin pi@192.168.11.45
- Raspberry Piに対して、既にいちど本設定を実施済みの状態で、再度同じ設定をやり直す場合(OSの再インストールなど)は、Macが以前の設定を覚えているため「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」というメッセージが表示されます。この場合は「$ ssh-keygen -R 192.168.11.45」と入力し、設定をクリアしてから、処理を継続します。
- 警告メッセージが表示されるので「yes」と入力します。
- Raspberry Piのpiユーザに設定されているパスワードを入力します。この状態で、MacからRaspberry Piをリモート操作できます。
- $ exit(リモートアクセスを終了します)
- 「インターフェース」>「VNC」を「有効」に設定します。
- Macで、RealVNCのサイトから「VNC Viewer」をダウンロードします。
- ダウンロードされたdmgファイルをダブルクリックし、表示される「VNC Viewer」アイコンを「アプリケーション」フォルダにドラッグ&ドロップします。
- 「VNC Viewer」を起動します。
- 画面上部のIPアドレス入力欄に、Raspberry Piのアドレスを入力し、「Enter」キーを押します。
- 確認メッセージで「Continue」クリック、ユーザ名とパスワードを入力します。この状態で、MacからRaspberry Piをリモート操作できます。
日本語入力設定
- $ sudo apt install ibus-mozc
- 画面右上に「JP」というアイコンが現れるので、「日本語 – Mozc」を選択すると、アイコンが「あ」に変わり、日本語が入力できるようになります。
Webサーバ設定
以下の設定を行うと、今回セットアップしたRaspberry Piを、Webサーバとして活用できるようになります。
なお、その際には、「/var/www/html/」が公開フォルダになります。
- $ sudo apt install nginx
- $ sudo /etc/init.d/nginx start
- 他の端末のWebブラウザで「http://Raspberry Piの固定IPアドレス/」にアクセスすると、Raspberry Piに格納されたWebページが表示されます。
- $ sudo apt install php5-fpm
- (2019/12/25追記)$ sudo apt install php5-gd(以前作っていた、画像を扱うPHPプログラムが、本Raspberry Pi上で動作しなかったため、この処理を追加しました。)
- 「/etc/nginx/sites-available/default」ファイルを開き、項目「index」に「index.php」を追加します。また、45行目〜52行目(location … { … } )のコメントアウト「#」を取り除きます(ただし、49行目の「fastcgi_pass」の行のみ、「#」をつけたままにします)。
- 「/etc/php5/fpm/php.ini」ファイルを開き、772行目の「;cgi.fix_pathinfo=1」を、「cgi.fix_pathinfo=0」に変更します。
- $ sudo /etc/init.d/php5-fpm restart
- $ sudo /etc/init.d/nginx restart
- 「/var/www/htmp/」下にテスト用PHPファイル(test.php)を作成し、他の端末のWebブラウザで「http://Raspberry Piの固定IPアドレス/test.php」にアクセスすることで、正常動作を確認します。
- $ sudo apt install mysql-server php5-mysql
- MySQLの管理者パスワードを決めて、入力します(2回)。
- $ mysql -u root -p
- パスワードを入力します。
- ログインできることで、正常動作を確認します。「$ quit」でMySQLからログアウトします。
各ステップで結構な待ち時間があり、セットアップには非常に時間がかかってしまいました。
ただ、こんなに簡単に、Raspberry PiがWebサーバとして使えるとなると、色々なことに活用できそうです。
当初は、セットアップを体験してみるだけのつもりでしたが、もう少し、Raspberry Piを勉強してみようと思います。
なお、私がRaspberry Piの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました(私が参考にしたのは「第4版」ですが、既に「第6版」が出版されています)。
Raspberry Piの入門書には、電子工作について詳しく書かれているものが多いのですが、本書は、Raspberry Piをパソコンやサーバーなどとして活用する方法についても詳しく書かれており、そのような用途でRaspberry Piを使いたい方にはおすすめです。