El pequeño chasis diferencial de dos ruedas realiza una función de evitación de obstáculos por infrarrojos

1. Descripción de la función

      Instale un sensor de infrarrojo cercano en el cuerpo del robot R023e para realizar la función de evitación de obstáculos del automóvil robot.

 2. Hardware electrónico

      En este ejemplo, utilizamos el siguiente hardware, consulte:

tablero de control principal

Tablero de control principal de Basra (compatible con Arduino Uno)

tablero de expansión

Placa de expansión Bigfish2.1

sensor sensor infrarrojo cercano
Batería batería de litio de 7,4 V

Instrucciones de conexión del circuito:

      ① Los dos motores están conectados respectivamente a los puertos D6, D10 y D5, D9 de la placa de expansión Bigfish;

      ② El sensor de infrarrojo cercano está conectado al puerto A0 de la placa de expansión Bigfish.

3. Realización de funciones

      Entorno de programación: Arduino 1.8.19

      Idea de implementación: coloque obstáculos frente al robot. Cuando se detecta un obstáculo frente al robot, el robot gira a la derecha y luego avanza durante 2 segundos para evitar el obstáculo; de lo contrario, el robot continúa yendo en línea recta para simular el proceso. de evitación de obstáculos del coche.

 Descargue la rutina de referencia (sketch_apr25a.ino) al tablero de control principal y el automóvil realizará la función de evitación de obstáculos.

[Para obtener más información, consulte Chasis pequeño con diferencial de dos ruedas: evitación de obstáculos por infrarrojos ]

/*------------------------------------------------------------------------------------

 版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

 Distributed under MIT license.See file LICENSE for detail or copy at

 https://opensource.org/licenses/MIT

 by 机器谱 2023-04-25 https://www.robotway.com/

 ------------------------------*/

void forward();

void turnright();

void carstop();


void setup()

{

 pinMode( 14, INPUT);

 pinMode( 10, OUTPUT);

 pinMode( 6, OUTPUT);

 pinMode( 5, OUTPUT);

 pinMode( 9, OUTPUT);

}


void loop()

{

 if (!( digitalRead(14) ))

 {

 turnright();

 delay( 1000 );

 forward();

 delay( 2000 );

 carstop();

 delay( 5000 );

 }

 else

 {

 forward();

 }

}


void turnright()

{

 analogWrite(6 , 80);

 analogWrite(10 , 0);

 analogWrite(5 , 0);

 analogWrite(9 , 80);

}


void forward()

{

 analogWrite(6 , 80);

 analogWrite(10 , 0);

 analogWrite(5 , 80);

 analogWrite(9 , 0);

}


void carstop()

{

 analogWrite(6 , 0);

 analogWrite(10 , 0);

 analogWrite(5 , 0);

 analogWrite(9 , 0);

}

Supongo que te gusta

Origin blog.csdn.net/Robotway/article/details/130728158
Recomendado
Clasificación