LYNCSブログ

慶應義塾大学公認学生団体 宇宙科学総合研究会(LYNCS)のブログです。

【2021年版】 初心者向け Raspberry Pi 4 へのOSインストール・初期設定手順(後編)

前編 では、OSのインストールまでを完了させました。 後編では、ラズパイで電子工作をする際に必要な環境を整えます。

前編をお読みでない方は先にそちらからお読みください。


現時点での状態


【応用編】 パソコンからRaspberry Piを操作する

電子工作をする場合、毎回ラズパイにキーボード・マウス・HDMIケーブルを接続するのは面倒です。ということでPCからリモート操作できるようにしてしまいましょう。
(ここの設定が完了するまではキーボード・マウス・HDMIケーブルを使います)

5. Raspberry Pi 側の設定

画面左上のメニューから、Preferences(設定)Raspberry Pi Configuration(Raspberry Piの設定)をクリックします。

f:id:lyncs:20210622170242p:plain
Raspberry Pi の設定を開く


Interfaces(インターフェイスタブをクリックし、SSHVNCEnable(有効)にし、OKをクリックします。

f:id:lyncs:20210622170413p:plain
SSHVNCを有効にする設定画面


続いて、LAN内でのIPアドレスを固定します。
なぜなら、毎回IPが変わるとPCからの接続が困難になってしまうからです。

ターミナルというアプリを起動します。Windowsにおけるコマンドプロンプトのようなものです。
画面の上部にある、以下のアイコンをクリックします。

f:id:lyncs:20210622170612p:plain
コマンドを入力するアプリケーション


黒い画面が表示されたら、 ifconfig と入力してEnterキーを押します。
Windowsで似たようなことをするのは「ipconfig」ですが、ラズパイなどLinuxでは「ifconfig」なので注意しましょう。)

長い結果が表示されますが、左側にwlan0と表示されている部分を探してください。
その中に inet という欄があるはずです。ここの後に書いてある 192.168.XX.XX のような IP アドレスをメモしておいてください。
このIPアドレスがラズパイに今現在割り当てられているものです。

今回はいま割り当てられているアドレスに固定します。

f:id:lyncs:20210622171031p:plain
ifconfigの結果


続いて、もう1つコマンドを実行します。route と入力し、Enter キーを押します。

こちらは短い実行結果です。defaultと書いてある右横IPアドレスをメモしてください。
こちらがデフォルトゲートウェイ、通常はルーターIPアドレスです。

f:id:lyncs:20210622173407p:plain
routeの結果


では、ここで得た情報をもとにして設定ファイルを書き換えます。以下のコマンドを入力し、Enterキーを押してください。
長いので入力ミスがないように気をつけてください。

sudo nano /etc/dhcpcd.conf

すると、コマンドライン上で動くテキストエディタ「nano」が起動し、設定ファイルが開かれます。

f:id:lyncs:20210622173718p:plain
nanoで設定ファイルを開いた状態


マウスホイールか、矢印キーでスクロールして一番下の行に移動します。

そして以下の内容を書き加えます。

interface wlan0
static ip_address=192.168.XX.XX/24
static routers=192.168.XX.YY
static domain_name_servers=8.8.8.8

もちろん、XXのまま入力するのではなく

を当てはめてください。

半角スペースやイコールなど、すべてスペルミスなく入力し終わったらキーボードで Ctrl+O を押してください。

f:id:lyncs:20210622173809p:plain


下部に「File Name to Write: 」のように表示されたら Enter キーを押します。
(ファイル名を指定する欄なのですが、変更せずそのまま保存するという操作です。)

f:id:lyncs:20210622174352p:plain


「Wrote 64 lines」のように表示されたら、キーボードで Ctrl+X を押してください。

f:id:lyncs:20210622174441p:plain


元のコマンド入力画面に戻ってきたら、 sudo reboot と入力し、Enter キーを押します。


再起動が完了したら、一旦そのままにしておきます。

※注意: これ以降、ネットワーク越しに接続する手順の解説が続きます。そのためにはパソコンもラズパイと同一のLANに繋がっている必要があります。
異なる場合、パソコン・ラズパイが同一のLANにあるように(同じWi-Fiルーターに繋がるように)してください。

6. パソコン側の準備と接続(VNC編)

ここから、ラズパイではなくパソコン側の作業になります。

VNCリモートデスクトップの一種です。ラズパイの画面をパソコンから遠隔操作できます。
このVNCを使うステップは「とりあえず遠隔操作を体験してもらう程度」なので、特に重要ではありません(SSHを使うところからが本番です)。ですので、ちょっと難易度が上がってもOK!という方はこのステップを飛ばして「7. パソコン側の設定(SSH編)」に進んでください。

以下のサイトから VNC Viewerをインストールしてください(インストール手順は省略します。「VNC viewer インストール」でググると参考になる資料が出てくるはずです)。

www.realvnc.com


VNC Viewerが起動したら、上部の入力欄に 192.168.XX.XX のように、ラズパイのIPアドレスを入力して Enter キーを押します。

f:id:lyncs:20210624014612p:plain
VNC Viewerの画面


接続できると、ラズパイの画面をパソコンから操作できるようになります。
特に難しい知識もいらず、PCのマウスやキーボードをそのまま使えるので便利でしょう。

しかし、このVNCにはいくつか問題があります。
まずは画面をリアルタイムで転送するので、動作がやや重くなるという点です。ラズパイはPCほど高性能ではないため、動作はもたつきます。
2つ目はHDMIで何らかの液晶画面に接続していないと、VNC接続ができないという点です。(HDMIを接続していない状態でVNC接続をする設定もあるのですが、初心者がそれを設定するよりはSSHを使える様になった方が便利です。)

ということで早速SSHを使ってみましょう。

7. パソコン側の準備(SSH編)

ここからも、ラズパイではなくパソコン側の作業になります。

SSHとは、画面ではなくコマンドを別のパソコンから遠隔で送るためのものです。
VNCに比べると初心者にはとっつきにくいかもしれません。しかし、文字列(コマンド)だけがやり取りされるので、動作が非常に軽快です。プログラミングに関してはVNCのように画面のやり取りをする必要があまりないため、ラズパイを用いた開発ではこちらを使うのが主流です。

以下のサイトから「TeraTerm」(テラターム)をダウンロードし、インストールします。

forest.watch.impress.co.jp

f:id:lyncs:20210624021222p:plain


「日本語」のまま、 OK をクリックします。

f:id:lyncs:20210624021254p:plain
言語の指定


ライセンスに同意したら「同意する」で「次へ」をクリックします。

f:id:lyncs:20210624021329p:plain


インストール先です。特に変更せず「次へ」をクリックします。

f:id:lyncs:20210624021401p:plain


「標準インストール」で、「次へ」をクリックします。

f:id:lyncs:20210624021446p:plain
標準インストールを選択


「日本語」で「次へ」をクリックします。

f:id:lyncs:20210624021531p:plain
言語を選択


「次へ」をクリックします。

f:id:lyncs:20210624021555p:plain


特に変更せず「次へ」をクリックします。

f:id:lyncs:20210624021614p:plain


「インストール」をクリックします。

f:id:lyncs:20210624021637p:plain


すぐに完了するので、「完了」をクリックします。

f:id:lyncs:20210624021700p:plain

これでパソコン側の準備は完了です。

8. SSHを使って、ラズパイに接続しよう

スタートメニューから TeraTerm を探し、起動します。

f:id:lyncs:20210624021753p:plain


以下のような画面が表示されているはずです。

f:id:lyncs:20210624021818p:plain
TeraTerm起動直後の画面


ラズパイのIPアドレスを入力します。
サービスは「SSH」、TCPポートは「22」、SSHバージョンは「SSH2」になっていることを確認してください。

入力・確認したらOKをクリックします。

f:id:lyncs:20210624021944p:plain
ラズパイのIPアドレスを入力する


このような表示が出てきたら接続をクリックします。

f:id:lyncs:20210624022217p:plain
接続をクリック


SSH認証という画面が表示されたら、

  • ユーザ名の欄に pi
  • パスフレーズの欄に ラズパイ初期設定画面で設定したパスワード

を入力し、OKをクリックします。

f:id:lyncs:20210624022331p:plain
SSH認証の画面


TeraTermが以下のような画面になったら接続成功です。

f:id:lyncs:20210624022507p:plain
SSHを使ってラズパイに接続した

なお、TeraTerm上ではコピーが Alt+C、貼り付けが Alt+V になることに気をつけてください。


