Actions
1 JPG
(99.77 KB, 530x797)
(99.77 KB, 530x797)
>>/27357/ Если подразумеваешь перехват то я не знаю, зависит от протокола и метода представления моментов двигателей на модели. Но предположу, что сам с нуля сделать хочешь. Самый "топорный" и простой метод это тональное кодирование (так делали моделисты до популяризации микроэлектронных компонентов). У машинки на одну ось меньше, но в остальном то же самое будет. У дрона это момент тяги и момент тангажа+рысканья (плюсик не просто так, представляется на двуполярной оси обычно этот момент). Т.е, если представить координаты модели в векторном поле (кодированно), то это типа KP(t)' = Y₀(+t) + ( Y₁(t) + X₁(t) ); Где Y₀ - момент тяги, Y₁ - момент тангажа (сепарированный), X₁ - момент рысканья (сепарированный), t время (общее, для упрощения - общий лаг системы усечен). KP - не абсолютные евклидовы координаты, конечно, а суммарный вектор (представленный, фактически, в виде частот, но на данном моменте - в виде амплитуд каждого из джойстиков (X/Y олицетворяют их). Схемотехнически на стороне пульта это чета типа: на джойстик тяги (Y₀) вешается автогенератор фиксированной частоты, но с регулировкой усиления. Тянешь джойстик вверх (подача тяги, линейная например) - растет магнитуда этого тона. Для джойстика тангажа+рысканья чуть сложнее, но суть та же, только в железе - это ДВА разных джойстика на одной ручке (два переменных резистора, каждый отвечающий за свою ось), для X₁ свой тональный сигнал(частота), для Y₁ другой тон. Т.е для этого джойстика: PITCH_YAW_VECT(t) = Y₁(A₁*2pi*f1*t) + X₁(A₂*2pi*f2*t). Где A₁ A₂ - результирующие(!) амплитуды каждой из составляющей (эта переменная меняется в зависимости от положения джойстика), f1/f2 - тональные частоты. Получается сумма двух частот, кодирующая общий вектор момента тангажа+рысканья. Далее это низкочастотное модулируется чем-нибудь, AM/FM например (AM - просто усилитель с фиксированным усилением и несущей в нагрузке, или что лучше - смесителем, например на диодном мостовом смесителе) (FM - автогенератор с задающей LC цепью, емкость которой сдвигать при помощи варикапа). На стороне приемника все в обратную сторону делается. Демодуляция+фильтрация по полосе (f0 f1 f2 <5000Гц (не в сумме, а каждая из)) (например, f0 = 500, f1 = 1000, f2 = 1500, тогда полосовик 400 1600 (Q=~0.83) ), полосовая фильтрация (на каждый из тонов, хотя-бы второго порядка фильтры, т.е для f0 это 450 550 например (Q=~5) )), после чего на движки подавать соответствующие моменты. Например, просто интегрировать (детектором) каждый из тонов после фильтров, результат интегрирования усиливать, и подавать на силовой контроллер двигателей. Данная модель (МОДЕЛЬ! НЕ СХЕМА (физическая)) очень простая, но не подходит для дальних полетов/заездов - она КРАЙНЕ непомехоустойчива, ни с статичным помехами (шума города, например), ни к динамическим (эффект Допплера, фазовращания). Но в открытом поле хорошо летает. Хотя на коротких мб и поедет (КВ, или 50мгц(но с ним осторожно, он не любительский)) за горизонт (горизонт для радио-волн несколько дальше видимого). —— Если не хочешь в тотальный аналог, а таки ардуину - то тоже самое (уравнения выше), но в виде цифры, а не аналоговых дитолей. Тангаж+рысканье - двуполярная картина в виде векторной суммы, тяга - просто вещественная переменная. Передаешь в радиоканал (используя цифровой модем), на стороне приемника переводишь полученные вектора в управляющий сигнал (ШИМ, линейно ЦАПом, etc) ну и всо. Вообще скажу так - все задротство и психическая боль будет не от построения модели управления, а от построения и отладки железа. Большой кластер проблем что я ловила на своих железках - по большей части были железячные, а не программные (хотя код пишу я плохо(а схемы трассирую еще хуже)). Код может быть безупречным, и железо на первый вид тоже - но без осциллографа начинается ЖОПА. Не понятно что ебет мозги - железо, код, или все вместе. На али кстати есть на 433мгц дешманские FM/AM передатчики и приемники. На 27мгц тоже. Они чем-то типа 1-Wire с контроллером общаются, еще I2C/SPI бывают, UART. От железки крч зависит. Джойстики любые линейные(!!! а то обычно лог