Arduino RC Airplane | 100% DIY – How To Mechatronics

Arduino RC Airplane | 100% DIY - How To Mechatronics Конструкторы

Arduino rc airplane code

So finally, let’s take a look at the Arduino code of this Arduino based RC airplane and wrap this project up. The code is exactly the same as explained in the previous tutorial, for controlling servos and brushless motors using the NRF24L01 transceiver modules.

Here’s the complete code for this Arduino RC airplane project:

#include#include#include#include#define led 9RF24 radio(3, 2); constbyte address[6] = "00001"; unsignedlong lastReceiveTime = 0; unsignedlong currentTime = 0; Servo throttle; Servo rudderServo; Servo elevatorServo; Servo aileron1Servo; Servo aileron2Servo; int throttleValue, rudderValue, elevatorValue, aileron1Value, aileron2Value, travelAdjust; structData_Package {byte j1PotX; byte j1PotY; byte j1Button; byte j2PotX; byte j2PotY; byte j2Button; byte pot1; byte pot2; byte tSwitch1; byte tSwitch2; byte button1; byte button2; byte button3; byte button4; }; Data_Package data; voidsetup(){ Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); radio.setAutoAck(false); radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_MAX); radio.startListening(); resetData(); throttle.attach(10); rudderServo.attach(4); elevatorServo.attach(5); aileron1Servo.attach(6); aileron2Servo.attach(7); pinMode(led, OUTPUT); } voidloop(){ currentTime = millis(); if ( currentTime - lastReceiveTime > 1000 ) { resetData(); } if (radio.available()) { radio.read(&data, sizeof(Data_Package)); lastReceiveTime = millis(); } throttleValue = constrain(data.j1PotY, 80, 255); throttleValue = map(throttleValue, 80, 255, 1000, 2000); throttle.writeMicroseconds(throttleValue); travelAdjust = map(data.pot2, 0, 255, 0, 25); elevatorValue = map(data.j2PotY, 0, 255, (85 - travelAdjust), (35 travelAdjust)); elevatorServo.write(elevatorValue); aileron1Value = map(data.j2PotX, 0, 255, (10 travelAdjust), (80 - travelAdjust)); aileron1Servo.write(aileron1Value); aileron2Servo.write(aileron1Value); if (data.j1PotX > 127) { rudderValue = data.pot1 (data.j1PotX - 127); } if (data.j1PotX < 127) { rudderValue = data.pot1 - (127 - data.j1PotX); } rudderValue = map(rudderValue, 0, 255, (10 travelAdjust), (90 - travelAdjust)); rudderServo.write(rudderValue); int sensorValue = analogRead(A3); float voltage = sensorValue * (5.00 / 1023.00) * 3; if (voltage < 11) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } voidresetData(){ data.j1PotX = 127; data.j1PotY = 80; data.j2PotX = 127; data.j2PotY = 127; data.j1Button = 1; data.j2Button = 1; data.pot1 = 1; data.pot2 = 1; data.tSwitch1 = 1; data.tSwitch2 = 1; data.button1 = 1; data.button2 = 1; data.button3 = 1; data.button4 = 1; }

Code language:Arduino(arduino)

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

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

The same principle is applied for controlling the ailerons and the rudder.  Additionally, we use the data from the left potentiometer to adjust the neutral point of the rudder.

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

Assembling the rc airplane

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

I will start with the front part. I’m using a glue gun for gluing the pieces together. The hot glue was melting a little bit the Styrofoam but still I was able to glue them using this method.

Another good way to glue Styrofoam is with 5-minutes epoxy. Before gluing the other side, I will make the holder for the motor. For that purpose, I’m using 30mm wide aluminum profile which is pretty light weight. I cut the profile at around 18cm, marked the holes for mounting the motor, and drilled them using 3mm drill bit. Then I bent the profile at 90 degrees. I secured the motor to the holder using some M3 bolts.

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

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

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

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

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

Next, using a utility knife I’m cutting two pieces of 10 mm stick Styrofoam which will be the horizontal and the vertical stabilizers. I beveled the edges so they look better and also be a little more aerodynamic. The stabilizers will be directly glued to the back side of the fuselage but before I do that, I will first make their controller surfaces.

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

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

Now, as the Styrofoam is quite fragile, I’m going to wrap the whole area of the stabilizers and their control surfaces with a simple packing tape. This will not only make the parts stronger but also increase the aerodynamic, as the tape is much smoother than the Styrofoam itself.

Designing the rc airplane – 3d model

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

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

Finishing the assembling

Nevertheless, let’s finish the assembly now. So, I connected everything as explained in the circuit diagram. On channel 1 is the rudder, channel 2 the elevator, channel 3 and 4 the ailerons, and on channel 6 the LED. I glued the LED on one side and the power switch on the other side.

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

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

On the front, I attached the propeller to the motor and what’s left now is to check the CG or the center of gravity of the airplane.

CG – это, вероятно, самый важный фактор в определении того, хорошо или плохо летает самолет.

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

That’s it, our Arduino based RC airplane is now done and we can go outside to try it out.

Generating g-codes for my diy cnc foam cutter

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

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

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

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

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

With this the toolpath is generated and we can take a look at it by clicking the Simulation button. The toolpath should be a closed loop single pass, and if that’s the case, we can finally generate the G-code. For that we can go to Post Processes, select the GRBL firmware, select the output folder, name the file and click the post button.

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

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

