Comprar desde OSOYOO Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP



En este proyecto, utilizaremos un sensor de obstáculos (detector de distancia ultrasónico) para detectar obstáculos, evitar colisiones y conducir automáticamente.

Por favor, prepare las siguientes partes para completar este proyecto
NOTA:
1. el color del bloque de construcción está sujeto al producto real, lo que no afecta el uso.
2. TODOS LOS PRODUCTOS OSOYOO PARA ARDUINO SON PLACAS DE TERCEROS QUE SON TOTALMENTE COMPATIBLES CON ARDUINO

Antes de construir este coche robot con bloques, instale la placa básica de OSOYOO para Arduino debajo del escudo de entrada/salida mágico de OSOYOO como se indica a continuación(Atención por favor: los pines del escudo de entrada/salida están alineados con el puerto de la placa básica en primer lugar, luego presione el escudo firmemente en la placa).

Por favor siga los pasos de construcción para construir este coche robot. Si desea obtener los pasos de construcción claros en PDF, descárguelos desde este enlace:  https://osoyoo.com/picture/Building_Robot_Car/lesson4/LESSON4.pdf
Nota: Si ha construido el coche robot para la lección 1, por favor salte al paso 35 en este PDF

Please connect motors and 9V battery case as lección 1.

A continuación, conecte el servomotor SG90 al puerto D4 de OSOYOO Magic I/O shield, el sensor del módulo ultrasónico al puerto D7D8 del Magic I/O shield con un cable PNP de 4 pines como se muestra a continuación:

Nota: En este kit, usamos mblock como herramienta de programación, si desea obtener más información sobre mblock, visite la preparación antes de la clase 1: https://osoyoo.com/2021/12/01/preparation-before-class-1

Paso 1) Descargue la versión de PC de mBlock desde https://mblock.makeblock.com/en-us/download/, seleccione el archivo de descarga según el tipo de sistema operativo de su computadora (no use la versión del navegador):

Paso 2) Télécharger le fichier de périphérique OSOYOO_UNO.mext à partir de: https://osoyoo.com/driver/mblock/osoyoo_uno.mext

Paso 3) Ejecute el software de PC mBlock haciendo doble clic en el icono de Panda encantador. Verá la interfaz de usuario de mBlock como en la siguiente imagen. Elimine el dispositivo predeterminado CyberPi haciendo clic en la cruz en el círculo rojo

Paso 4) Arrastre y suelte el archivo osoyoo_uno_mext (descargado en el Paso 2) al software mBlock como se muestra a continuación:

Ahora verá un nuevo firmware de dispositivo en mBlock, vea la siguiente imagen:
¡Ahora el software mBlock y el firmware del dispositivo OSOYOO_UNO se han instalado correctamente en nuestra PC! Ahora le mostraremos cómo usar bloques para convertir la idea anterior en realidad.

Paso 5: Haga clic en Events, agregue el bloque when Arduino Uno starts up en la parte superior

Paso 6: Haga clic en Control y luego arrastre y suelte el bloque Forever en el área de programación como se muestra a continuación

Paso 7: Haga clic en Action, luego en el bloque set servo pin angle as en el área de programación como se muestra a continuación

Paso 8: Haga clic en Control, luego arrastre y suelte el bloque wait seconds en el área de programación, espere 0,5 segundos como se muestra a continuación.

Paso 9: Haga clic con el botón derecho en el bloque set servo pin angle as, haga clic en Duplicar desde el menú desplegable manual. Obtendrá un bloque duplicado y colóquelo detrás del bloque wait seconds. Establezca los valores de 45 a 135 y 90 como se muestra en la siguiente figura.

Paso 10: Haga clic en Control, luego arrastre y suelte el bloque forever siempre en el área de programación como se muestra a continuación:

Paso 11: Haga clic en Action, luego arrastre y suelte el bloque set servo pin angle as en el área de programación, cambie el valor de 90 a 45 como se muestra a continuación.

Paso 12: Haga clic en Control, luego arrastre y suelte el bloque wait seconds en el área de programación, espere 0,5 segundos como se muestra a continuación:

Paso 13: Haga clic en Control, luego arrastre y suelte el bloque if then else en el área de programación como se muestra a continuación:

