Технический форум по робототехнике.
Strijar » 26 ноя 2007, 16:39
В процессе доделки текущего робота, думаю над следующим. Дальномеры у меня уже есть. С SD разобрался. Хочу камеру какую нибудь прицепить - есть идея раскурочить web камеру, оторвав от нее USB. Ну и какое нибудь радо, например BlueTooth. Так вот - много всего получается! Текущая Mega162 точно не справится, лежащая 644 может и потянет - а вот они вместе уже точно! Хотя можно переползти на что нибудь принципиально другое - благо что на работе и ColdFire есть и ARM SAM7. Но как-то это мало паябельно моими руками. Короче решил я затеять несколько микроконтроллеров. Один на движки+энкодеры, второй на бамперы+дальномер+серва крутить "головой" и еще один центральный для обвязки всего + SD + звук. Пока обвязать думаю по SPI. Но мало представляю себе как будут работать slave - надо разбираться. Кто-что скажет? Кто нибудь такое делал?
-= Александр =- » 26 ноя 2007, 18:52
Думаю имеет смысл поставить МК+ПЛИС - стандартное решение если и МК загружен и тупой переферии много... 2 МК - уже труднее, протокол надо придумывать. SPI - правильная мысль, он пожалуй самый быстрый после параллельного интерфейса. Режим работы простой как топор: есть 2 чипа, у каждого в SPDR лежит байт. После акта передачи эти байты меняются местами. Акт передачи генерит Мастер. У Слейва по завершении происходит прерывание и он может переложить куда надо полученный байт и положить туда ответ если надо.
Минусы такие: если надо читать много байт подряд - придется слать столько-же байт мусора обратно, передача работает только в обе стороны одновременно.
Strijar » 26 ноя 2007, 20:01
Про ПЛИС на работе уже поспрашивал.. есть 100-ногие, в которые даже PicoBlaze влезет
Но это пока не для меня. Про "мусор" в SPI тоже уже понял, на примере с SD/MMC - там так сделано... Надо докупить несколько mega8 и начать паять "слоты"
А "матери" поставлю 644
...хоть ШИМы буду человеческие - а то сейчас все кроме звука програмные
Прошивать только их муторно будет - или кабель перетыкать или "чип селект" в програмер добавлять. А можно ложить образы на SD и главный пусть сам заливает
Виталий » 26 ноя 2007, 23:34
Систему можно сделать мультиагентной. Т.е. одноранговой с независимыми модулями.
Duhas » 28 ноя 2007, 04:25
думал над организацией многопроцессорности для паучка ... там как минимум 1 камень на ногу ... мысли пришли с спи... и скорость и простота радуют .. но решил что понадобится еще 1-2 вспомогетальных линии чтобы к примеру экстренно крикнуть моску в ухо что у нас нога заклинилась или зацепилась ... и моск перестал считать овечек и занялся этой проблемой..
кстати не подскажете как лучше считать обороты энкодером в плане программной части ?
EdGull » 28 ноя 2007, 10:53
а что мешает мозгу постоянно опрашивать все остальные МК?
Strijar » 28 ноя 2007, 12:02
Duhas писал(а):кстати не подскажете как лучше считать обороты энкодером в плане программной части ?
У меня сейчас внешние прерывания (на смену фронта ) - лучше ИМХО никак
Добавлено спустя 1 минуту 9 секунд:EdGull писал(а):а что мешает мозгу постоянно опрашивать все остальные МК?
Я так и собираюсь делать
Добавлено спустя 6 минут:Вот еще обдумываю вариант с инициализацией передачи от Slave - он ведь может дрыгнуть ногой когда хочет что-то послать, а на этой ноге с стороны master сидит прерывание. А дрыгать можно тем-же "чип селектом" - что-б не плодить сущности. Изначально и на мастере и на слэйве включить его на вход, и по ходу дела переключать его когда надо на выход. Только я думаю может случиться засада если оба его на выход включат случайно. Через резюк?
EdGull » 28 ноя 2007, 13:03
а еще есть CAN шина, там все могут быть мастерами...
Digit » 28 ноя 2007, 13:26
А есть еще TWI =) Там и мастеров много, и стандарт это промышленный, и арбитраж коллизий на железном уровне (когда одновременно несколько "дрыгать" начнут чем попало)
Strijar » 28 ноя 2007, 14:34
Уточняйте где
там на mega162 нет, на tiny13 тоже
Хотя если ставить в центр mega644 а на переферию mega8 - тогда вытанцовывается
Digit » 28 ноя 2007, 14:57
Хы!И точно - в меге 162 нету!
Ну тада ладно
Duhas » 02 дек 2007, 21:37
по мне так на самом деле спи и дрыгать чип селектом... да и передача байта в обе строны лучше чем переда только в 1 сторону... да и инфы лишней нету ... типа адресов и прочего ... работать нада больше железом )))
Strijar » 03 дек 2007, 13:24
И тем более что через SPI надо прошивать модули - так что его так и так надо выводить
Different » 18 дек 2007, 21:58
ИМХО,
Propeller P8X32A, хоть и банально это звучит. 8 процессоров в одном корпусе DIP-40 или LQFP-44. Паябельность хоть куда. Параллельность работы ядер. Для ходячего робота вполне хватит. Можно запараллелить 2 чипа...
Duhas » 20 дек 2007, 22:20
и минусы:
-всего 40 ног
-контроллер прерывания явно общий.. хотя хз... но внешних нормальных прерываний это не добавит..
-програмить будет тяжко... информации мало...
и зачем 8 ядер в паралели? кому они нах нужны в 1 камне ? чтобы их нормально нагрузить нужна дюжая куча данных.. откуда она ? вообше мне кажется камень галим...
склеив кучу каких нить тинег или мег8 мы получим много отдельных мдулей расположенных непосредственно на своих местах.. и делающих свое дело... легко программируемых... да и ходячем уроботу как рас необходимо множество отдельных камней.. ибо тягать проводки от тех же энкодеров на валах движков к 1-2 камням уже смотрися как бред чистой воды...