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

部品一覧

プレート

_images/image3.jpeg
  1. 上部プレートx 1

  2. 前部ハーフプレート×1

  3. 後部ハーフプレート×1

  4. パン/チルトプレートx 1

  5. パンとチルトのベースプレートx 1

  6. カメラマウントプレートx 1

  7. サーボコネクタープレートx 2

  8. ベアリングシールドx 8

  9. サーボリンケージプレートx 1

  10. 六角前輪固定プレート×8

  11. ガスケットプレート×2

注釈

ベアリングシールドはガスケットプレートに似ているが、ガスケットプレートの口径はベアリングシールドよりも大きくなっている。

サーボx 3

_images/image4.jpeg
  1. サーボ

  2. 1アームロッカーアーム

  3. アームロッカーアーム

  4. 4アームロッカーアーム

  5. ロッカーアーム固定ネジ

  6. ロッカーアームねじ

メカニカルファスナー

_images/Mechanical_Fasteners1.png _images/Mechanical_Fasteners2.png

配線

_images/Wires.png

PCB

_images/PCB1.png _images/PCB2.png

その他の部品

_images/Other_Components1.png _images/Other_Components2.png

工具

_images/Tools.png

別途用意する必要な部品

このキットには以下の成分が含まれていません。

_images/Self-provided_Components1.png

注釈

  1. 保護ボードなしの 18650 バッテリーを使用することを推奨します。他のバッテリーを使用すると、保護ボードの過電流保護により、製品の電源が切れて動作を停止する可能性があります。

  2. 保護回路なしのバッテリーの場合は、バッテリーホルダーとの接続を確実にするために、アノードが膨らんでいる(正極が尖った)バッテリーを購入してください(以下を参照)。

_images/Self-provided_Components2.png
  1. 長時間使用するために、可能な限り最大電力のバッテリーを使用してください。

前書き

PiCar-Vは以前のスマートビデオカーキットに基づいて開発された。新しいPCA9685 PWMドライバー、小型で高性能のDCモータードライバーモジュール、電源とインターフェイスが統合されたロボットHAT、より鮮明な視界を備えた広角カメラ、いくつかの優れたホイールとタイヤなどが搭載されている。詳しくは後で説明する。

この新しいバージョンの基本的な機能は、PiCar-Vをリモートで制御したり、キャプチャしたビデオデータをストリーミングしたりするなど、前のとほぼ同じである。それでは新規機能は何か?謎を解き明かそう!

_images/image39.jpeg

車の組み立て

箱を開けてたくさんの部品を見るとワクワクしますか?あなたの忍耐を保ち、それを楽にしてください。次の手順の一部の詳細は注意深く観察する必要があることに注意してください。各ステップを終えた後、マニュアルの図に基づいて作業を再確認する必要があります。はじめましょう!

前輪

以下に示すように、M4x25ネジ を一つの ステアリングコネクタプレート 、3つの ベアリングシールド 、3つの 六角前輪固定プレート 、と一つの 前輪 を通して M4セルフロックナット に挿入する:

_images/image40.png

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

_images/image33.jpeg

注釈

セルフロックナットはしっかりと締まっていることを確認してください。車輪とステアリングコネクタが動かなくなるまでネジを締め、次にネジを少し緩めて、ステアリングプレートだけが動くようにする。したがって、接続が緩すぎない場合、ホイールは柔軟に回転できる。

同じ方法で他の前輪を組み立てるが、車輪のステアリングコネクタプレートは前のものと対称であることを覚えておいてください。

_images/image42.png

これで2つの前輪の組み立てが完了した。

パンとチルト

2 x アームロッカーアームを取出し、2M1.5 x 4 ネジを使って、パン-チルトベースプレートに取り付けます。(方向はに次のように)。

_images/Pan-and-Tilt1.png

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

_images/Pan-and-Tilt2.png

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

_images/Pan-and-Tilt3.png

ステアリングパーツ

ステアリングリンケ ージと 1アームロッカーアームM1.5x4 セルフタッピング ネジで接続します。

注釈

ギアから最も遠いアームの 最初 の穴(下の 矢印 で示されている)に挿入します。

_images/Steering_Part1.png

また、それらをしっかりと締めてから、ネジを少し緩め、ステアリングリンケージが柔軟に動くようにする。

上部プレート

最初に M2.5x8銅製スタンドオフM2.5ナット上部プレート に取り付ける。突き出た支柱が上に向くように注意してください。

_images/Upper_Plate.png

バッテリーホルダー

上部プレートを裏返しにする。リボン を半分にカットする。プレートの穴に通す。方向に注意して、バッテリーを後で簡単に取り外すことができるように、プレートの一方の端を長くしてください。

_images/image53.png

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

_images/Battery_Holder.png

後輪(ネジ)

4本の M3x25銅製スタンドオフ を備えた4本の M3x8ネジ を差し込む。

_images/Rear_Wheels.png

PCB組み立て

  1. Raspberry Pi (TFカード差込済み)を8つの M2.5x8シングルパス銅製スタンドオフ で組み立てから ロボットHATS を差し込む。

  2. 4つの M2.5x6ねじロボットHATS を固定する。

PCA9685 PWMドライバーモータードライバ ーを8つの M2.5x12ネジM2.5ナット下部プレート に固定する:

_images/PCB_Assembly.png

後輪の固定

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

_images/Fixing_Rear_Wheels1.png

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

_images/Fixing_Rear_Wheels2.png

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

_images/image61.png

回路構築

電源を接続する

_images/image62.png

モジュールを接続する

_images/image63.png

サーボを接続する

_images/image64.png

モーターを接続する

_images/image65.png

完全な接続は次のように表示される。

_images/image66.png

ラズベリー パイを始めよう

この章では、まずラズベリーパイの起動方法を学びます。内容には、オペレーティングシステム、ラズベリーパイネットワークをインストールする方法とターミナルの開き方が含まれます。

注釈

  1. 完全なチュートリアルは、ラズベリーパイの公式サイト(https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up)で確認できます。

  2. ラズベリーパイがセットアップされている場合は、この部分をスキップして次の章に進むことができます。

オペレーティングシステムのインストール

必要なコンポーネント

任意のラズベリーパイ

パーソナルコンピュータ*1台

マイクロSDカード*1枚

ステップ1

ラズベリーパイが開発したグラフィカルなSDカード書き込みツールは、Mac OS、Ubuntu 18.04、Windowsで動作し、イメージをダウンロードして自動的にSDカードにインストールしてくれるので、ほとんどのユーザーにとって最も簡単なオプションです。

ダウンロードページにアクセスします。https://www.raspberrypi.org/software/。お使いのオペレーティングシステムに合ったラズベリーパイイメージャーのリンクをクリックし、ダウンロードが終了したら、それをクリックしてインストーラーを起動します。

_images/image67.png

ステップ2

インストーラーを起動すると、オペレーティングシステムが実行をブロックしようとする場合があります。例えば、Windowsでは次のようなメッセージが表示されます。

これがポップアップされたら、順次に「More info」と「Run anyway」をクリックした後、指示に従ってラズベリーパイイメージャーをインストールします。

_images/image68.png

ステップ3

SDカードをパソコンやノートパソコンのSDカードスロットに挿入します。

ステップ4

ラズベリーパイイメージャーで、インストールしたいオペレーティングシステムとSDカードを選択します。

_images/image69.png

注釈

  1. 初回はインターネットに接続されている必要があります。

  2. そのオペレーティングシステムは、将来のオフラインでの使用のために保存されます(ラストダウンロード.キャッシュ、C:/Users/yourname/AppData/Local/Raspberry Pi/Imager/cache,)。そのため、次にソフトを開いたときには、「リリース:日付、あなたのコンピュータにキャッシュされた」という表示になります。

ステップ5

使用中のSDカードを選択します。

_images/image70.png

ステップ6

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

_images/image71.png

その後、下にスクロールしてWifiの設定を完了し、「SAVE」をクリックします。

注釈

wifi country は、ラズベリーパイを使用している国のの2文字のコードを設定してください、以下のリンクを参照してください:

