SunFounder PiCar-V Raspberry Pi スマートロボットカーキット¶
PiCar-Vについて¶
PiCar-Vには、広角USBウェブカメラ、配線が少なくシンプルな3つのまったく新しい回路基板、調整可能な構造が内蔵している一部のアクリルプレートや車を制御するほとんどすべてのプラットフォームに適した新しいコードが装備されている。
本書では、ハードウェアとソフトウェアの両方を考え、説明、物理部品のイラストを使用してPiCar-Vを構築する方法について説明する。これらのすべてがどのように機能するかを学ぶことを楽しむだろう。次のリンクをクリックすると、PDFユーザーマニュアルを表示したり、コードのクローンを作成したりできます:https://github.com/sunfounder/SunFounder_PiCar-V/tree/V3.0.
Githubの上で弊社のページでお気軽いに問い合わせください。
製品の関するご意見、またはマニュアルにない新しいプロジェクトを学習したい場合は、遠慮なくこちらまでご連絡くだだい。できるだけ早めにマニュアルに更新します。
サポートメールアドレスはこちらまで:cs@sunfounder.com
部品一覧¶
プレート¶

上部プレートx 1
前部ハーフプレート×1
後部ハーフプレート×1
パン/チルトプレートx 1
パンとチルトのベースプレートx 1
カメラマウントプレートx 1
サーボコネクタープレートx 2
ベアリングシールドx 8
サーボリンケージプレートx 1
六角前輪固定プレート×8
ガスケットプレート×2
注釈
ベアリングシールドはガスケットプレートに似ているが、ガスケットプレートの口径はベアリングシールドよりも大きくなっている。
配線¶

工具¶

前書き¶
PiCar-Vは以前のスマートビデオカーキットに基づいて開発された。新しいPCA9685 PWMドライバー、小型で高性能のDCモータードライバーモジュール、電源とインターフェイスが統合されたロボットHAT、より鮮明な視界を備えた広角カメラ、いくつかの優れたホイールとタイヤなどが搭載されている。詳しくは後で説明する。
この新しいバージョンの基本的な機能は、PiCar-Vをリモートで制御したり、キャプチャしたビデオデータをストリーミングしたりするなど、前のとほぼ同じである。それでは新規機能は何か?謎を解き明かそう!

車の組み立て¶
箱を開けてたくさんの部品を見るとワクワクしますか?あなたの忍耐を保ち、それを楽にしてください。次の手順の一部の詳細は注意深く観察する必要があることに注意してください。各ステップを終えた後、マニュアルの図に基づいて作業を再確認する必要があります。はじめましょう!
前輪¶
以下に示すように、M4x25ネジ を一つの ステアリングコネクタプレート 、3つの ベアリングシールド 、3つの 六角前輪固定プレート 、と一つの 前輪 を通して M4セルフロックナット に挿入する:

クロスソケットレンチを使用して M4セルフロックナット を固定してからドライバーを使用して M4x25ネジ を締める。

注釈
セルフロックナットはしっかりと締まっていることを確認してください。車輪とステアリングコネクタが動かなくなるまでネジを締め、次にネジを少し緩めて、ステアリングプレートだけが動くようにする。したがって、接続が緩すぎない場合、ホイールは柔軟に回転できる。
同じ方法で他の前輪を組み立てるが、車輪のステアリングコネクタプレートは前のものと対称であることを覚えておいてください。

これで2つの前輪の組み立てが完了した。
パンとチルト¶
2 x アームロッカーアームを取出し、2M1.5 x 4 ネジを使って、パン-チルトベースプレートに取り付けます。(方向はに次のように)。

カメラマウントプレート にも同様の操作を行ってください。

4つのM2x8ネジ と M2ナット を使用して、2つのサーボを パン&チルトプレート に取り付ける(2つのサーボシャフトは左側にある)。

ステアリングパーツ¶
ステアリングリンケ ージと 1アームロッカーアーム を M1.5x4 セルフタッピング ネジで接続します。
注釈
ギアから最も遠いアームの 最初 の穴(下の 矢印 で示されている)に挿入します。

また、それらをしっかりと締めてから、ネジを少し緩め、ステアリングリンケージが柔軟に動くようにする。
バッテリーホルダー¶
上部プレートを裏返しにする。リボン を半分にカットする。プレートの穴に通す。方向に注意して、バッテリーを後で簡単に取り外すことができるように、プレートの一方の端を長くしてください。

