Skip to content

Commit

Permalink
add tutorial of create virtual environment
Browse files Browse the repository at this point in the history
  • Loading branch information
xiemeiping committed Apr 3, 2024
1 parent b725bb7 commit 5d4379a
Show file tree
Hide file tree
Showing 19 changed files with 212 additions and 26 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ In the 3-in-1 starter kit, you will find a complete Arduino course to help begin

<a id="update"></a>
## Update:
2024-04-03:
- Add the tutorial on installing a virtual environment

2023-09-20:
- Modified the code and code analysis in ar_calibration.rst and ar_reversing_aid.rst.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/1.1.6_led_dot_matrix.rst
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ Python言語ユーザー向け
except KeyboardInterrupt:
destroy()
**コードの説明***
**コードの説明**

.. code-block:: python
Expand Down
52 changes: 44 additions & 8 deletions docs/source/2.2.7_mfrc522_rfid_module.rst
Original file line number Diff line number Diff line change
Expand Up @@ -134,11 +134,30 @@ C言語ユーザー向け
Python言語ユーザー向け
^^^^^^^^^^^^^^^^^^^^^^^^^

ステップ 2: ライブラリをインストールします
**ステップ2**: 仮想環境の有効化

spidev ライブラリは、SPI との対話を処理するのに役立ち、Raspberry Pi が RFID RC522 と対話するために必要なので、このチュートリアルの重要なコンポーネントです。
.. 注意::
* 有効化する前に、仮想環境を作成していることを確認してください。詳細はこちらを参照してください: :ref:`create_virtual`.

* Raspberry Piを再起動するたびや、新しいターミナルを開くたびに、仮想環境を有効化するために次のコマンドを再度実行する必要があります。

.. raw:: html

<run></run>

.. code-block:: shell
source myenv/bin/activate
仮想環境が有効化されると、コマンドラインのプロンプトの前に環境名が表示され、仮想環境内で作業していることが示されます。


**ステップ3**: ライブラリのインストール。

``spidev`` ライブラリはSPIとのやり取りを処理し、このチュートリアルの重要なコンポーネントであり、Raspberry PiがRFID RC522とのやり取りに必要です。

次のコマンドを実行して、pip 経由で spidev を Raspberry Pi にインストールします
以下のコマンドを実行して、 ``pip`` を介して ``spidev`` をRaspberry Piにインストールします

.. raw:: html

Expand All @@ -149,11 +168,14 @@ spidev ライブラリは、SPI との対話を処理するのに役立ち、Ras
sudo pip3 install spidev
MFRC522 ライブラリのインストールに進みます。 MFRC522 ライブラリは ``MFRC522.py`` と ``SimpleMFRC522.py`` の 2 つのファイルで構成されています
MFRC522ライブラリのインストールを続行します。 MFRC522ライブラリには2つのファイルが含まれています: ``MFRC522.py`` と ``SimpleMFRC522.py``。

``MFRC522.py`` が RFID RC522 インターフェイスの実装である場合、このライブラリは Pi の SPI インターフェイスを介して RFID と通信するという面倒な作業をすべて処理します。
``MFRC522.py``

``SimpleMFRC522.py`` は ``MFRC522.py`` ファイルを取り、少数の関数のみを扱えるようにすることでファイルを大幅に簡素化します。

はRFID RC522インターフェースの実装であり、このライブラリはPiのSPIインターフェースを介してRFIDとの通信のすべての重い作業を処理します。

``SimpleMFRC522.py`` は ``MFRC522.py`` ファイルを取り、わずかな関数の代わりにわずかな関数で処理できるように大幅に簡素化します。

.. raw:: html

Expand All @@ -164,8 +186,22 @@ MFRC522 ライブラリのインストールに進みます。 MFRC522 ライブ
sudo pip3 install mfrc522
**ステップ4**: 仮想環境の終了。

ステップ3: コードのフォルダーに入る。
作業を完了し、仮想環境から退出したい場合は、単純に次のコマンドを実行します:

.. raw:: html

<run></run>

.. code-block:: shell
deactivate
これにより、システムのグローバルPython環境に戻ります。


**ステップ5**: コードのフォルダーに入る。

.. raw:: html

Expand All @@ -175,7 +211,7 @@ MFRC522 ライブラリのインストールに進みます。 MFRC522 ライブ
cd /home/pi/davinci-kit-for-raspberry-pi/python/2.2.7
ステップ4: EXEファイルを実行する。
**ステップ6**: EXEファイルを実行する。

