Радиоуправляемый самолет на Arduino своими руками


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

Радиоуправляемый самолет на Arduino своими руками

Обзор проекта

Итак, самолет полностью сделан из пенопласта. Для создания форм я использовал свой станок для резки пенопласта с ЧПУ на Arduino, создание которого мы также рассматривали на нашем сайте. Но затратив немного большее время данные детали из пенопласта можно вырезать и вручную.

Управление самолетом полностью самостоятельное, на основе платы Arduino и модуля NRF24L01 для радиосвязи.

Самолет и пульт к нему в собранном виде

Используя правый джойстик передатчика, мы можем управлять элеронами и рулем высоты самолета, а используя левый джойстик, мы можем управлять рулем направления и дросселем.

Задняя часть самолета

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

Радиоуправляемый самолет на Arduino в полете

О, и я почти забыл упомянуть, что главная особенность этого самолета на базе Arduino — полет, так что да, он может летать.

Проектирование радиоуправляемого самолета

Я начал с проектирования самолета с помощью программного обеспечения для 3D-моделирования, в данном случае Fusion 360. Я разработал дизайн, глядя на некоторые коммерческие RC-самолеты и следуя некоторым базовым рекомендациям или практическим правилам для параметров моделей самолетов.

3D-модель радиоуправляемого самолета

Отправной точкой является размах крыльев, и я выбрал 80 см. Отсюда мы получаем длину фюзеляжа, которая обычно составляет 75% от размаха крыльев. Что касается аэродинамического профиля или поперечного сечения крыла, я выбрал CLARK Y Airfoil, который является популярным выбором для радиоуправляемых самолетов.

Крыло типа CLARK Y Airfoil для нашего самолета

Я загрузил форму аэродинамического профиля с сайта airfoiltools.com в формате .SVG, а затем импортировал его в Fusion 360. Я соответствующим образом отрегулировал размер, так что хорда крыла, или длина крыла в направлении потока, составила около 1/5 размаха крыла.

Место крыла в общей конструкции самолета

Горизонтальный и вертикальный стабилизаторы также имеют размеры в соответствии с этими основными рекомендациями. Вот некоторые из основных параметров конструкции радиоуправляемой модели самолета:

Основные параметры конструкции радиоуправляемой модели самолета

Фюзеляж самолета будет изготовлен из двух 10-миллиметровых стенок и 50-миллиметрового сердечника, который будет полым для размещения электроники.

Вы можете скачать 3D-модель самолета по следующим ссылкам:

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

Генерация G-кодов для моего самодельного ЧПУ станка для пенопласта

Поскольку рабочая область моего станка ЧПУ для резки пенопласта на Arduino ограничена 45 см, а длина фюзеляжа составляет 60 см, мне пришлось сделать фюзеляж из двух частей.

3D модель нашего самолета

Итак, я разрезал фюзеляж на расстоянии 34 см от передней точки и сделал новый эскиз, в котором спроецировал форму и добавил точку рядом с ней. Далее, на вкладке производства Fusion 360 я могу сгенерировать G-код для резки форм.

Подготовка 3D модели для изготовления

Здесь сначала я создал новую настройку, выбрав эскиз в качестве модели, затем выбрал ранее добавленную точку в качестве начала координат для настройки и соответствующим образом отрегулировал оси X и Y.

Установка координат для станка с ЧПУ

Затем я выбрал операцию 2D-контура и выбрал или сгенерировал новый инструмент диаметром 3 мм, поскольку это приблизительный размер разрезов, которые делает горячая проволока при прохождении через пенополистирол. Здесь мы также можем задать скорость подачи резки, которая зависит от самой горячей проволоки и твердости пенополистирола. Я установил ее на 150 мм/м.

Затем во вкладке геометрии мы можем выбрать контур или форму, которую нужно вырезать. Что касается высот, я установил их все на 1 мм, поскольку на моем станке для резки пенопласта нет движения по оси Z. Наконец, во вкладке связывания я выбрал позицию входа, чтобы она была краем, расположенным рядом с исходной точкой.

Формирование пути для станка с ЧПУ

При этом генерируется траектория инструмента и мы можем взглянуть на нее, нажав кнопку Simulation. Траектория инструмента должна быть замкнутым циклом с одним проходом, и если это так, мы можем, наконец, сгенерировать G-код. Для этого мы можем перейти в Post Processes, выбрать прошивку GRBL, выбрать выходную папку, назвать файл и нажать кнопку post.