2本の M3x8皿ネジ と M3ナット でバッテリーホルダーを固定する。バッテリーホルダーの配線の方向に注意を払ってください。

PCB組み立て¶
Raspberry Pi (TFカード差込済み)を8つの M2.5x8シングルパス銅製スタンドオフ で組み立てから ロボットHATS を差し込む。
4つの M2.5x6ねじ で ロボットHATS を固定する。
PCA9685 PWMドライバー と モータードライバ ーを8つの M2.5x12ネジ と M2.5ナット で 下部プレート に固定する:

後輪の固定¶
4つの M3x25ネジ と M3ナット で2つのモーターを組み立てる。モーターを配線で内側に配置するように注意してください。こうすると、回路を接続することを便利にする。

4つのM3ナットで後輪を組み立てる。

後輪 をモーターシャフトに合わせ、回転させてやさしく差し込む。

ラズベリー パイを始めよう¶
この章では、まずラズベリーパイの起動方法を学びます。内容には、オペレーティングシステム、ラズベリーパイネットワークをインストールする方法とターミナルの開き方が含まれます。
注釈
完全なチュートリアルは、ラズベリーパイの公式サイト(https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up)で確認できます。
ラズベリーパイがセットアップされている場合は、この部分をスキップして次の章に進むことができます。
オペレーティングシステムのインストール¶
必要なコンポーネント
任意のラズベリーパイ |
パーソナルコンピュータ*1台 |
マイクロSDカード*1枚 |
ステップ1
ラズベリーパイが開発したグラフィカルなSDカード書き込みツールは、Mac OS、Ubuntu 18.04、Windowsで動作し、イメージをダウンロードして自動的にSDカードにインストールしてくれるので、ほとんどのユーザーにとって最も簡単なオプションです。
ダウンロードページにアクセスします。https://www.raspberrypi.org/software/。お使いのオペレーティングシステムに合ったラズベリーパイイメージャーのリンクをクリックし、ダウンロードが終了したら、それをクリックしてインストーラーを起動します。

ステップ2
インストーラーを起動すると、オペレーティングシステムが実行をブロックしようとする場合があります。例えば、Windowsでは次のようなメッセージが表示されます。
これがポップアップされたら、順次に「More info」と「Run anyway」をクリックした後、指示に従ってラズベリーパイイメージャーをインストールします。

ステップ3
SDカードをパソコンやノートパソコンのSDカードスロットに挿入します。
ステップ4
ラズベリーパイイメージャーで、インストールしたいオペレーティングシステムとSDカードを選択します。

注釈
初回はインターネットに接続されている必要があります。
そのオペレーティングシステムは、将来のオフラインでの使用のために保存されます(ラストダウンロード.キャッシュ、C:/Users/yourname/AppData/Local/Raspberry Pi/Imager/cache,)。そのため、次にソフトを開いたときには、「リリース:日付、あなたのコンピュータにキャッシュされた」という表示になります。
ステップ5
使用中のSDカードを選択します。

ステップ6
「Ctrl+Shift+X」を押すと、SSHの有効化と無線LANの設定を行うための「Advanced options」ページが開きます。この2つの項目は必ず設定する必要がありますが、その他の項目はあなたの選択次第です。このイメージカスタマイズオプションを常に使用するように選択することができます。

その後、下にスクロールしてWifiの設定を完了し、「SAVE」をクリックします。
注釈
wifi country は、ラズベリーパイを使用している国のの2文字のコードを設定してください、以下のリンクを参照してください:
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements

ステップ7
「WRITE」ボタンをクリックします。

ステップ8
SDカードに何らかのファイルが保存されている場合は、それらのファイルを永久に失わないようにするために、まずそれらのファイルをバックアップすることをお勧めします。バックアップするファイルがない場合は、「Yes」をクリックします。

ステップ9
一定時間を待った後、書き込み完了を表す以下のウィンドウが表示されます。