では、早速ラズパイにコマンドを送ってみましょう。

sudo apt update

と入力し、Enterキーを押してください。少し時間がかかりますが、以下のようになれば完了です。
これはパッケージ管理システム(スマホにおける AppStore や PlayStore のようなものだと思ってください)のリストを最新情報に更新するためのコマンドです。

f:id:lyncs:20210626143041p:plain

続いて、以下のコマンドを実行しましょう。
こちらは先ほど更新した情報に基づき、インストールされているソフトウェアを実際に最新版に更新するものです。update と upgradeが紛らわしいですが、よく使うので覚えておきましょう。

sudo apt upgrade

Do you want to conitinue? (続けますか?)と聞かれたら、Y を入力して Enter キーを押しましょう。

f:id:lyncs:20210626143348p:plain

9. Pythonのコードを実行してみよう

以下のコマンドでPythonを起動してみましょう。

python3

画面は以下のようになるはずです。

f:id:lyncs:20210626144830p:plain

これはREPL(レプル)といって、1行ずつコードを実行できる環境です。
以下のコードを入力し、Enterを押して実行してみましょう。

print("hello world")

f:id:lyncs:20210626145018p:plain

無事にhello worldと表示されたら完了です。もちろん、このコードはパソコンではなくラズパイで実行されています
つまり、端子にLEDやモーターなどの電子部品を接続すれば、Pythonでそれらを制御できるということです(電子工作に関する説明は今回はしません)。

Ctrl+Z でREPLを終了できます。


ちょっとした確認や練習にはREPLが使えますが、一般的な開発ではソースコードのファイルを作成し、それを実行します。
実際に試してみましょう。

以下のコマンドで、「nano」というエディタを使って「hello.py」というファイルを作成・編集します。

nano hello.py

f:id:lyncs:20210626145545p:plain

以下のようにnanoが起動するはずです。nanoでのカーソル移動操作は矢印キー(←↓↑→)を使います。

f:id:lyncs:20210626145618p:plain

以下のようなコードを入力しましょう。コピペでもかまいません。

print("Hello Python")
a = 1+1
print(a)

f:id:lyncs:20210626145919p:plain

入力したら、Ctrl+Oを押します。
続いて、Enterキーを押します。これで保存できます。

f:id:lyncs:20210626150100p:plain


以下のように「Wrote 3 lines(3行保存しました)」のメッセージが画面下部に表示されたら保存が完了しています。

f:id:lyncs:20210626150128p:plain

Ctrl+Xを押してnanoを終了しましょう。


nanoを終了してコマンド入力画面に戻ってきたら、以下のコマンドを実行します。

python3 hello.py

以下のような形で実行されたら成功です。

f:id:lyncs:20210626150305p:plain


以下のコマンドで接続を閉じましょう(なお、ラズパイは起動したままです)。

exit

f:id:lyncs:20210627152524p:plain


(参考)コマンドラインからラズパイをシャットダウンする手順

この記事は、基本的に次の手順まで続けて進む流れにしているのですが、ここで中断したい人は以下のコマンドを使ってください。
また、いずれにせよシャットダウンの手順は知っておいたほうがいいのでコマンドは覚えておきましょう。

sudo halt

f:id:lyncs:20210627175933p:plain

これを入力してEnterキーを押し、しばらくしてラズパイ本体の緑のランプの点滅が止まったら電源コードを抜いてかまいません。


10. テキストエディタからSSHで接続しよう

nanoを使ったプログラミングはどうだったでしょうか?ちょっと使いづらいと感じたと思います。
もちろん慣れの問題もあるとは思いますが、それでもnanoではWindowsMac上で動作するアプリほど快適にプログラミングはできないのは事実です。

使いづらい環境でプログラミングをするとモチベーションが下がってしまうので、便利な環境を整えましょう。

10.1 VS Code のインストール

以下のサイトにアクセスし、VS Code(ブイエス・コード)というアプリケーションをPCにインストールします。
これは「テキストエディタ」と呼ばれるアプリケーションで、PC向けの開発環境です。

code.visualstudio.com


同意したら「次へ」をクリックします。

f:id:lyncs:20210627004559p:plain


インストール場所は特に変えず、「次へ」をクリックします。

f:id:lyncs:20210627004618p:plain


そのまま「次へ」をクリックします。

f:id:lyncs:20210627004654p:plain


