ROBOT móvil (6 / 7 paso)

Paso 6: El código

Aquí está el código que se utiliza con el Robot (está escrito en C y debe desplegarse en el Arduino):

#include "DualMC33926MotorShield.h"

#include "Servo.h"

#define IR_PIN A4

#define SERVO_PIN A2

#define PING_PIN 5

#define BUMPER_LEFT_PIN 11

#define BUMPER_RIGHT_PIN 6

#define LDR_PIN A5

#define LED_PIN 3

#define IR_DROP 450 //Distance considera una caída de potencial

#define MIN_LIGHT 300 //Level de la luz para encender el LED para la luz

DualMC33926MotorShield md;

const int M1Speed = 300;

const int M2Speed = 300;

int IRDist = 0;

int bpLeft = 0;

int bpRight = 0;

int LDRValue = 0;

const int dangerThresh = 12; / / (en cm) se utiliza para la evitación del obstáculo

int leftDistance, rightDistance; Distancias a ambos lados

Servo panMotor; servo 'cuello'

de larga duración; tiempo que tarda en recibir la señal del PING

void setup()

{

pinMode(BUMPER_LEFT_PIN,INPUT);

pinMode(BUMPER_RIGHT_PIN,INPUT);

pinMode (LED_PIN, salida);

}

void moveStop()

{

MD.init();

md.setSpeeds(0,0);

}

void moveForward()

{

MD.init();

moveStop();

md.setSpeeds(M1Speed,M2Speed);

Delay(250);

}

turnLeft() vacío

{

MD.init();

moveStop();

md.setSpeeds(M1Speed,-M2Speed);

Delay(250);

}

turnRight() vacío

{

MD.init();

moveStop();

md.setSpeeds(-M1Speed,M2Speed);

Delay(250);

}

void moveBack()

{

MD.init();

moveStop();

md.setSpeeds(-M1Speed,-M2Speed);

Delay(250);

}

int checkDrop()

{

pinMode(IR_PIN,INPUT);

IRDist = analogRead(IR_PIN);

if(IRDist < IR_DROP)

{

retorno 1; Caída actual (determinada con sensor de distancia infrarrojo)

}

otra cosa

{

return 0;

}

}

void lightDarkness()

{

LDRValue = analogRead(LDR_PIN);

if(LDRValue < MIN_LIGHT)

{

digitalWrite(LED_PIN,HIGH); Es oscura, encender la luz

}

otra cosa

{

digitalWrite(LED_PIN,LOW);

}

}

int checkLeftBumper()

{

bpLeft = digitalRead(BUMPER_LEFT_PIN);

if(bpLeft == High)

{

¡ HIT!

retorno 1;

}

otra cosa

{

return 0;

}

}

int checkRightBumper()

{

bpRight = digitalRead(BUMPER_RIGHT_PIN);

if(bpRight == High)

{

¡ HIT!

retorno 1;

}

otra cosa

{

return 0;

}

}

void compareDistance() {}

Si (leftDistance > rightDistance) //if izquierda es menos obstruida

{

turnLeft();

}

else if (rightDistance > leftDistance) //if derecho es menos obstruida

{

turnRight();

}

else //if que igualmente se obstruyeron

{

moveBack();

}

}

be larga

{

Enviar pulsos de Ping

pinMode (PING_PIN, salida);

digitalWrite (PING_PIN, bajo);

delayMicroseconds(2);

digitalWrite (PING_PIN, alto);

delayMicroseconds(5);

digitalWrite (PING_PIN, bajo);

Conseguir la duración que tarda en recibir eco de Ping enviado

pinMode (PING_PIN, entrada);

duración = pulseIn (PING_PIN, alto);

Duración a convertir distancia (cm)

vuelta duración / 29 / 2;

}

void loop()

{

lightDarkness();

if(checkDrop() == 1)

{

moveBack();

compareDistance();

}

otra cosa

if(checkLeftBumper() == 1)

{

moveBack();

compareDistance();

}

otra cosa if(checkRightBumper() == 1)

{

moveBack();

compareDistance();

}

otra cosa

{

moveStop();

int distanceFwd = be;

Si (distanceFwd > dangerThresh) //if camino es claro

{

moveForward();

}

else //if camino es bloqueado

{

moveStop();

panMotor.attach(SERVO_PIN);

panMotor.write(20); mira a la derecha

Delay(250);

rightDistance = be; analizar a la derecha

panMotor.write(160); mirar a la izquierda

Delay(600);

leftDistance = be; exploración a la izquierda

panMotor.write(90); mirada hacia el centro

Delay(300);

panMotor.detach();

compareDistance();

}

}

}

Artículos Relacionados

Robot móvil de la rueda de Omni - IoT

Robot móvil de la rueda de Omni - IoT