Raspberry Piの電源を入れる¶
USBカードリーダーを接続し、マイクロSDカードをRaspberry Piに接続する。
フル充電された2つの18650バッテリーをホルダーに取り付け、バッテリーホルダーからのワイヤを開発ボードに差し込み、スイッチをオフからオンに切り替える。最初のテストに時間がかかるため、Raspberry Piの電源アダプターを使用して車に電源を供給することもお勧めします。
IPアドレスを取得する¶
Raspberry Piの電源を電源アダプターで入れたら、IPアドレスを取得する必要がある。IPアドレスを知る方法はたくさんあるが、そのうちの2つを以下のように示す。
1. ルーター経由で確認する
ルーター(ホームネットワークなど)にログインする権限がある場合は、ルーターの管理インターフェイスでRaspberry Piに割り当てられたアドレスを確認できる。
システムのデフォルトのホスト名-Raspberry Pi OSは raspberrypi であり、それを見つける必要がある。(ArchLinuxARMシステムを使用している場合は、alarmpiを見つけてください。)
2. ネットワークセグメントスキャン
ネットワークスキャンを使用して、Raspberry PiのIPアドレスを検索することもできる。ソフトウェア、Advanced IP scanner(Googleからダウンロード) を使える。
「Scan」をクリックすると、接続されているすべてのデバイスの名前が表示される。同様に、Raspberry Pi OSのデフォルトのホスト名は raspberrypi であり、今ホスト名とそのIPを見つけてください。

SSHリモートコントロールを使用する¶
SSHを適用することにより、Raspberry PiのBash Shellを開くことができる。BashはLinuxの標準のデフォルトシェルである。シェル自体は、お客様とUnix/Linuxをリンクするブリッジである「C」で書き込まれるプログラムである。さらに、必要な作業のほとんどを完了することに役立ち。
Linuxまたは/ Mac OS Xユーザーの場合
ステップ1
Applications ->、Utilities に入り、Terminal を見つけてから開く。
ステップ2
ssh pi @ ip_address と入力します。 "pi "はユーザー名、"ip_address "はIPアドレスです。 例えば:
ssh pi@192.168.18.197
ステップ3
"yes" を入力する。

ステップ4
デフォルトのパスワード「raspberry」を入力する。

ステップ5
これで、Raspberry Piが接続され、次のステップに進む準備ができた。

注釈
パスワードを入力すると、ウィンドウに文字が表示されないが、これは正常である。必要なのは、正しいパスコードを入力するだけである。
Windowsユーザーの場合
Windowsユーザーの場合、いくつかのソフトウェアのアプリケーションでSSHを使用できる。ここでは、PuTTY、を推薦する(Googleからダウンロードできる)。
ステップ1
PuTTYをダウンロードする。PuTTYを開き、左側のツリー構造にある Session をクリックする。「Host Name」(またはIPアドレス) の下のテキストボックスにRPiのIPアドレスを入力し、Port に 22 (デフォルトでは22)を入力する。

ステップ2
Open をクリックする。IPアドレスを使用してRaspberry Piに初めてログインすると、安全上の指示が表示されることに注意してください。Yes をクリックする。
ステップ3
PuTTYウィンドウに「login as:」と表示されたら、「pi」(RPiのユーザー名)と パスワード**「**raspberry」(変更していない場合はデフォルトのパスワードである)を入力する。

注釈
パスワードを入力すると、ウィンドウに文字が表示されないが、これは正常である。必要なのは、正しいパスコードを入力するだけである。
ここで、Raspberry Piを接続し、次の手順を実行する。
サーボ構成¶
また、このキットで使用されるサーボはソフトウェアによって調整され、他のサーボほど物理的な固定点がないため、ここではソフトウェアを介してサーボを構成する。最初に、構成の前にソフトウェアの実装を完了してください。
注釈
本章では、バッテリーを取り付けて電源スイッチをONにスライドすることを忘れないでください。
ソースコードを取得する¶
ソースコードはGithubリポジトリにある。git clone でソースコードをダウンロードする:
cd ~/
git clone https://github.com/sunfounder/SunFounder_PiCar-V -b V3.0
注釈
入力時に十分に注意してください。ユーザー名とパスワードの入力を求められた場合は、入力を間違えている可能性がある。それは発生した場合、Ctrl+Cを押して終了し、再試行してください。
ls コマンドで確認すると、コードディレクトリ SunFounder_PiCar-V が表示される:

