В последнее время появилось множество плат для разработки на базе ESP32-S3. Большинство плат оснащены дисплеем, некоторые также включают камеры и кнопки, а некоторые имеют динамики и микрофоны. Найти плату, которая объединяет все эти компоненты без ущерба для качества, стало настоящей проблемой для разработчиков и создателей программного обеспечения. Учитывая все это, мы нашли плату для разработки, которая объединяет все это в одном модуле — Adafruit MEMENTO.

Этот учебный материал по Adafruit MEMENTO содержит полные инструкции как для работы с Arduino Adafruit MEMENTO, так и для программирования на Python с использованием CircuitPython.
Тем не менее, разработчикам и производителям было сложно найти плату Adafruit MEMENTO, которая бы использовала высококачественные компоненты без ущерба для качества. Плата Adafruit MEMENTO предлагает решение, объединяя 5-мегапиксельную камеру с автофокусом, цветной дисплей, аудиоинтерфейс и множество портов ввода/вывода на одной стильной плате. Если вы работаете над проектами Adafruit MEMENTO для Интернета вещей (IoT), проводите эксперименты по компьютерному зрению или создаете художественные инсталляции, это руководство расскажет обо всем, от распиновки оборудования до программирования платы Adafruit MEMENTO. Программная экосистема Adafruit MEMENTO разработана для использования всеми, от полных новичков до опытных разработчиков программного обеспечения.
Что находится внутри упаковки Adafruit MEMENTO?
Этот комплект довольно прост и содержит всего одну основную плату разработки Adafruit MEMENTO. Ее распаковку можно увидеть на следующем рисунке.

Плата имеет защиту от царапин для камеры и дисплея, а также четыре винтовых крепления по углам. Печатная плата имеет квадратную форму: дисплей, микрофон, динамик и несколько кнопок расположены на лицевой стороне, а камера, слот для SD-карты, все разъемы ввода/вывода и акселерометр — на обратной. Кнопки загрузки и перезагрузки, а также вход Type-C расположены по бокам для удобства доступа. Все компоненты размещены с учетом практичности. Без сомнения, эта плата идеально сделана во всех отношениях. Таково было мое первое впечатление. Далее давайте подробно рассмотрим особенности этого модуля.


