Buy from OSOYOO Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

En esta lección, te enseñaremos cómo utilizar una aplicación móvil para controlar un coche robot a través del protocolo UDP. El Raspberry Pi ejecutará un programa en Python para recibir paquetes UDP desde la aplicación.

No. Picture Device Qty. Accessories Link
1 Sensor ultrasónico 1 Tornillo M1.4*8 x 4
Tuerca M1.4 x 4
Comprar
2 Servo Motor 1 Tornillo autorroscante M2.2*8 x 2
Tornillo autorroscante M2 * 4 x 1
Comprar
3 Mount Holder for Ultrasonic Sensor 1 Tornillo M1.4*8 x 4
Tuerca M1.4 x 4
Tornillo autorroscante M2 * 4 x 1
Comprar
4 Módulo sensor de seguimiento 1 Tornillo de plástico M2.5 x 2
Tuerca de plástico M2.5 x2
Pilar de plástico M2.5 x 2
Comprar
5 Cable hembra a hembra de 7 pines y 25 cm 1 Comprar
6 Cable de puente de 10 pines hembra a hembra de 20 cm some
7 destornillador 1 Comprar

Primero, instala la Lección 3 (Seguimiento de línea ) y la Lección 4 (Evitación de obstáculos) .

Recuerda: Mantén todos los cables instalados en las Lecciones 1 a 4.

APLICACIÓN Robot Wifi Osoyoo buscar “Osoyoo WIFI UDP Robot APP” en
Google Play o tienda de Apple
(Si no encuentras esta APP en Google Play,
puedes descargar directamente la APP desde el siguiente enlace: https://osoyoo.com/driver/udp-app.apk)

Paso 1) Descarga la aplicación OSOYOO WIFI UDP Robot Car Control

En Google Play o en la App Store, busca las palabras clave “OSOYOO WIFI UDP Robot Car”. Encontrarás una aplicación con un icono naranja como el siguiente (Nota: Si no encuentras esta APP en Google Play, puedes descargar directamente la APP desde el siguiente enlace: https://osoyoo.com/driver/udp-app.apk):

Paso 2) Asegúrate de haber instalado las bibliotecas rpi.gpio y adafruit-pca9685 en la Lección 1.

Paso 3) Escribe el siguiente comando para descargar el código de ejemplo:

wget http://osoyoo.com/driver/servo-steer-car/picar-udp.py

Paso 4) Escribe el siguiente comando para ejecutar el código de ejemplo:

python picar-udp.py

o si deseas utilizar Python3, escribe:

python3 picar-udp.py

Una vez que el código Python anterior esté en ejecución, tu coche estará esperando comandos desde tu teléfono móvil.

Paso 5) Conecta tu teléfono al mismo router Wi-Fi que utiliza tu Raspberry Pi. Abre la aplicación, haz clic en “Configuración”, ingresa la dirección IP de tu Raspberry Pi y el puerto 8888 en la configuración:

Ahora puedes hacer clic en las teclas de dirección < > ^ v para mover el coche. Usa la tecla || para detener el movimiento del coche.

Si haces clic en la tecla “Obstáculo”, el coche evitará automáticamente los obstáculos, similar a la  Lección 4

Si haces clic en la tecla “Seguimiento”, el coche seguirá automáticamente una línea, similar a  la Lección 3

Nota: F1~F6 son funciones de desarrollo futuro.

Preguntas frecuentes sobre la aplicación UDP WIFI y el código de ejemplo:

P 1) ¿Cómo ajustar la velocidad del coche robot?
R: Si deseas cambiar el rendimiento de velocidad del coche robot, cambia los valores de los siguientes parámetros en las líneas 19-21 del archivo picar-udp-control.py :

high_speed = 3500  # Longitud máxima de pulso de 4096
mid_speed = 1900  # Longitud máxima de pulso de 4096
low_speed = 1700  # Longitud máxima de pulso de 4096

P 2) ¿Qué ocurre cuando presionas los botones en la aplicación OSOYOO WiFi UDP Robot Car?
R: Cuando presionas un botón en la aplicación, esta envía un mensaje de una sola letra a través del protocolo UDP al dispositivo objetivo Raspberry Pi.

Botón mensaje UDP
F1 F
F2 G
F3 H
F4 I
F5 J
F6 K
A
B
R
L
cuadrado E
obstáculo O
seguimiento T

P 3) ¿Cómo maneja el programa Python del Raspberry Pi el comando UDP?
El bucle while de las líneas 319 a 347 recibe datos UDP desde la aplicación y los asigna a la variable cur_status. La función ticker en las líneas 292 a 307 maneja la variable cur_status de la siguiente manera
:

def ticker():	
    if cur_status=='R':
    	turnRight(high_speed,0)
    if cur_status=='L':
    	turnLeft(0,high_speed)
    if cur_status=='A':
    	forward(mid_speed,mid_speed)
    if cur_status=='B':
    	backward(mid_speed,mid_speed)
    if cur_status=='E':
    	stopcar()
    if cur_status=='T':
    	line_tracking()
    if cur_status=='O':
    	obstacle_avoid()

Por ejemplo, cuando se presiona el botón ▲ en la aplicación, el valor de cur_status es A, luego la función ticker() llama a la función forward(mid_speed, mid_speed) para hacer avanzar el coche.