3.30. Заключение¶
Вы прошлись по частям модуля machine, которые возникают в тот же момент, когда скрипт начинает взаимодействовать с физическим миром:
Вывод и ввод GPIO – управление светодиодом или транзистором, чтение кнопки или концевого выключателя. Строительные блоки, на которых держится любой аппаратный проект, с подтягивающими резисторами и программным подавлением дребезга для чтений, которые должны быть надёжными.
Аналоговые сигналы – чтение датчика, потенциометра или любого другого непрерывно меняющегося напряжения с помощью ADC; и, когда DAC недоступен, формирование контролируемого напряжения с помощью PWM и фильтра нижних частот на RC-цепи.
Применения PWM – регулировка яркости светодиода, изменение скорости двигателя постоянного тока через H-мост, позиционирование сервопривода. Одна форма сигнала, разные физические усреднители (глаз, индуктивность двигателя) и разные представления (коэффициент заполнения против абсолютной ширины импульса).
Последовательные шины –
UARTдля асинхронных каналов точка-точка;SPIдля быстрых периферийных устройств на плате с одним сигналом выбора кристалла на устройство;I2Cдля медленных многоустройственных шин датчиков всего на двух проводах;CANдля надёжных мультимастерных полевых шин между модулями.Производственные паттерны – сторожевой таймер для восстановления после зависаний, режимы сна для продления работы батареи. Оба становятся необходимыми, как только камера впервые покидает рабочий стол.
Этого достаточно, чтобы построить цикл восприятие – планирование – действие встраиваемого устройства: чтение датчиков через I2C / SPI / ADC, принятие решений на Python, управление исполнительными механизмами через PWM / GPIO, передача статуса через UART / CAN, сон между событиями.
3.30.1. Использование этого справочника в дальнейшем¶
Относитесь к главам об аппаратуре как к справочному материалу, а не к чтению за один проход. Справочная страница модуля machine перечисляет каждый класс и метод в одном месте, когда вопрос заключается лишь в том, «как именно называется этот вызов». Страницы по отдельным главам здесь – это то, куда стоит вернуться за взглядом «какая ручка что делает и почему», который справочный материал сам по себе не даёт.
3.30.2. Куда двигаться дальше¶
Сенсоры машинного зрения – следующая крупная тема. Если этот раздел рассказывал об общих периферийных устройствах – Pin, ADC, PWM, UART, SPI, I2C, CAN – которые встречаются почти на любом MCU, то следующий раздел очень глубоко рассказывает об определяющем периферийном устройстве камеры: датчике изображения и длинной цепочке оптики, кремния и обработки сигнала между фотонами, попадающими на стекло, и буфером пикселей в RAM. Инструментарий смещается к модулям csi и image, но всё, что вы узнали об управлении GPIO, общении по I2C и использовании PWM, переносится без изменений – стробоскопы, триггеры и платы расширения датчиков используют те же шины, которые вы только что прошли.