2-2-1.(標準:カメラ有)制御プログラム

2020年11月27日

組み立てが完了したsLab-CarにScratch3等で制御するためのプログラム(Arduinoスケッチ)を書き込みます。

事前確認

ArduinoIDE環境構築

ESP32開発ボードへスケッチ(プログラム)を書き込みにはArduinoIDEを利用しますので、環境が準備できていない方は「1-1.ArduinoIDE環境構築」を参照し構築して下さい。
また、必要なライブラリのインストールは「1-2.ArduinoIDEライブラリ(sLab-Car)」になりますので実施できていない方は参照して事前にインストールして下さい。

Scratch3環境構築

sLab-CarはScratch3からプログラミング可能です。プログラムするためにScratch3を構築する必要がありますので、まだ構築できていない方は「1-3.Scratch3.0環境構築」を参照し実施して下さい。

組み立てと配線

組み立てについてはこちらを参照し以下のように組み立てて下さい。

配線に関しても組み立て工程で説明していますが以下となります。

《配線が複雑になるため、カメラ関連の配線は記載省略しています。》

【ESP32開発ボードの入出力端子はこちらを参照下さい】

スケッチ(制御ソフトウェア)

ScrachやWeb、アプリからアクセス制御を可能とする制御ソフトウェアは以下の5つとなります。
(1)sLabCar_basic.ino  【共通プログラム】
(2)car_control.ino   【カー制御用プログラム】
(3)distance_sensor.ino 【距離測定用プログラム】
(4)html_job.ino     【Webページ用プログラム】
(5)websocket_job.ino  【WebSocket用プログラム】

制御ソフトウェアはこちら[2020.4.16版(AI学習サイト連携対応版)]からダウンロードして下さい。
([2019.9.30版]はこちら[2019.9.30版])

ダウンロードしてファイルをArduinoIDEで開くと以下のように表示されます。
(下図のようにファイル毎にタブが表示されます。)

スケッチ環境設定

Scratch3Car.inoファイル内には以下の設定を実施しESP32開発ボードにスケッチを書き込みして下さい。

(1)SSIDとパスワードの設定
以下の行を書き換えて自宅の接続するSSIDとパスワードを設定して下さい。

【注意】セキュリティのため、パスワードはハッシュ化された内容を入力して下さい。ハッシュ化するためのツールはこちらより利用可能です。
(ハッシュ化ツールは「リンク先を別名で保存」などWebブラウザ操作で端末にファイルを保存し端末環境でも利用できます。)
ハッシュ化されたパスワードは以下のように設定します。

(2)工作キットのIPアドレス
以下の行を書き換えて工作キットのIPアドレスを設定して下さい。

【本IPアドレスをScratch3.0で設定する必要があります。】

《IPアドレス設定時の注意事項》
(1)IPアドレスはインターネット上の住所となるため、他キットと重複しないように値を付与してください。
 (123を他の端末やキットで利用している場合は124など他の番号をつけてください)
(2)「192.168.1.」の部分は接続するネットワークアドレスと同じ値に設定してください。
 (同じネットワークに接続されている端末が192.168.0.xの場合は192.168.0.123など「192.168.0.」の部分は同じものにしてください)

ソフト書き込み実施

組み立てたスマートカーへ以下の手順でArduinoスケッチを書き込んで下さい。(Scratch3などと遠隔制御を可能とするためのソフトウェアとなります。)

(1)スケッチ(プログラム)ファイルをダウンロードします。

(2)ArduinoIDEでダウンロードしたファイルを読み込み(開き)ます。
ArduinoIDEの左上4番目の開く(上矢印)ボタン(こちらの④)をクリックしてダウンロードしたファイルを開いて下さい。

(3)スケッチにSSIDなどの環境設定を実施します。

(4)ソフトを書き込むためマイクロUSBケーブルでパソコンとESP32開発ボードを接続して下さい。
(スマートカーに電池を入れる必要はありません)

(5)ArduinoIDEの左上2番目の書込(右矢印)ボタン(こちらの②)をクリックして書き込んで下さい。
【注意】書込時にはシリアルボートが選択されていることを確認して下さい。
●Windowsの場合 :「COMx」が選択されていること
●Macの場合 :「/dev/cu.SLAB_USBtoUART」が選択されていること
(Windows端末でもCOMポートが表示されない場合は上記のダウンロードサイトから環境に合うドライバをダウンロードしインストールして下さい。)

【スケッチの検証と書込方法はこちらを参照ください】
必ずステータスエリアに「ボードへの書き込みが完了しました」と表示され書き込みが完了していることを確認してください。
表示されない場合はパソコンでシリアルポートの認識ができていないなどが考えられますので、「1-1.ArduinoIDE環境構築」などを参照し最初から環境構築を確認して下さい。

書き込みが完了すると直ぐに自動でスケッチ(ソフト)が動作します。スケッチ(ソフト)の動作は、シリアルモニタの表示で確認できます。

シリアルモニタ表示確認

シリアルモニタの表示は以下のどちらかの表示方法から行います。

(1)ArduinoIDEメニューの「ツール」から「シリアルモニタ」を選択して表示
(2)ArduinoIDEの右上のプラスボタン(こちらの⑥)をクリックして表示

ソフトの動作に成功していると以下のように「Wi-Fi Connected! IP address:」と設定したIPアドレスが表示されます。
【シリアルモニタの右下の通信速度を合わせて「115200 bps」にしてください。】

動作確認(Webアクセス)

書き込みが完了すると自動でプログラムが実行されます。
無線接続が完了した場合はLEDが点灯していますので、WebブラウザのURL入力にIPアドレス(「192.168.1.123」など)を入力しリターンしてアクセスして下さい。
成功すると下図のように表示されます。

(上図はIPアドレスが「192.168.1.124」の例)

また、上図のWebアクセスは以下のオプションが利用可能です。
(1)映像ON「camera」【最小モデルは利用不可】
 指定値:「on」(半角)のみ指定可
(2)カー左回転継続時間「lms」
 指定値:-1以上の数値(半角)
(3)カー右回転継続時間「rms」
 指定値:-1以上の数値(半角)
(4)超音波センサー左回転角度「ldo」
 指定値:0から180の数値(半角)
(5)超音波センサー右回転角度「rdo」
 指定値:0から180の数値(半角)

《利用方法》
最初のオプションの前は「?」で接続し続きは「&」で接続して指定します。(HTTP GETの指定と同じ方法です。)

1)カメラONの場合【最小モデルは利用不可】
http://192.168.1.123?camera=on

2)カメラONでカー左回転継続時間「200」、右ー左回転継続時間「180」の場合
http://192.168.1.123?camera=on&lms=200&rms=180

毎回利用するパラメータが固定の場合はブックマークに保存し利用して下さい。

トラブルシュート

Webブラウザで画面が確認できない場合は起動時のシリアルモニター表示を確認しながらこちらを参照しトラブルシュートしてください。