https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements

_images/image72.png

ステップ7

WRITE」ボタンをクリックします。

_images/image73.png

ステップ8

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

_images/image74.png

ステップ9

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

_images/image75.png
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を見つけてください。

_images/image76.png
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" を入力する。

_images/image77.png

ステップ4

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

_images/image78.png

ステップ5

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

_images/image79.png

注釈

パスワードを入力すると、ウィンドウに文字が表示されないが、これは正常である。必要なのは、正しいパスコードを入力するだけである。

  • Windowsユーザーの場合

Windowsユーザーの場合、いくつかのソフトウェアのアプリケーションでSSHを使用できる。ここでは、PuTTY、を推薦する(Googleからダウンロードできる)。

ステップ1

PuTTYをダウンロードする。PuTTYを開き、左側のツリー構造にある Session をクリックする。「Host Name」(またはIPアドレス) の下のテキストボックスにRPiのIPアドレスを入力し、Port22 (デフォルトでは22)を入力する。

_images/image80.png

ステップ2

Open をクリックする。IPアドレスを使用してRaspberry Piに初めてログインすると、安全上の指示が表示されることに注意してください。Yes をクリックする。

ステップ3

PuTTYウィンドウに「login as:」と表示されたら、「pi」(RPiのユーザー名)と パスワード**「**raspberry」(変更していない場合はデフォルトのパスワードである)を入力する。

_images/image81.png

注釈

パスワードを入力すると、ウィンドウに文字が表示されないが、これは正常である。必要なのは、正しいパスコードを入力するだけである。

ここで、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 が表示される:

_images/image82.png

コードディレクトリに入る

cd ~/SunFounder_PiCar-V

コードディレクトリに入ると、インストールスクリプトが表示される:

_images/image83.png

スクリプトを介して環境をインストールする

install_dependenciesスクリプトを使用して、必要なすべてのソフトウェアと構成を実行することはできる。代わりに一歩一歩に実行する場合は、「付録1:サーバーインストールスクリプトの機能」の手順に従ってください。

sudo ./install_dependencies

注釈

  1. インストールスクリプトは、必要な部品をインストールし、動作環境用に構成する。インストール中にRaspberryがインターネットに接続されていることを確認してください。接続しない場合は、失敗する恐れがある。

  2. インストールを完了した後、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>キーを押して確認します。

コードの実行後、ロッカーアームをサーボに差し込む。ロッカーアームが時計回りと反時計回りに回転し、特定の位置で停止する。サーボが良い状態にあると示す。以下の条件のいずれかがサーボに発生した場合、サーボは不良である:

  1. 雑音あり、熱い。

  2. サーボラインを抜いてロッカーアームを回すと「カ」「カ」「カ」のように聞こえるか、またはギアの駆動音が鳴らさない。

  3. ゆっくりで継続的に回してください。

上記の状況のいずれかが発生した場合は、 service@sunfounder.com <mailto:support@sunfounder.com>`__に送信してください。新品に交換してあげる。使用または組み立ての過程で破損した場合は、公式ウェブサイト`www.sunfounder.com にて購入してください。

組み立てを続ける

警告

バッテリーを取り付けて電源スイッチをONにスライドさせてから、組み立てのプロセス全体でサーボインストールを実行し続けてください。

ステアリングサーボの組み立て

2つの M2x8ネジM2ナット を使ってステアリングサーボを上部プレートに取り付ける(サーボワイヤーの方向に注意してください)。

_images/Assemble_the_Steering_Servo.png

フロントハーフシャーシ

ロッカーアーム固定ネジ**(最短)で **ステアリングリンケージ をロッカーアームに接続する。

_images/Front_Half_Chassis1.png

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

_images/Front_Half_Chassis2.png

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

_images/Front_Half_Chassis3.png

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

_images/image90.png

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

_images/Front_Half_Chassis5.png

以下に示すように、組み立てられた パン&チルトプレートガスケットプレートカメラマウントプレートロッカーアーム固定ネジ で固定角度で組み立てる:

注釈