Paso 14: Haga clic en Operation, luego arrastre y suelte el bloque 0<0 en el área de programación, cambie el 0 a 15 como se muestra a continuación:

Paso 15: Haga clic en Sensor, luego arrastre y suelte el bloque read ultrasonic sensor trig pin echo pin en el área de programación, configure el valor del pin en el pin 7 y el pin 8 como se muestra a continuación:

Paso 16: Haga clic en Variable, luego haga clic en el bloque make a Variable, configure el nombre Variable en right en el cuadro de diálogo en blanco como se muestra a continuación. Cree las variables left y center de la misma manera;

Paso 17: Haga clic en Variable, luego arrastre y suelte el bloque set center to en el área de programación, cambie el center a right, cambie de 0 a 1 como se muestra a continuación:

Paso 18: Repita el paso anterior, cambie el 1 a 0 como se muestra a continuación:

Paso 19: Haga clic con el botón derecho en el bloque set servo pin angle as, haga clic en “duplicar desde el pin de escritura digital hasta el bloque”. Obtendrá un bloque duplicado y colóquelo detrás del bloque wait seconds. Configure el valor en 45, 135 y 90, también configure el valor en right, left y center como se muestra en la siguiente figura.

Paso 20: Haga clic en Control y luego arrastre y suelte el bloque if then else en el área de programación como se muestra a continuación

Paso 21: Haga clic en Operation y luego arrastre y suelte el bloque 0=0 en el área de programación, cambie el 50 a 0 como se muestra a continuación:

Paso 22: Haga clic en Variable y luego arrastre y suelte el bloque center en el área de programación como se muestra a continuación:

Paso 23: Haga clic en Action, luego arrastre y suelte el bloque Move forward at speed for en el área de programación y cambie el valor de 1 segundo a 0.5 segundos como se muestra a continuación:

Paso 24: Haga clic en Action de nuevo y luego arrastre y suelte el bloque Stop Moving en el área de programación como se muestra a continuación

Paso 24: Haga clic en Control nuevamente, luego arrastre y suelte el bloque if then else en el área de programación como se muestra a continuación.

Paso 25: Haga clic en Operation, entonces arrastre y suelte el bloque 0=0 en el área de programación y cambie el 50 a 0 como se muestra a continuación.

Paso 26: Haga clic en Variable, luego arrastre y suelte el bloque left en el área de programación como se muestra a continuación:

Paso 27: Haga clic en Action, luego arrastre y suelte el bloque Turn Left at speed for al área de programación, cambie 1 seg a 0.5 seg como sigue

Paso 28: Haga clic en Action de nuevo, luego arrastre y suelte el bloque Stop Moving al área de programación como se muestra a continuación

Paso 29: Haga clic en Control,  luego arrastre y suelte el bloque if then else al área de programación como se muestra a continuación

Paso 30: Haga clic en Operation, luego arrastre y suelte el bloque 0=0 al área de programación, cambie el 50 a 0 como se muestra a continuación

Paso 31: Haga clic en Variable, luego arrastre y suelte el bloque right en el área de programación como se muestra a continuación.

Paso 32: Haga clic en Action, luego arrastre y suelte el bloque Turn Right at speed for en el área de programación, cambie el 1 seg a 0,5 seg como se muestra a continuación

Paso 33: Haga clic en Action nuevamente, luego arrastre y suelte el bloque Stop Moving en el área de programación como se muestra a continuación

Paso 34: En Action, luego arrastre y suelte el bloque Turn Right at speed for en el área de programación, cambie el 1 seg a 1,5 seg como se muestra a continuación

 

Paso 36: En la categoría Action, luego arrastre y suelte el bloque Stop Moving en el área de programación como se muestra a continuación

Ahora hemos completado la programación de bloques. Los bloques finales se ven como se muestra a continuación:

Ahora se han completado todos los bloques de programación! Desde la imagen de arriba, la lógica es bastante sencilla:

Cuando se inicia Arduino, la computadora entrará en un bucle muerto que verificará el estado del botón; cuando el botón no está presionado, el servo se detendrá en la posición original (en mi servo a 0 grados) y el elevador estará en el suelo; cuando se presiona el botón, el brazo del servo girará desde la posición de 0 grados hasta la posición de 180 grados y el elevador se elevará al aire.

Paso 37 Cargue el programa en la placa básica OSOYOO

