Телеметрия (часть 1)
У меня вот другое немного предложение: а не замутить ли простенькую систему автослежения для патч антенки приемника, как пан-титл у камеры? Чтоб антенка сама доворачивалась по максимуму сигнала.
Если по максимуму сигнала, то антенна должна непрерывно “мотать головой”, чтобы этот самый максимум искать…
Такую систему делал еще год назад какой-то гаврик на rc-groups (точную ссылку навскидку не дам, но найти несложно). Однако, насколько я помню, для нормальной работы этой системы ему пришлось добавалять детектор корректности принимаемой синхры, потому как “максимум rss” и “лучшая картинка” - это не всегда одно и то же.
Я же собирался делать антенный привод, ориентирующийся по координатам (благо gps все равно летает, а значит есть и стартовая позиция и текущая, и высота), так что, единственное, что нужно сделать - это передать “вниз” текущие координаты в цифре… Нашел открытый проект подходящего радиомодема и даже прикупил под азимутальный привод недорогую “яхтенную” 360-градусную серву, но вот времени на реализацию пока не хватает.
Коллеги, на плате автопилота не предполагается делать какое-то меню настроек, кнопки и т.д. Все настройки - с компука, через USB.
Это приемлемо?
Да, но тогда необходимо таскать с собой комп обязательно.
Сейчас еще есть время подумать и решить, надо ли настройки кнопками на плате и экранное меню поверх видеосигнала, или не надо.
Меню - это звучит вкусно. И комп не надо таскать с собой. Вместо кнопок предлагаю использовать квадратурный энкодер с интегрированной кнопкой. Очень удобная штука для навигации по меню (для подключения необходима одна ножка с внешним прерыванием по перепаду и одна без оного + одна на кнопку). Но, может быть, навигацию по меню попробовать осуществить при помощи передатчика? (аналогично переключению размеров шрифта).
И еще вопрос: а где лучше хранить собственно пользовательские настройки автопилота, телеметрии и т.д.? В EEPROM Атмеги или во внешней памяти?
Если на данный момент памяти достаточно и есть, например, двукратный запас по объёму (“на вырост”), то, имхо, в меге. В противном же случае - во внешней.
И еще вопрос: а где лучше хранить собственно пользовательские настройки автопилота, телеметрии и т.д.? В EEPROM Атмеги или во внешней памяти?
Епрома меги хватит за глаза.
Коллеги, на плате автопилота не предполагается делать какое-то меню настроек, кнопки и т.д. Все настройки - с компука, через USB.
Это приемлемо?
Я за меню через очки. Джойстик на кее есть, купить такой же для будующей платы элементарно.
Просто ноутбук есть не у всех, а памяти в меге просто валом. У меня меню, писаное под 51-й, занимает 2 кб, причём в проге только интерпретатор, а само меню находится во внешней епромке.
Там массив структур. Первые 8 байт - коды сегментов (у меня там дисплей). 9-й байт - способ отображения (сколько сегментов высвечивать тупо, сколько засвечивать преобразоваными числами и т.д., перебирается свитчем). Ну и далее по 2 байта на кнопку. Action и NextItem. То бишь что сделать и куда потом пойти по нажатию этой кнопки. Action аналогично выбирается свитчем из нескольких вариантов (инкрементировать переменную по адрезу Х, декрементировать, сбросить или ничего не делать…).
Очень удобно - один интерпретатор, а туда можно забивать сколько угодно итемов и хранить их где угодно. Это стандарт для МКашного применения, так ещё на Z80 писали, где память внешняя была. Могу скинуть свои и немецкие менюшки для примера, но они под Кейл 51-х.
Честно говоря, не хочется кнопки на плате городить.
Как думаете, с RC передатчика удобно будет рулить меню?
Вправо-влево-вверх-вниз - элеронами/РВ, нажать ОК - газом.
Всё руление будет, конечно, до полета. В полете - фигушки. Только включение гиро и автопилота.
Следующая партия печатных плат пришла из Резонита, теперь не 1.6мм, а 1мм толщиной. Недостающие датчики и GPS модули забираю завтра. Обращайтесь 😃
Документация по модулю телеметрии почти готова, скоро выложу.
А где вы покупали свой кей?
В Терраэлектронике
Здесь www.fourwalledcubicle.com/MyUSB.php USB-библиотека для AVRок. С кучей реально работающих примеров (для USBKEY’я в том числе) в качестве host’a и device’a. И писано всё под avr-gcc.
Бугага! Я завёл MLX90614!!! 😃
Жутко нестандпртная скотина, но красная армия всех победит.
На неделе хочу записать показания датчиков на землю и небо, суток за пять. Станет многое понятно.
Сейчас бегаю с ним по комнате и всё измеряю 😲 Похоже на правду. Тока паяльник упорно кажет как 90 градусов… Видимо, надо прям в сенсор жало тыкнуть 😃
В общем, если кому интересно, пишите в мыло, поделюсь кодами для кея (используется аппаратный TWI).
Поздравляю 😃
А я, наконец-то, добил документацию к модулю телеметрии:
Коллеги, только что я имел разговор с героическим коллегой maloii по поводу телеметрии.
Надеюсь, он сам расскажет и покажет на видео, что случилось, но я лучше еще раз напишу то, что написано в документации:
Датчик тока калибруется в момент старта телеметрии (15 секунд после подачи питания), поэтому то, что потребляется от батареи в эти 15 секунд, будет принято за нулевой ток. И в последующем, в полете, модуль телеметрии будет показывать заниженный ток и заниженный расход заряда батареи.
Не стоит считать, что видеосистема потребляет мало, и вроде как бы можно пустить ее мимо датчика тока и не принимать во внимание то, что она съедает от батареи.
Самый надежный способ гарантировать, что расход батареи будет посчитан правильно - сделать так, чтобы все существенные потребители тока (камера, передатчик, регулятор мотора) в полете были подключены через датчик тока, а во время старта телеметрии - мимо датчика тока. Сам модуль телеметрии при этом отключать от питания нельзя, потому что он сбросится.
Всё это можно сделать подтыканием датчика тока в цепь только после инициализации телеметрии (тогда нулевой ток действительно будет нулевым), или, еще проще, без перетыканий - 15 секунд после подачи питания держать токовые контакты датчика тока замкнутыми любой кнопкой, переключателем, или, на худой конец, отверткой.
В таком случае на старте телеметрии первые 15 секунд на датчике тока будет действительно нулевой ток, а после отжимания кнопки - убирания ответртки весь ток пойдет через датчик.
Я сейчас в документации сделаю соответствующие правки, чтоб даже героям было понятно, что делать с датчиком тока 😃
Maloii, даешь видео и историю из первых рук!!!
Датчик тока калибруется в момент старта телеметрии (15 секунд после подачи питания), поэтому то, что потребляется от батареи в эти 15 секунд, будет принято за нулевой ток.
Тимофей, ну не пожалейте одной ноги однокристаллки, - сделайте кнопку “preset” !
Истинно говорю Вам, - и не по вредности сугубой, а токмо из собственного опыта многотрудного исходя, - что кноповка сия - зело удобна и на многие дела вельми полезна ! 😉
Да не вопрос сделать такую кнопку. Только что она сделает в моем случае? Всё ж и так калибруется само без лишних телодвижений.
Отключит-подключит нагрузку к датчику тока?
Так проще такую кнопку как раз к датчику тока и прилепить.
Да не вопрос сделать такую кнопку. Только что она сделает в моем случае? Всё ж и так калибруется само без лишних телодвижений.
А вот и не надо, чтобы оно “само”… - Ни разу еще не видел, чтобы искуственный интеллект работал лучше естественного ! 😃
Нехай владелец, перед тем, как ставить плату на борт, подключит батарею с нужным количеством банок, обеспечит нулевой ток через датчик, сделает что-то еще (не знаю, что именно), чтобы выставить все прочие _постоянные_ калибровочные константы, а потом - нажмет кнопку и удерживает ее в течение NN секунд. Установки при этом записываются в nvram.
А перед полетом он ту же кноповку жмет один раз и коротко, и при этом запоминается нулевая высота, координаты старта, сбрасывается таймер, обнуляется счетчик вытекшего электричества, и прочая, прочая, прочая…
- Это просто, удобно, не требует помнить что там плата в какой момент и в течение какого времени меряет, и соображать: а правильно ли она это что-то намеряла ?
Отключит-подключит нагрузку к датчику тока?
Так проще такую кнопку как раз к датчику тока и прилепить.
Imho, такой подход идеологически неверен.
Калибровка [того, что вообще можно откалибровать] должна быть процессом одноразовым и осознанным.
Что вы мозги друг другу вправляете, поставьте переключатель на питание телеметрии, в одном положении питается с балансирного разьёма и калибруется, а в другом питается через свой же датчик тока и вся остальная требуха подключается после калибровки.
С уважением.
Что вы мозги друг другу вправляете, поставьте переключатель на питание телеметрии, в одном положении питается с балансирного разьёма и калибруется, а в другом питается через свой же датчик тока и вся остальная требуха подключается после калибровки.
На самом деле, ЭТО можно сделать добрым десятком способов, и все будут работать. Вопрос только в удобстве, и в исключении возможных ошибок.
Imho, тут проблема не столько техническая, сколько идеологическая. Лично я твердо уверен, что _все_ калибровки датчиков, которые вообще физически могут быть выполнены одноразово, должны производиться при изготовлении прибора. И в своем модуле я именно так и делаю, для одних параметров забивая все константы прямо в код, а для других - подстраивая их потенциометрами. Но я строю приборы только для себя, и могу это себе позволить.
У Тимофея же задача сделать “народную” телеметрию, поэтому он пытается по максимуму освободить “юзера поганого” от всех настроек, от каких только можно, делая вообще все автоматически…
Однако, как мне кажется, и в этом случае следует разделять (во времени и пространстве) процессы настройки, так сказать, производственные, делающиеся один раз после сборки девайса, и процессы предстартовой подготовки.
Откалибровать датчики один раз конечно можно, но некоторые клоуны в том числе и я имеют привычку летать не только по лабораторному столу, но и на улице и зимой и в слякоть. По любому калибровать придётся по месту употребления продукции ибо все датчики на температуру и прочее как то реагируют. Полностью автоматизировать калибровку конечно можно, вопрос в цене. Можно совершенствовать девайс до полного удовлетворения, а можно , как это сделал Тимофей, поставить достижимую задачу и выполнить её, а ведь он мог до сих пор спокойно умные разговоры разговаривать, а мы все продолжали бы облизываться на непонятные изделия забугорных товарисчей.
С уважением.
Откалибровать датчики один раз конечно можно, но некоторые клоуны в том числе и я имеют привычку летать не только по лабораторному столу, но и на улице и зимой и в слякоть. По любому калибровать придётся по месту употребления продукции ибо все датчики на температуру и прочее как то реагируют.
Почему у меня токовый датчик не реагирует на зимнюю слякоть ? “Доктор, что я делаю не так ?” 😃
Полностью автоматизировать калибровку конечно можно, вопрос в цене. Можно совершенствовать девайс до полного удовлетворения,
Я как раз предлагаю от излишнего “автоматизма” отказаться, благо заменяющее его “рукоделие” не шибко сложное…
а можно , как это сделал Тимофей, поставить достижимую задачу и выполнить её, а ведь он мог до сих пор спокойно умные разговоры разговаривать, а мы все продолжали бы облизываться на непонятные изделия забугорных товарисчей.
Если Вы не поленитесь прочесть этот топик с самого начала, то обнаружите, что вот лично и персонально я эту самую “выполнимую задачу” вполне себе выполнил больше года тому назад (результатами чего - пусть и косвенно - Вы сейчас и пользуетесь), а нынче - просто делюсь соображениями, образовавшимися в процессе прогулок по граблям…
И - главное - я ни на чем не настаиваю. 😉
Коллеги, хватит ссориться. Один я бы ничего не сделал всё равно, так что меряться у кого паяльник длиннее, не стоит 😃
Зато есть проблема и надо ее решать. Можно положиться на сознательность юзера, но если можно добавить лишнюю “защиту от дурака”, то делать это нужно.
Кнопки - не хочу. Мало ли, вдруг у юзера рука дрогнет или забудет кнопку жамкнуть?
Калибровку “при производстве” - тоже не хочу. Ибо слишком много факторов влияет на достоверность показаний датчика тока, чтоб пускать всё на самотек.
Лучше знать ноль при каждом включении. Всё должно быть автоматично. Включил, подождал-покурил, полетели.
Как вы думаете насчет двух мощных полевиков в цепи датчика тока? Один включен последовательно с датчиком тока. Другой включен параллельно цепочке из первого полевика и датчика.
Управляем полевиками ногой атмеги или какой-нибудь самостоятельной RC цепью или там таймером, который продержит первый транзистор пару секунд закрытым, а второй открытым. Потом первый закрывается, а второй открывается. (я, вообще-то, за самостоятельную цепь, ибо неохота опять разводку и схему менять)
Таким макаром получится на пару секунд после подачи питания пустить ток мимо датчика тока. Я за это время запомню, что выдает датчик с нулевым током. Потом транзистор последовательный с датчиком тока открывается, а параллельный закрывается, ток идет через датчик, и всё работает штатно.
Схема должна быть такая, чтобы если что-то случилось с логикой или там RC цепью, борт никогда не должен быть отрублен от батареи. Транзисторы работают в ключевом режиме, греться не должны.
Я не спец в таких вот транзисторных делах, можете помочь придумать, как должна выглядеть схема? На какие транзисторы стоит рассчитывать? Могут быть подводные грабли?