.. raw:: html

Expand Down
2 changes: 1 addition & 1 deletion docs/source/3.1.14_game_not_not.rst
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ GLYPH構造は辞書のように動作します。 ``word`` 属性は辞書の *
関数 ``lookup()`` は、辞書を引くことで機能します。
``key`` を定義し、構造 ``GLYPH *glyph`` の ``key``と同じ単語を検索し、
``key`` を定義し、構造 ``GLYPH *glyph`` の ``key`` と同じ単語を検索し、
対応する情報(特定の単語の ``code`` )を返す。

関数 ``Strcmp()`` は、2つの文字列 ``glyph[i].word`` と ``key`` の同一性を比較するために使用される。
Expand Down
4 changes: 3 additions & 1 deletion docs/source/appendix/appendix.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@
:maxdepth: 2

i2c_configuration
spi_configuration
spi_configuration
create_virtual_environment

108 changes: 108 additions & 0 deletions docs/source/appendix/create_virtual_environment.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
.. _create_virtual:

仮想環境の作成
======================================
Raspberry Piや類似のデバイスを使用する場合、 ``pip`` を仮想環境でパッケージをインストールすることをお勧めします。これにより、依存関係の分離、システムのセキュリティの向上、システムのクリーンさの維持、プロジェクトの移行と共有の容易化が行われ、依存関係の管理が簡素化されます。これらの利点により、仮想環境はPython開発において非常に重要で便利なツールとなっています。

以下に、仮想環境を作成する手順を示します。

**1. 仮想環境の作成**

まず、システムにPythonがインストールされていることを確認する必要があります。Pythonバージョン3.3以降では、仮想環境を作成するための ``venv`` モジュールが付属しており、別途インストールする必要はありません。Python 2またはPython 3.3以前のバージョンを使用している場合は、 ``virtualenv`` をインストールする必要があります。

* Python 3の場合:

Python 3.3以降のバージョンでは、 ``venv`` モジュールを直接使用できます:

.. raw:: html

<run></run>

.. code-block:: shell
python3 -m venv myenv
これにより、現在のディレクトリに名前が ``myenv`` の仮想環境が作成されます。

* Python 2の場合:

まだPython 2を使用している場合は、まず ``virtualenv`` をインストールする必要があります:

.. raw:: html

<run></run>

.. code-block:: shell
pip install virtualenv
次に、仮想環境を作成します:

.. raw:: html

<run></run>

.. code-block:: shell
virtualenv myenv
これにより、現在のディレクトリに名前が ``myenv`` の仮想環境が作成されます。

**2. 仮想環境の有効化**

仮想環境を作成した後、使用するためにそれを有効化する必要があります。

.. note::

Raspberry Piを再起動するたびや、新しいターミナルを開くたびに、仮想環境を有効化するために次のコマンドを再度実行する必要があります。

.. raw:: html

<run></run>

.. code-block:: shell
source myenv/bin/activate
仮想環境が有効化されると、コマンドラインのプロンプトの前に環境名が表示され、仮想環境内で作業していることが示されます。

**3. 依存関係のインストール**

仮想環境を有効化した状態で、pipを使用して必要な依存関係をインストールできます。例:

.. raw:: html

<run></run>

.. code-block:: shell
pip install requests
これにより、requestsライブラリがグローバル環境ではなく、現在の仮想環境にインストールされます。このステップは1度だけ行えば十分です。

**4. 仮想環境の終了**

作業を完了し、仮想環境から退出したい場合は、単純に次のコマンドを実行します:

.. raw:: html

<run></run>

.. code-block:: shell
deactivate
これにより、システムのグローバルPython環境に戻ります。

**5. 仮想環境の削除**

特定の仮想環境をもはや必要としない場合は、単純にその仮想環境を含むディレクトリを削除できます:

.. raw:: html

<run></run>

.. code-block:: shell
rm -rf myenv
42 changes: 40 additions & 2 deletions docs/source/appendix/i2c_configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,50 @@ C言語をお使いの方へ: libi2c-devをインストールしてくださ
sudo apt-get install libi2c-dev
Pythonユーザーの場合: I2C用のsmbusをインストールします。
Pythonユーザーの場合:

**For Python users:**

1. 仮想環境の有効化。

.. note::

* 有効化する前に、仮想環境を作成していることを確認してください。詳細はこちらを参照してください: :ref:`create_virtual`.

* Raspberry Piを再起動するたびや、新しいターミナルを開くたびに、仮想環境を有効化するために次のコマンドを再度実行する必要があります。

