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

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, думаю без проблем найдете…
Lordik5

Доброе утро!На днях потерял верт,еле нашёл по шороху серв.Господа,не поделитесь схемкой PPM-ключа с выходом на сирену\мигалку?Хочу задействовать свободный канал кодера,чтоб впредь такого не повторилось…

EagleB3

Готовой схемы нет, но, КМК, должен там стоять обычный накопитель на емкости, подшунтированный резистором и компаратор. Если время сигнала будет такое, что накапливаться будет быстрее, чем стекать - то когда-нибудь накопится достаточно для включения компратора. И лучше с инвертором - чтобы _как пропадет_ - так включится. И с независимым питанием - в тихом месте даже невесомая пищщалка от музыкальной открытки шумит довольно громко.

А еще лучше (ну понятно… “Чем мех лучше, тем мех дороже!”) - поставить радиоконтроллер борта, который разработал Хвост Слона. Насколько я помню, эта штука может использоваться как маяк+пеленгатор на место падения модели.
В моем архиве ссылок по данной тематике:
Радиомаяк “Хвост Слона II”
Радиомаяк “Хвост Слона”
Тема на Форуме по “Слоновьему маяку”
Поисковая сирена от Виталия Пузрина (в аккурат то, что ты ищешь! Но на PIC’е… Зато с исходниками…)

МаркАнтоний
Lordik5:

Доброе утро!На днях потерял верт,еле нашёл по шороху серв.Господа,не поделитесь схемкой PPM-ключа с выходом на сирену\мигалку?Хочу задействовать свободный канал кодера,чтоб впредь такого не повторилось…

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

Denn

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

EagleB3
МаркАнтоний:

А можно использовать электронику от сервы, а вместо обмотки моторчика подсоеденить

…А при каких условиях она будет _не пищщать_? 😉

МаркАнтоний
EagleB3:

…А при каких условиях она будет _не пищщать_? 😉

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

EagleB3
Denn:

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

Рыть, КМК, следует в направлении “то есть, то нет”. Вот функция, запускающаяся в режиме копирования модели при нажатии кнопки “вправо”:

                        if(_RIGHT) {
                            if(pos[2]<2) { f_edit=1; BEEP; break; }
                            BEEP1;
                            MODEL_copy(T[0],T[1]);
                            MODEL_init(cur_model_ind);
                            list_ini(menuT0L, pos[1]-1); pos[1]=0;
                            break;
                        };

Проверка if(pos[2]<2) - находится ли курсор в это время на “OK”.
Если нет - управляем режимом выбора источника/назначения и задается выдача сигнала BEEP.
Если да - то задается выдача сигнала BEEP1 и копируется модель.
Так что сигнал предусмотрен при нажатии кнопки “Вправо” в любом случае, это будет либо BEEP, либо BEEP1 (различный тип сигнала).

Но функция beep_work заставит пищщать зуммер только только при одновременном выполнении двух условий:

  1. если есть задание на писк;
  2. если в настройках звук включен.

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

МаркАнтоний:

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

Угу… На бумаге - оно гладко… 😎

Машинка считает, что она находится в покое, когда сигнал с потенциометра обратной связи соответствует длительности управляющего сигнала. А длительность управляющего сигнала зависит много от чего (в первую очередь - от назначенного расхода; во вторую - от EPA. Если, например, у тебя EPA такой, что он просто не позволяет сигналу “дотянуться” до положения резистора - пищщать будет всегда!). Так что “сдвинуть в одну из сторон переменный резистор” - маловато будет. Надо будет для каждой модели согласовать сигнал “этого края” с положением резистора. Муторно весьма…
Тогда уж проще взять нормальную дешевенькую легенькую машинку и ее качалкой замыкать контактную группу (магнит к геркону подносить, скажем). 😒

Нет, механику сюда пристегивать - это ненужный лишний вес и хлопоты; = глубокое IMHO.

Aleksey_Gorelikov
EagleB3:

Машинка считает, что она … Если, например, у тебя EPA такой, что он просто не позволяет сигналу “дотянуться” до положения резистора - пищщать будет всегда!). Так что “сдвинуть в одну из сторон переменный резистор” - маловато будет.

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

Lordik5

Благодарю всех за помощь!Идея с компаратором-это первое,что пришло мне в голову.А с платкой от сервы-тут всё не так однозначно.С лампочкой накаливания такая штука работать точно будет,с пищалками появятся проблемы…Я думал,есть что-нить готовое типа PIC12F629+КТ315.Сам я даже такие простенькие прошивки писать пока не умею:o