Формирование G-кода для GRBL

Затем мы можем сохранить файл и увидеть G-код в редакторе WordPad или в чем-то подобном.

Сформированный G-код для нашего проекта

Итак, теперь, когда у нас есть файл G-кода, мы можем загрузить его в универсальный отправитель G-кода (Universal G-code sender) и отправить G-код на станок с ЧПУ для создания формы.

Использование Universal G-code sender для отправки G-кода на станок с ЧПУ

Мы можем отметить, что процесс, который я вам только что показал, возможно, не самый лучший или совсем не профессиональный, но он все же справляется с задачей заставить G-коды работать с моим самодельным станком для резки пенопласта с ЧПУ.

Файлы G-кода можно загрузить здесь: G-код для модели самолета.

Как я уже сказал, для боковин я использовал пенопласт толщиной 1 см, а для середины — пенопласт толщиной 5 см.

Вырезание фюзеляжа самолета из куска пенопласта

Что касается крыла, я использовал 10-сантиметровый пенопласт, который я обрезал примерно на 30 см в ширину, потому что это максимальный диапазон, который может резать мой станок с горячей проволокой. Я поместил два профиля крыла в один файл G-кода и вырезал несколько из них.

Вырезание крыльев самолета из куска пенопласта

Чтобы получить размах крыльев 80 см, я склею 3 куска по 27 см, а чтобы они получились ровными, я вручную обрежу концы кусков так, чтобы они были перпендикулярны.

Сборка радиоуправляемого самолета

Итак, вот все детали из пенополистирола, которые я вырезал на станке с ЧПУ. Три детали для передней части, три детали для задней части и три детали для крыла. Теперь я могу начать их собирать.

Компоненты самолета, вырезанные из пенопласта

Начну с передней части. Для склеивания деталей я использую клеевой пистолет. Горячий клей немного расплавил пенопласт, но мне все равно удалось их склеить этим методом.

Склеивание деталей из пенопласта с помощью клеевого пистолета

Еще один хороший способ склеить пенополистирол — это 5-минутная эпоксидка. Перед тем как приклеить другую сторону, я сделаю держатель для двигателя. Для этой цели я использую алюминиевый профиль шириной 30 мм, который довольно легкий. Я отрезал профиль примерно на 18 см, разметил отверстия для крепления двигателя и просверлил их сверлом диаметром 3 мм. Затем я согнул профиль под углом 90 градусов. Я закрепил двигатель на держателе с помощью нескольких болтов М3.

Закрепление двигателя для самолета на держателе

Используя эту сборку, я сделал отверстие в передней части пенопласта. Затем, используя канцелярский нож, я увеличил отверстие до 30 мм в диаметре, что соответствует диаметру двигателя.

Далее, с другой стороны держателя двигателя я сделал 4 отверстия, которые будут служить для крепления держателя на месте, а также для крепления шасси. Я отметил расположение этих отверстий на фюзеляже и с помощью сверла 4 мм вручную сделал отверстия в пенопласте. Я сделал еще одну алюминиевую деталь длиной около 7 см с такими же отверстиями, и теперь я могу использовать ее для крепления держателя двигателя.

Проделывание отверстий для держателя двигателя

Используя болты M4, мы можем легко закрепить держатель двигателя на месте, не повреждая пенополистирол. Однако я сделаю это позже, поэтому я снял их и продолжил склеивать другую сторону. Используя тот же метод, я также склеил задние части.

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

Соединение двух частей фюзеляжа

Я бы даже предложил использовать более крупные палки, потому что когда самолет упадет, он может легко сломаться здесь. Я добавил приличное количество горячего клея в место соединения и сжал их вместе. Вот он, фюзеляж готов, и я думаю, что он выглядит довольно круто.

Фюзеляж самолета в собранном виде

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

Изготовление стабилизаторов самолета

Для этого я отрезал около 1/3 их длины, и это будет их управляющая поверхность или руль высоты для горизонтального стабилизатора и руль направления для вертикального стабилизатора. Чтобы иметь возможность навесить управляющие поверхности на стабилизаторы, мне нужно было скосить их контактную поверхность. Опять же, я сделал это с помощью канцелярского ножа, и нам на самом деле нужен довольно острый нож, чтобы сделать эти разрезы чистыми.

Я продолжил делать стабилизаторы немного более аэродинамичными. Для этого я использовал наждачную бумагу и сделал их передние кромки скругленными. Я также немного отшлифовал задние кромки.

Сглаживание поверхностей стабилизаторов

Теперь, поскольку пенополистирол довольно хрупкий, я собираюсь обернуть всю площадь стабилизаторов и их управляющих поверхностей простой упаковочной лентой. Это не только сделает детали прочнее, но и увеличит аэродинамику, так как лента намного глаже, чем сам пенополистирол.

Обертывание стабилизаторов упаковочной лентой

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

Обрезание нижней части руля управления

Теперь, наконец, я могу сделать для него шарнир, и я делаю это снова с помощью упаковочной ленты. Так что я просто соединил две части вместе лентой, и это сделало довольно прочный шарнир.

Изготовление шарнира из упаковочной ленты

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

Изготовление шарнира для горизонтального стабилизатора

Я перешел к приклеиванию горизонтального стабилизатора к фюзеляжу с помощью горячего клея. Для закрепления вертикального стабилизатора я сначала вставил и приклеил 3 палочки для барбекю через горизонтальный стабилизатор и фюзеляж. Затем я нанес немного горячего клея на них и на контактную поверхность и крепко прижал стабилизатор.

Прикрепление стабилизаторов к фюзеляжу

На этом мы закончили со стабилизаторами и можем перейти к изготовлению крыла.

Итак, как я уже сказал, крыло будет сделано из 3 частей из-за ограниченной рабочей зоны моего самодельного станка для резки пенопласта с ЧПУ. Опять же, я использую палочки для барбекю для придания дополнительной прочности при склеивании частей. Для их точного присоединения по линии я использую прямую деревянную полосу, по которой я могу скользить частями.

Соединение 3-х частей крыла с помощью клея

После этого крыло на самом деле довольно хрупкое, так как оно длинное и жестяное. Поэтому я укреплю его, добавив к нему деревянную палочку. Я отрезал палочку по размеру и отметил на крыле место, где мне нужно сделать карман, чтобы я мог вставить в него палочку. Используя канцелярский нож, я медленно и осторожно сделал карман. Я добавил в него немного горячего клея и закрепил его на месте, не нарушая слишком сильно форму аэродинамического профиля.

Добавление к крылу деревянной палочки

Теперь крыло стало намного прочнее с деревянной палкой на месте. Хотя оно и прочнее, оно все равно легко развалится, если ударится о землю, поэтому я обмотаю все это упаковочной лентой так же, как я это делал со стабилизаторами. Я начал добавлять ленту с задней кромки крыла к передней кромке.

Обертывание крыла упаковочной лентой

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

Хорошо, следующим шагом будет изготовление управляющих поверхностей крыльев или элеронов. Я собираюсь сделать их шириной 22 см и длиной около 1/4 хорды крыла. Чтобы иметь возможность свободно двигаться, я отрезал около полусантиметра.

Изготовление элеронов для крыла

И, конечно, я обернул все выступающие края срезом. Затем я скосил нижнюю часть элерона под углом 45 градусов, и таким же образом, как было показано ранее, теперь я могу прикрепить его к крылу. Чтобы подогнать его к фюзеляжу и иметь возможность легко прикрепить крыло к фюзеляжу, мне пришлось сделать еще одну выемку в середине крыла.

Прикрепление крыла к фюзеляжу

Далее пришло время установить сервоприводы для управления элеронами. Я использую микро-сервоприводы Sg-90. Я отметил место, где они будут установлены, и с помощью канцелярского ножа аккуратно сделал отверстие в крыле, чтобы сервопривод мог туда влезть. Тем временем я снял кронштейны крепления сервоприводов, чтобы их форма была проще. Я нанес немного клея на сервопривод и вставил в отверстие.

Установка микро сервопривода внутрь крыла

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

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

Изготовление отверстия для рупора серводвигателя

Я буду использовать 2-миллиметровую стальную проволоку в качестве тяги управления, поэтому я сделал отверстие в роге с помощью сверла 2,5 мм. Я сделал небольшую канавку в элероне и приклеил рог на место. Затем я измерил, какой длины должна быть тяга управления, и сделал ее из 2-миллиметровой стальной проволоки с помощью плоскогубцев. Мы должны отметить, что при измерении и вставке тяг управления серводвигатели должны находиться в нейтральном положении.

Закрепление проволоки для управления элеронами

Мы можем сделать это, вручную поместив его в середину диапазона движения, или подключив его к сервотестеру, или сделать это с помощью Arduino. Я повторил процесс для другой стороны, и теперь крыло полностью готово.

Далее мне нужно установить сервоприводы для управления рулем направления и рулем высоты. Я использую те же самые 9g микро сервоприводы здесь, и процесс их установки на самом деле почти такой же, как я только что объяснил. Сначала я разметил место, сделал отверстие с помощью канцелярского ножа и приклеил два двигателя на место. Здесь они находятся рядом друг с другом, но их выходные валы находятся на противоположной стороне.

Установка сервоприводов для управления рулем направления и рулем высоты

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

Установка тяг управления в задней части самолета

Хорошо, теперь я собираюсь установить два 8-миллиметровых деревянных стержня, которые будут служить для крепления крыла к фюзеляжу. Я сделал отверстия вручную, используя 6-миллиметровое сверло. Стержни должны выступать примерно на 1 см с обеих сторон. Я также прикрепил их к фюзеляжу с помощью горячего клея, и вот как они на самом деле работают.

Стержни для крепления крыла к фюзеляжу

Мы используем резиновые ленты для крепления крыла к фюзеляжу. Таким образом, крыло можно легко снять, а в случае раздавливания резиновые ленты значительно снизят удар по крылу. В то же время сборка достаточно прочная.

Резиновые ленты для крепления крыла к фюзеляжу

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

Изготовление шасси для самолета

Для крепления колес к профилю я буду использовать болты М5 и алюминиевую трубку с внутренним диаметром 6 мм. Трубка закреплена на кронштейне с помощью болта М5 и гайки, а по бокам я добавил шайбы М5, чтобы колесо могло свободно вращаться вокруг трубки. Таким же методом я сделал колесо для задней части самолета.

Шасси самолета в собранном виде

Принципиальная схема самолета

Итак, как мы уже рассматривали, этот радиоуправляемый самолет полностью основан на Arduino, и передатчик, и приемник представляют собой индивидуальные сборки на базе платы Arduino Pro Mini.

Передатчик и приемник для радиоуправляемого самолета

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

Принципиальная схема радиоуправляемого самолета на основе платы Arduino представлена на следующем рисунке.  

Принципиальная схема радиоуправляемого самолета на основе платы Arduino

Итак, радиосвязь в нашем самолете основана на модулях NRF24L01. Хотя это может показаться немного сложным, этот самодельный передатчик Arduino на самом деле довольно прост. Он имеет несколько контроллеров, джойстики, потенциометры и несколько кнопок, и он постоянно отправляет их данные на приемник. Приемник принимает эти данные по беспроводной связи через модуль NRF24L01 и выдает соответствующие команды на сервоприводы и бесщеточный двигатель для управления самолетом.

Управление сервоприводами и бесколлекторными двигателями с помощью Arduino также довольно простое, поэтому, я думаю, вся эта концепция самолета на Arduino не так уж и сложна для понимания. Бесколлекторный двигатель, который я использую в этом проекте, имеет номинал 1000 кВ и требует 30 А ESC. ESC управляет двигателем, а также обеспечивает питание Arduino и сервоприводов через функцию схемы Battery Eliminator, которая выдает 5 В. А питание ESC и бесколлекторного двигателя осуществляется от 3S Li-Po батареи.

Я добавил еще одну функцию к этому самолету, и это простой светодиод, который будет показывать, если батарея разряжена. Используя простой делитель напряжения, мы понижаем 12 В, поступающие от батареи Li-Po, до примерно 5 В, чтобы мы могли считывать их с аналогового входа Arduino и таким образом знать, когда батарея упадет ниже 11 В. Приемник все еще имеет несколько свободных каналов, поэтому мы можем добавить больше функций к этому самолету, если захотим, например, стробоскопы, закрылки, механизмы сбрасывания и так далее.

Необходимые компоненты

  1. Плата Arduino Pro Mini (купить на AliExpress).
  2. Модуль nRF24L01 + PA + LNA (купить на AliExpress).
  3. Сервомоторы SG 90 (купить на AliExpress).
  4. Бесщеточный двигатель.
  5. ESC 30A (купить на AliExpress)
  6. Li-Po аккумулятор.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Завершение сборки самолета

Тем не менее, давайте закончим сборку нашего самолета. Итак, я подключил все, как описано в схеме. На канале 1 руль направления, на канале 2 руль высоты, на каналах 3 и 4 элероны, а на канале 6 светодиод. Я приклеил светодиод с одной стороны, а выключатель питания с другой.

