Чем же еще заниматься в новый год, если не роботостроением? Вот решил возобновить проект своего робота и доделать ему наконец правильную одометрию, чтобы он мог совершать хоть какие-то осмысленные движения. Собственно система у меня такая- колёсико от мышки ( одновременно и колесо робота) приводится непосредственно мотором, а в через прорези в колесе стоит обычный энкодер ( не квадратурный). Всего на на колесе 10 рисок, то есть разрешение 36 градусов, или 7.6 миллиметров по длине окружности колеса. Идея обработки ( с оглядкой на PID регулирование) - посчитать число прерываний от таймера 0 пока колесо проходит один сектор ( то есть от фронта до фронта с энкодера).
Результаты таковы: если поставить нулевому таймеру единичный предделитель, количество его прерываний на один сектор при минимальном и максимльном заполнении (120 и 220 для восьмибитного шима) меняется примерно в 2 раза- то есть при 80 их 4, а при 1 -220, но это в среднем ( вообще в 16-ричном виде 04ХХХХ или 01ХХХХ). Есть если смотреть мгновенные значения, то есть выбросы от нуля до пяти при любом заполнении, то есть точно определить, какое сейчас заполнение по количеству прерываний невозможно. Ну и ПИД ( по крайней мере пропорциональная часть) получается нереализуемым. Поиграл с потенциометром, задающим порог срабатывания- без особых результатов.