roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 22:38

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 15:48 
Не в сети

Зарегистрирован: 13 сен 2010, 12:47
Сообщения: 317
Добрый день!
Подскажите плиз микроконтроллер, который наиболее просто позволял бы работать с Энкодером 1024.
Пробовал на Arduino через прерывания, но работает только если мотор руками крутить, если сам крутится, то не хватает частоты.
Сейчас смотрю в сторону STM32 или dsPIC30.
Дайте пример кода, кто такие вещи реализовывал. Может есть контроллеры с аппаратной поддержкой энкодера? (чтоб сам положение и скорость выдавал, без программирования прерываний)
Общая задача - проще некуда. Микроконтроллер - PID регулятор - драйвер на H-мосту - мотор 12V c энкодером 1024. Всё есть, но пока затык - как считать данные с энкодера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 15:52 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Рекомендую присмотрется к Intel Core 2 Duo, или даже Quad... Правда с разводкой платы могут быть проблемы, но ничего.

Сейчас дам код для энкодера.

Добавлено спустя 1 минуту 2 секунды:
http://www.piclist.com/techref/microchi ... enc-dk.htm
http://letsmakerobots.com/node/24031

Любой МК потянет.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:15 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
dccharacter писал(а):
Любой МК потянет.

На какой частоте потянет? Написано же, проблема не в коде как таковом, а в его производительности.
Про аппаратные решения. Если вращение однонаправленное - пойдет любой МК, имеющий таймер с внешним входом. А вот если хочется ловить направление - лично я использовал TMS320F240, но он старый, щас есть много новых МК из серии TMS320LF24xx и TMS320F28xx, они все имеют на борту декодер квадратурных сигналов с энкодера, а некоторые и по два. 2801 самый дешевый и мелкий.

Обороты максимальные какие?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:16 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
посмотрите в сторону xmega, там вроде бы аппаратно реализовано декодирование квадратурных энкодеров.

Добавлено спустя 23 секунды:
dccharacter писал(а):
Любой МК потянет.

Вы не правы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:25 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Ладно, почти любой. У меня на столе лежит россыпь пиков по 43 рубля штука. Тактовая частота с PLL - 32МГц. Движок сколько оборотов? 3, 5, 10 тысяч? Это частота 10 МГц. Или я опять про что-то забываю?

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:26 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
если у него там 10 тыщ оборотов в минуту то это получается 170 тыщ импульсов в секунду
для 8 мГц процессора 170 кГц сигнал не должен быть проблемой....

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:33 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
А, ну да, я еще и движки прикидывал со скоростью вращения от 180 до 600 ТЫСЯЧ оборотов в минуту. И то тянуло :-)))

Ну я, конечно, теоретизирую, но вскоре после окончания битвы с i2c slave и до этого руки дойдут...

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Последний раз редактировалось dccharacter 17 мар 2011, 16:34, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:34 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Мне просто интересно - куда такая точность? :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:35 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
А я тебе уже говорил :-)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:36 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Myp писал(а):
для 8 мГц процессора 170 кГц сигнал не должен быть проблемой....


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

И, кстати, вполне может быть, что 1024 позиции - это 4096 фронтов (энкодер квадратурный, считать можно по-разному).

Добавлено спустя 48 секунд:
=DeaD= писал(а):
Мне просто интересно - куда такая точность? :)

Да уж не на игрушечное колесико, наверное :))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:41 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Michael_K писал(а):
В смысле проц будет все время только этим и заниматься - это нехорошо.

dsPIC30F2020-30I/SO DSC 16 bit, 4K x 24 Enh Flash, NO EE, 0.5K RAM, Power control PWM 359.42 в резерве MICROCHIP
dsPIC30F4011-30I/PT DSC 16 bit, 16K x 24 Enh Flash, 1K EE, 2K RAM, CAN, Motor Control PWM 6 ch. 266.11 Да MICROCHIP
dsPIC30F4013-30I/PT DSC 16 bit, 16K x 24 Enh Flash, 1K EE, 2K RAM, CAN, AC'97 233.28 Да MICROCHIP
dsPIC30F5011-30I/PT DSC 16 bit, 22K x 24 Enh Flash, 1024 EE, 4096 RAM, 2 x CAN, AC'97 253.15 Да MICROCHIP
dsPIC30F6012A-30I/PT DSC 16 bit, 48K x 24 Enh Flash, 4K EE, 8K RAM, 2 x CAN, AC'97 337.82 Да MICROCHIP
dsPIC30F6014A-30I/PF DSC 16 bit, 48K x 24 Enh Flash, 4K EE, 8K RAM, 12-bit АЦП, 2 x CAN 378.78 Да MICROCHIP
dsPIC33FJ16GS504-I/PT DSC 16 bit, 16K Flash , 2K RAM, Motor Control PWM 8 ch 172.80 Да MICROCHIP

Добавлено спустя 2 минуты 55 секунд:
Да хотья пяток выделенных МК на каждый енкодер поставь - дешевле будет :-)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:41 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Что это было?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:43 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Кстати, а топикстартер уже назвал конкретные скорости - оборотов в минуту, на которых ардуино на прерываниях не успевает отработать энкодер на 1024 клика? И надо бы скетч выложить к ардуино, на котором это делалось.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:44 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Michael_K писал(а):
Что это было?

Это цены на МК, которые ТС хочет использовать для чтения энкодеров, ага

Добавлено спустя 55 секунд:
А почему 50 тактов на фронт - напряженно?

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с Энкодером
СообщениеДобавлено: 17 мар 2011, 16:53 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Не вижу логики. При чем здесь цена?

Не нужно заниматься шапкозакидательством. Представьте, что в проце есть еще пара прерывний и задач, помимо чтения энкодеров, и радужные картинки тут же исчезнут.

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

Если нужны высокие скорости, то спасают только аппаратные решения. Они есть. Зачем же городить огород ради несчастного энкодера (обработка которого явно не основная задача).

Добавлено спустя 3 минуты 32 секунды:
Я бы взял ИксМегу
http://www.atmel.com/dyn/resources/prod ... oc8109.pdf
К иксмеге можно до трех энкодеров подключить. аппаратно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO