Дізнайтеся, як самостійно виготовити автоматичний привід шасі для квадрокоптерів, подібних до WLtoys Q333A та DJI Inspire, використовуючи плату Arduino NANO. У нашій покроковій інструкції ми розповімо, як налаштувати систему, що автоматично піднімає та опускає шасі при досягненні певної висоти.
Для зборки понадобиться:
Плата Arduino NANO;
Ультразвуковий датчик розташування HC-SR04;
Два концевика;
Сполучні провода;
Макетна плата і сервомотор на 360 градусов.
Спочатку потрібно завантажити скетч, у якому передбачена лише одна настройка.
Основний параметр – змінна см, що визначає висоту в сантиметрах. За замовчуванням її значення встановлено на 10, але його можна змінити відповідно до своїх потреб.
Оскільки максимальна дальність вимірювання ультразвукового датчика HC-SR04 становить 400 см, рекомендується встановлювати значення не більше 380 см. Надто низькі значення також не бажані, оскільки шасі має мати достатньо часу для розкриття при посадці.
#include "Servo.h"
Servo myservo;
#define trigPin 13
#define echoPin 12
int sm = 10; //расстояние в сантиметрах, для срабатывания шасси (максимум 380 см)
void setup() {
Serial.begin (9600); myservo.attach(9);
pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW); delayMicroseconds(5);
digitalWrite(trigPin, HIGH); delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // Результат в сантиметрах в переменной distance
Serial.println(distance);
int button6 = digitalRead(6);
int button7 = digitalRead(7);
if ((distance > sm) && (button7 == HIGH)) {
myservo.write(0); //отправка шасси в низ
}
if ((distance < sm) && (button6 == HIGH)) {
myservo.write(180); //отправка шасси в верх
}
if (((distance > sm) && (button6 == HIGH)) || ((distance < sm) && (button7 == HIGH)))
{
myservo.write(90); //остановка шасси
}
}
Після завантаження скетча припаяйте провода до концевикам, згідно цієї схеми.
Далі потрібно зібрати всі компоненти відповідно до однієї з трьох схем, обравши ту, яка найбільше підходить для вашої конфігурації.
Якщо використовується сервомотор, що працює від 5 вольт і споживає до 500 мА, його можна живити безпосередньо від плати Arduino NANO. Це реалізується за схемою, де сервомотор підключається до виходу живлення плати, що забезпечує стабільну роботу системи.
Якщо напруга живлення сервомотора, складається з напругою використовуваної батареї, то його можна підключити на пряму до батареї.
Якщо все підключено правильно, можна подати живлення та перевірити працездатність шасі. Для початку слід протестувати його підняття на висоту, вищу за ту, яку було вказано у змінній см.
При цьому важливо, щоб ультразвуковий датчик HC-SR04 був спрямований вниз, оскільки він вимірює відстань до поверхні місця посадки. Це забезпечить коректне спрацьовування автоматичного механізму.
Посилання на відеоінструкцію: https://www.youtube.com/watch?v=IkO81w7DcTA&ab_channel=MasterKolotushkinArduino