Ранее в этом году Hackaday анонсировала конкурс Train all the Things. Я сразу понял, что хочу что-то отправить, но выяснение того, что нужно построить, заняло у меня немного времени. Для моих побочных проектов мне нравится делать что-то полезное для меня или кого-то, кого я знаю; при этом узнавая что-то новое. Через несколько дней после объявления конкурса моя дочь играла в подвале возле моего офиса/домашней лаборатории, когда я вспомнил, как моя жена спросила меня, есть ли у нее способ узнать, когда я работаю с кем-то, чтобы они не спускались вниз. в подвале. Я подумал, что дисплей с голосовым управлением может быть забавным решением.

Выбор инструментов

После принятия решения о проекте я хотел выяснить, какие новые платы мне понадобятся (если они будут) и как я буду строить свою модель. Проведя небольшое исследование, я остановился на Tensorflow как на пути к развертыванию модели на микроконтроллере. При использовании Tensorflow барьер для создания модели стал немного ниже, но мне очень интересно узнать о Tensorflow Lite и возможностях, которые он предоставляет. Кроме того, относительно новая книга TinyML выглядит хорошим ресурсом для использования на этом пути.

После выбора TF Lite следующим делом был выбор платы. Большая часть моего встроенного опыта связана с CircuitPython и Rust. Для этого проекта я подумал, что было бы интересно узнать что-то новое. Espressif ESP-EYE привлекла мое внимание как интересная плата, которая, как известно, работает с TF Lite. Я видел ESP32 и 8266 во многих других проектах, поэтому изучение набора инструментов ESP кажется полезным. Кроме того, большая часть экосистемы Espressif, по-видимому, построена вокруг FreeRTOS, которая предоставляет совершенно другие возможности для обучения и взлома.

Наконец, мне понадобится способ сообщить кому-нибудь, когда модель зафиксировала голосовую активность, чтобы сигнализировать, что я сейчас занят в лаборатории. ESP32 имеет чип WiFi, обеспечивающий возможность отправлять и получать сигналы через TCP, если мы хотим. В ESP-EYE это встроено, и у меня был PyPortal (с ESP32), который мог бы отлично отображать проверку состояния с помощью WiFi. Чтобы сигнализировать от одного к другому, я решил немного повеселиться и использовать Cloudflare Workers K/V, чтобы установить бит из ESP-EYE, который будет считываться PyPortal в заданный интервал времени для настройки отображения.

Собрав все вместе, первоначальная идея выглядит примерно так:

Это позволяет мне иметь небольшую доску для прослушивания в моей домашней лаборатории и дисплей над лестничной клеткой, где кто-то может получить обновление статуса, прежде чем он спустится.

Код, документы, изображения и т. д. для проекта можно найти здесь, и я буду публиковать обновления по мере продвижения на HackadayIO и в этом блоге. Если у вас есть какие-либо вопросы или идеи, обращайтесь в личку.

Первоначально опубликовано на https://burningdaylight.io 8 февраля 2020 г.