123
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Роботы » Робот на микроконтроллере PIC » Робот на контроллере PIC (Описание, схемы)
Робот на контроллере PIC
Отправлено 31.07.2009 - 11:381
Администраторы
571 сообщений
Мужчина
Робот на контроллере PIC

Глядя на вашу бурную активность, я тоже решил шевельнуть ластами. Достал со шкафа сделанную еще в 2006г простенькую тележку (к коробке от CD-ROMа прикручены 2 самодельных колеса, 2 движка ДПМ-25-Н1-7Т с редукторами (27v, но неплохо тянут уже при 12, надо будет больше - сделаю преобразователь 12->27), и самодельный поворотный узел с роликом (третье колесо).

Потребление от 12v: 33 мА при выкл. двигателях, при макс. скорости без нагрузки (колеса не касаются пола) = 103 мА вперед, 115 мА назад. При одном заклиненном колесе - 300 мА, при обоих заклиненных колесах = 500 мА.
L293DN чуть теплая. Будет греться - приклею радиатор. Да, частоту ШИМ взял пока 500 Гц. (период 2 мс). Померяю скорость нарастания тока в двигателях - определю более оптимальную (За самый короткий импульс ток в двигателе должен успеть достигнуть максимума).
Максимальная скорость движения по полу сейчас 15-20 см/сек. Больше мне пока ни к чему, слишком быстро будет комнату пробегать. Диаметр колес = 80мм (резиновые “бублики” вроде от какой-то сантехники, полно на базаре).

Честно говоря, я был сильно удивлен когда нагуглил характеристики движка ДПМ. Почти все они, несмотря на весьма брутальную конструкцию, жрут довольно мало. Так что даже L293 их спокойно тянет. При этом они отличаются вполне сносным моментом и оборотами.

А также сделанную в том же году плату контроллера привода, которая в дальнейшем должна будет управляться уже от центрального контроллера, сама же имеет микроконтроллер PIC16F873 с двумя ШИМ; L293DN; MAX232 для RS232; стабилизатор LM2931(5v) для питания микросхем; маленькую пищалку; а также разьемы для подключения двигателей (и довольно сложные фильтры для них); разьем, на который выведен порт B, земля и +5v, для подключения датчиков и приемника радиоуправления; разьем RS232 (Для связи с компьютером и выдачи отладочной информации); разьем с шинами I2C и SPI (для связи в будущем с центральным контроллером и прочей периферией).

Мыслим похоже, даже более чем. У меня сходная архитектура. Только я SPI не выводил. UART да i2c и преобразовние на RS232 повесил на кабель. А так почти то же самое, только контроллер AVR, а не PIC
-------------------------------------------------------------------------

Еще на этой платке (50×85×15мм) есть делитель напряжения батареи с подстроечником, подключенный к одному из каналов АЦП PIC16F873, для контроля напряжения аккумулятора (12v 1,3 А/ч, 95×40×50мм).
Ну и, конечно, разьем для подключения этой батареи. Для ускорения “оживления”, а также чтобы пощупать, что реально получилось, решил попробовать МикроПаскаль. На днях набросал несколько строк программки для инициализации ШИМ, UART, и простенький главный цикл, в котором проверяется состояние линий порта B, кнопки на которых пока задают команды “Вперед”, “Назад”, “Разворот на месте влево”, “Разворот на месте вправо”, “Скорость больше”, “Скорость меньше”. Отсутствие команд переводит в состояние “Стоп”.
При изменении коэффициента ШИМ в канал RS232 выдаю “#” и два байта - коэффициенты левого и правого ШИМ. Пока для начала оба меняю одинаково. Для того, чтобы задавать одним байтом значение ШИМ, ограничился интервалом 0-255. Подумывал даже сделать всего 16 ступенек, тогда бы одним байтом можно было бы хранить значения обоих ШИМ (в младшей и старшей тетрадах), но решил, что пока экономить рано.

При проверке кнопок сделал защиту от дребезга по 1мсек. Для замедления работы главного цикла ввел в него задержку 50 мсек. В дальнейшем эти процедуры опроса линий порта B и управление ШИМом посажу на многозадачное прерывание от таймера, которое будет обслуживать часы, календарь, и с десяток программных таймеров от милисекунд до секунд.
Еще один таймер, имеющий выход на С0, заведен у меня на пищалку, через сьемную перемычку, конденсатор и ограничительный резистор.

Сегодня зашил программку в микросхему, собрал все в кучку, включил - все работает, как и должно. (Естественно, только то, что уже написано в программе). Движки по командам крутятся вперед, назад, в разные стороны, ускоряют и замедляют вращение.При изменении параметров ШИМ вижу новые значения в компьютере (через “Гипертерминал”, на 9600 бод). Просмотрел все сигналы осциллографом - все, как и должно быть.
Даже не интересно. Нет, чтобы помучаться, понастраивать… К сожалению, уже лет 20 лишен такого удовольствия. Обычно все работает сразу. Сказывается наличие опыта… Ничего, когда понавешаю датчиков, всех тех заморочек, что запланировал, вот тогда и начнется настоящая работа над машинным интеллектом. Будет труднее, но интересней.

Вот фото: Схема, Фото платы, готовая плата:



Прикрепление
1934746.gif(22.1 Kb) · 9156392.jpg(46.6 Kb) · 9529691.jpg(43.4 Kb)
Я Админ
Профиль Личное сообщение Дом. страница icq Skype
Отправлено 24.06.2012 - 18:562
Администраторы
3322 сообщений
Мужчина
test


Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Отправлено 07.10.2012 - 15:283
Администраторы
3322 сообщений
Мужчина
UP


Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Форум » Роботы » Робот на микроконтроллере PIC » Робот на контроллере PIC (Описание, схемы)
  • Страница 1 из 1
  • 1
Поиск: