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);
}