.. raw:: html

<run></run>

.. code-block:: shell
source myenv/bin/activate
仮想環境が有効化されると、コマンドラインのプロンプトの前に環境名が表示され、仮想環境内で作業していることが示されます。


2. I2Cのためのsmbusのインストール。

.. raw:: html

<run></run>

.. code-block::
sudo pip3 install smbus2
sudo pip3 install smbus2
3. 仮想環境からの退出。

作業を完了し、仮想環境から退出したい場合は、単純に次のコマンドを実行します:

.. raw:: html

<run></run>

.. code-block:: shell
deactivate
これにより、システムのグローバルPython環境に戻ります。
2 changes: 1 addition & 1 deletion docs/source/preparation/installing_the_os.rst
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ Raspberry Pi Imagerで、 **CHOOSE OS** から **Raspberry Pi OS(other)** を選
**ステップ8**

現在SDカードにファイルが保存されている場合はそれらのファイルを削除してしまわないように、事前にファイルをバックアップすることをお勧めします。
バックアップするファイルがない場合は、[**はい**] をクリックします。
バックアップするファイルがない場合は、[ **はい** ] をクリックします。

.. image:: img/image18.png
:align: center
Expand Down
4 changes: 2 additions & 2 deletions docs/source/python_pi5/pi5_1.1.1_blinking_led_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ GPIO17 Pin 11 17
**コードの説明**

#. システムがこれを検出すると、env設定でpythonのインストールパスを検索し、対応するインタープリタを呼び出して操作を完了します。これは、ユーザーがpythonを``/usr/bin``のデフォルトパスにインストールしていない場合でも、操作を行うためのものです。
#. システムがこれを検出すると、env設定でpythonのインストールパスを検索し、対応するインタープリタを呼び出して操作を完了します。これは、ユーザーがpythonを ``/usr/bin`` のデフォルトパスにインストールしていない場合でも、操作を行うためのものです。

.. code-block:: python
Expand Down Expand Up @@ -194,7 +194,7 @@ GPIO17 Pin 11 17
# LEDがオフの状態で0.5秒間待ちます。
sleep(0.5)
#. ``except`` ブロックは ``KeyboardInterrupt``(Ctrl+Cを押すなど)をキャッチし、ループを安全に終了します。ここで ``pass`` ステートメントは、割り込み時に特定のアクションを実行しないことを示すプレースホルダーとして使用されます。
#. ``except`` ブロックは ``KeyboardInterrupt`` (Ctrl+Cを押すなど)をキャッチし、ループを安全に終了します。ここで ``pass`` ステートメントは、割り込み時に特定のアクションを実行しないことを示すプレースホルダーとして使用されます。

.. code-block:: python
Expand Down
2 changes: 1 addition & 1 deletion docs/source/python_pi5/pi5_1.1.2_rgb_led_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ GPIO27 Pin 13 27
# RGB LEDを初期化します。赤の成分をGPIO 17に、緑をGPIO 18に、青をGPIO 27に接続します。
rgb_led = RGBLED(red=17, green=18, blue=27)
#. ``while True:`` ループは ``COLORS`` で定義された色を連続してサイクルします。各色に対して、``rgb_led.color = color`` はLEDをその色に設定し、``sleep(1)`` は1秒間の一時停止を行います。
#. ``while True:`` ループは ``COLORS`` で定義された色を連続してサイクルします。各色に対して、``rgb_led.color = color`` はLEDをその色に設定し、 ``sleep(1)`` は1秒間の一時停止を行います。

.. code-block:: python
Expand Down
2 changes: 1 addition & 1 deletion docs/source/python_pi5/pi5_1.1.6_led_dot_matrix_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ GPIO27 Pin 13 2 27
sleep(0.001)
RCLK.off()
5. メイン関数には、LEDマトリクスの事前定義されたパターンを無限ループで循環させるコードが含まれています。 ``hc595_shift`` 関数を使用してシフトレジスタに行と列のパターン(``code_H````code_L``)を送信し、昇順で最初に、次に降順で表示を作成します。
5. メイン関数には、LEDマトリクスの事前定義されたパターンを無限ループで循環させるコードが含まれています。 ``hc595_shift`` 関数を使用してシフトレジスタに行と列のパターン( ``code_H````code_L`` )を送信し、昇順で最初に、次に降順で表示を作成します。

.. code-block:: python
Expand Down
2 changes: 1 addition & 1 deletion docs/source/python_pi5/pi5_1.1.7_i2c_lcd1602_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ SCL1 Pin 5

