Control remoto de teléfono inteligente

En dos artículos anteriores, hablé sobre el uso de un teléfono inteligente para controlar un automóvil de juguete, ambos directamente por voz, y el uso de otro teléfono inteligente con bluetooth. Pero el control era primitivo: se dio una orden, el automóvil ejecutó la orden, se detuvo y esperó la siguiente orden. Esto se debió a la alta velocidad del vehículo en condiciones interiores (aproximadamente 1,2 m / s), así como al tiempo prolongado que se dio la orden y a la incapacidad de intervenir rápidamente en el movimiento utilizando el menú. Incluso el control remoto estándar no permitía el control. En la nueva versión del control remoto con una interfaz gráfica, decidí usar PWM para ajustar la velocidad y simular la dirección.



La imagen muestra la máquina, que está controlada por un teléfono inteligente, y debajo de un teléfono inteligente con un programa de control remoto bluetooth en funcionamiento.

En la parte superior de la pantalla hay un control deslizante (círculo verde) que se mueve con el dedo.

imagen

Al retirar un dedo de la pantalla, la distancia relativa desde el control deslizante hasta el borde izquierdo de la pantalla se transmite al teléfono inteligente de control, donde se forma la modulación latitudinal de la señal de pulso.

GR.GET.POSITION c1, xx, yy r6=(xx-xc)*(xx-xc)+(yy-yc)*(yy-yc) IF r6<rkn THEN GR.TOUCH touched, x, y IF y < 120 THEN DO GR.TOUCH touched, x, y GR.GET.POSITION c1, x1,z1 GR.MOVE c1 ,x-x1, y1 GR.RENDER UNTIL !touched ENDIF GR.GET.POSITION c1, x1,z1 POPUP STR$(x1/w) BT.WRITE "#"+STR$(x1/w) ENDIF 

El ciclo de trabajo más pequeño de la señal es del 20%, el más grande es del 80%. La frecuencia teórica posible es de 10 Hz. De hecho, probablemente alrededor de 4 - 5 Hz, ya que las señales para la modulación van en el flujo general de comandos y algunos de ellos también tienen un retraso de tiempo. Por lo tanto, con un ciclo de trabajo bajo, la vibración es claramente visible.

Dos botones verdes: superior hacia adelante, inferior hacia atrás. Botón rojo derecho - quédate quieto. Dos botones blancos: detienen los programas en el control remoto y en la máquina de escribir. En la parte inferior de la pantalla hay tres botones morados para seleccionar la dirección del movimiento hacia la izquierda, recta y derecha. En
Cuando activa el modo correspondiente, aparece un círculo de menor diámetro y el mismo color, pero más oscuro, en el centro del botón. Además de los botones, también utilicé un acelerómetro para controlar la dirección del movimiento. Cuando el teléfono inteligente está horizontal, la proyección del vector de aceleración de gravedad en el eje 0Y es 0, que corresponde al movimiento directamente (vea la figura anterior).



Si levanta el lado izquierdo del teléfono inteligente, la proyección será con un signo +, que corresponderá al movimiento hacia la derecha.



Si levanta el lado derecho, entonces con una señal, que corresponderá al movimiento hacia la izquierda.
El programa lee las lecturas del acelerómetro y envía los comandos apropiados al teléfono inteligente que conduce el automóvil, mostrando el modo en los botones.

 SENSORS.READ 1, sx, sy, sz IF (sy<=1)&(sy>-1)&(lrsh) THEN rsh=1 lsh=1 lrsh=0 GR.HIDE cc13 GR.HIDE cc15 GR.SHOW cc17 GR.RENDER BT.write "f" pause 100 ENDIF IF (sy>2)&(rsh) THEN rsh=0 lsh=1 lrsh=1 GR.HIDE cc13 GR.HIDE cc17 GR.SHOW cc15 GR.RENDER BT.write "r" pause 100 ENDIF IF (sy<-2)&(lsh) THEN lsh=0 rsh=1 lrsh=1 GR.HIDE cc17 GR.HIDE cc15 GR.SHOW cc13 GR.RENDER BT.write "l" pause 100 ENDIF 

Así es como funciona el control remoto. El funcionamiento del programa de control de automóviles también ha sufrido cambios, pero no muy significativo. En el futuro, quiero complementar el programa con las funciones de memorizar comandos y ejecutarlos en modo automático.

Source: https://habr.com/ru/post/es428828/


All Articles