スクリプトを介して環境をインストールする¶
install_dependenciesスクリプトを使用して、必要なすべてのソフトウェアと構成を実行することはできる。代わりに一歩一歩に実行する場合は、「付録1:サーバーインストールスクリプトの機能」の手順に従ってください。
sudo ./install_dependencies
注釈
インストールスクリプトは、必要な部品をインストールし、動作環境用に構成する。インストール中にRaspberryがインターネットに接続されていることを確認してください。接続しない場合は、失敗する恐れがある。
インストールを完了した後、Raspberry Piは再起動すると示す。再起動するにはyesと入力してください。
サーボを90度に設定する¶
再起動後、picarツールを実行する:
cd ~/SunFounder_PiCar-V
picar servo-install
注釈
If the "OSError: [Errno 121] Remote I/O error" error message appears, open raspi-config:
sudo raspi-config
次に、3 Interfacing Options → <P5 I2C> → <YES> → <OK>を選択してI2Cサービスを有効にします。 キーボードの上、下、左、右のキーを使って選択できます、最後は<Enter>キーを押して確認します。
コードの実行後、ロッカーアームをサーボに差し込む。ロッカーアームが時計回りと反時計回りに回転し、特定の位置で停止する。サーボが良い状態にあると示す。以下の条件のいずれかがサーボに発生した場合、サーボは不良である:
雑音あり、熱い。
サーボラインを抜いてロッカーアームを回すと「カ」「カ」「カ」のように聞こえるか、またはギアの駆動音が鳴らさない。
ゆっくりで継続的に回してください。
上記の状況のいずれかが発生した場合は、 service@sunfounder.com <mailto:support@sunfounder.com>`__に送信してください。新品に交換してあげる。使用または組み立ての過程で破損した場合は、公式ウェブサイト`www.sunfounder.com にて購入してください。
組み立てを続ける¶
警告
バッテリーを取り付けて電源スイッチをONにスライドさせてから、組み立てのプロセス全体でサーボインストールを実行し続けてください。
フロントハーフシャーシ¶
ロッカーアーム固定ネジ**(最短)で **ステアリングリンケージ をロッカーアームに接続する。

ホイールを上部プレートに入念に取り付ける。

4つの M3x25銅製スタンドオフ と M3ナットでフロントハーフシャーシ を組み立てる。

次に、組み立てられたフロントハーフシャーシを、スタンドオフを穴に合わせている上部プレートに置く。

入念に持ち、上下を逆にして、4本の M3x8ネジ でスタンドオフと上部プレートを固定する。

以下に示すように、組み立てられた パン&チルトプレート、ガスケットプレート と カメラマウントプレート を ロッカーアーム固定ネジ で固定角度で組み立てる:
注釈
サーボが故障した場合、手でサーボを回さないでください。

同様に、サーボシャフトが90度に回転していることを確認する。次に、以下に示す角度で、パン&チルトベースプレート を ロッカーアーム固定ネジ と ガスケットプレート で組み立てる。

2つの M3x10ネジ と M3ナット を使用して、パン&チルトプレート を車に取り付ける。

カメラを組み立てる¶
カメラを取り出し、カメラマウントに鋏む。USBケーブルをRaspberry PiのUSBポートに接続する。
これで、アセンブリ全体が完了した。おめでとう!今すぐ車の電源を切ることができる!バッテリーを充電することを忘れないでください。

旅に出よう!¶
すべての手順が完了していて、機械的なアセンブリとソフトウェアのインストールに問題がないことを確認してください。
遠隔操作¶
これはこれから行うことである:
Raspberry Piを server として使う。車を制御し、カメラでキャプチャした画像を送信するためのAPIを使用してWebサーバーを実行する。
次に、PC、携帯電話、タブレットを client として、カメラから画像を取得し、WebサーバーのAPIを呼び出して車を制御します。
その後、再び車の電源を入れてください。最初のテストに時間がかかるため、Raspberry Piの電源アダプターを使用して車に電源を供給することも勧める。
サーバーを実行する(Raspberry Piでの操作)¶
Raspberry Piにリモートでログインする。remote_control ディレクトリの下で起動スクリプト start を実行して、Webサービスを開始する。
cd ~/SunFounder_PiCar-V/remote_control
python3 manage.py migrate
sudo ./start
スクリプトがサービスを有効にし、対応するデータが表示される。同時にハードウェアが初期化されるため、前輪に接続されているサーボとパン&チルトが回転し、ハードウェアの初期化が完了したことを示す。

上記のような結果が得られれば、サーバーは準備できた。次に、クライアントを起動する。
警告
クライアントの実行を停止するまで、サーバーをいつも動作させる。
クライアントの実行(PCでの操作)¶
http://<RPi_IP_address>:8000/
で車のサーバに訪問する。ウェルカムページが表示される:

