roboforum.ru

Технический форум по робототехнике.

Hexapod

Re: Hexapod

blindman » 10 июн 2008, 13:27

Можно. Как-то попадались статьи, в которых говорилось, что верхний предел около 40. Да и сам эксперементировал, при 40 работало нормально, при 50 - начинала дергаться. Хотя, конечно, это может зависеть от модели сервы.

Re: Hexapod

ksp » 10 июн 2008, 13:57

Будем пробовать.

Re: Hexapod

=DeaD= » 10 июн 2008, 15:24

Лучше не экспериментировать с изменением частоты (период с 20мс), запаритесь потом глюки искать, если начнут вылезать.

Re: Hexapod

blindman » 10 июн 2008, 15:48

А какие могут быть глюки? По-моему, данная конкретная серва или работает при определенном периоде импульсов, или нет.

Конечно, следует стремиться к 20мс, особенно если требуется повторяемость конструкции. Если же девайс в одном - двух экземплярах, достаточно проверить, какой период держат имеющиеся сервы

Re: Hexapod

=DeaD= » 10 июн 2008, 16:21

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

Re: Hexapod

blindman » 10 июн 2008, 16:42

DeaD, спасибо за совет. А то сижу, не знаю чем себя развлечь :D

Re: Hexapod

ksp » 10 июн 2008, 21:37

Попробывал тут использовать оба модуля таймера. Оказалось, что хоть регистры сравнения разные, но регистор счётчика всё-таки один. А он там обнуляется на каждом прерывании...
Короче мне пока не ясно как это всё реализовать. Подскажите?

Re: Hexapod

=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 тактов сделать конечно можно чтобы повысить разрешение сервы, но тогда надо очень аккуратно программить, чтобы вписаться в обработку прерывания за это количество тактов, и оставить еще времени МК на другие задачи.

Re: Hexapod

Сергей » 10 июн 2008, 23:03

а мне всетаки кажеца что таким образом только геморой себе наживаем. Проще сделать с той схемкой что я приводил.

Re: Hexapod

Digit » 11 июн 2008, 08:26

Сергей, а как с помощью cd4015B сделать? :oops:

Re: Hexapod

=DeaD= » 11 июн 2008, 08:30

Сергей писал(а):а мне всетаки кажеца что таким образом только геморой себе наживаем. Проще сделать с той схемкой что я приводил.

Ну да, можно всё аппаратно реализовывать - это такая гибкость что просто кирдык :) как раз для этого МК с миллионами операций в секунду и придумывали 8)

Re: Hexapod

blindman » 11 июн 2008, 09:12

Наверное, их придумали для того, чтобы каждые 200 тактов вызывать обработчик прерываний, в котором только вызов, сохранение и восстановление регистров занимают свыше 90 тактов? Я могу найти процессору лучшее применение.

DeaD, ты же должен прекрасно понимать, что тот метод, что используешь ты - не панацея. У каждого метода есть свои достоинства и недостатки, и их надо учитывать в каждом конкретном случае.

Я сегодня немного поправил статью "[[Управления сервами с МК]]" в вики - добавил достоинства и недостатки методов, и описание метода с внешними регистрами. Писатель из меня не очень, у кого есть мысли, как написать точнее и понятнее - милости просим

Добавлено спустя 1 минуту 57 секунд:
Позже добавлю примеры кода для иллюстрации каждого метода

Re: Hexapod

EdGull » 11 июн 2008, 09:34

а почему не добавить несколько мег48? ведь их стоимость не в какое сравнение не идет со стоимостью потеряного времени

Re: Hexapod

blindman » 11 июн 2008, 09:56

Не надо добавлять никаких мег. одна 4017 стоит раз в 7 дешевле этой меги. И времени человек потратит куда больше на то, чтобы отлаживать на нескольких контроллерах программы и их взаимодействие. И вообще, для управления сервами любые внешние компоненты нужны только в одном случае - когда не хватает ног контроллера

Добавлено спустя 6 минут 24 секунды:
Или когда серв много и нужно высокое разрешение

Re: Hexapod

EdGull » 11 июн 2008, 10:49

Да хоть в 10 раз! В деньгах-то это не больше 100р.!!! Но в итоге имеем полностью настраиваемую систему это раз. БОльшинству программить намного легче чем с аппаратной логикой разбираться это два.


Rambler\'s Top100 Mail.ru counter