هذا المقال هو استمرار للمقال السابق "الهاتف الذكي يقود سيارة لعبة" ويجب أن يساعد المستخدمين الذين قرروا تكرار المشروع في إدارة أجهزتهم باستخدام البلوتوث باستخدام بيئة البرمجة BASIC! ..
يعد التحكم الصوتي أداة تحكم فعالة ، ولكنها ليست موثوقة للغاية ، خاصة عندما تكون المسافة إلى عنصر التحكم أكثر من 2 متر. يتداخل التوهين الصوتي والصدى والضوضاء الدخيلة ، وتحتاج أيضًا إلى الوصول المستمر إلى الإنترنت. تحكم بلوتوث موثوق.
تم كتابة برنامجين لهذا الغرض.
برنامج واحد ، سوف أسميه "خادم" ، يعمل على هاتف ذكي يتحكم في الجهاز. سوف يستمع الخادم إلى قناة الاتصال ، ويتلقى الأوامر وينفذها.
آخر ، سأطلق عليه "العميل" ، يعمل على هاتف ذكي يعمل كوحدة تحكم عن بعد. سيقوم العميل ببدء الاتصال ، وتشكيل فريق ، وإرساله عبر خادم البلوتوث.
الأمر هو رسالة نصية. على سبيل المثال ، "right" أو "r" ، والتي يجب تفسيرها على أنها "right" ، وتعني تشغيل محرك عجلة القيادة جهة اليمين والمحرك الرئيسي للأمام لمدة 300 مللي ثانية.
قبل بدء البرامج بين الهواتف الذكية ، سيكون من الضروري ترتيب الوصول. للقيام بذلك ، افتح الإعداد ، قم بتشغيل البلوتوث ، قم بتشغيل البحث عن الأجهزة المتاحة وحدد الهواتف الذكية.
قبل بدء تشغيل الخادم والعميل ، أوقف تشغيل البلوتوث حتى يطلب نظام التشغيل إذنًا لتشغيل البلوتوث ، وإلا فقد لا يتم إنشاء الاتصال.
أولاً ، يبدأ برنامج "الخادم" ، بعد التأكد من أنه بدأ في الاستماع إلى قناة الاتصال ، قم بتشغيل العميل والتحكم في الجهاز.
توضح هذه البرامج فقط نقل الأوامر ؛ تم عرض تفسيرها في النقاط الخفيفة على الشاشة في مقالة سابقة. يتم إيقاف البرامج من قبل العميل. إذا كنت بحاجة إلى إيقاف الخادم مباشرة على هاتفك الذكي ، فاضغط على مفتاح العودة ثلاث مرات.
قائمة برنامج الخادم
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