LET'S ROCKをクリックして、操作インターフェイスに入る。

このページでは、キーボードの W、A、S、D キーを押して、車を**前方**、後方、左折、右折 に制御したり、矢印キーを押してカメラの移動を制御したりすることができ、数値 1〜5 は速度レベルを変更する。
補正
もう一度 FULLSCREEN をクリックして、タイトルバーを表示する。次に、ページの右上隅にある設定ボタンをタップして、補正ページに進む。

補正には、カメラ補正、前輪補正、後輪補正 の3つの部分が含まれている。
このページに入ると、車が前進する。そうでない場合は、後輪補正 の 左**と **右 をクリックして、ホイールの角度を調整する。
注釈
ボタンを押すたびに角度が少しずつ変化する。時間あたりの変化を大きくするには、ボタンを長押ししてください。
すべての補正が完了したら、OK をクリックして結果を保存する。
携帯電話用
また、携帯電話の場合は、FULLSCREEN ボタンをタップすると、表示とパフォーマンスが向上する。次に、ページ上の5つの速度レベルのボタンをタップして速度を制御し、矢印ボタンを押して車の方向とパン&チルトを制御する。ただし、一度 にタブできるのは1つのタッチポイントのみである。

Android操作システムのスマートフォンから次のスクリーンショットを取得する。

見た目はPCほど良くないかもしれないが、以降の更新は Github で不定期にリリースされる可能性がある。リポジトリを使い、変更を加えたプルリクエストを送信してください。テスト後に問題がなければ、リクエストを知ることは楽しみである。
ボール_追跡装置¶
キーボードを使用して車の状態を制御するだけでなく、ボールトラッキングコードも作成した。
sudo apt-get install libatlas-base-dev libjasper-dev libqt4-test libwebp6 libtiff5 libopenexr23 libgstreamer1.0-0 libavcodec-dev libavformat-dev libswscale-dev libqtgui4 -y
sudo pip3 install opencv-python==3.4.6.27
cd ~/SunFounder_PiCar-V/ball_track
python3 ball_tracker.py
コードが実行されたら、赤いボール(少なくともカメラの直径よりも大きい)を見つけ、カメラの前の10〜50cmの範囲内に配置して、車があなたのボールを追跡するようにする。

車があなたのボールを捕まえたかどうかを知りたい場合は、以下の手順を実行してください:
ステップ1: Raspberry PiでVNCを有効にする。
sudo raspi-config
3 Interfacing Options を選択する。Enter キーを押してください。

P3 VNC

キーボードの左矢印キーを押して、はい を選択します。

最後に OK -> Finish を選択して、構成を終了する。

ステップ2: お使いのコンピューター用のVNCビューアーをダウンロードしてインストールする。
https://www.realvnc.com/en/connect/download/viewer/
注釈
Windowsへの実装中に次のプロンプトが表示された場合は、Continue をクリックしてインストールを続行してください。

ステップ3: インストールしたVNCビューアーを開き、Raspberry PiのIPアドレスを入力して、Enterボタンを押す。

ステップ4: このページでRaspberry Piのユーザー名とパスワードを入力し、デフォルトでは、別々はpiとraspberryである。次にOKをクリックする。

VNC Viewerでログインすると、画面が真っ暗になる場合があります。画面が正常に表示されている場合は、ステップ5に進みます。

RaspberryPiの解像度を最高に変更します。
sudo raspi-config
選択 2 Display Options。

選択 D1 Resolution。

デフォルトをモード 16 のような高解像度に変更します。次に OK をクリックする。

Raspberry Piを再起動し、再度ログインすると、機能します。
sudo reboot
ステップ5: 次に、Raspberry Piデスクトップに入り、ターミナルをクリックし、次のコマンドを入力して、コードball_tracker.pyを開く。
cd ~/SunFounder_PiCar-V/ball_track
sudo nano ball_tracker.py
次に、コードを次のように修正する:
Show_image_enable = True
Draw_circle_enble = True
Ctrl+XとYを押して変更を保存する。

注釈
この手順を完了したら、VNC経由でRaspberry Piにログインするか、またはモニターを使用してください。そうでない場合、次の警告が出される:

ステップ6: ball_tracker.pyを実行する。
python3 ball_tracker.py

ステップ7: コードball_tracker.pyを実行すると、これらの4つの画像が表示される。カメラの前に赤いボールを置くと、車が赤いボールを捕まえたことを示す緑の円が表示される。

