Самодельный передатчик (часть 2)

EagleB3

В словах “USB-COM” есть тонкость: COM - честный 10-ти вольтовый? Или TTL? Или 3,3V?
Тебе надо на готовый переходник или ты это про принцип вообще?

Я собирал на FT232BM, тугсграфикс.
КМК, я тут и в соседних ветках уже про него много ушей прожужжал…
Там, собственно всего и есть что эта FT232BM, да ATMEGA8.
Позже появилась его версия на FT232R.

И можно посмотреть схемы на странице Редчука - там есть красавы вообще из одного переходника (на FT2232С, скажем). Я их не собирал, но, глубокое IMHO - Редчук всякое гуано в AvReal поодерживать не станет…

Denn

У меня прекрасно работает на FT232BM и ATtiny2313, работает прямо из CV AVR. Уже есть новые версии на elm-chan.org/works/avrx/report_e.html

EagleB3:

…А перед тем, как из версии 2.n делать версию 2.n+1 ты все эти комментарии прилежно удаляешь?

Если нет - могу себе представить, как выглядит текст две-три-четыре версии спустя…

До этого, как правило, не доходит 😃

Demon163

У меня AVR910 на меге8 нормально пашет из CV AVR. Делай его, проще помоему не придумать.

ushmax

А я и вовсе в мегу зашил бутлоадер – и через один и тот же последовательный порт (который на usb-конвертере) и отлаживаюсь, и программу перезаливаю.

EagleB3

Соратники! Я уже писал, что пытаюсь сделать бесконтактный потенциометр. Для этого надобно иметь на столе джойстик - размеры уточнять, над конструкцией думать…

Так я же, блин, “финишно” собрал аппу, активно летаю на ней в симе (привыкаю) и готовлюсь в ближайшую погоду полетать с ней на натуре.

Поэтому начинаю искать джойстик или кусок джойстика Sanwa. Если кто может - подмогните, плиз. Куплю или возьму на время.

Лучше всего, конечно - джойстик в сборе. В идеале - Sanwa VG400. Подозреваю, что в VG600 (и не только в ней) джойстики ровно те же самые.
На крайний случай, нужна стенка, на которую крепится потенциометр и две детали - та, в которую садится потенциометр и промежуточная, с ручкой триммера. Ну и сам потенциометр, пусть даже затертый до дыр и порнографически люфтящий.

tomm2001

А это интересно. Он будет только под санвовский джойстик ? Или универсальный ? Что за технология если не секрет ?

EagleB3

Совершенно никаких секретов! “Присоединяйтесь, барон!” (с) “Тот самый Мюнхгаузен”.

В первом приближении можно вот так. Датчики эти (AS50xx) и магниты для них закупабельны в Москве. Там, где брал я, есть ограничние на минимальную стоимость покупки, но 5 датчиков (4 оси + 1 для опытов) эту планку перекрывают (получилось порядка 1200 или 1300 рублей). Потенциометр, который в этой статье переделывается - в аккурат “санвовский”, если по фото судить. Ну, может быть, резьбовая часть там покороче. Главное - крышка алюминиевая. Во всех, что я видел в магазинах - крышка жестяная, магнитится. Может вносить изменения в конфигурацию магнитного поля.

Автор статьи сделал потенциометр “на скорую руку”, и с не самым лучшим разрешением (зато в диапазоне 360 градусов).

Это решение действительно простое. И результат будет отличным (по себестоимости - превосходным!), если обеспечить соосность системы “вал-магнит-микросхема” с точностью не хуже 0,22мм. Если выйти за это отклонение - может ухудшиться линейность потенциометра. Между прочим: линейность наших потенциометров чисто на совести дядюшки Ляо. У меня квадратик РВ после калибровки находится ниже центра квадрата. Хотя пределы калибровки по этой оси - чисто заглядение.

Но этот датчик можно (и я хочу):

  1. Запрограммировать на меньший угол полного отклонения (180/90/45), с угла 90 градусов и меньше начинается высокое разрешение (10 бит на 90 градусов);
  2. Обвесить его 2-мя резисторами - тогда можно точно задать требуемый угол полного отклонения (мне, например, надобен 70 градусов).

Дополнительная вкусность - характеристика у датчика в этом режиме симметричная, сдвинутая на 180 градусов. То есть, если нужно нарастание сигнала при повороте вала “против часов” - разворачиваем корпус на 180 градусов вокруг оси вала. И все. Ну а можно и программно это дело переопределить.