Подключение каналов управления

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

Прикрепление шасси к фюзеляжу самолета

Итак, как только я подключил аккумулятор к ESC, я все втиснул. Наконец, используя удлинительные кабели, я могу легко подключить элероны крыла к приемнику, а затем закрепить крыло на фюзеляже.

Подключение элеронов крыла к приемнику

Спереди я прикрепил пропеллер к двигателю, и теперь осталось проверить центр тяжести (ЦТ) самолета.

Прикрепление пропеллера к двигателю

Центр тяжести, вероятно, является наиболее важным фактором, определяющим, будет ли самолет летать хорошо или вообще полетит.

Проверка центра тяжести самолета

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

Регулировка центра тяжести самолета

Вот и все, наш радиоуправляемый самолет на базе Arduino готов, и мы можем выйти на улицу, чтобы опробовать его.

Тестирование самолета на Arduino

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

Результаты первого полета самолета

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

Укрепление конструкции самолета

В нижней части отсека с электроникой я сделал два отверстия: одно для выхода воздуха, поступающего из переднего отверстия, а другое для вывода антенны NRF24L01 наружу для увеличения дальности действия батареи.

Хорошо, вот попытка номер два. Опять почти то же самое, хотя теперь кажется, что поток воздуха или мощность лучше.

Второй полет самолета

Фюзеляж снова сломался, что говорит о том, что этот пенополистирол довольно слаб для этой цели. Я сделал новый фюзеляж, и на этот раз использовал немного клейкой ленты для его укрепления.

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

Я починил его и на этот раз обмотал почти весь фюзеляж клейкой лентой и упаковочной лентой. Мне следовало сделать это гораздо раньше, так как это придало фюзеляжу нужную прочность, и он не сломался даже после нескольких дополнительных столкновений.

Финальная версия радиоуправляемого самолета

Проблема теперь в том, что после нескольких столкновений я сломал все 4 пропеллера, которые у меня были, поэтому в этой попытке я использую склеенный пропеллер. Конечно, пропеллер развалился на взлете.

Я попробовал использовать еще один склеенный пропеллер, сделанный из двух уже сломанных пропеллеров, и на этот раз мне повезло, и самолет наконец-то нормально взлетел.

Самолет наконец то летит

Но удача длилась недолго, поскольку пропеллер снова сломался в воздухе.

Поломка пропеллера самолета во время полета

Тем не менее, поскольку это был мой первый опыт управления радиоуправляемым самолетом, полагаю, я могу считать этот проект успешным, поскольку мне удалось доказать концепцию создания системы управления радиоуправляемыми самолетами полностью на базе Arduino.

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

Самолет вместе с передатчиком для управления им

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

Код программы Arduino для самолета

Итак, наконец, давайте взглянем на код Arduino этого RC-самолета на базе Arduino и завершим этот проект. Код точно такой же, как объяснялось в предыдущем уроке, для управления сервоприводами и бесколлекторными двигателями с использованием приемопередающих модулей NRF24L01.

Вот полный код для этого проекта радиоуправляемого самолета на базе Arduino:

Описание работы кода: Я просто быстро объясню основные функции кода, а для всех остальных деталей вы можете проверить предыдущий урок. Итак, после получения данных, поступающих от передатчика, мы используем значение оси Y джойстика для управления дроссельной заслонкой самолета. Мы преобразуем значения от 80 до 255, поступающие от передатчика, в значения от 1000 до 2000, которые используются для управления бесщеточным двигателем.

Для управления углом возвышения мы используем значение оси Y джойстика 2, которое преобразуем в значения от 85 до 35. Эти значения напрямую задают положение серводвигателя в градусах. Рядом с ними мы можем заметить, что у нас есть переменные travelAdjust, значение которых зависит от положения правого потенциометра. Фактически мы используем это значение для уменьшения положения или перемещения сервоприводов, хотя джойстики перейдут в максимальное положение.

Тот же принцип применяется для управления элеронами и рулем направления. Кроме того, мы используем данные с левого потенциометра для регулировки нейтральной точки руля направления.

Наконец, используя функцию analogRead() и немного математики, мы управляем светодиодом индикатора напряжения батареи.

Видео, демонстрирующее процесс сборки и работы самолета

Источник статьи

(Проголосуй первым!)
Загрузка...
311 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *