7. Sigue a tu Mano¶
Imagina este coche como tu mascota aquí, y cuando le saludes con la mano, vendrá corriendo hacia ti.
Componentes Necesarios
Para este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace:
Nombre |
ELEMENTOS DE ESTE KIT |
ENLACE |
---|---|---|
3 in 1 Starter Kit |
380+ |
También puedes comprarlos por separado en los siguientes enlaces.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
---|---|
- |
|
- |
|
Cableado
Conecta el módulo ultrasónico y los 2 módulos de evitación de obstáculos IR al mismo tiempo.
Conecta el ultrasónico a la placa R3 de la siguiente manera.
Módulo Ultrasónico |
Placa R3 |
---|---|
Vcc |
5V |
Trig |
3 |
Echo |
4 |
Gnd |
GND |
El cableado de los 2 módulos de evitación de obstáculos IR a la placa R3 es como sigue.
Módulo IR Izquierdo |
Placa R3 |
---|---|
OUT |
8 |
GND |
GND |
VCC |
5V |
Módulo IR Derecho |
Placa R3 |
---|---|
OUT |
7 |
GND |
GND |
VCC |
5V |
Código
Nota
Abre el archivo
7.follow_your_hand.ino
en la ruta3in1-kit\car_project\7.follow_your_hand
.O copia este código en el Arduino IDE.
O sube el código a través del Editor Web de Arduino.
Coloca el coche en el suelo después de haber subido el código con éxito. Pon tu mano cerca de 5*10 cm delante del coche, y este seguirá tu mano hacia adelante. Si pones tu mano cerca del módulo IR Obstacle en ambos lados, también girará en la dirección correspondiente.
¿Cómo funciona?
Este proyecto es una combinación de los dos proyectos anteriores 6. Jugar con el Módulo Ultrasónico y 5. Jugar con el Módulo de Evitación de Obstáculos, pero el efecto implementado es diferente. Los 2 proyectos anteriores detectan un obstáculo hacia atrás, pero aquí se detecta que tu mano seguirá la dirección hacia adelante o girará. El flujo de trabajo de este proyecto es el siguiente.
Lee la distancia detectada por el módulo ultrasónico y el valor de ambos módulos infrarrojos.
Si la distancia es de 5~10cm, deja que el coche se mueva con tu mano.
Si el módulo IR izquierdo detecta tu mano, gira a la izquierda.
Si el módulo IR derecho detecta tu mano, gira a la derecha.
Si ni el módulo infrarrojo ni el módulo ultrasónico detectan tu mano, deja que el coche se detenga.
void loop() {
float distance = readSensorData();
int left = digitalRead(leftIR); // 0: Obstructed 1: Empty
int right = digitalRead(rightIR);
int speed = 150;
if (distance>5 && distance<10){
moveForward(speed);
}
if(!left&&right){
turnLeft(speed);
}else if(left&&!right){
turnRight(speed);
}else{
stopMove();
}
}