Автор Arduino Project Hub под ником ElectroPeak рассказывает о необычном датчике движения TPA81, в котором не один пиксель, как в обычном, а восемь. Можно определять не только наличие, но и направление перемещения, а значит, и реализовать управление жестами. Лицензия - GPL версии 3 или больше, по вашему выбору.
Перед повторением экспериментов необходимо скачать библиотеки: для датчика и для PMOLED-дисплея.
Затем собрать вслед за мастером схему. Как видим, датчик имеет выход на сервопривод. Конечно, датчик и сервопривод в этом случае придётся запитать от отдельного источника. Можно сделать так, чтобы датчик ещё и вращался, но в предлагаемых примерах эта возможность не задействована.
Если у вас нет такого восьмипиксельного датчика движения, можно взять восемь обычных, только расположить их придётся не так, как на следующей схеме, а в одну линию, и запитать от отдельного источника. Скетчи придётся переделать, также мастер рекомендует снять с датчиков линзы.
Теперь опробуем первый скетч:
#include "Wire.h"
#include "TPA81.h"
// Create new TPA81 instance
TPA81 tpa;
void setup() {
Serial.begin(9600);
// You need to begin the Wire library to use TPA81 library
Wire.begin();
}
void loop() {
// Print temperature light
Serial.print(tpa.getAmbient());
Serial.print(" ");
// Print all temperature point
for (int i = 1; i <= 8; i++)
{
Serial.print(tpa.getPoint(i));
Serial.print(" ");
}
Serial.println(" ");
delay(100);
}
Скетч выводит в монитор последовательного порта вот что:

Теперь сделаем виртуальный цифровой аналог компаратора с порогом переключения в 29 градусов, для чего переделаем скетч так:
#include "Wire.h"
#include "TPA81.h"
// Create new TPA81 instance
TPA81 tpa;
void setup() {
Serial.begin(9600);
// You need to begin the Wire library to use TPA81 library
Wire.begin();
}
void loop() {
// Print temperature light
Serial.print(tpa.getAmbient());
Serial.print(" ");
// Print all temperature point
for (int i = 1; i <= 8; i++) { if (tpa.getPoint(i)>29)
Serial.print("# ");
else
Serial.print(". ");
}
Serial.println(" ");
delay(100);
}
В таком виде перемещения ладони мимо датчика заметнее:

Разобравшись, как всё работает, попробуем имитировать на дисплее управляемый жестами регулятор громкости этим скетчем. А затем можно переделать скетч и схему так, чтобы получить настоящий регулятор в составе какого-нибудь усилителя.
Источник (Source)