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 КиБ) Скачиваний: 323

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

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

Сообщение Myp » 20 апр 2013, 18:39

почему ты думаешь что твой неопенсорсный велосипед сможет кого-то заинтересовать?
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

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

Сообщение Grem » 20 апр 2013, 22:37

Может он не знает о существовании ORFA?
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

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

Сообщение =DeaD= » 21 апр 2013, 15:11

Знатный велосипед, даже кварц на той же частоте :)))
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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 раз.
Sphynx
 
Сообщения: 13
Зарегистрирован: 13 окт 2012, 13:44

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

Сообщение Myp » 21 апр 2013, 17:20

ты лучше скажи зачем это ты на форум выложил, тем более без исходников?
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

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

Сообщение Sphynx » 21 апр 2013, 17:35

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

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

Сообщение Grem » 21 апр 2013, 19:06

Так какой смысл выкладывать фото? Здесь явно не форум фотолюбителей.
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

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

Сообщение Plastilinstyle » 21 апр 2013, 19:19

Grem, +1
И редактируй размеры фоток перед заливкой, хотя без исходников от них смысла нет
Аватара пользователя
Plastilinstyle
 
Сообщения: 263
Зарегистрирован: 26 июл 2012, 18:40
Откуда: Екатеринбург

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

Сообщение Sphynx » 21 апр 2013, 19:32

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

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

Сообщение m_w » 21 апр 2013, 20:17

m_w
 
Сообщения: 13
Зарегистрирован: 04 фев 2012, 00:07

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

Сообщение SkyStorm » 22 апр 2013, 11:59

Молодец! Что дальше будешь делать со всем этим?
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2687
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

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

Сообщение =DeaD= » 22 апр 2013, 17:19

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

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

Вот по всему этому сообщество и недоумевает, зачем повторять то, что уже сделано вместо развития уже имеющегося? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Sphynx » 22 апр 2013, 17:51

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

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

Сообщение Angel71 » 22 апр 2013, 18:54

пока совершенно непонятно, зачем вы это всё выложили. если это для повторения кем-то, то лучше пока забудьте. без схемы, нормально разведённой печатки и открытых исходников плюсы будут не раньше, чем вы сделаете что-то лучше, чем уже существующее. обижайтесь или не обижайтесь, но ваш проект пока мягко говоря слабоват и больше похож на "я только начал изучать микроконтроллеры и вот моя первая поделка". а если "недавно начал осваивать микроконтроллеры, смотрите какую я для себя штуку уже умею делать", так молодец и удачи вам в дальнейшем изучении.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

След.

Вернуться в Наши проекты

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

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