Микроконтроллер STM32F103C8T6

Для управления механической частью робота используется микроконтроллер STM32F103C8T6. Это современный 32-битный контроллер с ARM Cortex ядром, работающим на частоте до 72 МГц. Микросхема оснащена 20 Кб оперативной памяти и 64 Кб памяти программ. Контроллер имеет 10 каналов для измерения аналоговых сигналов с использованием двух 12-битных АЦП и четыре 4-канальных таймера, способных генерировать до 12 ШИМ сигналов.

На рисунке показано назначение ножек микроконтроллера. Контакты USART1_RX и USART1_TX используются нами для обмена данными с бортовым компьютером робота по последовательному интерфейсу, SYS_SWDIO и SYS_SWCLK - для программирования контроллера и отладки. К цифровым выходам Indicator и Battery подключены светодиоды, которые используются для индикации статуса исполнения программы на контроллере и низкого заряда батареи; входы ADC_x предназначены для измерения аналоговых сигналов с инфракрасных датчиков и напряжения аккумулятора через шунт. К ножкам PD0, PD1 подключен кварцевый резонатор. Выходы первого и второго каналов второго и третьего таймеров (TIMx_CHy) подключены в качестве входов управления микросхемы драйвера двигателей. Они управляют направлением вращения и скоростью моторов с помощью генерируемых таймерами ШИМ сигналов.