You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ja/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md

16 KiB

仮想シングルボードコンピュータ

IoTデバイスやセンサー、アクチュエータを購入する代わりに、自分のコンピュータを使ってIoTハードウェアをシミュレートすることができます。CounterFitプロジェクトを利用すると、センサーやアクチュエータのようなIoTハードウェアをシミュレートするアプリをローカルで実行し、Raspberry Piで物理ハードウェアを使う場合と同じ方法で書かれたローカルのPythonコードからセンサーやアクチュエータにアクセスできます。

セットアップ

CounterFitを使用するには、コンピュータにいくつかの無料ソフトウェアをインストールする必要があります。

タスク

必要なソフトウェアをインストールします。

  1. Pythonをインストールします。最新バージョンのPythonをインストールする手順については、Pythonダウンロードページを参照してください。

  2. Visual Studio Code (VS Code) をインストールします。これは、Pythonで仮想デバイスコードを書くために使用するエディタです。VS Codeのドキュメントを参照して、VS Codeのインストール手順を確認してください。

    💁 好きなPython IDEやエディタを使用しても構いませんが、このレッスンではVS Codeを使用する前提で説明が進みます。

  3. VS CodeのPylance拡張機能をインストールします。これは、Pythonの言語サポートを提供するVS Codeの拡張機能です。Pylance拡張機能のドキュメントを参照して、この拡張機能のインストール手順を確認してください。

CounterFitアプリのインストールと設定に関する手順は、プロジェクトごとにインストールされるため、課題の指示に従って進めてください。

Hello World

新しいプログラミング言語や技術を始める際には、通常「Hello World」アプリケーションを作成します。これは、すべてのツールが正しく設定されていることを確認するために、"Hello World"のようなテキストを出力する小さなアプリケーションです。

仮想IoTハードウェア用のHello Worldアプリでは、PythonとVisual Studio Codeが正しくインストールされていることを確認します。また、仮想IoTセンサーやアクチュエータ用のCounterFitに接続します。このアプリではハードウェアを使用せず、すべてが正常に動作していることを確認するための接続のみを行います。

このアプリはnightlightというフォルダ内に作成され、課題の後半でナイトライトアプリケーションを構築する際に異なるコードで再利用されます。

Python仮想環境の設定

Pythonの強力な機能の1つに、Pipパッケージをインストールできる点があります。これらは他の人が書いてインターネット上に公開したコードのパッケージです。1つのコマンドでPipパッケージをコンピュータにインストールし、そのパッケージをコード内で使用できます。CounterFitと通信するためのパッケージをインストールする際にPipを使用します。

デフォルトでは、パッケージをインストールするとコンピュータ全体で利用可能になりますが、これによりパッケージのバージョンに関する問題が発生する可能性があります。例えば、あるアプリケーションが特定のバージョンのパッケージに依存している場合、新しいバージョンを別のアプリケーションのためにインストールすると問題が発生することがあります。この問題を回避するために、Python仮想環境を使用できます。これは専用フォルダ内のPythonのコピーであり、Pipパッケージをインストールするとそのフォルダ内だけにインストールされます。

💁 Raspberry Piを使用している場合、Pipパッケージを管理するために仮想環境を設定していません。その代わりに、Groveパッケージがインストーラースクリプトによってグローバルにインストールされているため、グローバルパッケージを使用しています。

タスク - Python仮想環境の設定

Python仮想環境を設定し、CounterFit用のPipパッケージをインストールします。

  1. ターミナルまたはコマンドラインから、以下を実行して新しいディレクトリを作成し、そのディレクトリに移動します:

    mkdir nightlight
    cd nightlight
    
  2. 次に、以下を実行して.venvフォルダ内に仮想環境を作成します:

    python3 -m venv .venv
    

    💁 仮想環境を作成する際にpython3を明示的に呼び出す必要があります。これは、Python 2がインストールされている場合に備えるためです。Python 2がインストールされている場合、pythonを呼び出すとPython 2が使用されるためです。

  3. 仮想環境を有効化します:

    • Windowsの場合

      • コマンドプロンプト、またはWindows Terminalのコマンドプロンプトを使用している場合、以下を実行します

        .venv\Scripts\activate.bat
        
      • PowerShellを使用している場合、以下を実行します

        .\.venv\Scripts\Activate.ps1
        

        スクリプトの実行が無効になっているというエラーが表示された場合、適切な実行ポリシーを設定してスクリプトの実行を有効にする必要があります。これを行うには、管理者としてPowerShellを起動し、以下のコマンドを実行します

        Set-ExecutionPolicy -ExecutionPolicy Unrestricted
        

        確認を求められたらYを入力してください。その後、PowerShellを再起動して再試行してください。

        必要に応じて、後でこの実行ポリシーをリセットすることができます。詳細はMicrosoft Docsの実行ポリシーページを参照してください。

    • macOSまたはLinuxの場合、以下を実行します

      source ./.venv/bin/activate
      

    💁 これらのコマンドは、仮想環境を作成した場所と同じ場所で実行する必要があります。.venvフォルダに移動する必要はなく、仮想環境を有効化するコマンドやパッケージをインストールするコマンドは、仮想環境を作成したフォルダで実行してください。

  4. 仮想環境が有効化されたら、デフォルトのpythonコマンドは仮想環境を作成するために使用されたPythonのバージョンを実行します。以下を実行してバージョンを確認してください

    python --version
    

    出力には以下が含まれるはずです:

    (.venv) ➜  nightlight python --version
    Python 3.9.1
    

    💁 Pythonのバージョンは異なる場合がありますが、バージョン3.6以上であれば問題ありません。それ以下の場合、このフォルダを削除し、新しいバージョンのPythonをインストールして再試行してください。

  5. 以下のコマンドを実行して、CounterFit用のPipパッケージをインストールします。これらのパッケージには、CounterFitアプリのメイン部分とGroveハードウェア用のシムが含まれています。このシムを使用すると、Groveエコシステムの物理センサーやアクチュエータを使用しているかのようにコードを書くことができますが、仮想IoTデバイスに接続されます。

    pip install CounterFit
    pip install counterfit-connection
    pip install counterfit-shims-grove
    

    これらのPipパッケージは仮想環境内にのみインストールされ、仮想環境外では利用できません。

コードを書く

Python仮想環境が準備できたら、'Hello World'アプリケーションのコードを書きます。

タスク - コードを書く

コンソールに"Hello World"を出力するPythonアプリケーションを作成します。

  1. 仮想環境内で以下を実行して、app.pyというPythonファイルを作成します

    • Windowsの場合

      type nul > app.py
      
    • macOSまたはLinuxの場合

      touch app.py
      
  2. 現在のフォルダをVS Codeで開きます

    code .
    

    💁 macOSでターミナルがcommand not foundを返す場合、VS CodeがPATHに追加されていないことを意味します。VS Codeドキュメントのコマンドラインからの起動セクションの手順に従ってVS CodeをPATHに追加し、その後コマンドを実行してください。WindowsおよびLinuxでは、VS CodeはデフォルトでPATHに追加されています。

  3. VS Codeが起動すると、Python仮想環境が有効化されます。選択された仮想環境は、下部のステータスバーに表示されます

    VS Codeに選択された仮想環境が表示されている

  4. VS Codeターミナルが起動時にすでに実行中の場合、仮想環境がターミナル内で有効化されていない可能性があります。この場合、Kill the active terminal instanceボタンを使用してターミナルを終了するのが最も簡単です:

    VS CodeのKill the active terminal instanceボタン

    ターミナルに仮想環境が有効化されているかどうかは、ターミナルプロンプトに仮想環境の名前がプレフィックスとして表示されるかどうかで確認できます。例えば、以下のように表示される場合があります:

    (.venv) ➜  nightlight
    

    プロンプトに.venvがプレフィックスとして表示されていない場合、ターミナル内で仮想環境が有効化されていません。

  5. Terminal -> New Terminalを選択するか、CTRL+`を押して、新しいVS Codeターミナルを起動します。新しいターミナルは仮想環境をロードし、その呼び出しがターミナルに表示されます。プロンプトにも仮想環境の名前.venv)が表示されます:

    ➜  nightlight source .venv/bin/activate
    (.venv) ➜  nightlight 
    
  6. VS Codeエクスプローラーからapp.pyファイルを開き、以下のコードを追加します:

    print('Hello World!')
    

    print関数は、渡された内容をコンソールに出力します。

  7. VS Codeターミナルから以下を実行してPythonアプリを実行します

    python app.py
    

    出力には以下が表示されます:

    (.venv) ➜  nightlight python app.py 
    Hello World!
    

😀 'Hello World'プログラムが成功しました!

'ハードウェア'を接続する

2つ目の'Hello World'ステップとして、CounterFitアプリを実行し、コードを接続します。これは、IoTハードウェアを開発キットに接続する仮想的な手順に相当します。

タスク - 'ハードウェア'を接続する

  1. VS Codeターミナルから以下のコマンドを実行してCounterFitアプリを起動します

    counterfit
    

    アプリが実行され、ブラウザで開きます:

    ブラウザで実行中のCounterFitアプリ

    アプリはDisconnectedと表示され、右上のLEDがオフになっています。

  2. app.pyの先頭に以下のコードを追加します:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    

    このコードは、counterfit_connectionモジュールからCounterFitConnectionクラスをインポートします。その後、127.0.0.1ローカルコンピュータに常にアクセスできるIPアドレス、localhostとも呼ばれる上のポート5000で実行中のCounterFitアプリに接続を初期化します。

    💁 ポート5000で他のアプリが実行中の場合、このポートをコード内で更新し、CounterFit --port <port_number>を使用してCounterFitを起動することで変更できます。<port_number>には使用したいポート番号を指定してください。

  3. CounterFitアプリが現在のターミナルで実行中のため、新しいVS Codeターミナルを起動する必要があります。Create a new integrated terminalボタンを選択してください:

    VS CodeのCreate a new integrated terminalボタン

  4. この新しいターミナルで、先ほどと同じようにapp.pyファイルを実行します。CounterFitのステータスがConnectedに変わり、LEDが点灯します。

    接続された状態を示すCounterFit

💁 このコードはcode/virtual-deviceフォルダにあります。

😀 ハードウェアへの接続が成功しました!

免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を期すよう努めておりますが、自動翻訳には誤りや不正確な表現が含まれる可能性があります。原文(元の言語で記載された文書)が信頼できる情報源として優先されるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の使用に起因する誤解や誤認について、当方は一切の責任を負いません。