Новости проекта
Подписывайтесь на нас ВКонтакте!
Хаю-хай, с вами Schools.by!
Голосование
Нужна ли школьная форма ?
Всего 46 человек
Голосование
Для чего Вы используете компьютер?
Всего 46 человек

Машинка-робот, объезжающая препятствия

Дата: 4 мая 2017 в 12:45, Обновлено 5 мая 2017 в 08:35
Проект "Машинка-робот, объезжающая препятствия"

Автор проекта:  ученик 5 класса Нестерович Евгений

Цель проекта: изучить принципы построения роботов на основе платы ArduinoUno. Создать действующую модель робота, который может самостоятельно передвигаться, при этом объезжать препятствия, встречаемые на своем пути.

Материалы:

-Arduino Uno
-2 редуктора
-ультразвуковой дальномер HS-SR04
-провода-перемычки типа "папа мама"
-драйвер двигателей L298D
-батарейка "крона"
-аккумулятор на 6-12 В
-колёса 
-каркас для робота.

Готовая машинка-робот

Схема

Вот такая машинка-робот получилась в результате:

Скетч

#define Trig 8

#define Echo 9

const int in1 = 2; // IN4 pin 2

const int in2 = 4; // IN3 pin 4

const int in3 = 5; // IN2 pin 5

const int in4 = 7; // IN1 pin 7

int ENB1 = 3;

int ENA2 = 6;

void setup()

{

pinMode(Trig, OUTPUT); // выход

pinMode(Echo, INPUT); // вход

pinMode(in1, OUTPUT); // выход на L298n

pinMode(in2, OUTPUT); // выход на L298n

pinMode(in3, OUTPUT); // выход на L298n

pinMode(in4, OUTPUT); // выход на L298n

pinMode (ENB1, OUTPUT);

pinMode (ENA2, OUTPUT);

}

unsigned int impulseTime=0;

unsigned int distance_sm=0;

void loop()

{

digitalWrite(Trig, HIGH);

delayMicroseconds(10); // 10 микросекунд

digitalWrite(Trig, LOW);

impulseTime=pulseIn(Echo, HIGH); // замеряем длину импульса

distance_sm=impulseTime/58; // переводим в сантиметры

if (distance_sm>20) // если расстояние более 20 сантиметров

{

digitalWrite(in1, HIGH);

delay(300);

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, HIGH);