プログラミング環境を整えるため、以下の3つにチェックを入れます。

「次へ」をクリックします。

f:id:lyncs:20210627004754p:plain


「インストール」をクリックします。

f:id:lyncs:20210627004916p:plain


チェックを入れた状態で「完了」をクリックすると、VS Codeが起動します。

f:id:lyncs:20210627005028p:plain

10.2 VS Codeの日本語化

標準状態のVS Codeは英語なので、日本語化してみましょう。

(以下、画像が小さくて見づらい場合は画像をクリックすると拡大表示できます。)

初期設定ウィザードが表示されますが、これは無視していいのでMark doneをクリックします。
なお、VS Codeは頻繁にアップデートされているので、この初期設定ウィザードの表示は時々変わるかもしれません。いずれにせよ終了してかまいません。

f:id:lyncs:20210627005102p:plain


ウィンドウ左側にある、四角が4つ並んだアイコンをクリックします。これが拡張機能を管理するツールです。

f:id:lyncs:20210627011331p:plain


日本語化パックは拡張機能として提供されているので、拡張機能ストアから検索します。

左上の入力欄に Japanese と入力し、「Japanese Language Pack 日本語」「Microsoft」と書いてあるものをインストールします。おそらく一番上に出てくるはずです。
Installをクリックします。

f:id:lyncs:20210627013336p:plain


右下に In order to use... というメッセージが出たら、 Restartをクリックしてください。VS Codeが再起動します。

f:id:lyncs:20210627013523p:plain


10.3 VS CodeからSSHで接続

VS Codeが日本語になったでしょうか。
続いて、SSH関連の拡張機能をインストールします。

再び、ウィンドウ左側にある、四角が4つ並んだアイコンをクリックします。

f:id:lyncs:20210627133557p:plain


Remote - SSH」という拡張機能をインストールします。Microsoftからリリースされている公式のものです。
検索欄に「Remote」と入力し、SSH用のものを探しましょう。

f:id:lyncs:20210627152610p:plain


Remote - SSH のインストールが完了すると、左端に画面と 「> <」と描かれたアイコンが表示されます。これがリモート接続のためのアイコンです。
これをクリックします。

f:id:lyncs:20210627153452p:plain


PC上にあるSSHの設定ファイルを編集していきましょう。

画面左上の「SSH TARGETS」と書かれている部分にマウスポインタを合わせると、歯車のアイコンが出てきます。ここをクリックします。

f:id:lyncs:20210627165031p:plain


SSH設定ファイルを選択します。
Windowsの場合 C:\Users\ユーザ名.ssh\config でよいでしょう。これをマウスでクリックします。

f:id:lyncs:20210627165204p:plain


config というファイルが開きます。これを編集します。

  • alias : 登録する名前です。わかりやすい名前なら何でも良いですが、ここでは MyRaspberryPi とします。
  • hostname : Raspberry PiIPアドレスです。
  • user : Raspberry Pi のユーザ名です。特に設定を変更していない場合、pi です。

f:id:lyncs:20210627170504p:plain


たとえば、このようになります。
書き換えたら Ctrl+S を押して設定ファイルを上書き保存します。

f:id:lyncs:20210627171243p:plain


すると、画面の左側「SSH TARGETS」の下に先程追加した MyRaspberryPi が追加されているはずです。
ここにマウスを合わせると、MyRaspberryPi の右側にフォルダのようなアイコンが表示されるのでクリックします。

f:id:lyncs:20210627171530p:plain


Windows であればファイアウォールの警告が表示されるかもしれません。
プライベートネットワークにチェックを入れて、「アクセスを許可する」をクリックします。

f:id:lyncs:20210627171935p:plain


接続先のOSを聞かれます。RaspberryPi OSはLinuxベースなので、「Linux」をマウスでクリックします。

f:id:lyncs:20210627171944p:plain


Continue」をクリックします。

f:id:lyncs:20210627172025p:plain


Enter password for ...」と表示されたら、Raspberry Piの pi ユーザーのパスワードを入力し、Enterキーを押します。
これ以降何度か聞かれることがありますが、その度にパスワードを入力してください。

f:id:lyncs:20210627172143p:plain


以下のような画面になったら接続完了です。画面下部にコマンド入力画面が出ているはずです。
左側の「フォルダーを開く」をクリックします。

