Телеметрия (часть 1)

Dikoy
smalltim:

И еще вопрос: а где лучше хранить собственно пользовательские настройки автопилота, телеметрии и т.д.? В EEPROM Атмеги или во внешней памяти?

Епрома меги хватит за глаза.

Dikoy
smalltim:

Коллеги, на плате автопилота не предполагается делать какое-то меню настроек, кнопки и т.д. Все настройки - с компука, через USB.
Это приемлемо?

Я за меню через очки. Джойстик на кее есть, купить такой же для будующей платы элементарно.
Просто ноутбук есть не у всех, а памяти в меге просто валом. У меня меню, писаное под 51-й, занимает 2 кб, причём в проге только интерпретатор, а само меню находится во внешней епромке.
Там массив структур. Первые 8 байт - коды сегментов (у меня там дисплей). 9-й байт - способ отображения (сколько сегментов высвечивать тупо, сколько засвечивать преобразоваными числами и т.д., перебирается свитчем). Ну и далее по 2 байта на кнопку. Action и NextItem. То бишь что сделать и куда потом пойти по нажатию этой кнопки. Action аналогично выбирается свитчем из нескольких вариантов (инкрементировать переменную по адрезу Х, декрементировать, сбросить или ничего не делать…).
Очень удобно - один интерпретатор, а туда можно забивать сколько угодно итемов и хранить их где угодно. Это стандарт для МКашного применения, так ещё на Z80 писали, где память внешняя была. Могу скинуть свои и немецкие менюшки для примера, но они под Кейл 51-х.

smalltim

Честно говоря, не хочется кнопки на плате городить.

Как думаете, с RC передатчика удобно будет рулить меню?
Вправо-влево-вверх-вниз - элеронами/РВ, нажать ОК - газом.
Всё руление будет, конечно, до полета. В полете - фигушки. Только включение гиро и автопилота.

Следующая партия печатных плат пришла из Резонита, теперь не 1.6мм, а 1мм толщиной. Недостающие датчики и GPS модули забираю завтра. Обращайтесь 😃

Документация по модулю телеметрии почти готова, скоро выложу.

pvp

Здесь www.fourwalledcubicle.com/MyUSB.php USB-библиотека для AVRок. С кучей реально работающих примеров (для USBKEY’я в том числе) в качестве host’a и device’a. И писано всё под avr-gcc.

Dikoy

Бугага! Я завёл MLX90614!!! 😃
Жутко нестандпртная скотина, но красная армия всех победит.
На неделе хочу записать показания датчиков на землю и небо, суток за пять. Станет многое понятно.
Сейчас бегаю с ним по комнате и всё измеряю 😲 Похоже на правду. Тока паяльник упорно кажет как 90 градусов… Видимо, надо прям в сенсор жало тыкнуть 😃
В общем, если кому интересно, пишите в мыло, поделюсь кодами для кея (используется аппаратный TWI).

smalltim

Поздравляю 😃

А я, наконец-то, добил документацию к модулю телеметрии:

Dikoy

Запись небосвода за ночь. Видно, что облака надуло к 5 утра.
Жёлтый, это ИК, остальные - воздух.

leliksan
smalltim:

Поздравляю 😃

А я, наконец-то, добил документацию к модулю телеметрии:

Ух ты, круто! С картинками! Спасибки, пойду букварь штудировать , букофки вспоминать.
С уважением.

smalltim

Коллеги, только что я имел разговор с героическим коллегой maloii по поводу телеметрии.
Надеюсь, он сам расскажет и покажет на видео, что случилось, но я лучше еще раз напишу то, что написано в документации:
Датчик тока калибруется в момент старта телеметрии (15 секунд после подачи питания), поэтому то, что потребляется от батареи в эти 15 секунд, будет принято за нулевой ток. И в последующем, в полете, модуль телеметрии будет показывать заниженный ток и заниженный расход заряда батареи.
Не стоит считать, что видеосистема потребляет мало, и вроде как бы можно пустить ее мимо датчика тока и не принимать во внимание то, что она съедает от батареи.

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

Всё это можно сделать подтыканием датчика тока в цепь только после инициализации телеметрии (тогда нулевой ток действительно будет нулевым), или, еще проще, без перетыканий - 15 секунд после подачи питания держать токовые контакты датчика тока замкнутыми любой кнопкой, переключателем, или, на худой конец, отверткой.
В таком случае на старте телеметрии первые 15 секунд на датчике тока будет действительно нулевой ток, а после отжимания кнопки - убирания ответртки весь ток пойдет через датчик.
Я сейчас в документации сделаю соответствующие правки, чтоб даже героям было понятно, что делать с датчиком тока 😃

Maloii, даешь видео и историю из первых рук!!!

Artie
smalltim:

Датчик тока калибруется в момент старта телеметрии (15 секунд после подачи питания), поэтому то, что потребляется от батареи в эти 15 секунд, будет принято за нулевой ток.

Тимофей, ну не пожалейте одной ноги однокристаллки, - сделайте кнопку “preset” !

