У каждого человека есть определённая тема, к которой он испытывает некое иррациональное влечение. У автора этой статьи такой темой является авиамоделирование: на тот момент, когда ещё существовали авиамодельные кружки, автор пришёл в него записываться и ему сказали, что он ещё слишком мал и лучше прийти через пару лет. А через пару лет распался Советский Союз и всем стало совсем даже не до кружков — на дворе наступили «благословенные» 90-е годы…
Однако, «гештальт сам себя не закроет» и автор решил тряхнуть стариной и попробовать собрать свою первую авиамодель (лучше поздно, чем никогда, да и в авиамодельный кружок опять не возьмут — теперь уже по причине старости :-)
Сразу небольшой спойлер: на данный момент работа находится на этапе полной успешной разработки электронной части, остаётся только всю эту начинку укрепить на авиамодели и, наконец-то, приступить к полётам! Кроме того, наше время даёт новые интересные возможности, в частности, можно установить на авиамодель камеру и получить новый интересный опыт.
Ниже будет описание опыта работы автора над электронной начинкой, а также весь необходимый исходный код и другие полезности, которые вы можете использовать в своих проектах!
Итак…
Что собираем, как и почему
В наше время есть огромное количество необходимых электронных компонентов на любой вкус и кошелёк, однако это не спортивно, и лучше собрать всё с нуля (так как наша задача — не полететь за минимальное время, а научиться новому, повозиться с «железом»). Таким образом, вся дальнейшая сборка будет во главу угла ставить возможность программирования и гибкой настройки практически всех компонентов.
Понятно, что для любого более-менее далеко летающего аппарата необходим будет условно большой радиус связи, так как летающий аппарат отличается тем, что может за короткое время покрыть большое расстояние и чуть ли не практически моментально «уйти за пределы видимости». А нам этого не надо.
Одним из самых простых и недорогих способов, на взгляд автора, является использование радиомодулей NRF24L01.
Тут надо сделать небольшое уточнение: дело в том, что подобных модулей существует две версии:
- Менее дальнобойная, которая позволяет осуществлять связь на скоростях до 2 мбит/с и на расстоянии до 100 м.
Картинка 3d-diy.ru
- Более дальнобойная, NRF24L01+PA+LNA, которая обеспечивает связь до 1100 м и имеет в составе усилитель и внешнюю антенну.
Картинка 3d-diy.ru
Мы выберем второй вариант, так как у него есть «красивая антенка» :-) Хотя, конечно же, не поэтому, но вы уже поняли почему. Скорость связи сильно зависит от расстояния между двумя соединяемыми модулями и от того, находятся они в прямой видимости или закрыты друг от друга преградами.
Кроме этих вариантов, можно попробовать и что-нибудь на базе других способов, взяв, например, тот же самый Wi-Fi на 1 км. Но выбранный способ автору показался одним из наиболее простых.
Борьба с проблемами NRF24L01+PA+LNA
▍ Питание
Модуль является очень чувствительным к питанию и требует его стабилизации желательно от отдельного источника, так как простое питание от пина Arduino, как правило, не позволяет его обеспечить достаточным уровнем тока, что приводит к нестабильной работе или даже вовсе к неспособности функционирования.
Чувствительность его объясняется тем, что в момент старта модуль потребляет достаточно большие токи. По опыту других людей и по опыту самого автора, одним из наиболее действенных способов борьбы с этой бедой является двойственный подход:
- использование родного адаптера питания со стабилизатором, выходная мощность по току у которого составляет порядка 800 мА;
Картинка 3d-diy.ru
- параллельно желательно припаять к пинам питания самого радиомодуля конденсатор, где-нибудь на 100 мкФ. Это позволит сгладить пиковые пульсации питания в момент запуска модуля.
▍ Помехи радиосвязи
Ещё одной существенной проблемой является крайняя чувствительность радиотракта модулей к помехам. Настолько высокая, что многим, включая и автора, удалось «завести» этот модуль только после того, как его плата была обмотана пекарной кухонной фольгой!
Технология здесь следующая: чтобы у нас ничего не замкнуло, мы сначала обматываем плату простой бумагой, после чего укрепляем эту бумагу одним-двумя витками скотча, а уже поверх скотча наматываем фольгу и поверх фольги заново укрепляем её скотчем.
Почему так: автору не хотелось, чтобы скотч оставил свой липкий слой на плате, поэтому он был отделён от платы слоем бумаги. Если «правильной» фольги под рукой не окажется, то, как показали эксперименты, годится даже блестящий металлизированный фантик от конфеты или, например, творожного батончика.
Без этого лайфхака вы будете делать всё правильно, «вырвете все волосы на голове», но работать оно не будет от слова никак…
Причём нужно обмотать фольгой как плату передатчика, так и приёмника.
▍ Правильная библиотека
Ещё одним существенным фактором, влияющим на успех процесса запуска радиомодуля, является правильная библиотека под Arduino.
По ссылке можно найти библиотеку, которая позволяет запускать модули, приобретённые в известном китайском магазине.
Перечисленные выше нюансы являются причиной того, что даже у признанных мастодонтов, которые далеко не первый день сидят в электронике и программировании, не выдерживают нервы: указанные модули летят в мусорную корзину или раздаются забесплатно по знакомым. («Будь проклят тот день, когда я сел за баранку этого пылесоса!» ©) Кстати, не утрирую, это абсолютно реальные случаи...
Однако если вы примете в расчёт вышесказанное, всё у вас будет хорошо…
В благодарность за своё терпение вы получаете один из самых недорогих (чуть более 200 руб.) и дальнобойных модулей, обеспечивающих хорошую и скоростную связь, а также позволяющих настраивать множество параметров.
Хорошо, с радиосвязью мы разобрались. А теперь — что именно мы будем собирать? Необходимо определиться с этим, так как именно от вида финального изделия будет зависеть и комплекс требований к моторной установке…
Пенолёт из потолочки и разные варианты решения
Некоторое время назад автору попалась на глаза идея создания простого и лёгенького, но в то же время достаточно прочного самолёта — сборка так называемого пенолёта из потолочки.
Подобного типа самолёты собираются из лёгкой пенопластовой декоративной плитки, которой оклеивают потолки. Как правило, она имеется в изобилии в хозяйственных магазинах.
Для сборки подобного самолёта достаточно купить пачку потолочной плитки (около 150 руб. за 10 штук 0.5 х 0.5 м в Москве), силиконовый термоклей с пистолетом для него, а также острый канцелярский нож.
В результате получается очень прочный и лёгкий самолётик, а сам процесс сборки доставляет множество приятных минут, так как проходит достаточно легко и даёт множество возможностей для творчества.
В видео выше показана сборка самолёта из иного материала, однако мы будем использовать потолочку.
Соответственно, для нас сгодится достаточно скромная по мощности силовая установка.
Вариант силовой установки: коллекторный двигатель
С учётом всего вышеперечисленного и в результате поисков в интернете была найдена следующая страничка, где разбирается практическая сборка пенолёта, а в качестве силовой установки которого используется коллекторный двигатель + специальный электронный регулятор оборотов для коллекторных двигателей (Bidirectional Brush Electric Regulator).
Кстати сказать, на этой страничке внизу имеется код приёмника и передатчика, который по идее можно взять. Однако у автора этот код так и не заработал, так как выяснилось, что нужно внести изменения, чтобы он запустился (в случае организации связи между двумя NRF24L01+PA+LNA). Как заставить его заработать — об этом ниже.
После изучения изложенной информации появилось понимание, что использовать подобный регулятор это будет «слишком кучеряво», так как нам вовсе не нужна функция смены направления вращения двигателя (так как самолёт не планирует летать хвостом вперёд).
Поэтому для наших целей вполне сгодится мощный полевой транзистор с логическим уровнем, который сможет открыться от напряжения 3-5 В и будет выступать в роли силового ключа, подающего питание на двигатель. Для регулировки же скорости оборотов будет использован ШИМ.
Стало быть, решено! Был приобретён полевой транзистор, у которого максимальное открытие наступает при 1,7 В, а если с запасом — то 2,2 В. То, что нужно.
В качестве двигателя был взят первый валявшийся под рукой коллекторный электродвигатель, в качестве винта для него были куплены винты от дрона. Так как «правильных» крепежей для винта, которые бывают на «профессиональных» двигателях для самолётов и дронов, под рукой не было, пришлось распечатать на 3D-принтере вставку (оранжевого цвета), нарезать на винте и на самой вставке резьбу и вкрутить одно в другое:
Подключать двигатель к Arduino мы будем по следующей схеме:
Картинка alexgyver.ru
В результате получилось вот что:
В качестве источника питания были взяты два элемента 18650, подключённых последовательно.
Однако автора результаты не устроили несмотря на то, что всё заработало как нужно. Дело в том, что для эффективного взлёта самолёта необходимо было повышать напряжение питания до таких величин, что произошло бы физическое возгорание коллекторного двигателя (три элемента 18650 были подключены последовательно, так как одного или двух недостаточно — слишком малая тяга и обороты).
Ранее было упомянуто о том, что код на приведённой выше страничке не работает. Экспериментально было выявлено, что для выбранного типа радиомодуля в код требуется внести следующие изменения (т. е. изменить первичную настройку радиомодуля):
radio.begin(); // Инициализация модуля NRF24L01
radio.setChannel(5); // Обмен данными будет вестись на пятом канале (2,405 ГГц)
radio.setDataRate (RF24_1MBPS); // Скорость обмена данными 1 Мбит/сек
radio.setPALevel(RF24_PA_HIGH); // Выбираем высокую мощность передатчика (-6dBm)
radio.openReadingPipe (1, pipeIn); // Открываем трубу ID передатчика
radio.startListening(); // Начинаем прослушивать открываемую трубу
Тем не менее, скорее всего, проблема бы решилась, если взять более мощный коллекторный двигатель. Однако автор решил пойти более кардинальным путём.
Если вы захотите попробовать собрать свой радиоуправляемый самолёт, используя коллекторный двигатель, вы вполне можете взять код, который был модифицирован автором именно для этого случая.
Вот ссылка на код приёмника и передатчика.
Однако тут следует отметить, что для интереса в качестве микроконтроллера для передатчика была использована Arduino Nano, а в качестве микроконтроллера приёмника на самом самолёте — esp32. И код, ссылка на который приведена выше, будет работать именно для этого случая.
Важным моментом является правильное подключение радиомодуля к микроконтроллерам.
В случае пульта управления, мы подключаем модуль к микроконтроллеру по следующей схеме:
Картинка rcpano.net
В случае же микроконтроллера esp32 (микроконтроллер на самолёте), мы используем следующую схему:
Картинка dzen.ru
То есть контакты радиомодуля и пины микроконтроллера esp32 соотносятся следующим образом:
- MISO — 19 пин,
- MOSI — 23 пин,
- SCLK — 18 пин,
- CSN — 5 пин,
- CE — 4 пин.
Вариант силовой установки: бесколлекторный (BLDC) двигатель
Как было уже сказано выше, автор решил пойти более кардинальным путём после первого не совсем удачного эксперимента. Его можно было бы довести до успешного результата, использовав более мощный коллекторный двигатель, однако, раз уж подвернулась такая оказия, было решено более подробно ознакомиться с бесколлекторными модельными двигателями, так называемыми BLDC.
Для этого в известном китайском магазине было закуплено 2 отдельных набора, каждый из которых содержит электронный регулятор оборотов (Electronic Speed Controller — ESC), бесколлекторный двигатель, винт и систему его крепежа, а также несколько мощных литий-полимерных (могут отдавать очень большие токи за очень короткое время) аккумуляторов и «правильную» зарядку с балансировкой заряда для них.
Двигатели были взяты двух типов: 1400 kv и 2200 kv. Эти цифры означают, что на каждый вольт поданного напряжения питания двигатели раскрутятся до таких оборотов.
Так как напряжение питания у нас составляет 11,1 В, то, соответственно, двигатели наберут следующие обороты (понятно, что это обороты холостого хода, под нагрузкой они будут меньше):
- 11,1х1400=15540 об/мин;
- 11,1х2200=24420 об/мин.
Как было сказано выше, каждый из наборов содержит так называемый ESC, который служит для регулировки оборотов двигателя. Из него выходит ряд проводов:
- для подачи питания на двигатель (3 провода) — если после подключения к двигателю выяснится, что он крутится не в ту сторону, в которую нужно, достаточно поменять местами любые два провода;
- для подключения аккумулятора (2 провода);
- балансировочный разъём для правильной зарядки с балансировкой заряда между элементами аккумулятора;
- так называемый разъём BEC — Battery Eliminating Circuit, то есть разъём, который позволяет запитывать не только двигатель, но и электронную плату микроконтроллера от того же самого аккумулятора (то есть исключает потребность в отдельном источнике питания для бортовой электроники).
Вообще говоря, ранее с такой штукой, как ESC, сталкиваться не приходилось. И при её изучении выяснилось, что это довольно-таки интересная вещь!
Если сказать вкратце, то это такой маленький микроконтроллер, который может отслеживать вращение двигателя и умно его запитывать.
Типов ESC может быть два (поправьте, если ошибаюсь):
- без возможности изменения его поведения с помощью программирования (автору «повезло» и он купил именно такой);
- с возможностью изменения его поведения с помощью программирования. Зачем вообще нужно программировать ESC: чтобы он наиболее полно отвечал будущим условиям эксплуатации.
Способов программирования поведения ESC может быть два:
- с помощью специальной «карты»;
- с использованием звукового способа, так называемого, «по пикам» (не уверен, что это абсолютно корректное название, однако автор в видео ниже называет его именно так). То есть происходит настройка с ориентировкой на звуковой сигнал, который даёт возможность понять, что мы перемещаемся по определённым пунктам меню. Это позволяет избежать использования любых графических интерфейсов при настройке и использовать, так сказать, звуковой интерфейс.
Для управления бесколлекторным двигателем достаточно использовать способ, подобный тому, который используется для управления сервоприводами, то есть с использованием ШИМ-сигнала. Посылая сервоприводам управляющий сигнал с импульсами разной ширины и постоянной частоты, можно добиться их поворота на нужный угол (чаще всего используются сервоприводы с поворотом на 180°). Обычно для сервопривода генерируют сигнал с частотой в 50 Гц. Это означает, что один импульс испускается и принимается с периодами в 20 мс. При этом, например, если длительность одного импульса составит 1520 мкс, то сервопривод повернётся в среднее положение (другие положения достигаются по аналогичной логике, см. картинку ниже):
Картинка stepik.org
Пример такого способа управления с использованием стандартной библиотеки управления сервоприводами для Arduino (Servo.h) показан здесь:
Однако вернёмся к нашей esp32. Подытоживая всё сказанное, получается, что для управления сервоприводами отклонения закрылок, а также двигателем, нам потребуется тот же самый принцип, что и для управления сервоприводами.
Но проблема заключается в том, что esp32 довольно криво поддерживает стандартную библиотеку Servo.h.
И что же делать? А вот что: так как мы разобрались, что нужно делать для управления сервоприводом, то ради интереса мы для управления используем два разных подхода:
- закрылками будем управлять с использованием чистого самодельного ШИМ-сигнала;
- бесколлекторным двигателем будем управлять с использованием специальной библиотеки для сервоприводов, предназначенной для esp32 (ESP32_Servo.h). По сути она делает то же самое, только всё это обёрнуто в удобную оболочку библиотеки для тех, кто не хочет лезть «под капот».
Стало быть, вкратце первый подход выглядит так:
#define low 1638
#define high 7864
#define timer 16
#define ServoPin1 33
#define ServoPin2 32
struct Signal {
byte throttle;
byte pitch;
byte roll;
byte yaw;
};
Signal data;
void ResetData()
{
// Определение начальных значений
// Среднее положение потенциометров (254/2=127)
data.throttle = 0; // Motor Stop
data.pitch = 127; // Center
data.roll = 127; // Center
data.yaw = 127; // Center
}
void setup() {
ledcSetup(3, 50, timer);
ledcAttachPin(ServoPin1, 3);
ledcSetup(4, 50, timer);
ledcAttachPin(ServoPin2, 4);
}
void recvData()
{
ledcWrite(3, map(data.pitch, 0, 255, low, high) ); //серва1
ledcWrite(4, map(data.yaw, 0, 255, low, high) ); //серва2
}
Второй подход выглядит так:
#include <ESP32_Servo.h>
Servo myservo;
int servoPin = 27;
void ResetData()
{
// Определение начальных значений
// Среднее положение потенциометров (254/2=127)
void ResetData()
{
struct Signal {
byte throttle;
byte pitch;
byte roll;
byte yaw;
};
Signal data;
// Определение начальных значений
// Среднее положение потенциометров (254/2=127)
data.throttle = 0; // Motor Stop
data.pitch = 127; // Center
data.roll = 127; // Center
data.yaw = 127; // Center
}
void setup() {
myservo.attach(servoPin, 800, 2300);
}
void recvData()
{
myservo.write( map(data.throttle,0, 253, 0, 180) );
}
Итак, рабочий финальный код передатчика и приёмника для BLDC-двигателя можно скачать тут.
Библиотека для сервоприводов (под esp32) лежит тут.
Библиотека для модулей NRF — та же, что и выше. Продублирую для удобства.
Можно отметить, что код далеко не оптимальный и его ещё «оптимизировать и оптимизировать». Однако он работает. «А что ещё нужно человеку, чтобы спокойно встретить старость?» :-)
Кроме этого, уже после завершения проекта появилась идея усовершенствовать код следующим образом. Дело в том, что зачастую после сборки самолёта выявляется, что закрылки и хвостовой руль ориентированы не ровно посередине крыла и хвоста соответственно, а несколько отклонены вверх или вниз (или влево — вправо, если мы говорим о хвосте).
Для устранения этого на самолётах обычно калибруют сервопривод, выставляя нулевую точку. То есть, другими словами, для этого поворачивают сервопривод, чтобы он выставил закрылок или хвостовой руль ровно посередине крыла или хвоста, а затем запоминают это положение. Далее все отклонения в ту или иную сторону будут происходить относительно этой точки.
В нашем же случае для этих целей можно использовать незадействованную в данный момент функцию джойстиков, а именно их встроенную кнопку (на джойстик сверху можно нажать и сработает кнопка в основании стика). Там для этого есть отдельный пин для подключения сигнального провода, правда в рамках этого проекта данный провод пока остаётся незадействованным. То есть мы просто вручную чуть-чуть отклоняем стик, выставляя этим действием закрылок или хвостовой руль ровно посередине и нажимаем на кнопку стика. Вот и всё, сервопривод откалиброван! Однако это пока только в проекте, и будет реализовано чуть позже.
Далее нам потребуется ещё некий пульт управления, куда можно «запихнуть» всю электронику.
Для этого была разработана и распечатана на 3D-принтере следующая серия корпусных деталей (увидев их размер, стало совсем тоскливо — было установлено сопло 0,8 мм и каждая деталь печаталась всего лишь час или полтора):
Скачать 3D-модели джойстика можно здесь.
Питание джойстика осуществляется от двух элементов 18650, подключённых последовательно. Но пока временно был подключён внешний блок питания из четырёх батарей АА.
Ну и теперь самое интересное — тест всей системы в работе. Чтобы наглядно было видно, что система генерирует не «лёгкий ветерок», под винт был положен аккумулятор. По тому, как он сдувается ветром, думается, многое становится чуть более понятно:
Если до этого вы никогда не работали с бесколлекторными двигателями на редкоземельных магнитах, — их мощность вас поразит. Но к ним нужно относиться очень внимательно, так как они легко могут порубить на куски выступающие части вашего тела своим винтом.
Таким образом, если вы захотите повторить описанную аппаратную часть, вы можете взять код и 3D-модели из этой статьи и реализовать собственную систему управления.
В описанной системе используется всего 2 сервы, т. к. хотелось сделать более простую версию самолёта (отклоняться будет единый горизонтальный закрылок на хвосте и вертикальный руль там же). При желании и потребности вы можете добавить ещё серв в систему, посмотрев, как это сделано в коде сейчас, и поступив по аналогии.
Останется её только в дальнейшем дополнить той или иной моделью самолёта, изготовленного из потолочной плитки — и вперёд к небу…
Подытоживая весь рассказ, хочется сказать, что люди мечтали летать ещё с древнейших времён, и современные технологии дают возможность это осуществить.
При желании все требующиеся для такой задумки компоненты могут быть куплены, однако сборка своего устройства даст гораздо больше позитива и интересных моментов как в плане общения с железной частью, так и в плане решения возникающих проблем программирования. К тому же впереди праздники, а что может быть лучше, чем реализовать в течение них многовековую мечту человечества (даже если для конкретного человека)? :-)
К тому же, если пойти подобным путём, стоимость компонентов будет весьма скромной.
А со временем, если подобное занятие придётся по вкусу, можно вполне установить видеокамеру и перейти на более серьёзные технологии, например, собрать свой собственный дальнолёт.
Ведь полёты на самолёте или планере — это достаточно медитативное и приятное занятие:
Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх
Комментарии (51)
staticmain
00.00.0000 00:00-1В чем была проблема в заголовок статьи поставить любую картинку из самой статьи? Зачем вам это нейросетковое убожество? Минус тупо за то, что пытаетесь пользоваться принципом "люди клюют на картинки".
DAN_SEA Автор
00.00.0000 00:00+12Прошу прощения, если эта картинка вам доставила какое то неудовольствие. Однако, не нужно пытаться искать проблему там, где её нет ;-) Потому как я был просто не уверен в том, что у меня получится набросать соответствующую картинку. А копировать из поста - не самое лучшее, т.к. людям будет неинтересно смотреть 2 раза;-)
radioxoma
00.00.0000 00:00+2Осмысленного заголовка, из которого понятно, про что статья достаточно, чтобы обойтись без картинки совсем.
VitGo
00.00.0000 00:00-2тут вся статья это картинки и "клевая" тема.... :-) эта аппаратура очень дорога, и любая дешевая с алиэкспресс будет и в разы лучше и дальнобойнее и надежнее...
смысл делать ЭТО отсутствует от слова совсем.. но в принципе если делать нечего - то коты вообще яйца лижут....
так что просто для того чтобы было чем "руки занять" - вполне себе проект.. на деле ничего в нем интересного нет.. от слова совсем...
sargon5000
00.00.0000 00:00Ну почему же? Если прикрутить систему распознавания лиц, обеспечить грузоподъёмность хотя бы 200 грамм, ракетный ускоритель для конечной фазы полета, плюс геопозиционирование – такую штуку с руками оторвут в любом регионе России. См. "Балладу о гибкой пуле" Стивена Кинга.
VitGo
00.00.0000 00:00прикрутить к чему ?
вы вообще не в теме радиоуправляемых моделей ? (похоже что так)
никто, даже вот так: НИКТО и НИКОГДА не будет использовать приведенную систему управления для ла которые вы описали...!!!
и знаете почему ? потому что риск потери дорогостоящей начинки, самого ла - настолько высок (как и высока стоимость ла + его начинки) что экономить на системе управления - это надо быть последним дауном... к чему быстро приходят те кто пытается таким вот образом экономить..
даже пенолет более менее нормального качества никто не будет пользовать с "этим".. один раз подлетнуть может быть (на камеру).. и на этом все...
потому что любая аппаратура управления это еще и надежность... причем в каждом ее компоненте...
так что пусть ламеры продолжают минусовать, но это не мое мнение: это поделка интересна только в части развития автора как инженера.. изучения микроконтроллеров.. еще каких нить целей (задействовать 3д принтер например и научится корпуса проектировать).. и на этом все...
дальность этих модулей так себе, ни с одной стоковой аппаратурой не сравнить (если не брать совсем игрушки)... кстати находил на али более мощную версию этого передающего модуля...
так что игрушка это.. и как проект начинающего радиолюбителя несомненно интересен..и не более
AlexPost
00.00.0000 00:00Ну если не летать в FPV на километры - то дальность даже 300 метров вполне себе достаточно для LOS полета, когда самолет превращается в маленькую птичку- очень трудно им управлять, знаете ли. Сейчас то да, привыкли все к дальнобойности Crossfire и ELRS, меньше километра и не аппаратура считается вовсе. В то же время некогда популярный FlySky хорошо если метров на 600 без фэйлсэйвов отлетал, и ничего, летали как то.
VitGo
00.00.0000 00:00да ладно сказки рассказывать, вам сюда притащить человека который на стандарте улетал далеко за 1 км ?
AlexPost
00.00.0000 00:00На стандарте чего? Я сам на FrSky на крыле в FPV улетал на 5км в чистом полюшке вдали от города. Из тюнинга только замененная антенна на более длинную на передатчике. Если направленную прикрутить - то и на 10+ можно, вопрос нужно ли. FlySky без бустеров хорошо если на километр отпускает, но опять же направленной антенной можно чуток растянуть.
Вопрос же не в этом, а в том что в LOS-е такие дальности не нужны, там уже за 200м трудно различить каким боком самолет летит и куда.
An_private
00.00.0000 00:00+4Типов ESC может быть два (поправьте, если ошибаюсь):
По большому счету любой ESC состоит из четырех компонентов:
микроконтроллер
драйверы выходных ключей
выходные ключи
стабилизатор питания
А вот прошивок под это всё существует довольно много. Из популярных:
SimonK (стоит в большинстве копеечных китайских регуляторов)
BlHeli - открытый код, огромное количество поддерживаемых ESC, прекрасные возможности по настройке, легко кастомизируется (например, я делал версию BLHeli для регуляторов Cheerson CX20).
BLHeli32 - новая версия от того же автора, код закрыт
Вроде еще несколько новых появилось, но давно не следил, не в теме.
балансировочный разъём для правильной зарядки с балансировкой заряда между элементами аккумулятора
Это вы где-то что-то напутали - это не имеет отношения к ESC
Вообще - проект странноватый. Ну, то есть я понимаю стремление сделать всё самостоятельно с нуля - это должно быть довольно забавно. Но выбор компонентов вызывает оторопь - древний, как г.м. радиомодуль, esp32 в качестве декодера сигналов радиомодуля (основная прелесть - wifi - не используется вообще, выводов фиг да ни фига, многоканальный PWM делается через одно место) и в качестве вишенки - Arduino Nano для передатчика.
Месье знает толк в извращениях...
DAN_SEA Автор
00.00.0000 00:00балансировочный разъём для правильной зарядки с балансировкой заряда между элементами аккумулятора
Согласен;-) Это я про аккумулятор хотел написать, но "мысль сбилась и всё такое" (посыпаю голову пеплом:-) ).
Насчёт сетапа компонентов: из подножного корма. У месье много всякого, с разных проектов и из разных времён. Так что просто некий свой опыт просто:-) За инфу про прошивки - спасибо. Гляну!;-)
blind_oracle
00.00.0000 00:00-1Нынче nRF не в чести, все на LoRA переходят, вместо 1км - 100км :)
VitGo
00.00.0000 00:00маркетинг там на 100 км... (как всегда не говоря о цене и скорости) :-)
blind_oracle
00.00.0000 00:00+1Та нет, всё работает - ExpressLRS.
Если брать 900мгц полосу - даже на 10мвт мощности люди спокойно летают на 20-30км.
На 2.4Гц недавно ребята летали на 100км, там правда 2Вт передатчик был, и даже телеметрия умудрялась обратно прилетать. Автора, правда, решили австралийские власти поиметь за такое: https://intofpv.com/t-wezley-varty-under-investigation-by-casa-australia
slog2
00.00.0000 00:00+1Ну и как, получились обещанные китайские 1км? Метров на 200 то хоть работает уверенно?
DAN_SEA Автор
00.00.0000 00:00Будем пробовать. Пока только электроника. Как раз сегодня набрал потолочки в листах. Будем делать потихоньку, всё равно на улице зима...
Didimus
00.00.0000 00:00Если в полях, то вполне возможно километр. Но как только рядом есть следы цивилизации, дальность радикально падает. У меня радиомышь Микрософт начинает страшно лагать, как только включаю блок питания от ноута леново. И клавиатура начинает сыпать повторами. Эфир засоряется только в путь
Audrius
00.00.0000 00:00А двигатель на 1400 kv А неиспользовали из за недостаточнной мощности ?
DAN_SEA Автор
00.00.0000 00:00Немного не так: потому что я имел дело впервые с такого рода двигателями - я взял сразу 2 (попробовать и уже определиться, какой лучше): 1400 - менее оборотистый и с почти в 2 раза большим винтом; 2200 - более оборотистый, с почти в 2 раза меньшим по диаметру винтом.
В данный момент я пробую строить систему именно на 1400. И именно такой двигатель показан в финальном видео с тестом. Посмотрим, как оно будет работать на самолёте. По ощущениям - легко справится: если не прикрепить к столу - взлетает вертикально к потолку, как вертолёт, и поднимает с собой всю электронику и аккумулятор! О_о
Люди пишут, что на 2200 - строят копии реальных самолётов, небольшого размера. Вроде как более вёрткие и мелкие. Буду пробовать и так и так. Сначала - нечто вроде планера, с большим размахом крыльев. Потом (у меня целая куча esp32 и NRF) -ещё и сделаю нечто вроде МиГ-29.
blind_oracle
00.00.0000 00:00У вас какие то странные понятия о ВМГ... это же комплексный вопрос - винт, мотор, батарея. Нужно понимать как это всё соотносится и подбирать сбалансированный вариант.
Ну и сделать из говна конфету не выйдет. Выкиньте эти nRF, у меня тоже их мешок, но это мусор. Не стоит инвестиций времени, если хочется летать, а не только паять.
DAN_SEA Автор
00.00.0000 00:00Предложите альтернативу NRF-кам ;-) Всегда интересно послушать другие варианты.
blind_oracle
00.00.0000 00:00SX1280 и иже с ними. ExpressLRS
DAN_SEA Автор
00.00.0000 00:00Будем посмотреть;-) Правда там скорость передачи так себе, насколько я знаю LoRa. Для управляющих сигналов пойдёт-а для чего то больше уже нет. Потому что у меня была мысль пойти ещё дальше "в своём извращении" - видеопоток передавать через NRF :-D
Потому что, как я и говорил в статье - основная цель не "накупить всего и полететь сразу" - а повозиться, сотворить нечто эдакое, попутно прокачав разные навыки.
blind_oracle
00.00.0000 00:00Видео на пиковых 2мбит для nRF? На 250м максимум в идеальных условиях? Да, это будет мощный изврат :)
Ну, если ради поиграться - тогда конечно. Но тут уж лучше играться со всякими штуками вроде OpenHD - там хоть практическая польза есть.
DAN_SEA Автор
00.00.0000 00:00Я просто исхожу из чего: понятно, что вся система в целом - не супер и ограничена своими физическими свойствами. В основном, думаю, имеет смысл с ней играться на открытых пространствах, за городом, летая вокруг оператора. Возможно имеет смысл ещё добавить постоянный вывод информации о скорости линка - чтобы не "упал" видеолинк окончательно.
То есть, реальные условия эксплуатации - метров 200-400, на открытом пространстве, за городом.
Для таких условий её свойств, думаю, должно хватить.
AlexPost
00.00.0000 00:00Сложности будут несколько другого рода, как я прогнозирую. Как настроить расходы, лимиты, кривые? Только через ноутбук и перепрошивку ардуины. Т.е. удобство сведено к нулю. С другой стороны, гибкость на высоте :) Можно накрутить чего голова придумает и руки насочиняют, например, лаунч-контроль :) А летать вокруг себя на самолете из потолочки для начала и 100 метров хватит. Главное, денек выбрать безветренный ;)
AlexPost
00.00.0000 00:00Видео через nrf это точно лишнее. Не стоит и пробовать. Если хочется в FPV - то лучше сразу по фэншую все затевать: аналоговый передатчик на 5.8Ггц + камера и простенький шлем на прием. Можно купить просто приемник и втыкать его в телефон или ноутбук. Но все же рекомендую шлем - с ним эффект погружения будет получше. По цене - 15-20$ передатчик, столько же камера, около 100$ шлем или 25-30$ внешний приемник. На бушке можно найти дешевле, само собой. По радиоаппаратуре вчера писал, тоже довольно недорого можно "войти". И добро пожаловать в ряды FPV-шников :))) А там, если "зацепит" - можно апгрейдиться и закупаться по взрослому :))) Сам так же начинал, на бушных FlySky и шлеме.
AlexPost
00.00.0000 00:00Классическая альтернатива для начинающих - б/у шный пульт FlySky и такой же б/у шный приемник с PWM выходами (достаточно 4-х за глаза, но можно и 6). Сейчас такое барахло за копейки можно прикупить, типа 30-50$ за все. Для полетов в LOS-е более чем достаточно, да и в FPV если недалеко от себя то тоже. Но это уже тема будет не про "паять", а про "включить и лететь" :))))
katletmedown
00.00.0000 00:00+1Просто на всякий случай, вы же слышали про ExpressLRS? )
DAN_SEA Автор
00.00.0000 00:00Честно? Ни имел никогда дела. Нет столько времени, чтобы всё попробовать и узнать. 24 часа в сутках :-)
DAN_SEA Автор
00.00.0000 00:00+1P.S. сегодня купил классную вещь - как я и подозревал (пощупав руками), весьма недурна для этих целей: стальную омеднённую проволоку ø 1 мм - для сварочных аппаратов/полуавтоматов. Очень жесткая, хорошо пружинит и по диаметру идеально входит в стандартные качалки серв. Отличная штука - чтобы делать тяги от серв - к исполнительным механизмам!
Microturbine
00.00.0000 00:00Я как-то раз делал тяги из сердцевины коаксиального кабеля, там, правда, чистая медь, поэтому деталь не такая жёсткая. В любом случае блестящая медь придает более эстетичный вид готовому изделию.
DAN_SEA Автор
00.00.0000 00:00А я пробовал делать тяги из больших канцелярских скрепок (их длины хватало - сервы были установлены рядом с закрылками). Так вот по сравнению с канцелярскими скрепками - сварочная проволока просто топ. Пружинит, прочная...Пока что я доволен:-)
frt123
00.00.0000 00:00+1У этой сварочной проволоки есть один неприятный побочный эффект - очень быстрая коррозия.
s-a-u-r-o-n
00.00.0000 00:00Тут надо сделать небольшое уточнение: дело в том, что подобных модулей существует две версии
Есть ещё неоригинальный дешёвый вариант на базе бескорпусной микросхемы.
aydahar
00.00.0000 00:00Небольшое уточнение по BEC.
На фото ESC, подписанный разъем - это не BEC в чистом виде. Это ещё и управляющий порт для получения команд от приемника. Обычно он подключается к стандартному приемнику (например, на 10 каналов). И да, по этому проводу приёмник и запитывается (а так же всё, что в этот приёмник подключено, т.к. приемник является ещё и питающим хабом).
Но функция bec, т.е. питания пониженным стабиллизированным напряжением, здесь не главная. BEC вообще может быть внешним отдельным устройством, только для запитывания большого количества сервоприводов.
Ну и да, существуют готовые радиоаппаратуры для самолетов, которые стоят недорого и прекрасно работают. Если хотелось именно летать, то прийти к этому можно было бы гораздо быстрее
Didimus
00.00.0000 00:00Подумал, что будет про создание своей системы связи, которую не глушат стандартные глушилки.
man55
00.00.0000 00:00так именно про это и есть пост, ее не глушат стандартные глушилки, она сама оглохнет )
апелляция к скорости - странный аргумент, не FPV же по этому каналу гнать, а для телеметрии за глаза 20...30 байт, 20...30 раз в секунду
AndronNSK
00.00.0000 00:00+1Обалдеть. 6 лет спустя я узнал, почему у меня не заработали 2 пары nrf24х.
sergun_74rus
00.00.0000 00:00Не делайте этого! Только потратите драгоценное время и все равно купите Jumper T-Lite с ExpressLRS или подобное. Плюс вероятность разбить модель повышается. А любовью с электроникой займетесь в любом случае.
OldFashionedEngineer
00.00.0000 00:00void ResetData() { // Определение начальных значений // Среднее положение потенциометров (254/2=127) void ResetData() { struct Signal { byte throttle; byte pitch; byte roll; byte yaw; }; Signal data; // Определение начальных значений // Среднее положение потенциометров (254/2=127) data.throttle = 0; // Motor Stop data.pitch = 127; // Center data.roll = 127; // Center data.yaw = 127; // Center } void setup() { myservo.attach(servoPin, 800, 2300); } void recvData() { myservo.write( map(data.throttle,0, 253, 0, 180) ); }
Что-то тут непонятное происходит.
zbot
спасибо, было интересно читать.
P.S. сопло 0.8 ставить было не обязательно можно используя сопло 0.4 в куре поставить ширину линий 0.8 и толщину слоя 0.28.
DAN_SEA Автор
Кстати, хорошая мысль! Надо попробовать...
zbot
и да, еще одно...
"потолочную плитку" ныне пользовать конечно можно, но при наличии FDM 3д принтера стоит рассмотреть варианты типа этого:
https://www.thingiverse.com/thing:3205608
https://www.thingiverse.com/thing:56147
https://www.thingiverse.com/thing:2349879
DAN_SEA Автор
Изучу, спасибо!
AlexPost
Печаль этих напечатанных моделей в том, что без опыта их хватает на один вылет. А потом перепечатывать сломанные части, разбирать и снова клеить. Лучше уж на "потолочке" потренироваться, а если зацепит - купить модельку из нормального EPP пластика. Он стойко переживает краши и легко клеится в поле даже если где то и лопнет. А вот потом можно и на 3Д печатные модели перейти :)