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, переносится без изменений – стробоскопы, триггеры и платы расширения датчиков используют те же шины, которые вы только что прошли.