自由に選びたい。Raspberry Pi開発スタイルについて

Raspberry Piを使ったIoTプロジェクトにおいて、その開発スタイルは様々に存在します。どれが正解という訳ではなく、自分の好きなスタイルを選択すれば大丈夫です。今回はそんな開発スタイルについて紹介します。

最低限必要なもの

Raspberry Piで開発を行うにあたって、最低限必要なのは入力と出力です。入力はいわゆるキーボードやマウスによる入力データで、出力はモニタなどになります。開発するにあたって、どこから入力し、どこに出力するかを選択することになります。

HDMIケーブル、USBキーボードを利用

最もシンプルなスタイルと言えば、Raspberry Pi本体にHDMIケーブルとUSBキーボードを差し込む開発スタイルでしょう。ネットワーク接続不要なので、SDカードに初期インストールした際にはこの状態からはじめる方も多いのではないでしょうか。

メリットはなんと言ってもネットワーク不要ではじめられることでしょう。また、モニタを接続していないと起動しきったタイミングまでしばらく待つことになったり、SDカードが破損していたり、ハードウェアエラーが起きて起動できていないのに気付かないことがあります。後述する方法を選んだとしても、何らかのトラブルがあった際には、HDMI接続とUSBキーボードがあるに越したことはありません。

なお、Raspberry Pi Zeroシリーズは標準のHDMI、USB type Aではなく、マイクロHDMIやMicro USBになります。そのため変換コネクタが必要です。また、モニタやUSBキーボードといったハードウェアが別途必要になるのがデメリットと言えます。

  • メリット
    • ネットワーク接続不要で使える
    • 起動しないエラー状態でも気付きやすい
  • デメリット
    • ハードウェア(モニタ、キーボード)が必要

SSHを使って接続する

Raspberry PiでSSHを有効にすれば、リモートのコンピュータからSSH接続できます。一般的にはRaspberry Piを起動して設定を行いますが、インストールしたSDカードに設定を書き込むことで、初期状態からSSHが使えるようになります。

サーバの操作に慣れた開発者であれば、Window Xを使わずにターミナルだけで作業する方が簡単でしょう。より開発に慣れた人ほど、このスタイルが合うはずです。GUIは動作を重たくする要因になりますので、低リソースなRaspberry Piではターミナル操作の方が軽快に動きます。何よりネットワーク経由で接続さえできれば、Raspberry Piがどこにあっても操作できるのが魅力です。

デメリットはターミナル操作を覚えないといけないことでしょう。ターミナルやiTerm、TeraTerm、Puttyといったターミナルソフトウェアをインストール、準備しなければならず、技術的な敷居が若干高くなります。

  • メリット
    • 動作が軽快
    • 遠方にあっても接続できる
    • HDMIケーブル、USBケーブルが不要
  • デメリット
    • ターミナル操作を覚えないといけない
    • 技術的な障壁が若干高め

リモートデスクトップ

RDPやVNCというプロトコルを使って、遠隔地にあるRaspberry Piに接続、操作します。SSHと似ていますが、GUIの画面が使えるのがポイントです。HDMIケーブルとUSBケーブルを挿したような使い勝手で、Raspberry Piを操作できます。モニタやキーボードはRaspberry Piに接続しているコンピュータのものを使いますので、用意する必要はありません。

もちろん技術的な敷居は高くなります。SSHよりも高くなるでしょう。とはいえ、今はオンラインにたくさんの情報がありますので、それらを参考にすれば決して難しくはないはずです。HDMIモニタやUSBケーブルを物理的に接続すると、Raspberry Piの台数分必要になってしまいますが、VNCまたはRDPであればコンピュータ一台あれば済みます。

デメリットとしては物理的に接続したり、SSHを使うのに比べると画面データを扱う分、CPUやネットワーク負荷が大きく、インターネット越しでは遅延も発生しやすいということでしょう。LANのように高速な回線の中であれば問題なさそうですが、インターネット経由で遠隔地にあるものをメンテナンスする際にはSSHの方が良さそうです。

  • メリット
    • GUIで操作できる
    • 遠方にあっても接続できる
    • HDMIケーブル、USBケーブルが不要
  • デメリット
    • インターネット越しだと表示が遅いことがある
    • 技術的な障壁が高め

IDEのSFTPプラグイン

Raspberry Piの操作ではなく、実際の開発段階に入ってきた時に使えるのがIDEやプログラミングエディタで使えるSFTPプラグインです。これを使うことで、Raspberry Pi上にあるファイルをまるでローカルファイルのように編集、保存できるようになります。

この方法はSSH接続の応用と言えます。Raspberry Piにリモートから接続して、ファイル編集を実現します。一般的にRaspberry Piではプログラミングエディタの制限がありますが、自分が普段から使い慣れたエディタを使えるのは便利です。

Visual Studio Codeのsftp、AtomのRemote-FTPなどエディタごとにプラグインが存在するはずです。それらを使ってRaspberry Piと接続することで、中にあるファイルを自由に編集できるようになります。

デメリットとしては、SFTPサーバを別途立てないといけないこと、ファイルを直接書き換えることになるので、バージョン管理との相性があまり良くないということでしょう。

  • メリット
    • 好きなエディタ、ローカルの環境で開発できる
    • 遠方にあっても接続できる
  • デメリット
    • 技術的な障壁が高め
    • バージョン管理との相性が悪い

    まとめ

    Raspberry Piを使ったIoT開発ではトライアンドエラーでどんどん繰り返し行っていくのがお勧めです。そのためには開発から実際に動かすまでのタイムラグが小さい方が良いでしょう。あまり技術的な障壁が高くてIoT開発をはじめる前に嫌になってしまっては元も子もありません。また、ハードウェアがないために開始できないのも残念です。

    自分にあった開発スタイルで、今すぐIoTプロジェクト開発をはじめてください!

    ラズパイを使ってプログラミングを学ぶなら、作って学ぶ人工知能IoTエンジニア養成キットも注目ですね!

    ]]>

    上部へスクロール