We can note that the process that I’ve just showed you is probably not the best one or not professional at all, but still it does the job for getting the G-codes to work with my DIY CNC Foam Cutting Machine. Of course, for more details about this DIY CNC machine you can check my particular tutorial for it, the link is in the description of the video.

G-код можно загрузить отсюда:

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

As for the wing, I used 10cm tick Styrofoam which I cut it around 30cm wide because that’s the maximum span my hot wire machine can cut. I placed two wing profiles in single G-code file and I cut couple of them.

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

Overview

So, the airplane is entirely made out of Styrofoam. For making the shapes I used my Arduino CNC Foam Cutting Machine which I already showed you how I built it in a previous video. Although I’m using a CNC machine for building this Arduino RC airplane, I can still say it’s 100% DIY because the CNC machine is also a DIY build.

Кроме того, управление самолетом также на 100% DIY, на основе Arduino и модуля NRF24L01 для радио связи.

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

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

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

Testing the arduino rc airplane

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

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

Авиамодели с управлением на arduino.

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

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

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

Используя два модуля NRF24L01 между пультом дистанционного управления и моделью, все будет управляться Arduino Pro Mini. Кроме того, будет установлен пропеллер на электродвигателе. Питание можно обеспечить от двух батарей (одна для модели и одна для пульта), со стабилизированным напряжением. Вам понадобятся сервоприводы для управления элеватором и поворота рулей. Для дистанционного управления необходима пара джойстиков.

Управлять всем будет Arduino Pro Mini

Как насчет того, чтобы увидеть виды с высоты? Может быть, вас заинтересует полет на воздушном шаре в Москве? Теперь летать рядом с вашим домом стало проще простого. Недостатком этого самодельного устройства является то, что он охватывает только около 20-25 метров.

полет на воздушном шаре в Москве

Эта тема позволяет дать волю воображению. ESP32-CAM можно использовать для создания самолета с камерой, которую можно вывести на экран телефона.

Не бойтесь экспериментировать, пробуйте себя в чем-то новом и открывайте для себя новые двери в этом мире. Удачи вам.

Понравилась новостьАвиамодели с управлением на Arduino? Не забудь поделиться с друзьями в соц. сетях.

Вы также можете подписаться на наш канал на YouTube и присоединиться к группе в Facebook.

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

Используя Arduino, можно построить собственную сложную систему радиоуправления, не затрачивая много времени и усилий. Для Arduino, популярной в настоящее время платформы, существует широкий спектр модулей. Например, модуль nrf24l01, используемый для радиосвязи. Этот модуль бывает разных видов. Существуют модули для связи на расстоянии до 100 м, они маленькие и недорогие

Для компактности можно использовать, например, Arduino:

Можно использовать любой arduino, но эти два (описанные выше) – самые простые. Существуют, например

Теперь давайте посмотрим на схему передатчика:

Рисунок 1 – передатчик на базе Arduino

На этом передатчике есть 10 кнопок и 5 потенциометров. Допустим, мы хотим управлять двумя сервами, тремя ШИМ, одним пьезодинамиком и восемью цифровыми выходами удаленно по какой-то причине (например, управлять системой освещения). сделать 8 огней для радиоуправляемой машины или 1 свет и оставить 7 выходов для чего-то на будущее). Аналогично можно подключить кнопки и потенциометры радиомодуля к другому arduino, используя надписи на плате arduino. Теперь давайте посмотрим на приемник:

Рис. 2 – Приемник Arduino

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

В начале скетча подключаются заголовочные файлы для связи с радиомодулем, затем назначаются пины для связи с радиомодулем через SPI, указывается ID трубки, который должен совпадать с ID трубки, указанным в скетче приемника (см. ниже), создается массив для передачи данных на приемник. Далее следует функция инициализации, где инициализируется и конфигурируется радиомодуль, затем конфигурируется для передачи данных, инициализируются входы arduino и на всякий случай выполняется небольшая задержка. В основном цикле считываются значения потенциометров сервопривода и преобразуются в градусы с помощью функции map. Затем следующая ячейка карты заполняется состояниями входов arduino, бит за битом. Далее считываются значения потенциометров для управления ШИМ, делятся на 4, поскольку аппаратное обеспечение ШИМ в arduino занимает 1 байт. Два оставшихся состояния от кнопок подаются в оставшуюся ячейку матрицы и, наконец, отправляются на приемник.

Теперь эскиз приемника:

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

Тест радиоуправления с помощью arduino можно увидеть в следующем видеоролике:

Сделай сам самолёт | робототехника королев ардуино мытищи щелково пущино серпухов

Планки для самолетов изготавливаются из полипропиленовой ламинатной подложки толщиной около 3 мм. Крыло может быть гибким с продольными полосами. Для лонжерона крыла и продольного усиления фюзеляжа используйте линейки длиной 50 см. Для крепления съемных крыльев вам понадобится фанера для моторамы и портновские резинки (шириной 1 см). Для усиления фюзеляжа используется плита утеплителя.

Вам понадобятся: металлическая линейка, нож (желательно острый), клей для плитки (“Титан”), скотч, армирующая лента (“Серпантин”), малярный скотч, термоклеевой пистолет и стержни, мелкая наждачная бумага, зажимы и клей ПВА.

Смотрите про коптеры:  Краткий гайд по квадрокоптерам для FPV | Пикабу
Оцените статью
Радиокоптер.ру
Добавить комментарий