注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
9. @SunFounder コントローラーで遊ぶ
このプロジェクトでは、SunFounder Controller APPを使用してリモートプロジェクトを構築する方法を学びます。 ローカルエリアネットワーク(LAN)環境で、スマートフォンやタブレットを使ってPico W回路を制御できます。 Pico Wでシンプルなロボットを作成したい場合、このアプリは非常に便利です。
ここでは、APPのスライダーバーでサーボの角度を制御し、APPのゲージで超音波によって検出された距離を表示します。
1. 必要なコンポーネント
このプロジェクトで必要なコンポーネントは以下の通りです。
一式を購入することは確かに便利です、リンクはこちらです:
名前 |
このキットのアイテム |
リンク |
|---|---|---|
ケプラーキット |
450以上 |
以下のリンクからそれぞれ個別に購入することもできます。
番号 |
コンポーネント |
数量 |
リンク |
|---|---|---|---|
1 |
1 |
||
2 |
マイクロUSBケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
1 |
||
6 |
1 |
||
7 |
1 |
||
8 |
18650バッテリー |
1 |
|
9 |
バッテリーホルダー |
1 |
2. 回路の構築
警告
ダイヤグラムに示されているように、Li-poチャージャーモジュールが接続されていることを確認してください。そうでない場合、ショートが起きてバッテリーや回路が損傷する可能性があります。
3. SunFounderコントローラーのセットアップ
SunFounder Controller APP を APP Store(iOS) または Google Play(Android) からインストールします。
APPを開いて、ホームページの + ボタンをクリックしてコントローラーを作成します。
ここでは Blank と Dual Stick を選びます。
空のコントローラーが表示されます。
H エリアをクリックして、 Slider ウィジェットを追加します。
コントロールの歯車をクリックして設定ウィンドウを開きます。
最大値を180、最小値を0に設定し、 Confirm をクリックします。
Lエリアをクリックして、ゲージウィジェットを追加します。
ゲージの歯車をクリックして設定ウィンドウを開き、最大値を100、最小値を0、単位をcmに設定します。
ウィジェットの設定が完了したら、保存をクリックします。
4. コードの実行
注釈
Pico Wが現在Anvilファームウェアを使用している場合、 1.3 Raspberry Pi PicoにMicroPythonをインストール が必要です。
kepler-kit-main/libsのパスからws.pyとwebsocket_helper.pyをRaspberry Pi Pico Wにアップロードします。
ws.pyスクリプトをダブルクリックして、WiFiのSSIDとPASSWORDを入力します。
kepler-kit-main/iotのパス下の9_sunfounder_controller.pyを開きます。 Run current script ボタンをクリックするか、F5を押して実行します。接続に成功すると、Pico WのIPが表示されます。
注釈
このスクリプトを起動できるようにするには、それをRaspberry Pi Pico Wに
main.pyとして保存できます。SunFounder Controller APPに戻り、 Connect ボタンをクリックします。
PicoWが検出された場合、それを直接タップして接続します。
自動的に検索しない場合、IPを手動で入力して接続することもできます。
Runボタンをクリックした後、Hエリアのスライダーバーをスライドすると、サーボが角度を調整します。Lエリアのゲージは、手が超音波センサーから100cm以内であれば距離を表示します。
どのように動作するか?
ws.py ライブラリの WS_Server クラスは、APPとの通信を実装しています。以下は、その基本機能を実装するためのフレームワークです。
from ws import WS_Server
import json
import time
ws = WS_Server(8765) # WebSocketの初期化
def main():
ws.start()
while True:
status, result = ws.transfer()
time.sleep_ms(100)
try:
main()
finally:
ws.stop()
まず、 WS_Server オブジェクトを作成する必要があります。
ws = WS_Server(8765)
それを開始します。
ws.start()
次に、 while True ループを使用して、Pico WとSunFounder Controller APP間でのデータ転送を実行します。
while True:
# WebSocketでデータを転送
status, result = ws.transfer()
# 転送データの状態
print(status)
# 受信したデータ
print(result)
# 送信するデータ
print(ws.send_dict)
time.sleep_ms(100)
status は、SunFounder Controller APPからデータを取得できなかった場合に False です。
そして、 result は、Pico WがSunFounder Controller APPからフェッチしたデータです。
それを出力すると、以下のようなものが表示されます。これは、すべてのウィジェットエリアの値です。
{'C': None, 'B': None, 'M': None,,,,, 'A': None, 'R': None}
このケースでは、Hエリアの値を別々に出力し、それを使用して回路を操作します。
status, result = ws.transfer()
#print(result)
if status == True:
print(result['H'])
そして、 ws.send_dict 辞書は、Pico WがSunFounder Controller APPに送信するデータです。これは WS_Server クラスで作成されています。 ws.transfer() が実行されたときに送信されます。
そのメッセージは以下の通りです。
{'Check': 'SunFounder Controller', 'Name': 'PicoW', 'Type': 'Blank'}
これは空のメッセージであり、SunFounder Controller APPのウィジェットにそれをコピーするには、辞書内の対応するエリアに値を割り当てる必要があります。例えば、Lエリアに値 50 を割り当てます。
ws.send_dict['L'] = 50
表示されるデータは以下の通りです。
{'L': 50, 'Type': 'Blank', 'Name': 'PicoW', 'Check': 'SunFounder Controller'}
SunFounder Controllerの詳しい使い方については、 SunFounder Controller APP をご参照ください。