Scorpio, жутких потенциометров в микро и стандартных сервах пока ещё не попадалось. вполне сносные, по крайней мере лучше чем некоторые недорогие большие однооборотные с ручкой, у которых легко может резво на максимум скакать от малейшего прикосновения. а вот с чудным обвесом микры и схемой в серве не раз попадалось. переставляешь из другой партии на том же чипе и серва ведёт себя намного лучше. в дорогих сервах естественно механика получше, да и микры иногда поприятней. от как на фото "с новым годом" на предыдущей странице, немного из-за кода, но в основном похоже что это всё же механика. если потенциометры действетельно не полный ппц, с замерами немного подшаманить вполне можно. 030я стм запаянная на макетку и мелкая керамика по питанию. на потенциометр мгтф 30см, серву, драйвер и стм на "тихий ужас" (беспаечная макетка, цветастые непаянные китавайские проводки). гуляло 4 знака + к вечеру иногда помехи от чего-то усиливались. сохранил кучу замеров, вывел, глянул график, что происходит. сами данные более-менее, иногда резвые всплески. оверсемплинг 10, медиана с окном 3. от небольшого дребезга ещё простенький фильтр - не менять, если от предыдущего отличается меньше, чем на 2. условно 4096 значений на 190 градусов, вполне неплохо для беспаечного прототипа на соплях. для скорости/ускорения калман оказался очень удобным (определяет малейшие движения и попугаи легко настраиваются). посмотри, что у тебя с данными, может будет достаточно немного какой фильтр применить. или посмотреть, нужно ли немного с электроникой подшаманить что бы на ацп шуму меньше было.
Картинки:так в теории (без поправок на посадку качалок). С рычагами - расстояние S1S2=65mm, S2flam=65mm. Ещё раз уточню поправки на посадку качалок, никак не влияют на теоретические вычисления.
Добавлено спустя 29 минут 58 секунд: По координатам: х от -50 до 50 мм, у от 70 до 120 мм примерно.
Поправки влияют. Если я вычислил угол 160, а поправка 30, то угол получится 190, что серва уже не может выдать физически. Из картинки я не понял, кто такой flam (извини, я старый больной человек, измученный сегодня португальским портвейном), к тому же не пойму в чем разница положений S1 на разных картинках.
Scorpio писал(а):Поправки влияют. Если я вычислил угол 160, а поправка 30, то угол получится 190, что серва уже не может выдать физически. Из картинки я не понял, кто такой flam (извини, я старый больной человек, измученный сегодня португальским портвейном), к тому же не пойму в чем разница положений S1 на разных картинках.
S1 положение вала первой сервы (начало координат, эта серва неподвижна),S2- вал второй сервы (эта серва подвижна),flam- положение стержня фломастера. Конечно серва не станет в 190 градусов потому что вычисленный угол уходит далеко за данные значений х и у. Его никак не должно получаться в границах координат рабочего поля. Для другого манипулятора, с другими начальными посадками серв и поля пожалуйста, это уже нюанс, который устанавливает сам владелец манипулятора - задаёт границы допустимых значений координат или углов.
Ух ты, красивая картинка. Понятно. Угол А повернут относительно моих расчетов на 180 (такой вариант в скетче предусмотрен), а к углу В надо прибавлять 90. Поправь пожалуйста скетч, учти смещения, и попробуй ставить точки в рабочей зоне и мерить линейкой погрешности.
///////////// МАНИПУЛЯТОР ДЛЯ ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ скетч СЕТКА КООРДИНАТНАЯ ДЕКАРТОВА ПРОТО ////////////////////////////// #include <Servo.h> #define L1 65 //длина первого плеча манипулятора в мм. #define L2 65 //длина второго плеча манипулятора в мм. #define Xmax 120 #define Ymax 120
Блиин, парни, вы ему ща готовую штуку сделаете, а он побежит сразу в журнал печататься и детишек за бабки учить. Хотя да, согласен, хоть что-то правильное и полезное издаст.
Madf писал(а):Блиин, парни, вы ему ща готовую штуку сделаете, а он побежит сразу в журнал печататься и детишек за бабки учить. Хотя да, согласен, хоть что-то правильное и полезное издаст.
///////////// МАНИПУЛЯТОР ДЛЯ ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ скетч СЕТКА КООРДИНАТНАЯ ДЕКАРТОВА ПРОТО ////////////////////////////// #include <Servo.h> #define L1 65 //длина первого плеча манипулятора в мм. #define L2 65 //длина второго плеча манипулятора в мм. #define Xmax 120 #define Ymax 120 #define Acor1 352 #define Acor2 220 int Ymin=70;
Такой вариант скетча, снял фломастер, виброиглу, смотрю в отверстие на рычаге как в прицел. Подставляю в окрестностях х=0, У=90. В этой версии всё вроде срастается, рычаги правильно-ожидаемо поворачивают. Где была ошибка? Код далеко не везде понимаю, завтра попробую наваять сетку - будем надеяться декартову. Интервал для серв может придётся подбирать, он по разным источникам 544-2400, 500-2500. Кстати почему 0 для х исключён?
Исключение х=0 надо выкинуть. Ошибка была в определении угла В. Если сравнишь скетчи - увидишь. Завтра будем рисовать векторы, а там и до правильных буковок недалеко.