Характеристики Adafruit MEMENTO
Плата камеры Adafruit MEMENTO объединяет компоненты профессионального уровня в компактную платформу для разработки, что делает ее идеальной для проектов в области Интернета вещей, фотосъемки и экспериментов в области компьютерного зрения. Чтобы сделать эту плату выдающейся и пригодной для большинства приложений, она обладает богатым набором функций:
| Особенность | Описание |
| Модуль ESP32-S3 с 4 МБ флэш-памяти и 2 МБ PSRAM | Двухъядерный процессор Tensilica 240 МГц с поддержкой Wi-Fi и BTLE. |
| Модуль камеры OV5640 с углом обзора 72° и мотором автофокусировки. | 5-мегапиксельный сенсор камеры со встроенным кодировщиком JPEG. |
| 1,54" 240x240 Цветной TFT-дисплей | Для предварительного просмотра изображений с камеры или разработки пользовательского интерфейса. |
| слот для карты microSD | Сохраняйте изображения или анимацию на любой карте microSD с поддержкой SPI. Примечание: поддерживаются карты емкостью до 32 ГБ. |
| Два цифровых/аналоговых порта для вывода сигнала. | Разъемы JST PH-3 для контактов A0, A1 и питания+заземления позволяют подключать внешние кнопки, светодиоды или датчики. Возможно питание от сети 3 В или 5 В. |
| Порт I2C Stemma QT | Подключите практически любой датчик I2C к порту Stemma QT JST SH, обеспечивающему питание и логическую передачу данных напряжением 3,3 В. |
| Акселерометр LIS3DH | Трехосевой акселерометр для определения ориентации, сотрясения или движения. |
| Поддержка зарядки литий-полимерных аккумуляторов | Работает от батареи 3,7/4,2 В 350 мА или 420 мА для съемки в дороге. |
| 6 пользовательских кнопок | Меняйте режимы, просматривайте сохраненные изображения или даже играйте в DOOM (?). Подключается через расширитель GPIO. |
| Зуммер | Воспроизводить звуковые сигналы или оповещения, а также сообщать об успешной фотосъемке. |
| Аналоговый микрофон | Может использоваться в качестве датчика для обнаружения громких звуков (не для записи видео со звуком). |
| Кнопка затвора/зарядки | Подключено к GPIO 0 для входа в загрузчик ПЗУ. |
| Кнопка сброса | Для входа в загрузчик или перезагрузки платы. |
| Переключатель включения/выключения | При использовании батареи питание полностью отключается. |
| USB Type-C | Для программирования ESP32-S3, доступа к REPL в CircuitPython и зарядки дополнительной литий-полимерной батареи. |
| Контактные площадки для аппаратного UART | Для более глубокой отладки припаяйте провода к контактным площадкам, расположенным в отверстиях, для подключения к консольному кабелю. |
| Четыре точки М3 | Для монтажа или крепления к корпусу |
Что касается программного обеспечения, то его можно программировать как с помощью Arduino IDE, так и с помощью CircuitPython. Из этих двух сред разработки CircuitPython, безусловно, проще в использовании для программирования и взаимодействия, что делает плату по-настоящему программируемой на Python для образовательных целей и быстрого прототипирования.
Проекты Adafruit MEMENTO: практическое применение
Универсальность платы камеры Adafruit MEMENTO делает её подходящей для множества применений в различных областях. Ниже представлены практические проекты на базе Adafruit MEMENTO, которые вы можете реализовать, используя либо плату Arduino Adafruit MEMENTO, либо программное обеспечение CircuitPython.
Практический проект Adafruit MEMENTO, сочетающий 3D-печать с интеграцией IoT, демонстрирует возможности платы.
Основные компоненты платы Adafruit MEMENTO
Теперь, когда вы знаете больше о возможностях MEMENTO, перейдем к физическому обзору, где подробно рассмотрим ее аппаратную часть и распиновку.

Выше вы можете увидеть изображения лицевой и обратной стороны платы MEMENTO, демонстрирующие комплексную компоновку компонентов, которая делает эту плату идеальной для множества различных проектов.
Технические характеристики ЖК-дисплея и расположение контактов

На передней панели MEMENTO большую часть пространства занимает ЖК-дисплей (1,54-дюймовый цветной TFT-экран с разрешением 240x240 пикселей). Это удобно для предварительного просмотра изображений с камеры или создания собственного дизайна пользовательского интерфейса. Он использует драйвер ST7789, который поддерживается как Arduino, так и CircuitPython.
Для связи используются следующие контакты:
Настройка кнопок пользовательского интерфейса и расширителя GPIO

На отладочной плате Adafruit MEMENTO всего шесть кнопок для пользовательского интерфейса. Этого более чем достаточно для большинства проектов. Следует отметить, что эти кнопки не подключены напрямую к ESP32-S3. Вместо этого они используют расширитель GPIO AW9523. Схема расположения контактов следующая:

Библиотеки PyCamera для Arduino и CircuitPython имеют встроенную поддержку этих кнопок, что упрощает их использование в проектах Adafruit MEMENTO на базе Arduino и CircuitPython.
Настройка микрофона и динамика

На лицевой стороне платы камеры Adafruit MEMENTO, над четырьмя пользовательскими кнопками, расположен аналоговый MEMS-микрофон, обозначенный на шелкографии платы как Mic. Он может использоваться в качестве датчика для обнаружения громких звуков в различных проектах Adafruit MEMENTO. Он не предназначен для записи видео со звуком.
Аналоговый вход микрофона подключен к GPIO2. Он доступен в CircuitPython с помощью board. MIC и в Arduino с помощью контакта 2. Этот компонент обеспечивает звуковую обратную связь в ваших программных приложениях Adafruit MEMENTO.

Под TFT-дисплеем, между двумя кнопками управления, расположен динамик (громкоговоритель), также обозначенный на шелкографии как Speaker.
Выход динамика подключен к GPIO46. Доступ к нему можно получить в CircuitPython с помощью board.SPEAKER, а в Arduino — с помощью SPEAKER.
Примечание: Динамик отключается через контакт 0 на расширителе GPIO микросхемы AW9523, поэтому не забудьте включить его перед тем, как ожидать появления звука!
Модуль ESP32-S3: основной процессор платы

Теперь, взглянув на обратную сторону, вы увидите главного героя отладочной платы Adafruit MEMENTO: микроконтроллер Espressif ESP32-S3 с логическим/питательным напряжением 3,3 В. Он имеет 4 МБ флэш-памяти и 2 МБ PSRAM. Этот микроконтроллер оснащен Wi-Fi и BLE, что значительно упрощает задачи, связанные с IoT (интернетом вещей), для проектов Adafruit MEMENTO.
Модуль камеры: OV5640 с автофокусировкой

Далее, конечно же, наше внимание переключается на модуль камеры в центре платы. В отличие от других модулей ESP32-CAM, это не обычная камера. Она имеет встроенный мотор, обеспечивающий функцию автофокусировки, что делает её идеальной для профессиональных проектов. И да, это 5-мегапиксельный сенсор с углом обзора 72°.
Под разъемом камеры находится перемычка для подачи напряжения 3,3 В на мотор автофокусировки. Вы можете перерезать эту перемычку, чтобы отключить DATA1 от 3,3 В и отключить автофокусировку.
Для программирования камера использует следующие контакты отладочной платы Adafruit MEMENTO:
| VSYNC | GPIO5. Доступен в CircuitPython с помощью board.CAMERA_VSYNC и в Arduino с помощью VSYNC_GPIO_NUM. |
| HREF | GPIO6. Доступен в CircuitPython с помощью board.CAMERA_HREF и в Arduino с помощью HREF_GPIO_NUM. |
| XCLK | GPIO8. Доступен в CircuitPython с помощью board.CAMERA_XCLK и в Arduino с помощью XCLK_GPIO_NUM. |
| PCLK | GPIO11. Доступен в CircuitPython с параметром board.CAMERA_PCLK и в Arduino с параметром PCLK_GPIO_NUM. |
| PWDN | GPIO21. Доступен в CircuitPython с помощью board.CAMERA_PWDN и в Arduino с помощью PWDN_GPIO_NUM. |
| DATA2 | GPIO13. Доступен в CircuitPython с помощью board.CAMERA_DATA2 и в Arduino с помощью Y2_GPIO_NUM. |
| DATA3 | GPIO15. Доступен в CircuitPython с помощью board.CAMERA_DATA3 и в Arduino с помощью Y3_GPIO_NUM. |
| DATA4 | GPIO16. Доступен в CircuitPython с помощью board.CAMERA_DATA4 и в Arduino с помощью Y4_GPIO_NUM. |
| DATA5 | GPIO14. Доступен в CircuitPython с помощью board.CAMERA_DATA5 и в Arduino с помощью Y5_GPIO_NUM. |
| DATA6 | GPIO12. Доступен в CircuitPython с помощью board.CAMERA_DATA6 и в Arduino с помощью Y6_GPIO_NUM. |
| DATA7 | GPIO10. Доступен в CircuitPython с помощью board.CAMERA_DATA7 и в Arduino с помощью Y7_GPIO_NUM. |
| DATA8 | GPIO9. Доступен в CircuitPython с помощью board.CAMERA_DATA8 и в Arduino с помощью Y8_GPIO_NUM. |
| DATA9 | GPIO7. Доступен в CircuitPython с помощью board.CAMERA_DATA9 и в Arduino с помощью Y9_GPIO_NUM. |
| RESET | GPIO47. Доступен в CircuitPython с помощью board.CAMERA_RESET и в Arduino с помощью RESET_GPIO_NUM. |
Мы уже знаем, что на периферийные устройства, которые мы видели выше, существует большой спрос, поэтому плата Adafruit MEMENTO включает в себя микросхему расширителя GPIO AW9523 для обеспечения дополнительных выводов GPIO. Эту микросхему можно найти рядом с камерой, а именно слева от модуля камеры.
I2C-адрес расширителя GPIO (AW9523) равен 0x58.