En esta instrucción que le presentará diseño de robot móvil de omni rueda controlado vía wi-fi. La diferencia fundamental en comparación con el control convencional como bluetooth o radio control es que el robot está conectado a la red de área local
Cómo hacer una plataforma de Robot móvil de bajo costo

Cómo hacer una plataforma de Robot móvil de bajo costo

Este Instructable es sobre la construcción de una base robótica para apoyar los experimentos.Este Instructable es destinado a alguien para comenzar por una plataforma móvil de baja tensión. Otros lectores pueden encontrar algo interesante aquí tambié
Robot móvil controlado mediante bluetooth

Robot móvil controlado mediante bluetooth

Esta vez fui sobre la construcción de un pequeño robot móvil que puede ser controlado usando mi bluetooth de los teléfonos Android. El robot utiliza un módulo de bluetooth Bolutek BC04 interconectado a un Arduino UNO.Paso 1: El BC04 módulo BluetoothE
Construir su propia Base de Robot móvil Max 95

Construir su propia Base de Robot móvil Max 95

El propósito de este tutorial es mostrar cómo el 95 Max original base de robot móvil fue construido usando sobre todo piezas de su ferretería local. La 95 de Max es un 12 "x 12" robot móvil base.Zagros Robotics vende varios modelos de robot móvi
MURVV - el Robot móvil

MURVV - el Robot móvil

Para este proyecto que queremos utilizar un PhidgetsSBC como un cerebro funcional para una colección móvil de Phidgets de sensores y controladores en forma de un robot con ruedas. Para hacer las cosas simples que debemos tener control independiente d
Robot móvil que buscan el sol

Robot móvil que buscan el sol

Su planta puede navegar hasta el lugar más asoleado en la casa con este sol busca Jardinera interior. Se ha controlado por un Arduino Micro y accionado por dos servomotores de rotación continua. El plantador trata de sol con la ayuda de dos paneles s
Simple Robot móvil automática utilizando arduino y L293d IC

Simple Robot móvil automática utilizando arduino y L293d IC

se trata de un Robot básico operado por un arduino y lo que hace es que simplemente vaga alrededor y siga una trayectoria circular por código por defecto pero se puede modificar el código para cambiar la ruta fácilmente. Es un proyecto simple que cua
Swarmscapers: Robots de impresión 3D móvil autónoma

Swarmscapers: Robots de impresión 3D móvil autónoma

Swarmscapers es un mes 2 proyecto de larga investigación realizada en el estudio de Máquinas de arquitectura creativa , impartido por Jason Kelly Johnson y Michael Shiloh en el California College of the Arts en el Laboratorio de Arte Digital. Es una
Robot controlado por teléfono móvil

Robot controlado por teléfono móvil

HolaHoy voy a hacer un robot que puede ser controlado a través de señales de móvil. Este robot puede controlarse por mundo por simplemente hacer llamadas entre 2 móviles.deja comienzo...Paso 1: Lo que se necesitaUn chasis o un robot.Un regulador de 5
Chefbot: Un bricolaje móvil robot autónomo para servir comida en los hoteles

Chefbot: Un bricolaje móvil robot autónomo para servir comida en los hoteles

Como dice el titulo, vamos a ver cómo construir un robot móvil autónomo llamado Chefbot que es para servicio de alimentos y bebidas en hoteles y restaurantes.Este fue un proyecto de hobby y construí este robot después de ver un robot llamado Turtlebo
Parker1 WiFi / 4 G móvil Robot

Parker1 WiFi / 4 G móvil Robot

Parker1 es un WiFi de bajo costo / robot móvil 4G con capacidad de visión. Recorre con dos populares software libre, código compatible Arduino robot fácil programación y OpenWrt router OS para una variedad de conectividad WiFi, 4G etc.Deje que los us
SelfieBot para la educación. BRICOLAJE móvil impulsado por Robot.

SelfieBot para la educación. BRICOLAJE móvil impulsado por Robot.

SelfieBot para la educación. DIY robot conducido móvil.https://www.youtube.com/watch?v=VfFyus8TNJ8Resistencia abrirá el código fuente para escuelas, universidades, para los campos de la robótica de SelfieBot.SelfieBot es un robot de telepresencia (es
Guía paso a paso al controlador de robot mago Micro (Arduino compatible)

Guía paso a paso al controlador de robot mago Micro (Arduino compatible)

el Micro mago de DAGU es un bajo costo Arduino compatible controlador diseñado especialmente para principiantes que quieren construir un pequeño robot. El Consejo tiene una serie de accesorios útiles construido en forma que en la mayoría de los casos
Soccer playing Robots

Soccer playing Robots

Este es mi proyecto final de carrera. Las fotos y los detalles son demasiado para volver a escribir así que he incluido las fotos y subido el informe. Espero que ayude a alguien :)El objetivo del proyecto era hacer un software basado en controlador p