1)Conecte su placa básica OSOYOO a su PC con un cable USB primero. Luego haga clic en el botón Connect en la parte inferior del software mBlock y verá aparecer una ventana USB

2) seleccione la casilla de verificación Show all connectable device , luego aparecerá un menú desplegable de dispositivos

3) seleccione su Port del menú desplegable de dispositivos

4) haga clic en el botón Connect para conectar su PC a la placa básica OSOYOO

Después de que su PC esté conectado a la   OSOYOO Basic Board, haga clic en el botón Upload en la parte inferior de su software y luego el código se cargará en la placa básica OSOYOO

En esta lección, aprenderemos algunos nuevos bloques de programa como los siguientes:

i)Bloque de  Set Servo angle establecido en la categoría Action:

Este bloque controlará un servo en un puerto digital específico a un ángulo específico

Tome el bloque anterior como ejemplo, girará el servo en el pin D4 al ángulo de 90 grados lo que hará que el sensor ultrasónico mire hacia adelante. En este caso, el sensor detectará si hay obstáculos en la parte delantera.

Si cambia el valor del ángulo de 90 a 45, el sensor girará 45 grados a la izquierda y el sensor ultrasónico probará los obstáculos del lado izquierdo.

Si cambia el valor del ángulo de 90 a 135, el sensor girará 45 grados a la derecha y el sensor ultrasónico probará los obstáculos del lado derecho.

ii)Bloque amarillo Wait de la categoría Control Este bloque mantendrá el estado actual durante un período de tiempo específico antes de ejecutar el siguiente bloque de programa


En el ejemplo anterior, el servo en D4 gira en dirección de 90 grados y luego se detiene allí durante 2 segundos.

iii) Leer bloque Ultrasonic Sensor de la sección Sensor Este bloque leerá el valor de distancia del sensor ultrasónico

En el ejemplo anterior, el bloque leerá el valor de distancia del obstáculo a un sensor ultrasónico cuyo pin de activación está en D7 y el pin de eco en D8. Si el sensor ultrasónico detecta un obstáculo, devolverá el valor de distancia (entero).

iv)Bloque Compare en la categoría Operator.
El bloque Compare devolverá Verdadero o Falso en función del valor de comparación.

En el ejemplo anterior, cuando el valor de distancia del sensor ultrasónico es menor que 15 (valor umbral), devolverá Verdadero, lo que significa que se detecta un obstáculo. De lo contrario, devolverá falso, lo que significa que no hay obstáculo en esta dirección. Puede cambiar el umbral a otro valor. Cuanto mayor sea el valor, más sensible actuará su automóvil.

The whole programming  logic :
Primero, el programa hará que el sensor ultrasónico gire de 45 grados a 135 grados y luego se detenga en 90 grados durante 2 segundos. Esto le dará la oportunidad de alinear la dirección del servo. Si el sensor no mira hacia el frente durante los 2 segundos a 90 grados, debe ajustar la ubicación del sensor en servo y hacer que mire a 90 grados.
Luego, el sensor entra en un bucle infinito que hace que el automóvil funcione en modo de evitación de obstáculos.

El programa gira el servo a 45 grados, si el sensor detecta un obstáculo dentro de los 15 cm, establecerá un  right variable en 1, esto significa que el lado derecho tiene un obstáculo. De lo contrario, la variable right se establecerá en 0.

Luego, el programa gira el servo a 135 grados y 90 grados para probar el obstáculo del lado izquierdo y el obstáculo de la dirección central. Si el lado izquierdo tiene un obstáculo dentro de los 15 cm, la variable left se establecerá en 1. Si la dirección central tiene un obstáculo dentro de los 15 cm, la variable center se establecerá en 1. Si no hay obstáculos, ambas variables se establecerán en 0.

Ahora ya conocemos el estado de los obstáculos en tres variables left, right y center. El programa decidirá el movimiento del coche en base a estos valores.
Si la dirección central NO tiene obstáculos (center=0), entonces el automóvil avanza.
Si la dirección central tiene obstáculos, pero el lado izquierdo NO tiene obstáculos (center=1 pero left=0), entonces el automóvil gira a la izquierda.
Si tanto la dirección central como el lado izquierdo tienen obstáculos, pero el lado derecho NO tiene obstáculos (center=1 y left=1 pero right=0), entonces el automóvil gira a la derecha.
Si la dirección central, los lados izquierdo y derecho tienen obstáculos (center = 1 e left = 1  right = 1), entonces el automóvil gira a la derecha durante mucho tiempo, esto hará que el automóvil gire hacia atrás.

