ファイル分析

/home/piに2つのフォルダーがある:モーターとステアリングを制御するための SunFounder_PiCar と、パン/チルトとワイヤレス制御のための SunFounder_PiCar-V ここでPiCar-Vのコードを調べる。

コードに含まれる内容と指示が多すぎるため、すべての詳細を説明しない。プログラムのPython 2、Python 3、Django、HTML、CSSの詳細については、関連するWebサイトにアクセスするか、または本を購入して自分で学習してください。次のパートでは、全体的な構造とプロセスについて簡単に説明する。

まず、コードフォルダー内のファイルを確認する:

_images/image119.jpeg
  • .git はGitリポジトリのすべての情報を確認するための隠しディレクトリで、リポジトリを作成すると、自動的に生成される。

  • Ball_track は車に赤いボールを追跡させるために使用される。

  • データシート はハードウェアモジュールで使用される一部のチップのマニュアルを保存する。

  • mjpg-streamer はカメラのデータが転送されるオープンソースのストリーミングメディアライブラリである。

  • Remote_control はWebサーバーのコードを保存するためのもので、APIリクエストに基づいて車のモーターとサーボを制御する。

  • .gitignore はGithubリポジトリが同期されるときに無視されるファイルタイプのリクエストを記録する。

  • Pythonパッケージの標準の必要なドキュメントであるプロジェクトを作成すると、_init_.py は自動的に生成されるため、そのままにしておいてください。

  • i2cHelper.py はI2C接続を構成したり検出したりするためにPython 2によって作成されたPythonスクリプトである。

  • install_dependencies,簡単なインストールと環境設定のための実行可能なbashスクリプト。

  • その名のとおり、LICENSE はGNU V2ライセンスのテキストファイルである。

  • README.mdshow はステートメントとプロンプトに関する通常の情報を記録する。

サーバーコード

サーバーコードはDjango 1.10に基づいている(必要に応じて最新のリリースに適応する)。これに興味がある場合は、DjangoのWebサイトhttps://www.djangoproject.com/にアクセスするか。ここでは、Webサーバーがどのように機能するかを学習する。

注釈

バグを修正し、一部の関数の更新をリリースするために、Githubでコードが不定期に更新される場合がある。したがって、ここのコードは初期バージョンである。以下の場合、Githubリポジトリの更新を表示できる:

https://github.com/sunfounder/SunFounder_PiCar-V/tree/V3.0

コードディレクトリを開き、ls でファイルを確認します。

pi@raspberry:~ $ cd SunFounder_PiCar-V/
pi@raspberry:~/SunFounder_PiCar-V $ ls
datasheet   install_dependencies   mjpg-streamer   remote_control
client          i2cHelper.py       LICENSE         README.md show

remote_control は、Webサーバーのメインコードディレクトリである。cd remote_control でコードディレクトリを開き、lsによってファイルを確認する:

pi@raspberry:~/SunFounder_PiCar-V $ cd remote_control
pi@raspberry:~/SunFounder_PiCar-V/remote_control $ ls
db.sqlite3   manage.py   remote_control   start static
  • Djangoプロジェクトを作成すると、db.sqlite3 が生成される。

  • manage.py はDjangoプロジェクトのメインプログラムであり、プロジェクトの作成時に生成される。通常は変更する必要はない。

  • remote_control には、メインコードファイルが含まれている。

  • startsudo python manage.py runserver 0.0.0.0:8000 を実行するために書かれた小さなスクリプトであり、便宜上、属性のあるインストールを使用したサーボ インストール である。

  • static はいくつかの静的な画像をWebに保存するものである。

Djangoウェブサーバーは通常、 sudo python manage.py runserver `` の実行を通じて起動する。アドレス0.0.0.0:8000は、リスニングアドレスがLAN上のすべてのアドレスをカバーし、ポート番号が8000であることを意味する。ここでは、 ``remote_control フォルダーのコードに焦点を当てる。 cd remote_control を使用してディレクトリに入る:

pi@raspberry:~/SunFounder_PiCar-V/remote_control $ cd remote_control
pi@raspberry:~/SunFounder_PiCar-V/remote_control/remote_control $ ls
driver   \__init__.py   settings.py   templates urls.py   views.py   wsgi.py
  • driver は車のドライバーを保存する。

  • __init__.py はPythonパッケージの標準的な必要なドキュメントであるDjangoプロジェクトを作成すると自動的に生成される。そのままにしておいてください。

  • settings.py は自動的に生成され、関連する設定を保存する。

  • templates HTML形式でウェブを格納するためのジャンゴアプリです。

  • urls.py は自動的に生成され、コードに関連付けるURLを構成する。

  • views.py はURLによって関連付けられるページコントロールのコードである。テンプレートを呼び出してページを表示し、ドライバーが車を制御する。

  • wsgi.py は自動的に生成され、変更する必要はない。詳しくはDjangoの公式サイトをご覧ください。

これがコードの動作原理である。urls.py に自動的に関連付けられるメインプログラム manage.py を実行して、URLに応答する。ChromeのようなWebブラウザを実行して http://<rpi_ip_address>:<port> `` または、クライアントを介して構成済みのAPIにアクセスすると、``urls.py の関連付けにより、manage.pyviews.py に変わる。次に、views.py はこれを処理し、テンプレートをブラウザに返す。さらに、ブラウザーで設定されたパラメーターに基づいて driver パッケージを呼び出し、車を制御する。

ここで、フォルダー driver を開き、以下を確認する:

pi@raspberry:~/SunFounder_PiCar-V/remote_control/remote_control $ cd driver/
pi@raspberry:~/SunFounder_PiCar-V/remote_control/remote_control/driver $ ls
camera.py   config   \__init__.py   stream.py

driver フォルダーには、主にパン&チルトを制御するためのドライバーモジュールとカメラストリーマーが含まれている。

パン&チルトを制御するための camera.py

config は補正データを保存するために使用される。

__init__.py はパッケージの必須ファイルであり、そのままにしておいて下さい。

stream.py はMJPG-streamerに基づくビデオストリーミングサービスである。

表示するフォルダ templates を終了して開くと、以下が表示される:

pi@raspberry:~/SunFounder_PiCar-V/remote_control/remote_control/driver $ cd ../
pi@raspberry:~/SunFounder_PiCar-V/remote_control/remote_control $ cd templates/
admin.py   \__init__.py   models.py   tests.py
apps.py    migrations     templates   views.py

このフォルダーは、テンプレートを簡単に呼び出すために、`` manage.py startapp`` によって作成される。したがって、`` templates`` 以外のファイルは変更されていない。templates をもう一度開く:

pi@raspberry:~/SunFounder_PiCar-V/remote_control/remote_control/templates $ cd templates
pi@raspberry:~/SunFounder_PiCar-V/remote_control/remote_control/templates/templates $ ls
base.html   cali.html   run.html

レイヤーで構成される3つのHTMLファイルがある。低レベルの base.html には、デフォルトでは、HTMLの `` <head> 、レイアウト全体、とホームページのコンテンツが含まれている。表層:補正用の ``cali.html と、車を制御するための run.html