Технический форум по робототехнике.
blindman » 10 июн 2008, 13:27
Можно. Как-то попадались статьи, в которых говорилось, что верхний предел около 40. Да и сам эксперементировал, при 40 работало нормально, при 50 - начинала дергаться. Хотя, конечно, это может зависеть от модели сервы.
ksp » 10 июн 2008, 13:57
Будем пробовать.
=DeaD= » 10 июн 2008, 15:24
Лучше не экспериментировать с изменением частоты (период с 20мс), запаритесь потом глюки искать, если начнут вылезать.
blindman » 10 июн 2008, 15:48
А какие могут быть глюки? По-моему, данная конкретная серва или работает при определенном периоде импульсов, или нет.
Конечно, следует стремиться к 20мс, особенно если требуется повторяемость конструкции. Если же девайс в одном - двух экземплярах, достаточно проверить, какой период держат имеющиеся сервы
=DeaD= » 10 июн 2008, 16:21
Да элементарные - у сервы есть входной параметр второй кроме сигнала - напряжение, может она при текущем напряжении работает, подсядет чуть аккум и не будет работать, или наоборот, шумы опять же в питании разные при разном количестве включенных серв и т.п. - нет, если есть желание потратить лишние несколько часов в отладке - всегда пожалуйста, нарушайте установленные спецификации, придумывайте свои фишки, которые у вас сработали, и хорошие шансы на увлекательное времяпрепровождение вам обеспечены
blindman » 10 июн 2008, 16:42
DeaD, спасибо за совет. А то сижу, не знаю чем себя развлечь
ksp » 10 июн 2008, 21:37
Попробывал тут использовать оба модуля таймера. Оказалось, что хоть регистры сравнения разные, но регистор счётчика всё-таки один. А он там обнуляется на каждом прерывании...
Короче мне пока не ясно как это всё реализовать. Подскажите?
=DeaD= » 10 июн 2008, 22:50
Дык написано ж - вешаетесь на прерывание каждые 160 тактов например, это у вас разрешение получится 1/100 000 секунды, то есть 10мкс, то есть 100 шагов от 1000мкс до 2000мкс.
Запускаете счетчик от 0 до 2000, в тики 0..199 управляете первой-второй-третьей сервой, в тики 200..399 управляете 4-5-6 сервами и т.д. хоть 24 хоть 30 серв можно рулить. Всё это на одном прерывании делается.
Под "управляете 1-2-3 сервами" имеется в виду при значении счетчика 0 ставите на все три сервы на выход единичку, а обнуляете её тогда когда нужно в тик с 100 по 199 - в зависимости от требуемого угла.
Меньше чем 160 тактов сделать конечно можно чтобы повысить разрешение сервы, но тогда надо очень аккуратно программить, чтобы вписаться в обработку прерывания за это количество тактов, и оставить еще времени МК на другие задачи.
Сергей » 10 июн 2008, 23:03
а мне всетаки кажеца что таким образом только геморой себе наживаем. Проще сделать с той схемкой что я приводил.
Digit » 11 июн 2008, 08:26
Сергей, а как с помощью cd4015B сделать?
=DeaD= » 11 июн 2008, 08:30
Сергей писал(а):а мне всетаки кажеца что таким образом только геморой себе наживаем. Проще сделать с той схемкой что я приводил.
Ну да, можно всё аппаратно реализовывать - это такая гибкость что просто кирдык
как раз для этого МК с миллионами операций в секунду и придумывали
blindman » 11 июн 2008, 09:12
Наверное, их придумали для того, чтобы каждые 200 тактов вызывать обработчик прерываний, в котором только вызов, сохранение и восстановление регистров занимают свыше 90 тактов? Я могу найти процессору лучшее применение.
DeaD, ты же должен прекрасно понимать, что тот метод, что используешь ты - не панацея. У каждого метода есть свои достоинства и недостатки, и их надо учитывать в каждом конкретном случае.
Я сегодня немного поправил статью "
[[Управления сервами с МК]]" в вики - добавил достоинства и недостатки методов, и описание метода с внешними регистрами. Писатель из меня не очень, у кого есть мысли, как написать точнее и понятнее - милости просим
Добавлено спустя 1 минуту 57 секунд:Позже добавлю примеры кода для иллюстрации каждого метода
EdGull » 11 июн 2008, 09:34
а почему не добавить несколько мег48? ведь их стоимость не в какое сравнение не идет со стоимостью потеряного времени
blindman » 11 июн 2008, 09:56
Не надо добавлять никаких мег. одна 4017 стоит раз в 7 дешевле этой меги. И времени человек потратит куда больше на то, чтобы отлаживать на нескольких контроллерах программы и их взаимодействие. И вообще, для управления сервами любые внешние компоненты нужны только в одном случае - когда не хватает ног контроллера
Добавлено спустя 6 минут 24 секунды:
Или когда серв много и нужно высокое разрешение
EdGull » 11 июн 2008, 10:49
Да хоть в 10 раз! В деньгах-то это не больше 100р.!!! Но в итоге имеем полностью настраиваемую систему это раз. БОльшинству программить намного легче чем с аппаратной логикой разбираться это два.