.. note::

以下のコードは変更/リセット/コピー/実行/停止ができます。ただし、コードを変更する前に``davinci-kit-for-raspberry-pi/python-pi5``のようなソースコードのパスに移動する必要があります。コードを変更した後、直接実行して効果を確認できます。
以下のコードは変更/リセット/コピー/実行/停止ができます。ただし、コードを変更する前に ``davinci-kit-for-raspberry-pi/python-pi5`` のようなソースコードのパスに移動する必要があります。コードを変更した後、直接実行して効果を確認できます。


.. raw:: html
Expand Down
2 changes: 1 addition & 1 deletion docs/source/python_pi5/pi5_2.1.1_button_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Raspberry Piの入力として通常開放ボタンを使用し、接続は以
**コード**

.. note::
以下のコードを **変更/リセット/コピー/実行/停止** できます。ただし、それに先立ち、``davinci-kit-for-raspberry-pi/python-pi5`` のようなソースコードのパスに移動する必要があります。コードを変更した後、効果を直接確認するために実行できます。
以下のコードを **変更/リセット/コピー/実行/停止** できます。ただし、それに先立ち、 ``davinci-kit-for-raspberry-pi/python-pi5`` のようなソースコードのパスに移動する必要があります。コードを変更した後、効果を直接確認するために実行できます。

.. raw:: html

Expand Down
2 changes: 1 addition & 1 deletion docs/source/python_pi5/pi5_2.1.2_slide_switch_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@

.. note::

以下のコードを **変更/リセット/コピー/実行/停止** できます。ただし、それに先立ち、``davinci-kit-for-raspberry-pi/python-pi5`` のようなソースコードのパスに移動する必要があります。コードを変更した後、効果を直接確認するために実行できます。
以下のコードを **変更/リセット/コピー/実行/停止** できます。ただし、それに先立ち、 ``davinci-kit-for-raspberry-pi/python-pi5`` のようなソースコードのパスに移動する必要があります。コードを変更した後、効果を直接確認するために実行できます。

.. raw:: html

Expand Down
2 changes: 1 addition & 1 deletion docs/source/python_pi5/pi5_2.1.4_potentiometer_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ ADC(アナログデジタルコンバータ)機能は、アナログ信号

.. note::

以下のコードを **変更/リセット/コピー/実行/停止** できます。ただし、それに先立ち、``raphael-kit/python-pi5`` のようなソースコードのパスに移動する必要があります。コードを変更した後、効果を直接確認するために実行できます。
以下のコードを **変更/リセット/コピー/実行/停止** できます。ただし、それに先立ち、 ``raphael-kit/python-pi5`` のようなソースコードのパスに移動する必要があります。コードを変更した後、効果を直接確認するために実行できます。

.. raw:: html

Expand Down
2 changes: 1 addition & 1 deletion docs/source/python_pi5/pi5_2.1.5_keypad_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@
from gpiozero import DigitalOutputDevice, Button
from time import sleep
2. ``Keypad`` クラスを定義します。``__init__`` メソッドは、指定された行と列のピンとキーパッドのキーレイアウトでキーパッドを初期化します。``read`` メソッドはキーパッドをスキャンし、押されたキーのリストを返します。
2. ``Keypad`` クラスを定義します。 ``__init__`` メソッドは、指定された行と列のピンとキーパッドのキーレイアウトでキーパッドを初期化します。 ``read`` メソッドはキーパッドをスキャンし、押されたキーのリストを返します。

.. code-block:: python
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ GPIO26 Pin 37 25 26
import time
import threading
#. GPIOピン26に接続された``Button``オブジェクトを初期化します。このセットアップにより、ボタン押下を検出することができます。
#. GPIOピン26に接続された ``Button`` オブジェクトを初期化します。このセットアップにより、ボタン押下を検出することができます。

.. code-block:: python
Expand Down
2 changes: 1 addition & 1 deletion docs/source/python_pi5/pi5_3.1.9_password_lock_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ SCL1 Pin 5
testword = ['0', '0', '0', '0'] # ユーザーの入力を格納
keyIndex = 0 # 入力キーのインデックス
#. 入力されたパスワード(``testword``)とプリセットのパスワード(``password``)を比較し、結果を返す関数。
#. 入力されたパスワード( ``testword`` )とプリセットのパスワード( ``password`` )を比較し、結果を返す関数。

.. code-block:: python
Expand Down

0 comments on commit 5d4379a

Please sign in to comment.