ファイル分析¶
/home/piに2つのフォルダーがある:モーターとステアリングを制御するための SunFounder_PiCar と、パン/チルトとワイヤレス制御のための SunFounder_PiCar-V ここでPiCar-Vのコードを調べる。
コードに含まれる内容と指示が多すぎるため、すべての詳細を説明しない。プログラムのPython 2、Python 3、Django、HTML、CSSの詳細については、関連するWebサイトにアクセスするか、または本を購入して自分で学習してください。次のパートでは、全体的な構造とプロセスについて簡単に説明する。
まず、コードフォルダー内のファイルを確認する:

.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.md
とshow
はステートメントとプロンプトに関する通常の情報を記録する。
サーバーコード¶
サーバーコードはDjango 1.10に基づいている(必要に応じて最新のリリースに適応する)。これに興味がある場合は、DjangoのWebサイトhttps://www.djangoproject.com/にアクセスするか。ここでは、Webサーバーがどのように機能するかを学習する。
注釈
バグを修正し、一部の関数の更新をリリースするために、Githubでコードが不定期に更新される場合がある。したがって、ここのコードは初期バージョンである。以下の場合、Githubリポジトリの更新を表示できる:
コードディレクトリを開き、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
には、メインコードファイルが含まれている。start
はsudo 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.py
が views.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
。
高級段階¶
今、車は走行している!それを制御するか、またはWindows、Linux、またはMac OS Xでキャプチャされた画像を表示してみてください。
それでは次に何をすべきか?
はい、センサー!Robot HATSには8つのデジタルチャネルと4つのアナログチャネルと2つのI2Cポートがある。さらに、車のヘッドのアクリル板にある3mmのスロットにより、さまざまなセンサーの接続が可能になり、車がよりスマートになり、興味をそそられるようになる!
そして、コーディング!プログラミングに関する知識を身につけて、コードをコンパイルできる場合は、キット用に提供されているコードを変更して、車をよりすばらしいものにすることができる。たとえば、前輪と後輪を制御するコードは、SunFounder_PiCarフォルダで見つけでinstall-dependencesによってプログラムをインストールした場合は、/home/piディレクトリにダウンロードされる。
ファイルの内容を確認してください:
cd ~/SunFounder_PiCar
ls
コードを変更したら、車のGithubリポジトリのページに入り、フォークして改善に役立つだろう。また、問題を投稿して、Githubページでプルをリクエストすることもできる:
PiCar-V: https://github.com/sunfounder/SunFounder_PiCar-V/tree/V3.0
PiCarドライバー:https://github.com/sunfounder/SunFounder_PiCar
もちろん、質問やアイデアがある場合は、service@sunfounder.comまでお気軽に送信してください。
付録¶
付録1:サーバーインストールスクリプトの機能¶
質問があるかもしれない:Raspberry Piにサーバーをインストールすると、インストールスクリプトはどのように機能するか?ここで、詳細な手順を説明しよう。
pipをインストールする。
sudo apt-get install python-pip
pipを使ってdjangoをインストールする。
sudo pip install django
i2c-toolsとpython-smbusをインストールする。
sudo pip3 install smbus2
PiCarドライバーをインストールする。
cd ~/
git clone -–recursive https://github.com/sunfounder/SunFounder_PiCar.git
cd SunFounder_PiCar
sudo python setup.py install
ソースコードをダウンロードしてください。
cd ~/
git clone https://github.com/sunfounder/SunFounder_PiCar-V -b V3.0
MJPG-Streamerファイルをシステムディレクトリにコピーする。
cd ~/SunFounder_PiCar-V
sudo cp mjpg-streamer/mjpg_streamer /usr/local/bin
sudo cp mjpg-streamer/output_http.so /usr/local/lib/
sudo cp mjpg-streamer/input_file.so /usr/local/lib/
sudo cp mjpg-streamer/input_uvc.so /usr/local/lib/
sudo cp -R mjpg-streamer/www /usr/local/www
パスをエクスポートする。
export LD_LIBRARY_PATH=/usr/local/lib/ >> ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/lib/ >> ~/.profile
source ~/.bashrc
I2C1を有効にする。
/boot/config.txtファイルを編集する:
sudo nano /boot/config.txt
最後に行を追加する:
dtparam=i2c_arm=ons
再起動する。
sudo reboot
付録2:部品¶
ロボットHATS¶

