Створення автоматичного приводу шасі для квадрокоптера на базі Arduino NANO

29.01.2025 1 хвилин Автор: Lady Liberty

Дізнайтеся, як самостійно виготовити автоматичний привід шасі для квадрокоптерів, подібних до WLtoys Q333A та DJI Inspire, використовуючи плату Arduino NANO. У нашій покроковій інструкції ми розповімо, як налаштувати систему, що автоматично піднімає та опускає шасі при досягненні певної висоти.

Автоматичний привід шасі, для квадрокоптерів на подобі WLtoys Q333A і DJI Inspire, на базі Arduino NANO

Один із користувачів має квадрокоптер із рухомим шасі, яке керується кнопками на пульті. Потрібно налаштувати систему, яка автоматично підніматиме та опускатиме шасі при досягненні заданої висоти, наприклад, 1,5 метра.

Ось так виглядає автоматичний механізм приводу для шасі, який необхідно встановити на квадрокоптер.

Для зборки понадобиться:

  • Плата Arduino NANO;

  • Ультразвуковий датчик розташування HC-SR04;

  • Два концевика;

  • Сполучні провода;

  • Макетна плата і сервомотор на 360 градусов.

Оскільки сервомотора на 360 градусів не було в наявності, довелося доопрацювати сервомотор Tenstar Robot SG90, який обмежений до 180 градусів, для повноцінного обертання. Було знято відео про процес такої модифікації, і найближчим часом воно буде опубліковане.

Спочатку потрібно завантажити скетч, у якому передбачена лише одна настройка.

Основний параметр – змінна см, що визначає висоту в сантиметрах. За замовчуванням її значення встановлено на 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. Це реалізується за схемою, де сервомотор підключається до виходу живлення плати, що забезпечує стабільну роботу системи.

Якщо використовується сервомотор, який споживає понад 500 мА, його живлення слід підключити через окремий понижуючий перетворювач. Наприклад, Mini 360 підтримує регулювання напруги в діапазоні від 4.75 до 23 В і витримує струм до 1.8 А, що забезпечує стабільну роботу сервомотора без перевантаження плати Arduino NANO.

Якщо напруга живлення сервомотора, складається з напругою використовуваної батареї, то його можна підключити на пряму до батареї.

Якщо все підключено правильно, можна подати живлення та перевірити працездатність шасі. Для початку слід протестувати його підняття на висоту, вищу за ту, яку було вказано у змінній см.

При цьому важливо, щоб ультразвуковий датчик HC-SR04 був спрямований вниз, оскільки він вимірює відстань до поверхні місця посадки. Це забезпечить коректне спрацьовування автоматичного механізму.

Відео версія статті

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.