Молодым не понять...
По мотивам "Визуализация звука на старинных лампах"
Попытка воспроизвести "магический глаз" с помощью Arduino и маленького дисплея.
Дисплей 128x64, монохромный, синего свечения.
Уйма их, этих экранчиков, на Adafruit. Оказалось, ни один из них не подходит для анимации.
Единственный дисплей, который я случайно обнаружил, от ProtoSupplies. Он работает с библиотекой u8g2 в которой реализован постраничный вывод - т.е. сначала рисуем, все что надо, и потом одной командой выводим все нарисованое на дисплей. Для моей цели недостаток - невозможно сделать подсветку, в лампе 6E1П всегда присутствует бледно-зелёный фон, а у меня получилось всё на чёрном фоне. Впрочем, на Adafruit он тоже обнаружился, только больше контактов и в два раза дороже.
Кроме ардуинки и дисплея использовал элетретный микрофон с AGC, от Adafruit. Отрисовка - напор треугольников и прямоугольников плюс битмэп создающий полукруглую границу изображения сверху.
Всего каждый кадр отрисовывает 5 треугольников (центральный, два боковых, плюс по бокам от центрального при больших амплитудах отрисовываются еще два) плюс 3 прямоугольника, два круга и битмэп.
Использую сглаживание скользящим средним на 5 сэмплов; если кто захочет повторить, то на Arduino UNO обе библиотеки U8g2lib и RunningAverage не влезают, мало памяти. Так что или пишите сглаживание руками, или используйте что-то помощнее, хотя бы Arduino Mega или там Teensy.
Принцип соединения (питание не показано):
все смонтировано на монтажке вырезаной под ардуинку:
c обратной стороны:
ну и результат (прошу прощения за качество, снимал на тапок):