Истинно говорю Вам, - и не по вредности сугубой, а токмо из собственного опыта многотрудного исходя, - что кноповка сия - зело удобна и на многие дела вельми полезна ! 😉

smalltim

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

Отключит-подключит нагрузку к датчику тока?
Так проще такую кнопку как раз к датчику тока и прилепить.

Artie
smalltim:

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

А вот и не надо, чтобы оно “само”… - Ни разу еще не видел, чтобы искуственный интеллект работал лучше естественного ! 😃

Нехай владелец, перед тем, как ставить плату на борт, подключит батарею с нужным количеством банок, обеспечит нулевой ток через датчик, сделает что-то еще (не знаю, что именно), чтобы выставить все прочие _постоянные_ калибровочные константы, а потом - нажмет кнопку и удерживает ее в течение NN секунд. Установки при этом записываются в nvram.

А перед полетом он ту же кноповку жмет один раз и коротко, и при этом запоминается нулевая высота, координаты старта, сбрасывается таймер, обнуляется счетчик вытекшего электричества, и прочая, прочая, прочая…

  • Это просто, удобно, не требует помнить что там плата в какой момент и в течение какого времени меряет, и соображать: а правильно ли она это что-то намеряла ?

Отключит-подключит нагрузку к датчику тока?
Так проще такую кнопку как раз к датчику тока и прилепить.

Imho, такой подход идеологически неверен.
Калибровка [того, что вообще можно откалибровать] должна быть процессом одноразовым и осознанным.

leliksan

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

Artie
leliksan:

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

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

Imho, тут проблема не столько техническая, сколько идеологическая. Лично я твердо уверен, что _все_ калибровки датчиков, которые вообще физически могут быть выполнены одноразово, должны производиться при изготовлении прибора. И в своем модуле я именно так и делаю, для одних параметров забивая все константы прямо в код, а для других - подстраивая их потенциометрами. Но я строю приборы только для себя, и могу это себе позволить.
У Тимофея же задача сделать “народную” телеметрию, поэтому он пытается по максимуму освободить “юзера поганого” от всех настроек, от каких только можно, делая вообще все автоматически…
Однако, как мне кажется, и в этом случае следует разделять (во времени и пространстве) процессы настройки, так сказать, производственные, делающиеся один раз после сборки девайса, и процессы предстартовой подготовки.

leliksan

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

Artie
leliksan:

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

Почему у меня токовый датчик не реагирует на зимнюю слякоть ? “Доктор, что я делаю не так ?” 😃

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

Я как раз предлагаю от излишнего “автоматизма” отказаться, благо заменяющее его “рукоделие” не шибко сложное…

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

Если Вы не поленитесь прочесть этот топик с самого начала, то обнаружите, что вот лично и персонально я эту самую “выполнимую задачу” вполне себе выполнил больше года тому назад (результатами чего - пусть и косвенно - Вы сейчас и пользуетесь), а нынче - просто делюсь соображениями, образовавшимися в процессе прогулок по граблям…
И - главное - я ни на чем не настаиваю. 😉

smalltim

Коллеги, хватит ссориться. Один я бы ничего не сделал всё равно, так что меряться у кого паяльник длиннее, не стоит 😃

Зато есть проблема и надо ее решать. Можно положиться на сознательность юзера, но если можно добавить лишнюю “защиту от дурака”, то делать это нужно.
Кнопки - не хочу. Мало ли, вдруг у юзера рука дрогнет или забудет кнопку жамкнуть?
Калибровку “при производстве” - тоже не хочу. Ибо слишком много факторов влияет на достоверность показаний датчика тока, чтоб пускать всё на самотек.

Лучше знать ноль при каждом включении. Всё должно быть автоматично. Включил, подождал-покурил, полетели.

Как вы думаете насчет двух мощных полевиков в цепи датчика тока? Один включен последовательно с датчиком тока. Другой включен параллельно цепочке из первого полевика и датчика.
Управляем полевиками ногой атмеги или какой-нибудь самостоятельной RC цепью или там таймером, который продержит первый транзистор пару секунд закрытым, а второй открытым. Потом первый закрывается, а второй открывается. (я, вообще-то, за самостоятельную цепь, ибо неохота опять разводку и схему менять)

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

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

Я не спец в таких вот транзисторных делах, можете помочь придумать, как должна выглядеть схема? На какие транзисторы стоит рассчитывать? Могут быть подводные грабли?

Artie
smalltim:

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

😲

maloii

Ну далеко я не легендарный, а скорей всего дурной 😁 . В общем -1 😛 , долетался как гагарин. Черезчур красивый полет, забылся и батарейка села, вернутся мощи небыло. Самолет улетел но оставил много красивых и интересных кадров. Мой потолок 1163м, кто выще 😉 . Телеметрия работает хорошо, только вот датчик тока показал меньще чем было, ак на борту стоял 2250, но спорить тут не буду, может ак был дохленький. Помех 0, 2500м от базы, высота 600м, а он рулится и хоть бы хны. Ну вобщем смотрите сами last fly my easy star .