VINER

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Выбор электромеханической части робота.

Электромеханическую часть было решено взять, по возможности, готовую. В качестве "кандидата" был рассмотрен радиоуправляемая машинка с давным-давно потерянным пультом. Машинка имеет задний привод, движение задних колес и поворота передних осуществляется электродвигателями. При прекращении работы рулевого двигателя колеса пружиной возвращаются в среднее положение. Питание осуществлялось от 6 элементов АА, расположенных в двух отсеках (4 + 2). "Вскрытие показало", что оба двигателя - ходовой и поворота, - находятся в рабочем состоянии, что и решило судьбу кандидата.
Управление обоими двигателями построено на одной микросхеме L293D (отечественный аналог - КР1128КТ4А). Предусмотрена возможность раздельного питания электронной части системы управления.

2. Микроконтроллер. Какой лучше?

Основной критерий при выборе микроконтроллера в данном случае - простота использования для решения наших задач (с точки зрения быстродействия, объема памяти, энергопотребления и пр. здесь может быть использован практически любой современный микроконтроллер), поэтому останавливаемся на семействе AVR фирмы Atmel AT90S2313-10PI: корпус DIP20, Flash-память 2К, 15 портов ввода-вывода, напряжение питания 4.0-6.0 В.
Контроллер AT90S2313-10PI имеет 20 выводов из которых пять "заняты": два - питание (VCC и GND), два - для подключения "кварца" (XTAL1 и XTAL2) и "Сброс" (RESET). Остальные 15 могут быть использованы для ввода/вывода информации и представляют два порта - B (PB7..PB0) и D (PD6..PD0).
Порт В - это 8-битный двунаправленный порт ввода/вывода. PB0 и PB1 могут также использоваться как положительный (AIN0) и отрицательный (AIN1) входы встроенного аналогово компаратора, PB3 - для получения сигнала широтно-импульсной модуляции (OC1). Порт D имеет семь двунаправленных линий ввода/вывода PD6..PD0. В то же время, PD0 может использоваться как ресивер (RXD), а PD1 - как трансивер (TXD) интерфейса обмена данными (UART), PD2 и PD3 - как входы для сигналов внешних прерываний (INT0 и INT1), PD4 и PD5 - в качестве входов таймеров/счетчиков (TO и T1), а PD6 - для управления ими (ICP). Линии PB5-PB7 используются для внутрисхемного программирования контроллера (MOSI, MISO, SCK). Все, что нужно, чтобы контроллер начал работать - подсоединить к тактовому генератору кварцевый кристалл и установить разъем для подключения программатора.
Для управления двигателями нам требуется четыре линии: "вперед", "назад","вправо", "влево". Исходя из того, что нужно оставить незанятыми вводы, которые могут понадобиться в перспективе, берем для управления двигателями линии PB4..PB7. Чтобы подключение линий PB5..PB7 к драйверу двигателей (микросхема L293D) не отражалось на работе внутрисхемного программатора, питание драйвера во время программирования лучше отключать.
Порт В не трогаем: входы аналогового компаратора (AIN0, AIN1) резервируем на будущее, три оставшихся линии PB2..PB7 могут понадобиться для подключения дополнительных выходных устройств, например, индикатора, пьезодинамика и пр.
Входы таймеров/счетчиков (Т0 и Т1) лучше использовать по прямому назначению, а вот входы внешних прерываний (INT0, INT1) удобно назначить для получения сигналов от контактных датчиков ("бамперов"). Соответственно линии FD0 и FD1 можно выделить для датчиков освещенности.
Убедившись, что управление двигателями работает правильно, можно переходить к написанию управляющей программы.

3. Создание печатных плат.

Для создания схемы робота и программатора мы использовали программу Layout 4.0. С её возможностями можно легко и быстро создать печатную плату любого устройства. С помощью компьютера и этой программы мы спроектировали и разработали схемы робота и программатора.

Далее

Hosted by uCoz