roboforum.ru

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

Универсальный контроллер

Универсальный контроллер

Sphynx » 20 апр 2013, 18:01

Хочу представить свой "универсальный контроллер" (не хватило фантазии обозвать по-другому). Данный проект образовался спонтанно и развивался в течении нескольких месяцев, так-что получился достаточно объемным. Описать его полностью я не смогу, так-как некоторый функции подзабылись :crazy:
Контроллер позволяет с помощью ПК управлять различными устройствами, и на момент написания статьи это:
- восьми битный порт ввода-вывода;
- восьми канальный 10бит АЦП;
- 2 ШИМ контроллера;
- 2 двигателя постоянного тока;
- 6 сервомашинок;
- шина I2C;
Управление осуществляется по COM-порту, подачей специальных команд. За разбор команд отвечает простейший интерпретатор.
Немного о формате команд. Воспринимаются только заглавные символы. Все слова обязательно должны быть разделены пробелами с обоих сторон !(на данный момент пробелами считаются: $0D, $0A, ' ', ','). Количество пробелов подряд не ограничено. Команды могут иметь неограниченное число параметров. Окончанием команды считается символ ';'.
Собственно список доступных команд и их описание.
USART - команда для настройки соединения с ПК. В качестве параметра задается скорость соединения. Пример: USART BR_9600 ; установит скорость обмена 9600 бит;
PORT - команда для работы с восьмибитным портом. Параметры: "число", DDR, OR, AND, RD. Пример: PORT 255 ; выведет в порт 255. PORT DDR $FF $AA RD установит все выводы на выход, выведет $AA, и произведет чтение вернув число (в данном случае 170).
ADC - команда для работы с АЦП. Параметры: "число", AREF, IREF. Пример: ADC IREF 0 1 2 3 ; - установит внутренний ИОН, и выведет 4 результата преобразования с каналов 0, 1, 2, 3 соответственно.
PWM - команда для работы с ШИМ. Параметры: "число", А, В, ENABLE, DISABLE. Пример: PWM ENABLE A 10 B 93 ; - разрешает работу ШИМ и установит для канала А 10% заполнение, для канала В 93% заполнение.
MOTOR - команда для работы с двигателями постоянного тока (с поддержкой НЧ программного 8уровневого ШИМ). Параметры: "число", MR, ML, ENABLE, DISABLE. Пример: MOTOR ENABLE MR -8 ML 4 ; разрешает работу двигателей, установит для правого максимальную мощность "назад", для левого половину мощности "вперед".
SERVO - команда для работы с сервомашинками. Параметры: "число", ENABLE, DISABLE. Пример: SERVO ENABLE 0 50 1 90 2 30 ; разрешает работу сервомашинок, установит для 0, 1, 2 угол 50, 90, 30 градусов соответственно.
I2C - команда для работы с шиной I2C. Принцип работы будет понятен на примере работы с микросхемой at24c16 (адрес на шине $A0). I2C SWWWWWWWP $A0 $00 $05 1 2 3 4 ; запишет в микросхему 4 байта ($01,$02,$03,$04) начиная с адреса $0005. I2C SWWWSWRRRRP $A0 $00 $05 $A1 ; выведет 4 байта прочитанные с адреса $0005.
Хватит команд, есть еще несколько, но они менее полезны.
Контроллер основан на МК ATMega16, работающим на частоте 7.3728MHz.
После прошивки контроллер выглядит так:
Mega16.png

Собственно прошивка
mcu2.7b.hex
(11.74 КиБ) Скачиваний: 334

Прошивка протестирована на боте управляемого с ПК, но буковку 'b' я пока не убираю :crazy:
Последний раз редактировалось Sphynx 22 апр 2013, 19:17, всего редактировалось 1 раз.

Re: Универсальный контроллер

Myp » 20 апр 2013, 18:39

почему ты думаешь что твой неопенсорсный велосипед сможет кого-то заинтересовать?

Re: Универсальный контроллер

