roboforum.ru

Технический форум по робототехнике.

Автономная система для перемещения робота в лабиринте

Автономная система для перемещения робота в лабиринте

Kaban » 13 дек 2015, 02:28

Здраствуйте форумчане. Так как я начинающий в робототехнике Мне необходима помощь с кодом для моего робота. Мне необходимо чтобы он прошел дорожку лабиринта края которого окрашены в черный цвет. Я использую робота с коллекторными 4-мя моторами на базе Arduino Mega и 2 датчика линии (track sensor) но что то я с кодом не получается. Датчики раcположены спереди с лева и с права. Не могу разобраться как мне считывать с цифрового входа 31 и 32 на ардуино от датчика в миллисекундах так чтобы он если увидит что при движении по лабиринту черную линии то повернет вправо или влево а потом продолжит свое движение.
Код: Выделить всёРазвернуть

#include <AFMotor.h> //Link library for working with shield

// Plug motors to the terminal blocks M1, M2, M3, M4
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
unsigned long duration;
void setup(){
// Set the maximum speed of the motor (similar work PWM)
motor1.setSpeed(255);
motor1.run(RELEASE);
motor2.setSpeed(255);
motor2.run(RELEASE);
motor3.setSpeed(255);
motor3.run(RELEASE);
motor4.setSpeed(255);
motor4.run(RELEASE);
pinMode(12, INPUT);
pinMode(13, INPUT);
}

void loop(){

   if (duration = pulseIn(12, HIGH))
{
//moving forward
motor1.run(FORWARD); // Ask moving forward
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
motor1.setSpeed(100); // Set the speed
motor2.setSpeed(100);
motor3.setSpeed(100);
motor4.setSpeed(100);
}
else
{
// move left
motor1.run(BACKWARD); // Ask moving forward 2 motors
motor4.run(BACKWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor1.setSpeed(100); // Set the speed
motor4.setSpeed(100);
motor2.setSpeed(100);
motor3.setSpeed(100);
}
  if (duration = pulseIn(13, HIGH))
{
//moving forward
motor1.run(FORWARD); // Ask moving forward
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
motor1.setSpeed(100); // Set the speed
motor2.setSpeed(100);
motor3.setSpeed(100);
motor4.setSpeed(100);
}
else
{
// move right
motor1.run(FORWARD); // Ask moving forward 2 motors
motor4.run(FORWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor1.setSpeed(100); // Set the speed
motor4.setSpeed(100);
motor2.setSpeed(100);
motor3.setSpeed(100);
}
   
}
Вложения
image14.png
line-tracking-sensor-module-shield-for-arduino_kpqqsr1368503864809.jpg
line-tracking-sensor-module-shield-for-arduino_kpqqsr1368503864809.jpg (30.35 КиБ) Просмотров: 2213
image014_17.jpg

Re: Автономная система для перемещения робота в лабиринте

SkyStorm » 15 дек 2015, 14:28

Не понятно, написано "Лабиринт" а картинка "Линии".


Rambler\'s Top100 Mail.ru counter