Este artigo é uma continuação do artigo anterior “Um smartphone dirige um carro de brinquedo” e deve ajudar os usuários que decidiram repetir o projeto a gerenciar seu dispositivo usando o bluetooth usando o ambiente de programação BASIC! ..
O controle por voz é uma ferramenta de controle eficaz, mas não muito confiável, especialmente quando a distância do objeto de controle é superior a 2 metros. A atenuação e reverberação do som e o ruído estranho interferem, e você também precisa de acesso constante à Internet. Controle bluetooth confiável.
Dois programas foram escritos para isso.
Um programa, chamarei de "Servidor", roda em um smartphone que controla o dispositivo. O servidor ouvirá o canal de comunicação, receberá comandos e os executará.
Outro, chamarei de "Cliente", funciona em um smartphone que funciona como um controle remoto. O cliente iniciará a comunicação, formará uma equipe, transmitirá através do servidor bluetooth.
O comando é uma mensagem de texto. Por exemplo, "right" ou "r", que deve ser interpretado como "right", significa girar o volante para a direita e o motor principal para a frente por 300 milissegundos.
Antes de iniciar programas entre smartphones, será necessário organizar o acesso. Para fazer isso, abra a configuração, ative o bluetooth, ative a pesquisa de dispositivos disponíveis e selecione smartphones.
Antes de iniciar o servidor e o cliente, desligue o bluetooth para que o sistema operacional solicite permissão para ligá-lo, caso contrário, a conexão poderá não ser criada.
Primeiro, o programa “Servidor” é iniciado, depois de verificar se ele começou a ouvir o canal de comunicação, inicie o Cliente e controle o dispositivo.
Esses programas demonstram apenas a transferência de comandos; sua interpretação em pontos de luz na tela foi mostrada em um artigo anterior. Os programas são parados pelo cliente. Se você precisar parar o servidor diretamente no seu smartphone, pressione a tecla Enter três vezes.
Listagem de programas do servidor
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