Grem » 20 апр 2013, 22:37

Может он не знает о существовании ORFA?

Re: Универсальный контроллер

=DeaD= » 21 апр 2013, 15:11

Знатный велосипед, даже кварц на той же частоте :)))

Re: Универсальный контроллер

Sphynx » 21 апр 2013, 17:16

Минимальный комплект для начала работы:
http://roboforum.ru/download/file.php?mode=view&id=27939 - простая программка для работы с COM портом, написаная на Delphi.
Макетная плата (Mega16 + 24c16), преобразователь USB2COM (FT232RL) он же программатор для PonyProg.
Вложения
IMG_20130421_202156.jpg
Project1.zip
(203.92 КиБ) Скачиваний: 0
Последний раз редактировалось Sphynx 22 апр 2013, 16:52, всего редактировалось 1 раз.

Re: Универсальный контроллер

Myp » 21 апр 2013, 17:20

ты лучше скажи зачем это ты на форум выложил, тем более без исходников?

Re: Универсальный контроллер

Sphynx » 21 апр 2013, 17:35

Изначально контроллер создавался для радиолюбительских целей, однако добавив работу с сервомашинками и дигателями, удалось собрать своего первого робота в кратчайшие сроки.
Фактически весь алгоритм поведения схемы задается программой на ПК, и это, я считаю, очень удобно.
Прошивка писалась на ассемблере, и состоит из нескольких десятков файлов. Даже я не всегда могу вспомнить что и зачем, так какой смысл выкладывать исходник ?

Re: Универсальный контроллер

Grem » 21 апр 2013, 19:06

Так какой смысл выкладывать фото? Здесь явно не форум фотолюбителей.

Re: Универсальный контроллер

Plastilinstyle » 21 апр 2013, 19:19

Grem, +1
И редактируй размеры фоток перед заливкой, хотя без исходников от них смысла нет

Re: Универсальный контроллер

Sphynx » 21 апр 2013, 19:32

У меня появилось чувство, что я приехал "таксовать" в чужой район :)
Фото выложил лишь для того чтобы подтвердить реальность сборки.
А размер изображения действительно великоват, извиняюсь :pardon:

Re: Универсальный контроллер

m_w » 21 апр 2013, 20:17


Re: Универсальный контроллер

SkyStorm » 22 апр 2013, 11:59

Молодец! Что дальше будешь делать со всем этим?

Re: Универсальный контроллер

=DeaD= » 22 апр 2013, 17:19

Sphynx писал(а):У меня появилось чувство, что я приехал "таксовать" в чужой район :)
Фото выложил лишь для того чтобы подтвердить реальность сборки.

Понимаете в чем фишка - на этом форуме 4 года назад был реализован Open Source проект [[ORFA]], в котором вроде сделано всё и даже чуть больше, чем вы реализовали в своём проекте, кроме того контроллеры в проекте ORFA позволяют одновременно рулить большим количеством сервоприводов (до 32) с плавным их движением, совместимы с набором команд SSC-32, на одном из контроллеров реализованы сдвоенные энкодеры и подсчет кликов с них. Прошивка ORFA модульная и позволяет встраивать в неё новые команды не сильно нарушая работу предыдущих модулей, если не используются те же самые железные блоки контроллера.

Вот по всему этому сообщество и недоумевает, зачем повторять то, что уже сделано вместо развития уже имеющегося? :)

Re: Универсальный контроллер

Sphynx » 22 апр 2013, 17:51

Без сомнения вы правы, но такая логика не идеальна. Зачем существует Windows, ведь есть же Linux с открытым исходником ? Я не пытаюсь конкурировать с проектом ORFA, считайте это альтернативным решением проблемы со своими плюсами и минусами.
При подключении блютус модуля контроллер способен выполнять все вышеописанное, но по беспроводному каналу.
IMG_20130422_204046.jpg

Re: Универсальный контроллер

Angel71 » 22 апр 2013, 18:54

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


cron
Rambler\'s Top100 Mail.ru counter