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