Bluetoothデバイス制御

この記事は、前の記事「スマートフォンがおもちゃの車を運転する」の続きであり、プロジェクトを繰り返すことを決めたユーザーが、BASICプログラミング環境を使用してbluetoothを使用してデバイスを管理するのに役立ちます。



音声制御は効果的ですが、特に制御オブジェクトまでの距離が2メートル以上の場合、非常に信頼できる制御手段ではありません。 音の減衰と残響、および外来ノイズが干渉し、インターネットへの常時アクセスも必要になります。 信頼性の高いBluetoothコントロール。



このために2つのプログラムが作成されています。



1つのプログラム(「サーバー」と呼びます)は、デバイスを制御するスマートフォンで実行されます。 サーバーは通信チャネルをリッスンし、コマンドを受信して​​実行します。



もう1つは、リモートコントロールとして機能するスマートフォンで動作する「クライアント」と呼びます。 クライアントは通信を開始し、チームを形成し、Bluetoothサーバー経由で送信します。



コマンドはテキストメッセージです。 たとえば、「右」または「r」は「右」と解釈されるべきであり、ハンドルを右に回し、メインエンジンを300ミリ秒間前進させることを意味します。



スマートフォン間でプログラムを開始する前に、アクセスを手配する必要があります。 これを行うには、設定を開き、Bluetoothをオンにし、利用可能なデバイスの検索をオンにして、スマートフォンを選択します。



サーバーとクライアントを起動する前に、OSがBluetoothをオンにする許可を要求するように、Bluetoothをオフにします。そうしないと、接続が作成されない場合があります。



まず、通信チャネルのリッスンを開始したことを確認した後、「サーバー」プログラムが起動し、クライアントを起動してデバイスを制御します。



これらのプログラムはコマンドの転送のみを示しており、画面上の光点への解釈は前の記事で示しました。 プログラムはクライアントによって停止されます。 スマートフォンでサーバーを直接停止する必要がある場合は、リターンキーを3回押します。



サーバープログラムのリスト



FN.DEF speak(t$) TTS.INIT TTS.SPEAK t$ TTS.STOP FN.END speak("  ") ONERROR: newConnection: BT.OPEN speak ("    ") DO % ++++++++ BT.STATUS s IF s = 1 !speak("") ELSEIF s =2 speak( "") ELSEIF s = 3 speak( " ") ENDIF PAUSE 1000 UNTIL s = 3 % ++++++ BT.DEVICE.NAME device$ DO %--------- BT.STATUS s IF (s<> 3) speak( " ") GOTO new_connection ENDIF DO % ====== BT.READ.READY rr IF rr BT.READ.BYTES s$ PRINT ":";s$ s$ =mid$(s$,1,len(s$)-1) speak(s$) IF (s$="end") THEN GOTO xEnd ENDIF UNTIL rr = 0 % ====== UNTIL 0 % -------- xEnd: speak(" ") BT.CLOSE END   «» ARRAY.LOAD menucom$[], "", "", "", "", " ", " " BT.OPEN BT.CONNECT n = 0 DO %+++++++++++ BT.STATUS s IF s = 1 PRINT ", : ", n++ ELSEIF s =2 PRINT ", : ",n++ ELSEIF s = 3 PRINT " " ENDIF PAUSE 1000 UNTIL s = 3 %+++++++++ BT.DEVICE.NAME device$ PRINT device$ PAUSE 1000 x = 0 DO %######### SELECT menu, menuCom$[], " " IF menu = 1 THEN BT.WRITE "forward" IF menu = 2 THEN BT.WRITE "backward" IF menu = 3 THEN BT.WRITE "right" IF menu = 4 THEN BT.WRITE "left" IF menu = 5 THEN x=1 IF menu = 6 THEN BT.WRITE "end" UNTIL x=1 %######### BT.CLOSE END
      
      






All Articles