ロボットHATS は40ピンRaspberry Piに特別に設計されたHATであり、Raspberry PiモデルB +、世代2モデルB、世代3モデルB、世代3モデルB +、世代4モデルBで動作し、GPIOポートからRaspberry Piに電力を供給する。HATSのルールに基づいた理想的なダイオードの設計により、USBケーブルとDCポートの両方を介してRaspberry Piに電源を供給できるため、バッテリーの電力不足によってTFカードが損傷することを防ぐことができる。PCF8591はI2C通信とアドレス0x48を備えたADCチップとして使用される。

デジタルポート:3線式デジタルセンサーポート、信号電圧:3.3V、VCC電圧:3.3V。
アナログポート:3線4チャネル8ビットADCセンサーポート、基準電圧:3.3V、VCC電圧:3.3V。
I2Cポート:3.3V I2Cバスポート
5V電源出力:PWMドライバーへの5V電源出力。
UARTポート:4線UARTポートと5V VCCはUSBへのSunFounder FTDIシリアルと完全に連携する。
モーター制御ポート:モーター用5V、モーターMAとMBの方向制御、フローティングピンNC、SunFounderモータードライバーモジュールとの連携。
スイッチ:電源スイッチ
電源インジケータ:電圧を指示する-2つのインジケータが点灯:> 7.9V。1つのインジケーター:7.9V〜7.4V。インジケータ点灯なし:<7.4V。バッテリーを保護するために、インジケーターが点灯していない場合は、充電する際にこれを取り出してください。電源インジケータは単純なコンパレータ回路によって測定された電圧に依存する。負荷によっては検出電圧が通常より低下する場合があるので参考値としてご利用ください。
電源ポート:5.5/2.1mm標準DCポート、入力電圧:8.4〜7.4V(制限された動作電圧:12V〜6V)。
PCA9865¶

PCA9685 16チャネル12ビットI2CバスPWMドライバー。独立したPWM出力電力をサポートし、並列接続用の4線式I2Cポート、PWM出力用の区別された3色ポートをより簡単に利用できる。

PWM出力ポート:3色ポート、独立したパワーPWM出力ポート、サーボへの直接接続。
2&3. I2Cポート:4線式I2Cポートは並列で使用できる。3.3V/5.5Vに対応。
PWM電源入力:最大12V。
LED:チップとPWM電源入力用電源インジケータ。
モータードライバーモジュール¶
モータードライバーモジュールは低発熱の小型パッケージモータードライブである。

電源とモーター制御ポート:チップとモーターに電力を供給し、モーターの方向を制御するためのピンが含まれている。
モーターのPWM入力:2つのモーターの速度を調整するためのPWM信号入力。
モーター出力ポート:2つのモーターの出力ポート。
SunFounder SF006Cサーボ¶

クラッチギアデジタルサーボの内部にDCコアモーターが搭載されており、一定の負荷をかけた後、ステアリングギアの減速装置は自動的にクラッチを切り、損傷や通常の負荷から製品を保護する。
パフォーマンスの機能:
アイテム |
V = 4.8V |
V = 6.0V |
消費電流*(無負荷) |
≦50mA |
≦60mA |
ストール電流 |
≦550mA |
≦650mA |
定格トルク |
≥0.6 kgf·cm |
≥0.7 kgf·cm |
最大トルク |
≥1.4 kgf.cm |
≥1.6 kgf.cm |
負荷速度なし |
≦0.14sec/60° |
≦0.12sec/60° |
ありがとうございました¶
私たちの製品を評価した評価者、チュートリアルのための提案を提供したベテラン、そして私たちをフォローしてサポートしてきたユーザーのおかげで。私たちにあなたの貴重な提案は、より良い製品を提供する私たちのモチベーションです!
特定の感謝
レン・ヴィセソン
カレン・ダニエル
フアン・デラコスタ
さて、このアンケートに記入するのに少し時間を割いてもらえますか?
注釈
アンケートを送信した後、トップに戻って結果を確認してください。
著作権表示¶
このマニュアルのテキスト、画像とコードを含むがこれらに限定されないすべての内容は、SunFounder Companyが所有している。関連する規制と著作権法に基づき、著者と関連する権利所有者の法的権利を侵害することなく、個人的な研究、調査、享楽、またはその他の非営利目的でのみ使用してください。許可なく営利目的でこれを使用する個人または組織については、会社は法的措置を取る権利を留保する。