Buy from US Buy from UK Besorgen DE Acquistare IT Acheter FR Comprar ES ここでご購入を!

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.