В первой публикации я описывал эмуляцию на Ардуино и маленьком дисплее работы пальчиковой индикаторной лампы 6E1П. Люди постарше помнят эти красивые зелёные огоньки в ламповой технике - магнитофонах, усилителях, радиолах, радоприемниках.

Предшественником индикатора 6Е1П была октальная лампа 6Е5С. Это копия американской лампы 6E1 фирмы RCA разработки 30-х г одов.

Единственное советское устройство, которое я застал, имевшее этот индикатор - это неубиваемый железобетонный магнитофон "Комета-201":

Еще эти индикаторы устанавливались в ламповых радиоприемниках и радиолах, которые во множестве выпускались в СССР. Давно это было.

В предыдущей статье я неосторожно пообещал выполнить эмуляцию 6E5С. Выполняю это обещание.

На самом деле поводом к работе послужило появление очень симатишного круглого LCD -дисплея GC9A01 работающего по SPI протоколу. Круглая форма прекрасно подходит для построения изображения индикаторной лампы, правда, размер этого дисплея значительно больше чем экран лампы.Ну, что поделать.

Чтобы добиться хорошего быстродействия я использовал контроллер ESP32:

Графика создана с помощью библиотеки Arduino_GFX . Для бОльшей плавности изображения использовалось скользящее усреднение входного сигнала по 20 выбркам с помощью библиотеки RunningAverage. Звукой входной сигнал подавался, как и в предыдущей статье, от микрофонного усилителя Max9814.

Вот упрощенная схема соединения деталей:

С программной точки зрения эта эмуляция гораздо проще чем предыдущая, изображение строится из единственного динамического элемента (треугольника с вершиной в центре экрана), двух статичных узких треугольников расположеных горизонтально по бокам от центра, и трёх почти перекрывающихся кругов в центре, один центральный серый, изображающий ширму экрана, и два других - белый чуть смещенный влево-вверх и черный, смещенный на несколько пикселей вправо-вниз, это моя попытка придать ширме слегка "объемный" вид. Не уверен, что удачная. Выглядит вот так:

Код ардуино-программы:

/************************************************************
* WHAT: Magic eye emulator FPS
* GC9A01
* library Arduino_GFX
* DETAILS:  
* ESP32 with milrophone on pin 34
* rotated 180 degree
* DC - 27, CS  - 5, RS - 33, indexed canvas
 */
/************************************************************/
#include <Arduino_GFX_Library.h>
#include "RunningAverage.h"
#define TFT_RST 33

Arduino_DataBus *bus = new Arduino_ESP32SPI(27 /* DC */, 5 /* CS */, 18 /* SCK */, 23 /* MOSI */, -1 /* MISO */, HSPI /* spi_num */);
Arduino_G *output_display = new Arduino_GC9A01(bus, TFT_RST, 2 /* rotation */, true /* IPS */);
Arduino_GFX *gfx = new Arduino_Canvas(240 /* width */, 240 /* height */, output_display);
RunningAverage myRA(20);


uint16_t r,r0;
//uint16_t d=0;
//uint16_t counter=0;
uint16_t v_inVal;
uint16_t i;
float p,p_avg;

void setup() {
    Serial.begin(115200);
    while (!Serial)    
    Serial.print("Sketch:   ");   Serial.println(__FILE__);
    Serial.print("Uploaded: ");   Serial.println(__DATE__);
    gfx->begin(80000000);
    r = gfx->width();
    r0=r/2;
    analogSetAttenuation(ADC_6db);  
    myRA.clear();       
}

void drawE5(uint16_t v_i){
  gfx->fillScreen(gfx->color565(37,234,61));
  gfx->fillTriangle(r0,r0+10, r0-v_i,r,r0+v_i,r,gfx->color565(28,152,53)); 
  gfx->fillTriangle(0,r0, r0,r0-8,r0,r0+8,gfx->color565(20,140,40));    
  gfx->fillTriangle(r,r0, r0,r0-8,r0,r0+8,gfx->color565(20,140,40));
  gfx->fillCircle(r0+2,r0+2, 52, gfx->color565(40,40,40));  
  gfx->fillCircle(r0-3,r0-2, 52, gfx->color565(150,162,160));  
  gfx->fillCircle(r0,r0, 52, gfx->color565(71,76,69));
  gfx->flush();            
}


void loop() {
  p=analogRead(34);
  myRA.addValue(p);
  p_avg=myRA.getAverage();
  i=map(p_avg,50,1000,120,20);
 // i=map(p_avg,50,1200,20,200);
  if (i<0) i=0;
  drawE5(i);
} 

Устройство собрано на перфорированой плате, монтаж проводной. Вот несколько снимков иллюстрирующих сборку:

монтаж проводами:

устройство в сборе:

короткое видео работы:

Комментарии (6)


  1. diakin
    29.03.2022 09:01
    +1

    Где-то на антресолях лежит Комета МГ-201. Наверное пассики уже в труху. )


    1. beduin747
      29.03.2022 09:35
      +1

      Это в советские времена пассики иногда сложно было добыть. Сейчас проще. Ну и в комете двигатель, почти как от стиральной машины - пассики можно из чего-то вырезать. Правда детонация увеличится, и, возможно, скорость поплывёт. =)


  1. andrey_ssh
    29.03.2022 09:54
    +2

    Выглядит совсем не лампово. Предыдущий вариант намного лучше.

    Ну и непонятно в чём смысл круглого дисплея, если под ним почти квадратная плата.


  1. dlinyj
    30.03.2022 14:12
    +1

    Классная статья, мой респект!


    1. K_Chicago Автор
      31.03.2022 03:25
      +1

      польщён, спасиб.


  1. PwrUsr
    31.03.2022 22:02

    Эх... объема не хватате этой эмуляции... помню в детстве перед сном то-ли на Регонде то ли еще что-то в этом роде, слушал радио и смотрел в этот глаз, почище Сауроновского было !