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.
DownLoad Url osoyoo.com