サーボが故障した場合、手でサーボを回さないでください。

_images/Front_Half_Chassis6.png

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

_images/Front_Half_Chassis7.png

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

_images/Front_Half_Chassis8.png

カメラを組み立てる

カメラを取り出し、カメラマウントに鋏む。USBケーブルをRaspberry PiのUSBポートに接続する。

これで、アセンブリ全体が完了した。おめでとう!今すぐ車の電源を切ることができる!バッテリーを充電することを忘れないでください。

_images/image96.jpeg

旅に出よう!

すべての手順が完了していて、機械的なアセンブリとソフトウェアのインストールに問題がないことを確認してください。

遠隔操作

これはこれから行うことである:

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

スクリプトがサービスを有効にし、対応するデータが表示される。同時にハードウェアが初期化されるため、前輪に接続されているサーボとパン&チルトが回転し、ハードウェアの初期化が完了したことを示す。

_images/image97.png

上記のような結果が得られれば、サーバーは準備できた。次に、クライアントを起動する。

警告

クライアントの実行を停止するまで、サーバーをいつも動作させる。

クライアントの実行(PCでの操作)

http://<RPi_IP_address>:8000/ で車のサーバに訪問する。ウェルカムページが表示される:

_images/image98.png

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

_images/image99.jpeg

このページでは、キーボードの WASD キーを押して、車を**前方**、後方左折右折 に制御したり、矢印キーを押してカメラの移動を制御したりすることができ、数値 1〜5 は速度レベルを変更する。

補正

もう一度 FULLSCREEN をクリックして、タイトルバーを表示する。次に、ページの右上隅にある設定ボタンをタップして、補正ページに進む。

_images/image100.jpeg

補正には、カメラ補正前輪補正後輪補正 の3つの部分が含まれている。

このページに入ると、車が前進する。そうでない場合は、後輪補正左**と **右 をクリックして、ホイールの角度を調整する。

注釈

ボタンを押すたびに角度が少しずつ変化する。時間あたりの変化を大きくするには、ボタンを長押ししてください。

すべての補正が完了したら、OK をクリックして結果を保存する。

携帯電話用

また、携帯電話の場合は、FULLSCREEN ボタンをタップすると、表示とパフォーマンスが向上する。次に、ページ上の5つの速度レベルのボタンをタップして速度を制御し、矢印ボタンを押して車の方向とパン&チルトを制御する。ただし、一度 にタブできるのは1つのタッチポイントのみである。

_images/image101.jpeg

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

_images/image102.jpeg

見た目は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の範囲内に配置して、車があなたのボールを追跡するようにする。

_images/image103.jpeg

車があなたのボールを捕まえたかどうかを知りたい場合は、以下の手順を実行してください:

ステップ1: Raspberry PiでVNCを有効にする。

sudo raspi-config

3 Interfacing Options を選択する。Enter キーを押してください。

_images/image104.png

P3 VNC

_images/image105.png

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

_images/image106.png

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

_images/image107.png

ステップ2: お使いのコンピューター用のVNCビューアーをダウンロードしてインストールする。

https://www.realvnc.com/en/connect/download/viewer/

注釈

Windowsへの実装中に次のプロンプトが表示された場合は、Continue をクリックしてインストールを続行してください。

_images/image108.png

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

_images/image109.png

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

_images/image110.png

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

_images/image111.png

RaspberryPiの解像度を最高に変更します。

sudo raspi-config

選択 2 Display Options

_images/image112.png

選択 D1 Resolution

_images/image113.png

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

_images/image114.png

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を押して変更を保存する。

_images/image115.png

注釈

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

_images/image116.png

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

python3 ball_tracker.py
_images/image117.png

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

_images/image118.jpeg

ファイル分析

/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

高級段階

今、車は走行している!それを制御するか、または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にサーバーをインストールすると、インストールスクリプトはどのように機能するか?ここで、詳細な手順を説明しよう。

  1. pipをインストールする。

sudo apt-get install python-pip
  1. pipを使ってdjangoをインストールする。

sudo pip install django
  1. i2c-toolsとpython-smbusをインストールする。

