Разбираем Датчик Вращения Lego

Важное примечание:
Датчик вращения склеен, поэтому при попытке открыть его вы можете повредить датчик. Я за это ответственности не несу.
Заботьтесь о ваших пальцах также...
|
Датчик вращения Lego - миленькое устройство, которое позволяет мерить RCX осевую скорость. К сожалению, есть проблема: если скорость вращения низкая, то значение может подскакивать на 1-2 единицы!. Я решил узнать почему. Вот что я обнаружил:
Работа датчика 
Датчик вращения распознается RCX через две фазы: в течение 2.9ms, датчик RCX (+8V), затем в течение приблизительно 100µs RCX читает значение, возвращенное датчиком. В течение этой фазы, датчик не обеспечивается питанием, и он использует “собственный запас”. Резистор 10 Ом внутренее напряжение RCX датчика к +5V, он должен сбить напряжение до нужного.
Работа датчика 
Вот Этапы вращения датчика. Вы можете видеть пошаговое вращение датчика и показания по ним. Датчик общается с RCX через 4 кодовых уровня. Вот Напряжения, которые я измерил для каждого шага:
Шаг 1 |
1.3 V |
Шаг 2 |
3.3 V |
Шаг 3 |
2.0 V |
Шаг 4 |
4.5 V |
Вот Этапы вращения датчика. Вы можете видеть пошаговое вращение датчика и показания по ним. Датчик общается с RCX через 4 кодовых уровня. Вот Напряжения, которые я измерил для каждого шага.
Эти значения кажутся немного низковатыми по сравнению с Майклом Гаспери (см. его страницу датчика вращения), возможно мои батарейки были старыми. Вы можете также видеть, что есть некоторое колебание продолжительной фазы (между 90µs и 125µs)
Дик Сван предложил мне увеличить точность. Посмотрите здесь. 
Поскольку ось вращается по часовой стрелке, циклы шагов 1> 2> 3> 4> 1, и через шаги 1> 4> 3> 2> 1 когда вращается против часовой стрелки. Это позволяет RCX определить направление вращения.
Как указано тут Юргеном Стубером, здесь видна первая проблема датчика вращения: в течение перехода между шагом 3 и 4, выпуск пересекает напряжение уровня 2, и между шагом 1 и 2, напряжение пересекается с уровнем 4. Так как этот переход занимает время, есть вероятность, что это случается как раз в то самое время, когда образцы RCX оценивают скорость. Я пробовал определить время осуществления выборки, это, кажется, 60мс от начала фазы.
Дик Сван сделал эксперимент, показывая, что шаг 1 более длинен, чем три других. Смотрите здесь его объяснение.

Такой переход между шагом 3 и шагом 4. Мы можем видеть.Время перехода через напряжение в 3.3V (шаг 2) может быть оценено к 1мс.
Некоторые альтернативные языки программирования RCX (legOS и leJOS) почти устраняют эту проблему за счет деления на два максимальной скорости вращения.
Но эта проблема не зависит от скорости вращения.
Проблемы при низкой скорости

Чтобы получить эту диаграмму, я просто вращал датчик вручную очень медленно, пока я не достиг перехода между фазами. Скачка не было. И только медленно вращая своей рукой я мог уловить этот переход. Кажется, что очень близко к положению перехода, есть синхронизация , что приводит цикл в действие , и это увеличивает предыдущую проблему: есть много переходов , но их очень трудно уловить. Разбираем датчик

Чтобы пойти дальше, я должен был заглянуть в датчик. Но это ничего не дало. Сначала я поддел серую пластинку, но датчик не открывался. Кажется, что части склеены или спаяны при высокой температуре, поэтому мне пришлось приложить силу.
Если кто-то найдёт более разумный метод открывания -сообщите мне
(Благодарен за фотографии Андреас Питера)
Содержимое датчика
лучше показать, чем описать...
Схемные решения монтажной платы и анализ 
D1, D2 направляют электропитание, C1 фильтрует его. K1 и K2 - две вилки, одна сторона содержит инфракрасный LED , другая сторона фототранзистор. Лопасти в виде пропеллера толщенной в лезвие прерывают инфракрасный луч K1, K2, обоих или ни одного, обеспечивая четыре фазы возвращения значения. Имея 4 лопасти, мы получаем 16 шагов за оборот. IR диод получает питание через R1 ( 5mA). Узел между R1 и K1 LED имеет постоянное напряжение в 2.2V.Вывод фототранзисторов усилен (Q1, Q2) и (Q3, Q4). Их выпуск даёт основу для Q5иQ6, основа которого поляризована к предыдущему 2.2V через R4 и R5. Через D3, Q5 и Q6 поглощают поток, обеспеченный резистором 10 Ом внутри RCX, и производят эти 4 измерения:
|
Напряжение |
Q5 |
Q6 |
Шаг 1 |
1.3 V |
вкл |
вкл |
Шаг 2 |
3.3 V |
выкл |
вкл |
Шаг 3 |
2.0 V |
вкл |
выкл |
Шаг 4 |
4.5 V |
выкл |
выкл |
Иан Дэвис нашёл у меня ошибку, недостающее звено между эмитентом Q5/Q6 и основы Q1/Q4. Это соединение, кажется, обеспечивает некоторую обратную связь и помогает получению правильных напряжений на выходе.
Решение проблемы
Радикальный метод должен был бы предотвратить переход, в то время как RCX считывает данные. Если бы пространство в кубике не было бы полностью заполнено датчиком вращения ,то эту проблему можно было бы легко решить вставив D-типом (CD4013) между Дарлингтонской базой и базами выпусками и основаниями Q5и Q6, показанными в конце прочитанной фазы данных. Но здесь это почти невозможно, и так или иначе на разумной скорости проигываешь, показатели очень низкие. Поэтому я пробовал улучшить только поведение низкой скорости.
Так как проблема вызвана синхронизацией между поставкой и порогом усилителя, я пробовал увеличить фильтрацию электропитания. Я добавил 22µF 10V конденсатор параллельно с C1 и пробовал мой измененный датчик... Ура! он теперь работает правильно даже при низкой скорости вращения.
Фотографии изменённого датчика
Дэн Волковский послал мне фотографии датчика вращения – другая модель.
... и я повторяю правовую оговорку:
Важное примечание:
Датчик вращения склеен, поэтому при попытке открыть его вы можете повредить датчик. Я за это ответственности не несу.
Заботьтесь о ваших пальцах также...
|
|