Оглавление:

Создание самолета RC с двумя Arduino: 5 шагов
Создание самолета RC с двумя Arduino: 5 шагов

Видео: Создание самолета RC с двумя Arduino: 5 шагов

Видео: Создание самолета RC с двумя Arduino: 5 шагов
Видео: Радиоуправляемый самолет на Arduino! 2024, Ноябрь
Anonim
Создание самолета Rc с двумя Arduino
Создание самолета Rc с двумя Arduino

Сделать самолет - интересная задача. Это становится особенно сложным, когда вы используете Arduino вместо готового контроллера и приемника.

В этом руководстве я покажу вам, как я делал радиоуправляемый самолет с двумя Arduino.

Шаг 1. Что вам понадобится

Тебе понадобится:

- Бесщеточный мотор

- Эск на мотор

- 2 сервопривода

- 1 arduino uno

- 1 ардуино нано

- пропеллер

- 2 модуля nrf24l01

- 2 конденсатора 10 мкФ

- Пенопластовая панель

- Потенциометр

- Модуль джойстика

- NiMH аккумулятор на 3 А 7,2 В

Шаг 2: радиоуправление

Радиоуправление
Радиоуправление
Радиоуправление
Радиоуправление

Я использовал nrf24l01 для управления самолетом. Этот модуль имеет дальность действия 1 км. Вы можете увидеть, как подключить nrf24l01 на схеме, показанной выше. Вам также необходимо припаять конденсатор между землей и 3,3 вольтом, чтобы учесть возможные падения напряжения.

Следующим шагом будет получение данных от вашего контроллера. Я использовал джойстик для управления рулем и рулем высоты и потенциометр для управления двигателем. Вы должны подключить потенциометр к контакту A0, я подключил джойстик к контактам A1 и A2.

Теперь нам нужно сделать ресивер. Я использовал Arduino nano для приемника, потому что он меньше. Вы также должны подключить nrf24l01 к этому adruino. После этого вам нужно подключить сервоприводы и esc (электронный регулятор скорости двигателя) к Arduino. Я подключил сервопривод к контактам D4 и D5, esc был подключен к контакту D9.

Это код, который я использовал для передатчика:

#include #include #include

Радиостанция РФ24 (7, 8);

адрес константного байта [6] = "00001";

void setup () {

radio.begin (); radio.openWritingPipe (адрес); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); Serial.begin (9600); }

void loop () {

интервал s = analogRead (0); интервал x = analogRead (1); int y = analogRead (2); Строка str = Строка (и); str + = '|' + Строка (x) + '|' + Строка (y); Serial.println (str); const char text [20]; str.toCharArray (текст, 20); Serial.println (текст); radio.write (& текст, sizeof (текст)); задержка (10);

}

а вот код получателя:

#include #include #include #include

Серво esc;

Servo sx; Servo sy; Радиостанция РФ24 (7, 8);

адрес константного байта [6] = "00001";

void setup () {

// поместите сюда свой установочный код, чтобы запустить его один раз: radio.begin (); radio.openReadingPipe (0, адрес); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); esc.attach (9); sx.attach (4); sy.attach (5); esc.writeMicroseconds (1000); // инициализируем сигнал до 1000 radio.startListening (); Serial.begin (9600); }

void loop () {

символ текста [32] = ""; если (radio.available ()) {radio.read (& text, sizeof (текст)); String transData = String (текст); //Serial.println(getValue(transData, '|', 1));

int s = getValue (transData, '|', 0).toInt ();

s = карта (s, 0, 1023, 1000, 2000); // отображение значения на минимум и максимум (при необходимости измените значение) Serial.println (transData); esc.writeMicroseconds (s); // использование val в качестве сигнала для esc int sxVal = getValue (transData, '|', 1).toInt (); int syVal = getValue (transData, '|', 2).toInt ();

sx.write (карта (sxVal, 0, 1023, 0, 180));

sy.write (карта (syVal, 0, 1023, 0, 180));

}

}

String getValue (строковые данные, разделитель символов, индекс int)

{найдено int = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1;

for (int i = 0; i <= maxIndex && found <= index; i ++) {if (data.charAt (i) == separator || i == maxIndex) {found ++; strIndex [0] = strIndex [1] +1; strIndex [1] = (i == maxIndex)? я + 1: я; }}

вернуть найденный> индекс? data.substring (strIndex [0], strIndex [1]): "";

}

Шаг 3: Фузыкаж и стабилизаторы

Фузыкаж и стабилизаторы
Фузыкаж и стабилизаторы

Теперь, когда у вас настроена электроника, вам понадобится самолет, в который можно будет вставить электронику. Я использовал пенопласт, потому что он легкий и относительно прочный. Fusualge - это просто прямоугольник, который становится тоньше к хвосту. Фузыкальность не так уж и важна для аэродинамики. Самое главное, чтобы в него поместилось все, при этом он оставался как можно более маленьким и легким.

Горизонтальный и вертикальный стабилизатор легко изготовить. Важно только то, чтобы ваши стабилизаторы были идеально ровными. Стабилизаторы отвечают за устойчивость самолета. Когда ваши стабилизаторы не прямые, ваш самолет будет нестабильным.

Шаг 4: Крылья

Крылья
Крылья

Крылья, вероятно, наиболее важная вещь, вам нужно создать аэродинамический профиль для создания подъемной силы. На картинке выше вы можете увидеть, как я сделал свой профиль.

Самое главное, чтобы центр тяжести самолета находился примерно в самой высокой точке профиля. так самолет будет устойчивым.

Шаг 5: соединяем все вместе

Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе

Теперь, когда у нас есть все части, нам нужно собрать все воедино.

Сервопривод необходимо подключить к стабилизаторам. это можно сделать с помощью стержней управления (см. рисунок выше)

Мотор нужно надеть на кусок пенопласта и приклеить перед самолетом (или использовать эластичные ленты, чтобы вы могли удалить его, когда вам нужно).

вам нужен пропеллер для установки на двигатель, размер этого винта зависит от двигателя. Подсчитать оптимальный размер очень сложно. Но по общему правилу, чем сильнее двигатель, тем больше может быть пропеллер.

Для аккумулятора рекомендуется использовать липоаккумулятор. однако для этих аккумуляторов требуется специальное зарядное устройство, если вы не хотите, чтобы они взорвались. Вот почему я использовал аккумуляторы nimh, они тяжелее, но проще и дешевле в использовании.

Рекомендуемые: