Сделал линеаризацию по 63 точкам, хотя изначально было 127:

img


Калибровку делал по бежевому цвету, намазал тональным кремом прикленный малярный скотч:

img


Одел маску и записал график с разными ее положениями на лице, с придавленной максимально близко к глазу, как будто подушкой придавило, и влево и вправо смещал и вверх и вниз и придавливал и отпускал, в общем во всевозможных положениях, и применил к нему линеаризацию:

img


А здесь применил линеаризацию к старому ночному графику:

img


Здесь видно почему я отказался от линеаризации на 127 точек. Скорее всего шаги двигателя не идеально равные между собой, четные и не четные, не равны между собой. Может это глюк контроллера, может обмоток двигателя или механики червячной передачи, может программы, хотя все перепроверил много раз. Я пробовал и 1/2 шага и 1/4 и 1/8, увеличивая соответственно количество маленьких шагов до 2,4,8, все равно они не равные были. Т.е. например первые 8 шагов 1/8 режима, не были равны вторым 8ми шагам, а вот третьим равны, четвертым опять не равны. Забил на этот глюк. Здесь использовался полный шаг. Вообще 127 шагов это максимальное расстояние для полного шага, дальше каретке просто некуда ехать, да и расстояние уже почти 20мм от датчика(до глаза), врядли больше нужно. Можно перейти на режим 1/2 шага, снять тогда 256 шагов, и проредить до 128. Но думаю пока и 63 хватит:

img


Всего двигатель сделал 127 шагов, после каждого он замирал, чтобы все успокоилось (зеленый график), записывалась калибровочная точка. Далее по COM-порту(FT232R USB<->UART), шла комманда сделать следующий шаг:

img