Про модульность все согласны что она нужна. Осталось определить какая. Щаз выложу основное(на мой взгляд) из Ада, и предлагаю обсудить какие модули мы хотим видеть.
Итак что имеем сегодня из СНГшных проектов(я по возрасту чтобы никому не было обидно):
- RoboCom32 - модульное решение. Старт 2006.03, Релиз 2006.07
Имеет 1 модуль расширения <МотоСенсорика>. - МиниБот - интегрированое решение. Старт 2007.09, Релиз 2008.01
Имеет 4 модуля расширения <ZegBee-SPI>, <Bridge USB-Zegbee>, <Bridge ZigBee-UART>, <Bridge USB-SPI (STK-500)> - GateA8D8M2 - модульное решение. Старт 2008.02, Релиз 2008.03
Модулей расширения не имеет ПОКА!!!
Слегка история:
=DeaD= писал(а):Но на всякий случай кратенько о своих мечтаниях:
1. Модульность - система собирается из "кубиков";
2. Расширяемость - каждый "кубик" к которому подключаются устройства имеет некоторый запас по их количеству;
3. Универсальность - каждый "кубик" может быть использован в целом ряде разработок без особых модификаций;
SkyStorm писал(а):Если рассматривать модульный проект то получается примерно такой список
- 1. Процессор с обвязкой и шинами (много много разьемов на плате)
- 2. Модуль двигателей (разные под разное электричество, под независимое питание двигателей)
- 3. Модуль внешной сенсорики (под разное количество сенсоров и много много разьемов )
- 3.1. Модуль сенсорный (Ик, УЗвук, Контакты .... вместе раздельно с прводком до до модуля 3.)
- 4. Модуль питани (питание, стабилизаци и зарядка)(только процессор, процессор и движки, тока движки)
- 5. Модуль внешней связи (ZeegBee, BT, радио, оптика ...)
=DeaD= писал(а):Я бы предложил немного не так:
1. Базовая плата в двух вариантах:
1.1. Процессор+обвязка + Стабилизация питания + Базовая сенсорика, закрывающая потребности 70-95% проектов + Базовый модуль коллекторных двигателей током до 1А;
1.2. Процессор+обвязка + Стабилизация питания + Базовая сенсорика, закрывающая потребности 70-95% проектов + Разъем для модуля двигателей;
2. Модуль двигателей - здесь весь ассортимент по токам;
3. Модулем внешней сенсорики может быть базовая плата с нараспаянной частью компонентов и спец-прошивкой, т.к. применяться будет только в 5-30% проектов;
3.1. Модули сенсорные - тут умничать особо не надо - есть куча готовых и в том же духе можно своих понаделать, интерфейсы штатные - 3 проводка и i2c;
4. Модуль питания только если нужен высокий КПД или функция заряда (заметим что не все мечтают о зарядке аккумов прямо в роботе, многие без этого легко обойдутся);
5. Модуль внешней связи - тут любой модуль с TTL-UART интерфейсом, в том числе и проводной подойдет.
Виталий писал(а):Что бы я хотел от модулей и какими бы они должны были бы быть:
1. Я бы хотел чтобы была основная ЭВМ которая бы подключалась к гирлянде из модулей.
2. Я хотел бы чтобы к каждому изэтих модулей можно было обратиться по имени с этой самой бортовой ЭВМ.
3. Я хотел бы чтобы однотипные модули поддерживали одинаковый интерфейс (двигатели - интерфейс двигателей, датчики - интерфейс датчиков и т.д.)
4. Я бы не запрещал расширять стандартный интерфейс, но требовал бы максимальной поддержки основной функциональности.
5. Я хотел бы получать все это в собранном виде, но с возможностью замены компонент.
6. Я хотел бы чтобы все модули были открытыми и содержали возможность легкого изменения своего исходного кода.
7. Я сомневаюсь, что я использовал бы более десятка модулей одновременно.
8. Я хотел бы иметь удобную библиотеку для работы со всеми стандартными модулями.
9. Я хотел бы получить их бесплатно.
Так, все мне надоело собирать мнения подведу свой итог:
- Модульный - состоит из базового этемента с возможностью подключения как минимум 1 модуля расширения.
- Интерфейс - межмодульный I2C, опционально UART.
- Протокол взаимодействия - описаный протокол взаимодействия модулей поверх I2C. Обеспечивающий:
- ID каждому модулю.
- Инициализация при Power-Up.
- Список команд, (при замене одного модуля на другой аналогичной функциональности комнды идут те же) - Програмный интерфейс - библиотеку для работы со всеми стандартными модулями.