Рядом с AW9523 расположен акселерометр LIS3DH. Это трехосевой акселерометр, способный определять ориентацию, дрожание или движение для чувствительных к движению проектов Adafruit MEMENTO. Он обменивается данными по I2C по адресу 0x19. Его вывод прерывания (IRQ) подключен к GPIO3, доступному в CircuitPython через board.IRQ и в Arduino через контакт 3.
Порты для SD-карты и Stemma

Для ввода/вывода данных пользователем при программировании платы разработки Adafruit MEMENTO на левой стороне платы расположены два разъема JST-PH, обозначенные A0 и A1. Это 3-контактные разъемы JST, которые можно использовать для подключения датчиков, светодиодов NeoPixel или аналогового ввода/вывода.
-
Контакт A0 подключен к GPIO17 (доступен в CircuitPython с помощью board.A0 и в Arduino с помощью A0).
-
А1 подключен к GPIO18 (доступен в CircuitPython с помощью board.A1 и в Arduino с помощью A1).
Вам не нужно беспокоиться о напряжении на этих контактах, так как их можно настроить на 3,3 В или 5 В. По умолчанию они обеспечивают 5 В. Между двумя разъемами находится перемычка с маркировкой 5V3. Эту перемычку можно перерезать и припаять заново, чтобы переключить сигнал VCC с 5 В на 3 В.

Между контактами A0 и A1 находится крошечный разъем с маркировкой I2C на шелкографии. Это 4-контактный разъем Stemma QT, идеально подходящий для подключения дополнительных датчиков к вашим проектам Adafruit MEMENTO. Линии I2C имеют подтягивающие резисторы к напряжению 3,3 В.
- SDA – GPIO34
- SCL – GPIO33
В Arduino этот разъем можно использовать с wire. В CircuitPython его можно использовать с board.SCL, board.SDA, board.I2C() или board.STEMMA_I2C().

В левом нижнем углу задней панели MEMENTO расположен слот для карты microSD. Его можно использовать для хранения изображений или анимации на любой карте microSD с поддержкой SPI, что необходимо для большинства приложений, использующих плату камеры Adafruit MEMENTO.
- SDCS (вывод выбора микросхемы) – подключен к GPIO48. Доступен в CircuitPython с помощью board.CARD_CS, а в Arduino – с помощью SD_CS или SD_CHIP_SELECT.
- Контакт SDCD (контакт обнаружения карты) – подключен к контакту 9 на микросхеме AW9523.
Управление питанием и поддержка батарей

Вдоль верхнего края платы расположены две кнопки:
- Кнопка загрузки, обозначенная на шелкографии как Boot и Shutter, подключена к GPIO0. Доступна в CircuitPython с помощью board.BUTTON и в Arduino с помощью SHUTTER_BUTTON. Удерживайте её, одновременно нажимая кнопку сброса, чтобы войти в режим загрузчика ПЗУ для программирования отладочной платы Adafruit MEMENTO.
- Кнопка сброса, обозначенная на шелкографии как RST, подключена к выводу сброса ESP32-S3. Нажмите один раз, чтобы перезапустить прошивку, или нажмите еще раз примерно через полсекунды, чтобы войти в режим загрузчика.
Справа от кнопки загрузки находится NeoPixel. Этот адресуемый RGB-светодиод работает как индикатор состояния (в CircuitPython и загрузчике) и также может управляться кодом в программном обеспечении Adafruit MEMENTO. Он подключен к GPIO1, доступному в CircuitPython с помощью команды board.NEOPIXEL, а в Arduino — с помощью PIN_NEOPIXEL или NEOPIXEL_PIN.
В правом верхнем углу платы расположен переключатель включения/выключения, обозначенный на шелкографии как «On». Этот ползунковый переключатель отключает питание платы, что крайне важно для портативных проектов Adafruit MEMENTO.
Справа от переключателя находится светодиод питания, зеленый светодиод, который загорается всякий раз, когда плата получает питание.

| порт USB-C | Используется как для питания, так и для программирования платы. Подойдет любой кабель USB-C. При подключении также заряжает литий-полимерный аккумулятор. |
| Разъем/зарядное устройство для LiPoly-полимерных аккумуляторов | Двухконтактный разъем JST для подключения любой литий-полимерной батареи емкостью 350 мАч или более (3,7/4,2 В). MEMENTO может работать от батареи и заряжать ее при подключенном USB-порту. Шелкография на плате включает контур, идеально подходящий для батареи емкостью 420 мАч, имеющейся в наличии в магазине. |
| Контакт монитора батареи | Отслеживание уровня заряда батареи осуществляется через вывод АЦП, доступный в CircuitPython с помощью board.BATTERY_MONITOR и в Arduino с помощью BATT_MONITOR. |
| Перемычка выбора питания | Расположен над шлейфом TFT-дисплея. Он позволяет выбрать, будет ли питание 2,8 В осуществляться от источника 3,3 В или 5 В. Для переключения на 5 В его можно перепаять. |
На этом мы завершаем физический обзор платы камеры Adafruit MEMENTO. Далее, чтобы упростить использование MEMENTO, мы рассмотрим некоторые официальные ресурсы, которые помогут вам начать работу над проектами с использованием Adafruit MEMENTO.
Официальные ресурсы и документация Adafruit MEMENTO
В отличие от других модулей Adafruit, эта плата разработки Adafruit MEMENTO также прекрасно документирована для начала работы. Вы можете начать с изучения платы камеры Adafruit MEMENTO.
В этом подробном руководстве по Adafruit MEMENTO вы найдете: ее обзор, распиновку, установку CircuitPython, форматирование карты microSD, примечания, стартовые проекты CircuitPython MEMENTO, преобразование кадров в GIF, настройку Arduino IDE, установку библиотеки Arduino MEMENTO и стартовые проекты, сброс к заводским настройкам и загрузки.
Надеюсь, этих ресурсов будет достаточно для программирования платы разработки Adafruit MEMENTO. Далее давайте быстро изучим Memento с помощью Arduino IDE. При желании вы также можете использовать CircuitPython для более удобного программирования на Python.
Руководство по настройке Arduino IDE для Adafruit MEMENTO
Благодаря уже имеющемуся набору плат и библиотеке инструментов для этого модуля, первая тестовая программа довольно проста.
Программирование платы разработки Adafruit MEMENTO с помощью среды разработки Arduino IDE позволит вам воспользоваться преимуществами обширных библиотек и ресурсов сообщества, поддерживающих проекты Arduino. Это руководство по Adafruit MEMENTO проведет вас через полную настройку для программирования платы разработки MEMENTO с использованием привычной среды разработки Arduino.
Настройка
Для настройки среды Arduino необходимо выполнить три основных шага:
⇒ Шаг 1: Установка поддержки платы ESP32 для Adafruit MEMENTO
Первым шагом в программировании платы разработки Adafruit MEMENTO является обновление библиотеки платы ESP32 для обеспечения совместимости с процессором ESP32-S3 и всеми функциями MEMENTO.

⇒ Шаг 2: Установка библиотек программного обеспечения Adafruit MEMENTO. Программная экосистема Adafruit MEMENTO включает в себя специализированные библиотеки, упрощающие управление камерой, управление дисплеем и взаимодействие с оборудованием, а также все необходимые зависимости. Даже если у вас уже установлено большинство из них, включение этой опции обновит существующие или установит недостающие.

⇒ Шаг 3: Изучение примеров кода.
Библиотека Adafruit MEMENTO Arduino включает в себя два подробных примера программ, демонстрирующих основные функции. Доступ к этим примерам можно получить через меню File → Examples → Adafruit PyCamera.
После установки перейдите в папку Examples. Там вы найдете два скетча:

Различия между Pycamera_test и Memento_factory_test
Правильный выбор платы имеет решающее значение для успешного программирования отладочной платы Adafruit MEMENTO. Если у вас есть такая плата, вы можете использовать эти дополнительные функции. В противном случае, оба примера предоставляют одни и те же основные функции камеры, но Memento_factory_test включает дополнительные возможности тестирования.
⇒ Шаг 4: Подключение и выбор платы Adafruit MEMENTO
Правильный выбор платы имеет решающее значение для успешного программирования отладочной платы Adafruit MEMENTO.
- Подключите плату разработки MEMENTO к своему компьютеру.
- Нажмите и удерживайте кнопку Boot, затем один раз нажмите кнопку Reset. Это переведет плату в режим загрузки.
- В среде разработки Arduino IDE выберите:
Board → ESP32 → Adafruit PyCamera S3

Теперь нажмите Compile and Upload («Компилировать и загрузить»). Код будет загружен на вашу плату MEMENTO.
Использование PyCamera
Программное обеспечение Adafruit MEMENTO включает в себя комплексные функции управления камерой, доступные через встроенные кнопки и программируемые с помощью кода. Понимание интерфейса PyCamera имеет важное значение для разработки собственных проектов на базе Adafruit MEMENTO.
По умолчанию захваченное изображение не будет сохранено, если вы не вставите SD-карту.
Примечание: библиотека Adafruit MEMENTO для Arduino поддерживает файловые системы FAT16 и FAT32, обеспечивая совместимость с картами памяти емкостью до 32 ГБ.
После установки SD-карты вы можете делать снимки, нажав кнопку спуска затвора в правом верхнем углу.
Эффекты цветовых фильтров
Эти фильтры полезны для художественных проектов Adafruit MEMENTO, приложений безопасности, требующих определенных визуальных режимов, или для творческих фотоэкспериментов:
Цветовые фильтры – используйте кнопки «Влево» и «Вправо» для переключения между фильтрами:
- Обычный/Нет
- Черно-белый
- Сепия
- Отрицательный
- Зеленоватый
- Красноватый
- Голубоватый
Примеры программ демонстрируют возможности платы камеры Adafruit MEMENTO с помощью интуитивно понятного управления кнопками.
Датчик камеры OV5640 поддерживает несколько режимов разрешения, что позволяет сбалансировать качество изображения с объемом памяти и скоростью обработки в ваших проектах Adafruit MEMENTO.
Регулировка разрешения – используйте кнопки «Вверх» и «Вниз» для изменения разрешения изображения. Доступные параметры:

Разрешение изображений можно регулировать в режиме реального времени.
Данное руководство по Adafruit MEMENTO создано на основе практического тестирования и проверки всех функций, расположения контактов и процедур программирования.
Этот подробный учебник по Adafruit MEMENTO проведет вас от технических характеристик и распиновки до начала программирования платы разработки Adafruit MEMENTO с помощью Arduino IDE. Независимо от того, выберете ли вы разработку на основе Arduino с использованием Adafruit MEMENTO или программируемую среду CircuitPython от Adafruit MEMENTO, эта универсальная плата камеры обладает профессиональными функциями в удобном корпусе.
Сочетание процессора ESP32-S3, 5-мегапиксельной камеры с автофокусом, цветного дисплея и широких возможностей подключения делает плату разработки MEMENTO отличным выбором для безграничных проектов Adafruit MEMENTO, от простых учебных проектов до сложных систем видеонаблюдения для Интернета вещей (IoT). Надежность программной экосистемы Adafruit MEMENTO, подкрепленная обширной документацией и поддержкой сообщества, позволяет быстро запускать ваши проекты и плавно масштабировать их сложность. Вы можете создавать системы безопасности, камеры для наблюдения за дикой природой, устройства для покадровой съемки или интерактивные художественные инсталляции, и плата разработки Adafruit MEMENTO — отличное место для начала. Загрузите пример кода и изучите возможности программного обеспечения Adafruit MEMENTO, и вы сможете воплотить свои идеи в жизнь на этой мощной, хорошо документированной платформе разработки.
51 просмотров