La siguiente imagen muestra la lógica de programación anterior en los bloques de programa.

Ajuste la dirección del sensor ultrasónico:
Después de cargar el código en el coche robot, desconecte el cable USB de la placa UNO y encienda el interruptor de alimentación en la placa Magic I/O. Luego, el sensor ultrasónico girará para mirar hacia adelante durante 5 segundos. Si el sensor ultrasónico no está orientado hacia la posición frontal, desconecte la alimentación. Utilice un destornillador para ajustar la dirección del sensor ultrasónico y hacer que mire hacia adelante, luego encienda la alimentación nuevamente y durante los primeros 5 segundos, el sensor debe estar mirando hacia el frente.

Después de 5 segundos, el automóvil robot comenzará a conducir y cambiará de dirección para evitar obstáculos automáticamente.

No. Fotografía Dispositivo Enlace
1 OSOYOO Basic R3 Board para Arduino Haga clic aquí para comprar
2 OSOYOO Magic I/O Shield para Arduino Haga clic aquí para comprar
3 Módulo de sensor de distancia ultrasónico OSOYOO Haga clic aquí para comprar
4 Módulo receptor de infrarrojos OSOYOO Haga clic aquí para comprar
5 Módulo de botón rojo OSOYOO Haga clic aquí para comprar
6 control remoto por infrarrojos Haga clic aquí para comprar
7 Soporte de batería de 9V Haga clic aquí para comprar
8 9V Battery Haga clic aquí para comprar
9 Servo Haga clic aquí para comprar
10 Motor Haga clic aquí para comprar
11 Módulo de sensor de seguimiento OSOYOO Haga clic aquí para comprar
12 Módulo fotoresitor OSOYOO Haga clic aquí para comprar
13 Sensor de temperatura/humedad OSOYOO DHT11 Haga clic aquí para comprar
14 Soporte de sensor ultrasónico OSOYOO Haga clic aquí para comprar
15 OSOYOO ESP Módulo Haga clic aquí para comprar
16 3 pin 20cm PnP cable Haga clic aquí para comprar
17 4 pin 20cm PnP cable Haga clic aquí para comprar
18 B117 Haga clic aquí para comprar
19 B115 Haga clic aquí para comprar
20 B113 Haga clic aquí para comprar
21 B111 Haga clic aquí para comprar
22 B109 Haga clic aquí para comprar
23 B107 Haga clic aquí para comprar
24 B105 Haga clic aquí para comprar
25 B103 Haga clic aquí para comprar
26 T024 Haga clic aquí para comprar
27 T016 Haga clic aquí para comprar
28 L024 Haga clic aquí para comprar
29 X064 Haga clic aquí para comprar
30 L035 Haga clic aquí para comprar
31 X044 Haga clic aquí para comprar
32 F057 Haga clic aquí para comprar
33 T033 Haga clic aquí para comprar
34 PS11 Haga clic aquí para comprar
35 P021 Haga clic aquí para comprar
36 P011 Haga clic aquí para comprar
37 Z005 Haga clic aquí para comprar
38 Z010 Haga clic aquí para comprar
39 Z101 Haga clic aquí para comprar
40 Z1S1 Haga clic aquí para comprar
41 A024 Haga clic aquí para comprar
42 A013 Haga clic aquí para comprar
43 A050 Haga clic aquí para comprar
44 A05S Haga clic aquí para comprar
45 A08S Haga clic aquí para comprar
46 A060 Haga clic aquí para comprar
47 A03S Haga clic aquí para comprar
48 Z121 Haga clic aquí para comprar
49 X275 Haga clic aquí para comprar
50 X073 Haga clic aquí para comprar
51 Y001 Haga clic aquí para comprar
52 Z102 Haga clic aquí para comprar
53 P012 Haga clic aquí para comprar
54 P011 Haga clic aquí para comprar
55 wheel Haga clic aquí para comprar
56 universal wheel Haga clic aquí para comprar