f:id:lyncs:20210627172337p:plain


開くフォルダをフォルダパスで指定します。
おそらく標準で /home/pi/ になっているので、このままOKを押します。

f:id:lyncs:20210627172546p:plain


「このフォルダー内のファイルの作成者を信頼しますか?」と聞かれます。
外部から入手したデータを扱う際に使用するためのもので、今回は「信頼します」で続行して良いと思います。

f:id:lyncs:20210627173024p:plain


左側のファイル一覧をスクロールすると、先ほど作成した hello.py が見つかるのではないでしょうか。これをクリックします。
すると、右側に先ほど nano で書いたコードが表示されるはずです。

f:id:lyncs:20210627173304p:plain


これをVS Code に内蔵されたターミナルからも実行してみましょう。
日本語キーボードの場合、Ctrl + @を押すと、ターミナル(コマンドを送る画面)が画面下部に表示されます。

f:id:lyncs:20210627173430p:plain


TeraTermのときと同じく、以下のコマンドを実行します。

python3 hello.py

実行できているでしょうか。これでTeraTerm単体で使う必要はほぼ無くなったと言えるでしょう。

f:id:lyncs:20210627173752p:plain


ファイルを作成してみましょう。左側のファイル一覧の上の方にマウスを持っていくと、ファイルを追加するアイコンが表示されます。
これをクリックします。

f:id:lyncs:20210627174013p:plain


以下のようなにファイル名を入力する表示が出てくるので、ファイル名を入力します。
Pythonを示す .py が付けばファイル名は何でも良いですが、ここでは fromvscode.py としてみました。

f:id:lyncs:20210627174103p:plain


ファイル名を入力してEnterキーを押すと、そのファイルが画面右側で開かれます。
好きにPythonのコードを書いてみましょう。まだPythonに慣れていないよという方は以下のようなprint文で十分です。

print("VS Code上で作成したファイル")

書き終わったら Ctrl+S で保存します。

f:id:lyncs:20210627174213p:plain


このファイルをターミナルから実行してみます。
ただ、 fromvscode.py とちょっと長いファイル名にしてしまったので入力が大変ですね。

ここで使えるのが Tab キーです。Linuxはターミナルにおいて Tab キーを使うと入力補完ができます。

python3

と入力し、半角スペースまで入力してください。

f:id:lyncs:20210627174955p:plain


ここですべてのファイル名を入力せず、先頭の一部だけ…… たとえば fr と入力しましょう。

f:id:lyncs:20210627175110p:plain


ここで Tab キーを押します。
すると、ファイル名が補完されます。

f:id:lyncs:20210627175141p:plain


そこでEnterキーを押すと通常通り実行できます。

f:id:lyncs:20210627175230p:plain

ここまでで基本的な動作確認は完了です。お疲れ様でした。


作業を終わるときはVS Codeを閉じればOKです。ただし、ラズパイのシャットダウンを実行したい場合はVS Codeを終了する前に実行しておいてください。
(もちろん、VS Codeを閉じたあとにTeraTermを立ち上げて、そこからシャットダウンを実行してもかまいません。)


今後の学習の指針

この記事を通じて、基本的なセットアップ手順と、ファイルを作成してラズパイ上でPythonコードを実行するところまでは把握できたと思います。

ラズパイをフル活用するには電子工作やLinux、プログラミングの知識が必要になってきます。
それぞれカンタンなものばかりではありませんが、少しずつ身に着けていきましょう。ラズパイに関しては色々な書籍・Webサイトがあるので、それらを参考にすれば色々なものが作れるはずです。

頑張っていきましょう!


LYNCSとは?

宇宙科学総合研究会 LYNCS (リンクス)はその名前の通り、宇宙について様々な面から研究、アプローチをするサークルです。 工学分野では電子工作やプログラミングを扱い、模擬人工衛星CanSat」の開発やドローンの開発などを行っています。プログラミング・電子工作の初心者でも興味がある方なら大歓迎です!先輩がサポートしていきます! (実際、プログラミング未経験だった1年生が、その年の終わりにはRaspberry Piなどを利用して自律走行ロボットやドローンを自作できるようになりました。)

慶應義塾大学に進学される方、在学中の方でご興味をお持ちの方は、公式Twitterやメールなどでお気軽にお問い合わせください!

lyncs-keio.net