Для цього нам знадобиться:
- Arduino Uno
- 2 редуктора
- ультразвуковой далекомір HS-SR04
- намистинка
- оргскло
- Провід-перемички типу "тато мама"
- драйвер двигунів L298D
- батарейка "крона"
- акумулятор на 6-12 В
- колеса
І так для початку потрібно припаяти дроти до ультразвукового датчика:
Потім потрібно припаяти дроти (з заздалегідь відрізаним виходом "мама") до редукторів. Замість коліс я взяв кришки від 5 літрових пляшок і для кращого зчеплення приклеїв на них шкірку.
Тепер потрібно з оргскла або фанери вирізати каркас, підганяючи його під свої вимоги, особисто я зробив ось такий:
Потім потрібно приклеїти до нашого каркасу: акумулятор (я використовую спаяні послідовно 4 батарейки на 1,5 В), драйвер двигунів, крону, редуктори, ультразвуковий датчик, так як показано на фото:
Перед тим як приклеїти Ардуіно уно потрібно завантажити на неї наступний скетч:
#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); delay(300); digitalWrite(in3, LOW); digitalWrite(in4, LOW); analogWrite(ENB1,250); analogWrite(ENA2,250); } else { digitalWrite(in1, LOW); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, LOW); delay(500); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(ENB1,250); analogWrite(ENA2,250); delay(200); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(ENB1,250); analogWrite(ENA2,250); delay(100); } delay(50); }
Після завантаження скетчу можна приклеювати Ардуіно і крону:
Тепер потрібно все компоненти з'єднати за наступною схемою:
Насамперед приєднуємо ультразвуковий датчик:
двигуни:
Живлення:
Підключаємо драйвер двигунів до Ардуіно:
На кінець нашого робота приклеюємо намистинку:
Ну ось і все наш робот вже готовий, залишилося тільки правильно підключити залишилися харчування, і так Ардуіно ми заживлюємо "кроною" підключаючи + до UIN, а - до GND, при правильному підключення на Ардуіно повинен спалахнути червоний діод:
Тепер підключаємо - нашого "аккумолятора" до GND, на драйвері також повинен спалахнути червоний діод:
якщо двигуни почали обертатися білим проти годинникової стрілки, то все підключено правильно і при підношення перешкоди вони почнуть обертатися по іншому:
Залишилося тільки його випробувати в "польових умовах"