sudo pip3 install smbus2
  1. PiCarドライバーをインストールする。

cd ~/
git clone -–recursive https://github.com/sunfounder/SunFounder_PiCar.git
cd SunFounder_PiCar
sudo python setup.py install
  1. ソースコードをダウンロードしてください。

cd ~/
git clone https://github.com/sunfounder/SunFounder_PiCar-V -b V3.0
  1. 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
  1. パスをエクスポートする。

export LD_LIBRARY_PATH=/usr/local/lib/ >> ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/lib/ >> ~/.profile
source ~/.bashrc
  1. I2C1を有効にする。

/boot/config.txtファイルを編集する:

sudo nano /boot/config.txt

最後に行を追加する:

dtparam=i2c_arm=ons
  1. 再起動する。

sudo reboot

付録2:部品

ロボットHATS
_images/image120.png

ロボット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チップとして使用される。

_images/image121.jpeg
  1. デジタルポート:3線式デジタルセンサーポート、信号電圧:3.3V、VCC電圧:3.3V。

  2. アナログポート:3線4チャネル8ビットADCセンサーポート、基準電圧:3.3V、VCC電圧:3.3V。

  3. I2Cポート:3.3V I2Cバスポート

  4. 5V電源出力:PWMドライバーへの5V電源出力。

  5. UARTポート:4線UARTポートと5V VCCはUSBへのSunFounder FTDIシリアルと完全に連携する。

  6. モーター制御ポート:モーター用5V、モーターMAとMBの方向制御、フローティングピンNC、SunFounderモータードライバーモジュールとの連携。

  7. スイッチ:電源スイッチ

  8. 電源インジケータ:電圧を指示する-2つのインジケータが点灯:> 7.9V。1つのインジケーター:7.9V〜7.4V。インジケータ点灯なし:<7.4V。バッテリーを保護するために、インジケーターが点灯していない場合は、充電する際にこれを取り出してください。電源インジケータは単純なコンパレータ回路によって測定された電圧に依存する。負荷によっては検出電圧が通常より低下する場合があるので参考値としてご利用ください。

  9. 電源ポート:5.5/2.1mm標準DCポート、入力電圧:8.4〜7.4V(制限された動作電圧:12V〜6V)。

PCA9865
_images/image122.jpeg

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

_images/image123.jpeg
  1. PWM出力ポート:3色ポート、独立したパワーPWM出力ポート、サーボへの直接接続。

2&3. I2Cポート:4線式I2Cポートは並列で使用できる。3.3V/5.5Vに対応。

  1. PWM電源入力:最大12V。

  2. LED:チップとPWM電源入力用電源インジケータ。

モータードライバーモジュール

モータードライバーモジュールは低発熱の小型パッケージモータードライブである。

_images/image124.jpeg
  1. 電源とモーター制御ポート:チップとモーターに電力を供給し、モーターの方向を制御するためのピンが含まれている。

  2. モーターのPWM入力:2つのモーターの速度を調整するためのPWM信号入力。

  3. モーター出力ポート:2つのモーターの出力ポート。

USBウェブカメラ
_images/image28.jpeg

このカメラは120°の広角をサポートするため、広く鮮明な視界が得られて、PiCar-Vで使用するときのエクスペリエンスが向上する。

SunFounder SF006Cサーボ
_images/image125.png

クラッチギアデジタルサーボの内部に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°

DCギアモーター
_images/image126.jpeg

これは減速機付きのDCモーターである。以下のパラメーターを参照してください:

_images/DC_Gear_Motor.png

ありがとうございました

私たちの製品を評価した評価者、チュートリアルのための提案を提供したベテラン、そして私たちをフォローしてサポートしてきたユーザーのおかげで。私たちにあなたの貴重な提案は、より良い製品を提供する私たちのモチベーションです!

特定の感謝

  • レン・ヴィセソン

  • カレン・ダニエル

  • フアン・デラコスタ

さて、このアンケートに記入するのに少し時間を割いてもらえますか?

注釈

アンケートを送信した後、トップに戻って結果を確認してください。