Сложности:

  1. Схемы программатора датчиков нет. Но она, в принципе, разработана. Осталось собрать и проверить. Но долгие зимние ночи закончились - настало время летать.
  2. Хочу сделать хорошо. Конструкционно обеспечить соосность. Поэтому буду делать потенциометр “с нуля”. Значит, надо заказывать у токаря корпус, вал, и т.п. Может быть даже приспособу для центрирования платы закажу (да, блин, одно слово “приспособа”. Тот же вал, но с “толкушкой” диаметром 14мм на конце, и из “толкушки” в продолжение оси хвостик диам.1мм). Чертежи в черне готовы. Предварительные консультации с токарем провел - все реализуемо, вроде как. Надо размеры выверить/уточнить. А это осложняется п.3.
  3. Я это делаю для джойстика “Sanva VG400”. Потенциометры у меня все живые, и аппа рабочая. Уродовать живую аппу за-ради эксперимента - не могу. Даже лишний раз снять-разобрать-вернуть на место живой джойстик = проблема. За одно, возможно, надо будет внести изменение в конструкцию - я переделал джойстик под цифровой (“кнопочный”) триммер. Но сделал это “малой кровью” - механика не менялась и и предусмотренный заводом проворот потенциометра ручкой триммера, хоть он и микроскопический, но остался. Хочу от него избавиться. Если корпус будет свой - это как два пальца намочить. За одно избавляемся от детали, в которую садится потенциометр. Остается только тример и сама стенка джойстика. За одно можно резьбовую часть укоротить, и вал станет короче. А длина вала (тонкого!) важна для процесса изготовления. Тонкие детали длиной больше трех диаметров, насколько мне известно, “гуляют” под резцом.
    …Но чтобы придумать что-то дельное, надо иметь конструкцию перед глазами. Нужен джойстик!

Если интересно - могу выложить исходники для работы с датчиком.

ВитГо

Дмитрий, а вы стабильность показаний датчиков с изменением температуры не проверяли ?

где то читал мнение что мол все это фигня так как при отрицательных температурах параметры сильно уходят…
можете проверить хотя бы при -10…-15 градусах ? (в морозилку засунуть например)…

tomm2001

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

EagleB3

Во-первых, у этих датчиков температурный диапазон -40…+125 градусов.
Во-вторых, есть параметр "общая нелинейность, с учетом температурных погрешностей ". Не более 1,4 градуса. Это, заметьте, во всем диапазоне температур.
В-третьих, а какой температурный диапазон мы рассматриваем? От момента включения аппы (когда можно сделать калибровку) и до момента посадки модели? Может быть не такой уж и большой уход у датчика будет в этом диапазоне температур? КМК, не нужно об этом так уж сильно волноваться.

Это же не датчик угла дроссельной заслонки, вокруг которого при запуске может быть и -60, а при езде/остановке +100…_120.

Вот ссылка на линейку датчиков, я юзаю AS5043 (10-ти битный абсолютный).

tomm2001

Вот еще чего в даташите вычитал - One of the major benefits of the AS5043 compared to linear Hall sensors is that it is much less sensitive to temperature.
While linear Hall sensors require a compensation of the magnet’s temperature coefficients, the AS5043 automatically
compensates for the varying magnetic field strength over temperature. The magnet’s temperature drift does not need to
be considered, as the AS5043 operates with magnetic field strengths from ±45…±75mT.
Example:
A NdFeB magnet has a field strength of 75mT @ –40°C and a temperature coefficient of -0.12% per Kelvin. The
temperature change is from –40° to +125° = 165K.
The magnetic field change is: 165 x -0.12% = -19.8%, which corresponds to 75mT at –40°C and 60mT at 125°C .
The AS5043 can compensate for this temperature related field strength change automatically, no user adjustment is
required.

Получается вроде как все автоматически регулируется в зависимости от изменения температуры и можно этого не бояться и ничего городить не надо ?

EagleB3

С нашими требованиями к точности и стабильности - ничего совершенно (мое глубочайшее IMHO).

…Хотя процитированный кусок касается только температурной стабильности параметров магнита и, соответственно, встроенной компенсации этой нестабильности в датчике. Но это и лишний повод озаботиться покупкой рекомендованных производителем магнитов. Цена - смешная.

А я, возючись лет так 6 назад с датчиком угла для автомобильного “лопатного” ДМРВ, так и не смог тогда найти подходящего магнита…

при отрицательных температурах параметры сильно уходят…

Как (приборист по институтскому образованию), глубоко впечатленный читанным нам курсом метрологии, всегда и сразу начинаю (или пресекаю… 😈) разговоры о точности вопросом “А сколько точности Вам надо”? Дальше - оценка, еще дальше - расчет.
Давайте попробуем оценить погрешность. Представим, что погрешность 1,4 градуса - это погрешность на всем нашем диапазоне стика, а это целых 60 градусов (меньше - вряд ли; а больше - так погрешность будет меньше). Итого - погрешность не более 2,5%. Ребята, для самолетика, которым мы управляем “на глазок” (и, следовательно а) с таким временем реакции + б) с таким интеллектом управляющей системы) - это вообще ничто. Это рассуждение в первую очередь касается нелинейности, и в меньшей степени - температуры.

Теперь температура. Она (в наших с вами условиях) меняется настолько медленно, что… Между включением аппы и ее выключением проходит так мало времени, что температурного ухода не будет практически вообще. Не ставьте только потенциометр впритык к стабилизатору 7805. Ну, в самом деле, какой можно придумать самый распагубный сценарий? Что аппу вынули из багажника машины, где она двое суток мерзла при -20 и сунули в теплую муфту с каталитической грелкой? Ну да, за пару часов датчик, наверное, прогреется до +20 (внутри аппы вокруг потенциометра воздух и пластмасса - довольно поганые проводники тепла).

Воля ваша, но я не вижу смысла делать более подробные расчеты по результатам такой оценки. Или я в оценке не прав?

Pav_13

На форумах вирпилов, где активно обсуждается переделка джойстиков (компьютерных) под датчики Холла, например www.sukhoi.ru/forum/forumdisplay.php?f=68 бытует мнение, что такое имеет смысл, только если механика джоя на подшипниках! Иначе, даже ничтожные люфты в осях сведут работу “на нет”, ибо переменные резисторы за счет упругости токосъема и относительно большой длины “активной области” прощают дефекты механики… При использовании датчиков Холла относительные перемещения магнита и датчика на порядок меньше…
Может быть, поэтому “фирмы” и не спешат отказываться от резисторов 😉?

EagleB3

Ссылка ведет в слишком общее поле. Мне бы поконкретнее.
Не сочти за снобизм, но совершенно нет желания перекапывать кучу неизвестно чего. А в конце наткнуться на очередного Левшу, приспосабливающего линейный датчик для измерения угла, и огорченного тем, что у него “не всасывает”. 😎

Это было “раз”. А “два” - меня посещали мысли, что раз свой корпус точить, так может мне… Того… Сделать ось на подшипниках… Чур меня! И так места мало!!! 😇

Я ничуть не сомневаюсь, что на “Сухом” народ рукастый. И сам я когда-то свой ДМРВ начинал с подчерпнутых там сведений про волшебную микросхему KMZ43T. 😉

А насчет “фирмы не спешат отказываться” - Время идет, технологии совершенствуются, себестоимость производства деталей падает. Безконтакные потенциометры уже начали ставить даже в сервомашинки. Правда, не в те, которые по рублю за пучок. Про автопром я уже и не говорю. На ТАЗиках - и на тех уже стоят безконтатктные потенциометры дроссельных заслонок.
Четыре года назад я читал про MLX90316 и капал слюной на ковер, а сегодня думаю - да на кой он нужен, если AS5043 (одно из назначений которой - применение вместо контактных потенциометров) стоит в Москве почти что в розницу 174 рубля за штучку + 14 рублей за магнит?

Есть МРСы в конструктиве обычных переменных сопротивлений, правда известная мне цена - в районе $30 за штучку. $120 в аппу - накладненько… И, насколько мне известно, у них трудно что-либо сделать с характеристикой без внешнего преобразователя. А здесь - хоть 70 градусов, хоть 60 градусов, хоть 58,43 градусов rail-to-rail.

Так что пока я не вижу препятствий… 😒
Если, конечно, моим программатором она прошьется, а не сожжется…

Все было бы куда проще, если бы я делал потенциометр именно для нашей аппы. У нас МЕГА, свободная на 76%; с таким королевским контроллером этими датчиками можно рулить практически как угодно - они поддерживают и программирование, забываемое при сбросе питания, и многократное программирование в одном цикле (вот это единственная вещь, которая у меня почему-то не получилась, но без нее можно запросто обойтись), и установку “0” в любом положении. И даже можно несколько ног МЕГИ освободить - датчики эти умеют работать включенными в “цепочку” (daisy chain mode), т.е. четыре ноги = любое разумное количество потенциометров. Питаться умеют от 5V и от 3,3V - да прямо чиста золото какое-то о шашанацати ногах!

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

ВитГо

вопрос про нелинейность с моей стороны снят после обнародования диапазона от -40…100… - тогда действительно интересно такую модернизацию сделать…

кстати а почему не делают оптические датчики?

EagleB3
ВитГо:

вопрос про нелинейность с моей стороны снят после обнародования диапазона от -40…100

Ыыыы… Температурный диапазон и температурная погрешность - вещи близкие и тесно связанные, но разные… Это я вообще. Так. К слову. На будущее. всегда Надо даташиты и графики смотреть…

ВитГо:

кстати а почему не делают оптические датчики?

Как не делают? Делают… Называется это (то, что ты, КМК, имеешь в виду) “бесконтактный абсолютный оптический энкодер”. Стоит примерно от $50 за штуку, и до " в глазах темнеет". Габариты у них обычно великоваты.
Контактные энкодеры - где-то примерно от $15.
Для начала зайди вот сюда. Потом понравившееся ищи на efind - будет скидка процентов на 50, а то и на 70.
По бесконтактным МРС поищи (для начала же) даташит, скажем, на HRS100SSAB090. Если не найдешь - пиши куда заслать. Дальше - обычный путь “производитель - что новенького в этой категории - скока стоит - где взять”

P.S. Виталий, моя институтская специальность звучит как “Гироскопические устройства систем ориентации и навигации летательных аппаратов”. Датчики угла должны были стать для меня куском хлеба (а то даже и слоем икры…). До сих пор при случае интересуюсь. Хотя, конечно, отстал безнадежно…

tomm2001

По поводу подшипников - в даташите написано, что расстояние между магнитом и микросхемой должно быть в пределах от 0.5 до 1.8 мм и вроде если оно в этих пределах - то на работу это не влияет. А вот если оно выйдет за эти пределы ? Наверное если делать не на подшипниках, придется как-то ограничивать продольные люфты в осях. Иначе может не заработать.

EagleB3

Любое отклонение от размеров и расстояний = увеличение нелинейности. И только.
Кстати, кроме даташитов на сами датчики там есть много интереснейших аппнотов, Наример “AN5000_20 (Extended_programming_features)” или “AN 5043-10 (AS5043 Application examples)”. В последнем из них, на странице 6 раздел 4.3 - ровно то, что нам (КМК) и надо - линейный rail-to-rail с углом поворота 75градусов. Таксзать, “от производителя”.
“Наливай, да пей”…

…За эти пределы (0.5 до 1.8 мм) выйти - надо сильно постараться. Конструкция с продольным люфтом даже 1,3 мм - это уже не потенциометр, а паровозный шатун какой-то. Даже при переделке заводского потенциометра это ни разу не вопрос.
Для обработки вал зажимается в цанговом патроне, обрезается до нужной длины. Засверливается “изнутри” по оси “дупло” диаметром 2,9мм (сам вал в этом месте диам.5мм, материал = алюминий). Из алюминия изготавливается “чашка” под магнит внутренний диаметр 6мм, наружный - 7…8мм, глубина 2…2,5мм, толщина дна как можно меньше, желательно не более 1мм. Из дна наружу торчит “пень” диаметром 2,9мм с допуском в плюс под посадку с натягом в “дупло”. Вал вставляем в корпус снаружи, внутрь дальше необходимого не даст вдвинуться толстая часть вала (с гранью под соединение с подвижной частью джойстика), ее диаметр 6мм. Смазка - силиконовый жир. Не высыхает, не вытекает, оргазм при каждом повороте грантирован. В чашку запрессовывается магнит (ориентация безразлична). “Пень” чашки запрессовывается в “дупло” вала. Выдвинуть вал наружу не дает чашка. Люфт обеспечивается/выбирается фторопластовыми (а еще лучше - капролоновыми) шайбами и/или стальными (бронзовыми) упругими седловидными шайбами. По любому люфт не больше, чем разница длин корпуса и участка между чашкой и 6-тимиллиметровым валом.
Посадка “чашки” в вал с натягом даст возможность в процессе сборки повернуть “чашку” относительно вала и выставить магнит на начало рабочего участка приблизительно. Точно выставлять магнит лучше все же доворачивая корпус резистора.
На магнит или на корпус датчика перед окончательной сборкой можно наклеить кусок пластика толщиной 0,6мм (0,5мм?)- это даст гарантированный минимальный зазор в процессе сборки.

Токарь, у которого в хозяйстве есть малогабаритный станок и набор цанг, проделает это все (вытачивание чашки и укорачивание-сверление вала) минут за 20 не напрягаясь.

Конструкция лишь чуть-чуть сложнее, а соосность “Вал-магнит” гораздо точнее, чем в статье, на которую я ссылался. Надежность и точность выдерживания продольного люфта у той конструкции и у предлагаемой мной даже сравнивать, КМК, смешно…

Если же точить все с нуля, то можно сделать еще лучше. Вал сделать весь диаметром 6мм, “чашку” под магнит точить прямо на валу за одну установку, защита от вваливания вала “внутрь” - разрезным кольцом или штифтом; Корпусу обеспечить вращение на 360 градусов; дно в корпус вворачивать на резьбе (обеспечивая требуемый зазор между магнитом и датчиком. На дне сделать центрирующий “пень” диам. 1мм для платы, тоже за одну установку. В плате - соответственно отверстие под “пень”. Соосность будет такая, что…
Более толстый вал (6мм против 5мм) можно лучше (точнее) обработать. Корпус будет сидеть прямо в стенке джойстика (без посадочного триммирующего кольца) - уменьшится количество деталей, уменьшатся люфты, увеличится место (сейчас его чрезвычайно мало!). Больше диаметр посадочных поясков - точнее посадка, меньше нагрузка на пластик корпуса джойстика.

Pav_13
EagleB3:

Мне бы поконкретнее…

Извини! Поконкретнее не смогу - я перечитал на “Сухом”(и не только) все темы про самодельные (и переделки фабричных) джойстики, сохранил заинтересовавшие меня фотки и схемы и хорошо запомнил не раз высказанную там мысль о необходимости точной механики для полной реализации преимуществ датчиков Холла… Но в какой именно теме и кем это было сказано - не вспомню! Но не доверять тамошним конструкторам оснований нет, ибо, как ты сам заметил - народ там рукастый!
Желаю успеха в осуществлении идеи и с нетерпением буду ждать отчета о положительном результате! 😉

EagleB3

Ну, точная механика еще никому не вредила!

Если вдруг где с кем речь о таких погрешностях зайдет - у Филлипса есть интересный аппнот “AN98097 (Contactless Angle Measurement using
KMZ41 and UZZ9000)”. Очень подробно изложена методология погрешностей конструкций на двухосных магниторезистивных мостах.
Основные факторы:

  1. отклонения от соосности (лечится точностью изготовления);
  2. неравномерность поля (лечится качественными магнитами рекомендованных производителем размеров, или даже больших) и рекомендованными минимальными расстояниями до ферромагнитных материалов.

(предвидя вопросы: для AS50xx это расстояние порядка 4мм).

Или, если проще: обеспечив соосность 0,25мм и поставив рекомендованный магнит мы на датчике AS50xx получим обещанную производителем точность. Я думаю, ты и сам вполне можешь прикинуть: сложно ли в подшипнике скольжения длиной целых 9мм (именно такую длину имеет нарезанный нос потенциометра + толщина передней его стенки) обеспечить такую соосность.

А насчет успеха в осуществлении - постараюсь по мере сил. 😊
А то ить, как в народе говорят “языком молоть - не мешки ворочать!”…

msv

Че-то запарил меня маленько этот невинный фикс… Стал заливать “лошадкой”, в этот момент коллега отправила на мой расшаренный принтер документ на печать… Сначала ошибка верификации, потом как-то не сразу прошла очистка, потом запись началась и повисла… В общем проц лапки все “свесил” и ни гу-гу… Побежал, нашел генератор 200кгц (больше не нашлось с уровнями 5в) воткнул внешнюю синхронизацию с него. С 10-го раза прошла команда очистки (может слишком низкая тактовая частота?). С 20-го удалось считать конфигурацию (конечно все что можно установлено, значит внешний клокинг), с 40-го получилось залить конфигурацию и все завелось… Но пару тыщ нервных клеток восстановлению не подлежат… 😃 Что-то до конца так и не понял, что это было… По идее винда не должна дать доступ спулеру печати ( точнее драйверу принтера?) к порту, открытым другим приложением… Но на всякий случай имейте ввиду…
Кстати вспомнил, что включенный передатчик в момент “шитья”, тоже может давать весьма неприятные эффекты (я пробовал… 😃)…
Ну и собственно фикс:
narod.ru/disk/20737641000/3310_1_9_1.rar.html

  1. Исправлено - некорректное представление дискретных каналов через виртуальные. ( благодарность Denn )
  2. Исправлено - неточное определение мин. газа, разрешающий старт кодера. ( благодарность EagleB3 )
  3. Добавлено подзвучивание средней точки триммеров. ( благодарность druksel )
    Что еще вроде делал, не помню…
    Все исправления по 1-му пункту в функции Calc() coder.c, думаю без проблем найдете…