Бюджетная графика для Ардуино. Пишем Тетрис для дисплея Nokia 5110.


Собирая устройства на Ардуино, мы часто сталкиваемся с необходимостью автономного вывода информации. И, как всегда, хочется чтобы решение было недорогим. И вот тут оказывается, что из недорогих устройств выбор не очень-то и богат.

Если выводимой инфы немного, удобно использовать семисегментные индикаторы. Они очень яркие и контрастные. Такие линейки из 4-х разрядов высотой в 0.36 дюйма на TM1637 продаются по 70 центов и управляются всего по 2-м пинам. Как нетрудно догадаться, заточены они, в основном, под отображение времени, хотя без труда могут отображать и, к примеру, температуру, давление и другие параметры, для которых достаточно 4-х разрядов.

Но если выводимой информации много, они не подойдут. В таких случаях чаще всего используются «народные» LCD 1602 дисплейчики, имеющие возможность вывода 2-х строк по 16 символов ценой в полтора бакса. На такой уже можно вывести информации в разы больше.

Его более продвинутый 4-х строчный собрат выведет инфы еще больше, но стоит уже заметно дороже, около 5 долларов, да и размер у него уже немаленький.

У всех этих устройств имеются свои плюсы и минусы. Из главных минусов можно отметить отсутствие поддержки русского языка, поскольку кодовая таблица зашита наглухо в микросхему, и невозможность вывода графики. Строго говоря, прошивка кириллицы в подобных устройствах бывает, но такие продаются в основном в России и по неразумным ценам.
Если эти минусы являются для применения в создаваемом устройстве решающими и разрешение в 84x48 точек в черно-белой графике вас устроит, то стоит обратить внимание на дисплейчик Nokia 5110. Когда-то обзор на него был, но очень неполный, и местами устаревший. В частности там утверждалось о невозможности отображения кириллицы. На сегодня такой проблемы нет.

Герой нашего обзора, ценой менее пары баксов, ко мне пришел в прочной картонной коробке с защитной пленкой на экране, за что большое спасибо продавцу. Девайс имеет размеры печатной платы 45x45 мм красного текстолита и экран ЖК с разрешением 84x48 точек и размером 40x25 мм. Вес устройства 15 г. У него есть подсветка голубого цвета, которую можно отключить. У Ардуино этот дисплей откусит 5 цифровых пинов, не считая питания. На плате есть 2 ряда выводов, которые запараллелены между собой, поэтому можно использовать всего один ряд. Из них 5 – это управление, 2 питание и один на включение подсветки. Для включения подсветки нужно пин LIGHT замкнуть на землю (встречается другой вариант этого дисплея, как пишут — на плате синего цвета, где этот пин соединяется с питанием). Плата приходит нераспаянной, две гребенки прилагаются в комплекте.
Итак, подсоединяем выводы SCLK, DIN, DC, CE и RTS к пинам Ардуино, например, 3, 4, 5, 6, 7. Пин VCC к 3.3V (Именно 3.3, а не 5!), подсоединяем землю и качаем библиотеку Adafruit GFX Library.
Функции из этой библиотеки позволяют выводить графические примитивы (линия, круг, прямоугольник и т.д.), растровые картинки и текст. В составе библиотеки есть пример, показывающий ее возможности, советую посмотреть. А вот, чтобы текст выводился на русском, придется подшаманить фонт. Но, к счастью, добрые люди все уже сделали за нас и файл для подмены можно скачать с этой странички.
Пример скетча я дам далее, а результат вывода текста на русском видим выше. Нетрудно подсчитать, что на самом маленьком размере шрифта (№ 1), можно вывести 84 символа (по 14 в 6 строк), чего вполне хватит для вывода, например, емких диагностических сообщений. Шрифт №2 вдвое крупнее.
Разрешение экрана позволяет выводить довольно неплохие растровые двухцветные картинки, которые в программе можно использовать в качестве иконок.

Создавать такие иконки очень просто. Под спойлером я покажу, как это делается.
Как быстро создать растровую картинку на примере логотипа сайта MYSKU
Для начала сделаем скрин экрана с логотипом (клавиша Print Screen).
Запустим Paint из стандартных программ и жмем Ctrl+V. Весь экран с логотипом в нашем распоряжении.

Выделяем нужный фрагмент и жмем кнопку ОБРЕЗАТЬ. Получим наш фрагмент.

Теперь нам нужно превратить этот фрагмент в двухцветный. С эти справится сам Paint. Жмем «Сохранить как» и выбираем тип «Монохромный риcунок (*.bmp)». Не обращаем внимания на предупреждение редактора и жмем Ок и видим такую картинку:

Теперь нужно превратить этот набор пикселей в массив кодов для Ардуино. Я нашел онлайн редактор, который справляется с такой задачей.
Ему на вход нужно подать bmp файл, но обязательно 256 цветный! Поэтому мы снова жмем «Сохранить как» и выберем тип «256-цветный рисунок bmp». Теперь запомним размеры сторон получившегося файла, их будет нужно указать в скетче (смотрим или в Paint внизу в строке состояния или открыв Свойства файла — > вкладка Подробно) и перейдем в онлайн конвертер.

Выберем наш файл, поставим галочку на шестнадцатеричных числах и нажмем КОНВЕРТИРОВАТЬ.
Получим нужный нам массив:

Копируем этот массив в скетч, компилируем и смотрим, что получилось.


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

Как видим, и текст и значки читаются хорошо. Причем, чем ярче свет, тем лучше читабельность (эх, вспоминаю как было приятно пользоваться Nokia 1100 солнечным днем, в то время, как народ прятал свои трубки с цветными матрицами в тень, чтобы набрать номер). В общем, в таком режиме можно использовать дисплей, если освещения хватает или подсветка мешает или для экономии автономного питания. Если у кого изображение на экранчике будет плохо видно, поиграйтесь с контрастностью в скетче. Лучшая контрастность при подсветке и без нее получается при разных значениях, это надо учитывать.
Пример скетча для вывода текста и картинки
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

// pin 3 - Serial clock out (SCLK)
// pin 4 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 6 - LCD chip select (CS)
// pin 7 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);

const static unsigned char PROGMEM ku59x39[] =
{
0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 
0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 
0xc0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 
0xe0, 0x1f, 0xff, 0xff, 0xe0, 0x0, 0x3, 0xf0, 
0xfc, 0xf, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 
0xff, 0x87, 0xff, 0xc0, 0x0, 0x0, 0x7f, 0xc0, 
0xff, 0xe3, 0xff, 0x0, 0x0, 0x7f, 0xff, 0x90, 
0xff, 0xf1, 0xfc, 0x0, 0x7, 0xff, 0xff, 0x30, 
0xff, 0xf8, 0xf0, 0x0, 0x7f, 0xff, 0xfe, 0x30, 
0xff, 0xfc, 0x40, 0x3, 0xff, 0xff, 0xfc, 0x70, 
0xff, 0xfe, 0x0, 0xf, 0xff, 0xff, 0xf8, 0xf0, 
0xff, 0xff, 0x0, 0x7f, 0xff, 0xff, 0xf0, 0xf0, 
0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xe1, 0xf0, 
0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xe3, 0xf0, 
0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc3, 0xf0, 
0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x83, 0xf0, 
0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0x87, 0xf0, 
0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0x87, 0xf0, 
0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0x87, 0xf0, 
0xff, 0xff, 0xf8, 0x7f, 0xff, 0x1f, 0x87, 0xf0, 
0xff, 0xff, 0xf8, 0x7f, 0x0, 0x0, 0x7, 0xf0, 
0xff, 0xff, 0xfc, 0x38, 0x0, 0x0, 0x1, 0xf0, 
0xff, 0xff, 0xfc, 0x20, 0x0, 0x0, 0xbf, 0xf0, 
0xff, 0xff, 0xfe, 0x0, 0x3, 0xff, 0xff, 0xf0, 
0xff, 0xff, 0xfe, 0x0, 0x3f, 0xe1, 0xff, 0xf0, 
0xff, 0xff, 0xfe, 0x3, 0xf0, 0x0, 0x1, 0xf0, 
0xff, 0xff, 0xfe, 0xf, 0x80, 0x0, 0x0, 0xf0, 
0xff, 0xff, 0xff, 0xe, 0x0, 0x3f, 0xff, 0xf0, 
0xff, 0xff, 0xff, 0xc, 0x3, 0xff, 0xe1, 0xf0, 
0xff, 0xff, 0xff, 0x0, 0x1f, 0xff, 0xc0, 0xf0, 
0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0x88, 0xf0, 
0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0x9c, 0xf0, 
0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0x38, 0xf0, 
0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0x19, 0xf0, 
0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0x3, 0xf0, 
0xff, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0x87, 0xf0, 
0xff, 0xff, 0xff, 0xce, 0x7f, 0xff, 0xdf, 0xf0, 
0xff, 0xff, 0xff, 0xce, 0x7f, 0xff, 0xff, 0xf0, 
0xff, 0xff, 0xff, 0x9e, 0x7f, 0xff, 0xff, 0xf0, 
0xff, 0xff, 0xff, 0x8c, 0xff, 0xff, 0xff, 0xf0, 
0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xf0, 
0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xf0, 
0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xf0
}; 
void setup() {
  display.begin();
  display.setContrast(50);
  display.setTextSize(1);
  display.setTextColor(BLACK); // установка цвета текста
}
 
 
void loop() {
  display.clearDisplay();
  display.drawBitmap(10, 5, ku59x39, 59, 39, BLACK);
  display.display();
  delay(2000);
  
  display.clearDisplay();
  display.setCursor(0,0);
  display.print("ЗРС способна поражать не только баллистические, но и аэродинамические цели - самолеты");
  display.display();
  delay(2000);
}

Ну, и, поскольку Ардуино (Процессор+Озу+Загрузчик-BIOS)+накопитель (EEPROM) + система ввода-вывода (Пульт IRDA и Nokia 5110)- это, по сути, полноценный компьютер, то почему бы не написать для него полноценной игры? Конечно, игру типа ГТА наш ардуино-комп не потянет, но простую казуальную игрушку — запросто! Напишем игру всех времен и народов — Тетрис.
Для любого программиста — это как утренняя зарядка, легкое упражение для мозга, поэтому — вперед! Да и на муське вроде такого раньше еще не было. А в игре как раз раскроется потенциал сабжа.
В качестве системы ввода я решил использовать IRDA пульт от ЛЮБОГО устройства. При таком решении нам понадобится всего лишь один IR приемник, ценой 4 руб за штуку. А IR пульт найдется в любой квартире. Для озвучки мы еще применим пьезопищалку от старой материнки — это будет наш бюджетный аналог мультимедиа )). Ко мне едет сейчас более крутой вариант, но это уже удорожание нашего суперкомпа на целый доллар! Пока обойдемся. С ним будет уже другая история.
На макетке коммутируем устройства вывода, ввода и нашу «мультмедиа». Получилось так:

Я использовал Arduino Uno, поскольку там нужные нам 3.3V уже есть, но если использовать Mini, то придется для экрана добыть из 5 вольт нужные 3.3. Самый несложный способ из инета — поставить последовательно два кремниевых диода (подобрать).
Чтобы не рисовать электрическую схему, просто укажу задействованные мной пины Ардуино.
Подсоединение дисплея Nokia 5110:
pin 3 — Serial clock out (SCLK)
pin 4 — Serial data out (DIN)
pin 5 — Data/Command select (D/C)
pin 6 — LCD chip select (CS)
pin 7 — LCD reset (RST)
Для подсветки пин LIGHT дисплея кидаем на GND Ардуино. (Только для платы красного цвета!). Плюс питания на 3.3V. Земля на GND.
Подсоединение IR приемника:
pin 8 — IR (управляющий). Питание на +5V и GND соответственно.
Подсоединение пьезопищалки:
pin 9 — speaker, Земля на GND.
После монтажа, заливаем скетч
Скетч игры Тетрис
//// © Klop 2017
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <IRremote.h>
#include <EEPROM2.h>
#define rk 4 // ширина квадратика
#define rz 5 // ширина места
#define smeX 1
#define smeY 1
#define MaxX 10 // стакан кол-во мест по гориз
#define speaker 9

#define RECV_PIN 8 // нога на IRDA приемник

// pin 3 - Serial clock out (SCLK)
// pin 4 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 6 - LCD chip select (CS)
// pin 7 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);
IRrecv irrecv(RECV_PIN);
decode_results results;
byte mstacan[MaxX][30];
byte Lst,SmeH, center, NumNext;
byte MaxY; // стакан кол-во мест по вертик
int dxx, dyy, FigX, FigY, Victory, myspeed,tempspeed;
unsigned long  ok, levo, pravo, vniz, myrecord;
unsigned long flfirst=1234; // метка первого запуска

byte fig[][4][4]=
   {
    {{0,0,0,0},
     {0,0,0,0},
     {0,0,0,0},
     {0,0,0,0}},

    {{0,1,0,0},
     {0,1,0,0},
     {0,1,0,0},
     {0,1,0,0}},

    {{0,0,0,0},
     {0,1,1,0},
     {0,1,1,0},
     {0,0,0,0}},

    {{0,1,0,0},
     {0,1,1,0},
     {0,0,1,0},
     {0,0,0,0}},

    {{0,1,0,0},
     {0,1,0,0},
     {0,1,1,0},
     {0,0,0,0}},

    {{0,1,0,0},
     {0,1,1,0},
     {0,1,0,0},
     {0,0,0,0}},

    {{0,0,1,0},
     {0,1,1,0},
     {0,1,0,0},
     {0,0,0,0}},

    {{0,0,1,0},
     {0,0,1,0},
     {0,1,1,0},
     {0,0,0,0}},

    {{0,0,0,0}, //8
     {0,0,0,0},
     {0,0,0,0},
     {0,0,0,0}}
   }; 
//==============================================
void mybeep() // звук
{analogWrite(speaker, 100);
 delay(100);
 analogWrite(speaker, 0);
}
//==============================================
void figmove(byte a, byte b)
{ 
  for (byte i=0;i<4;i++)
    for (byte j=0;j<4;j++)
      fig[a][i][j]=fig[b][i][j];
}     
//==============================================
void figinit(byte a)
{ 
  for (byte i=0;i<4;i++)
    for (byte j=0;j<4;j++)
     {
     fig[0][i][j]=fig[NumNext][i][j];

     if (fig[a][j][i]==1) // покажем след фигуру
        display.fillRect(i*rz+60, 20+(j)*rz, rk , rk, BLACK); 
        else  display.fillRect(i*rz+60, 20+(j)*rz, rk , rk, WHITE);
     }
  display.display();
  NumNext=a; 
  tempspeed=myspeed-(Victory/30)*50; // через каждые 30 линий увеличим скорость падения;
  dxx=0;
   for (byte i=0;i<MaxX;i++)
       if (mstacan[i][3]==2) newgame();

}
//==============================================
void viewstacan()
{
  display.drawLine(0,0,0,display.height()-1, BLACK);
  display.drawLine(0,display.height()-1,Lst, display.height()-1, BLACK);
  display.drawLine(Lst,display.height()-1,Lst,0, BLACK);

  for (byte j=4;j<MaxY;j++)
   for (byte i=0;i<MaxX;i++)
     if (mstacan[i][j]>0) 
        display.fillRect(i*rz+1, SmeH+(j-4)*rz, rk , rk, BLACK); 
         else  display.fillRect(i*rz+1, SmeH+(j-4)*rz, rk , rk, WHITE);
         
  ds(Victory,1);                                  
  display.display();
}
//================================================
void ds(int aa, int b)
{
     display.fillRect(55, 10, 29, 10, WHITE);
     display.setCursor(55,b*10);
     display.println(aa);
}
//================================================
bool iffig(int dx, int dy)
{int i,j;
 bool flag=true; bool pov=false;
 
   for (i=0;i<MaxX;i++)
     for (j=0;j<MaxY;j++)
          if (mstacan[i][j]==1)
          mstacan[i][j]=0;  // убрали временно фигуру

    if (dx==2) //  поворот
      { dx=0; pov=true;
        figmove(8,0); 
        for (i=0;i<4;i++)
          for (j=0;j<4;j++)
          { fig[0][i][j]=fig[8][3-j][i];
            if (fig[0][j][i]==1)
             { if (i+FigX+dx<0)  dx=1;     // пробуем отодвинуть от стенки слева на 1
               if (i+FigX+dx>MaxX-1) dx=-1;// пробуем отодвинуть от стенки справа на 1
             }
          }
      }
      
 for (i=0;i<4;i++)
  for (j=0;j<4;j++)
      if (fig[0][j][i]==1)
        if (i+FigX+dx<0  || i+FigX+dx>MaxX-1 || FigY+j+dy>MaxY-1 || mstacan[i+FigX+dx][FigY+j+dy]>0) 
           {flag=false; break;} // проверили на новые координаты
     
 if (flag)
  {FigX=FigX+dx; FigY=FigY+dy;byte k=0;
   for (i=0;i<4;i++) 
     for (j=0;j<4;j++)
      if (fig[0][j][i]==1)
          {mstacan[i+FigX][j+FigY]=1;
           dxx=0;
          }
  } // переместили фигуру на новые координаты
   else
  { if (pov)  figmove(0,8);
    for (i=0;i<4;i++)    // восстановили фигуру
     for (j=0;j<4;j++)
       if (fig[0][j][i]==1)
       mstacan[i+FigX][j+FigY]=1;
  }
 return(flag);     
}
//================================================
void clearstacan()
{
 for (byte i=0;i<MaxX;i++)
  for (byte j=0;j<MaxY;j++)
    mstacan[i][j]=0;
}
//================================================
unsigned long getbutton(char s[])
{unsigned long tt;
  display.fillRect(5, 30, 40, 10, WHITE);
  display.setCursor(5,30);
  display.print(s);
  display.display();
  while (true)
   if (irrecv.decode(&results)) // ловим код кнопки пульта 
     { tt=results.value;
       delay(400); 
       irrecv.resume();
       break;
     }
  return(tt);   
}
//================================================
void newgame()
{ unsigned long tb;
  dxx=0;  dyy=1;
  display.setCursor(0,0);
  clearstacan();  
  NumNext=random(7)+1;
  figinit(random(7)+1);
  center=MaxX/2-2;
  FigX=center;FigY=0;
  display.setCursor(52,0);
  display.println("Линий");
  viewstacan();
  if (Victory>myrecord) 
     { myrecord=Victory; 
       EEPROM_write(16, myrecord);
     }
  display.setCursor(5,0);
  display.print("Рекорд");
  display.setCursor(5,10);
  display.print(myrecord);
  display.display();
  display.setCursor(5,20);
  delay(2000);irrecv.resume();
  display.println("Нажмите");
  tb=getbutton("  OK");
  if (tb!=ok)
    { ok=tb;
      levo=getbutton("Влево");
      pravo=getbutton("Вправо");
      vniz=getbutton("Вниз");
      EEPROM_write(0, ok);
      EEPROM_write(4, levo);
      EEPROM_write(8, pravo);
      EEPROM_write(12, vniz);
    }
                         
  display.fillRect(5, 0, (MaxX-1)*rz, 40, WHITE);
  myspeed=800; tempspeed=myspeed;
  Victory=0;

} 
//================================================
void setup() 
{ unsigned long tr; word gg=0;
     
  randomSeed(analogRead(0));
  irrecv.enableIRIn();     // Старт ресивера IRDA
  display.begin();
  display.setContrast(50);
  display.setTextSize(1);
  display.setTextColor(BLACK); // установка цвета текста
  display.clearDisplay();
  Lst=rz*MaxX; // ширина стакана в пикселях
  MaxY=display.height()/rz+4; // Высота стакана в кубиках
  SmeH=display.height()%rz; // смещение сверху в пикселях для отображения
  random(7);

  EEPROM_read(0, ok);
  EEPROM_read(4, levo);
  EEPROM_read(8, pravo);
  EEPROM_read(12, vniz);
  EEPROM_read(20, tr);
  if (tr==flfirst) EEPROM_read(16, myrecord);
     else { myrecord=0; 
            EEPROM_write(16, myrecord);
            EEPROM_write(20, flfirst);
          }    
  newgame();
}
//================================================
void dvoiki()
{
 for (byte i=0;i<MaxX;i++)
  for (byte j=0;j<MaxY;j++)
    if (mstacan[i][j]==1)
        mstacan[i][j]=2;
}
//================================================
void mydelay(int md)
{
 unsigned long starttime=millis();  
 while (millis()-starttime<md) 
   {
   if (irrecv.decode(&results)) // ловим код кнопки пульта 
      {
       if (results.value==levo) dxx=-1; else
       if (results.value==pravo) dxx=1; else 
       if (results.value==ok) dxx=2; else
       if (results.value==vniz) {tempspeed=100; md=0;} 
       if (dxx!=0) {iffig(dxx,0);  viewstacan(); }
       delay(40); // убираем дребезг  
       irrecv.resume();
      }
   }
}
//================================================
bool iffs() // есть ли полные строки?
{bool res=false;
 for (byte j=0;j<MaxY;j++)
 { bool fl=true;
   for (byte i=0;i<MaxX;i++)
    if (mstacan[i][MaxY-1-j]==0) fl=false;
  if (fl) 
    {Victory++; 
    if (myspeed<0) myspeed=0;
    res=true; mybeep(); 
    for (byte k=0;k<MaxX;k++) 
     for (byte n=j;n<MaxY-2;n++) 
        mstacan[k][MaxY-n-1]=mstacan[k][MaxY-n-2];
     viewstacan();
    } 
 }
 return(res);
}
//================================================
void loop()
{   if (!iffig(dxx,dyy)) 
       if (!iffig(0,dyy))
          { dvoiki();
            while (iffs()) ;
            figinit(random(7)+1);
            FigX=center;FigY=0;
          }
   viewstacan();
   mydelay(tempspeed);
}

И можно ирать. Игра поддерживает привязку к любому пульту. Для этого достаточно в начале игры, на вопрос «Нажмите ОК» нажать на пульте кнопку, которая будет отвечать за вращение фигуры. Если пульт игре уже знакомый, то игра сразу запустится. Если пульт новый, то код кнопки ОК не совпадет с запомненным и игра потребует последовательно нажать кнопки «Влево», «Вправо» и «Вниз». Эти кнопки будут записаны в энергонезависимую память Ардуино и впоследствии именно этот пульт будет узнаваться сразу по нажатию кнопки «ОК».

При «проваливании» на собранную строку будет воспроизводиться писк. Он реализован на особенности нескольких пинов Ардуино (в нашем случае 9) выдавать ШИМ с заданной частотой.
Игра поддерживает все атрибуты нормальной игры. Ту и подсказка следующей фигуры и текущий счет. Игра ведет учет рекордов. Это значение хранится в энергонезависимой памяти Ардуино. Чтобы сбросить рекорд, достаточно изменить в скетче значение flfirst=1234 на любое другое. В игре также идет автоувеличение скорости падения через каждые 30 списанных строчек, так что, бесконечно долго поиграть не получится ). Скетч не оптимизировался и тщательно не прогонялся, а был написан на досуге в свое удовольствие. Если кто обнаружит ошибку — пишите. О ©. Скетч разрешается править для себя как угодно. Только при публикации где-либо своих вариантов ссылку на первоисточник-муську указывайте ).
Для чего делал — длинные выходные + «из любви к искусству». Была бы дочка маленькой, сделал бы ей, наверное, мини игровой автомат для кукольной комнатки на 8 марта, как раз успел бы. Добавил бы несколько игр типа Змейки и Арканоида, а корпус вырезал бы из текстолита, наверное. Только дочка в этом году уже докторскую защищает, так, что мимо, но может кому еще эта идея пригодится ).

Подведем итог для дисплея Nokia 5110:
Плюсы
+Возможность вывода графики;
+Отсутствие проблем с кириллицей;
+Небольшой вес;
+Отличное соотношение габариты/кол-во выводимой информации;
+Плюсы примененной технологии ЖК — малое энергопотребление и хорошая читабельность на ярком свете;
+Отключаемая подсветка;
+Цена.

Минусы
-Подсветка неравномерная;
-Изображение черно-белое (оттенков нет);
-Необходимость позаботиться о 3.3V, не на каждой Ардуино такое напряжение есть.

Вердикт: За свои деньги по совокупности характеристик уверено занимает свою нишу, недаром и является таким долгожителем среди устройств отображения для Ардуино.

Upd: добавлена озвучка Тетриса на mp3 модуле
Планирую купить +101 Добавить в избранное +148 +269
+
avatar
  • Syncaine
  • 25 февраля 2017, 17:50
+5
Эх, была б моем детстве такая игрушка с программированием.
+
avatar
  • Sg43
  • 25 февраля 2017, 18:25
+2
Спектрума штоле не было?
+
avatar
  • klop
  • 25 февраля 2017, 18:29
+40
Спектрума? Я вот в 1987 году первую статью с программой опубликовал в журнале «Техника Молодежи» на программируемом калькуляторе БЗ-34. В студенчестве перфокарты. А Вы — Спектрум…
+
avatar
  • Sg43
  • 25 февраля 2017, 18:33
+7
Ну я году в 88-ом уже сам эти спектрумы паял.
+
avatar
  • klop
  • 25 февраля 2017, 18:38
+3
Повезло, что были такие возможности. Я с ними познакомился только в начале 90-х.
+
avatar
  • Sg43
  • 25 февраля 2017, 18:41
+7
Ну да, с деталями определённый напряг был, повезло, что отец, а потом и я на оборонном заводе работали, были возможности утащить всякое :)
комментарий скрыт

+
avatar
  • Sg43
  • 25 февраля 2017, 19:49
+18
Да потому что в магазинах ничего не было.
+
avatar
  • skif31
  • 25 февраля 2017, 22:59
+2
потому и не было что растащили
+
avatar
  • hogans
  • 26 февраля 2017, 05:04
+7
потому и тащили, что по другому взять было негде, особенно в глубинке.
+
avatar
  • Snarik60
  • 26 февраля 2017, 09:05
+1
Даже в Москве в Пионере ничего такого не было.
Только в Митино можно было купить всё. М/сх корпуса, клавиатуру и др.
Специально летал В Москву за этим.
Закупал несколько комплектов. Даже с учётом дороги и питания, было выгодно.
+
avatar
  • klop
  • 25 февраля 2017, 22:49
+3
У меня в 88-м появился Микроша на процессоре КР580 (аналог Intel8080). Сделал на нем частично диплом. Затем написал свой собственный компилятор Ассемблера с поддержкой макросов и библиотек, свой текстовый редактор, присоединил к нему электропечатную машинку Consul и дожил на нем до компа на Intel8086, минуя спектрумы (не по карману были семейному инженеру с зарплатой 120 грязными).
+
avatar
  • Dimon_
  • 26 февраля 2017, 00:14
+2
А мы Консул приделывали к Радио86РК. :)
В тумбочке до сих пор лежит готовый набор: ВМ80 (в керамике), ВВ55, ВВ51 и т.д. :)
+
avatar
0
о, Микроша у меня тоже была :)
+
avatar
0
В начале 90х уже телефоны (АОН) у каждого второго на Z80 были, а не компьютеры. А компы 386 в продаже были. Мне вообще повезло с компьютерами. В 89м уже 286 с VGA был дома. И литература на английском по программированию. Но к этому я приобщился через несколько лет. Только по одному 21му прерыванию целая толстая книга от Microsoft была. Выучил ассемблер еще в школе.
+
avatar
0
Кстати, нашел эту книжку для примера. 84 год :)

+
avatar
  • Zakhar75
  • 26 февраля 2017, 10:38
0
А почему не продолжил? Страна потеряла хорошего специалиста.
+
avatar
+4
А это не вы писали «Путь к земле»?
+
avatar
  • klop
  • 25 февраля 2017, 18:44
+7
Это Пухов. Я у него все космические леталки на БЗ-34 прошел бессонными студенческими ночами ).
+
avatar
  • NoViY
  • 26 февраля 2017, 03:05
+3
Аналогично только на МК-61.
+
avatar
  • Demz
  • 27 февраля 2017, 12:21
0
при вводе проги, напечатанной в «Наука и Жизнь» столкнулся с «жизнью» — в статье была напечатана некая клавиша, которой на моем калькуляторе МК-61 не оказалось, я несколько раз мануал к калькулятору и статью перелопатил, но завершить ввод программы не смог…
надо все-таки завершить этот гештальт, начать можно с хабра
+
avatar
  • risotto
  • 25 февраля 2017, 18:50
+2
В Наука и Жизнь тоже был трендовый раздел). Я тоже начмнал с с 34-ки. Закончил 61-м…
+
avatar
  • fozotron
  • 25 февраля 2017, 20:59
+1
И рецензию на красивом бланке видимо получали. Жаль только письма не сохранились от «ТМ». Этот калькулятор перевернул всю мою жизнь.
+
avatar
  • kvolk
  • 25 февраля 2017, 21:27
+8
Старпёры :)
+
avatar
  • Syncaine
  • 25 февраля 2017, 18:47
+1
Спектрумы стоили очень много, особенно нравился модель 128 с звуковой системой ямаха, но позволить себе не мог даже 64.
+
avatar
  • Sg43
  • 25 февраля 2017, 18:49
+2
Можно было самому спаять.
+
avatar
  • Syncaine
  • 25 февраля 2017, 18:52
+2
Даже идеи такой небыло, смотрел на спектрумы как щас смотрят на бентли.
+
avatar
  • Zloi
  • 26 февраля 2017, 21:20
0
А у меня был Робик, наш аналог спектрума. А до Робика был РК 86, помню в змейку на телевизоре березка резался. Лет 6 тогда было))
+
avatar
+1
модель со 128-кило памяти называлась «пентагон». Хотя, РУ5 напаивали поверх тех, что стояли и так увеличивали память
+
avatar
0
Память поверх имеющихся, мультиплексор для адресных линий, регистр для номера страницы и пара микросхем логики. Работы на один вечер :)
+
avatar
  • Oregu
  • 26 февраля 2017, 18:24
0
в 1987 году самосборный спектрум стоил 1000р (отец моего товарища покупал). После мк-61 простора для творчества было просто неограниченно…
+
avatar
0
Готовый 1000 рублей он стоил. Комплектуха, процессор, ОЗУ, ПЗУ, корпус, клава — 350 руб. Для наладки нужен был осциллограф, не у каждого он был.
+
avatar
  • Syncaine
  • 25 февраля 2017, 18:49
+5
Был БК0010 с басиком и еще что то отчественное тоже на бейсике.
+
avatar
  • Sg43
  • 25 февраля 2017, 18:51
0
Чем не игрушка?
+
avatar
  • Syncaine
  • 25 февраля 2017, 18:55
+2
О, эти супер игры на кассетах и бабинах, помню народ корчился от звуков модема, неприятно им было — мне же это были сладкие звуки загрузки игры.
+
avatar
  • ALexus
  • 25 февраля 2017, 20:33
+1
… и все, загружая программку, стояли и не дышали над магнитофоном! :) У меня до сих пор лежит БК-01, во как! Играл на нем в теннис! Загружал за бабинника. :)
+
avatar
+1
поясняю, почему не дышали — ждали когда сорвется загрузка, она постоянно срывалась и приходилось начинать заново. Там преобразование аналогового сигнала с ленты в цифровой производилось ну совсем просто, компаратор стоял и все.
+
avatar
  • svlvenok
  • 25 февраля 2017, 21:11
0
У мну звук коннекта модема стоит в телефоне на звонок. :-) Ностальгия. И не спутаешь ни с чем.
+
avatar
+1
Ай.очень захотелось… Поделитесь ссылкой.
+
avatar
  • eretik
  • 27 февраля 2017, 07:02
+1
+
avatar
  • Syncaine
  • 25 февраля 2017, 18:56
0
Дома такого не было.
+
avatar
0
Ценой. Это сейчас компы копейки стоят, а тогда несколько зарплат надо было отдать даже за поделие БК-0010.
+
avatar
  • mm1348
  • 25 февраля 2017, 18:57
+3
Первый БК-0010 был с Фокалом. С Бэйсиком пошли позднее. Сколько тетрадок было исписано различными программами. Эх, было время золотое.
+
avatar
  • Syncaine
  • 25 февраля 2017, 19:00
+5
Думаю нам повезло больше, щас у молодежи возможностей много, оттого и не делают нихрена. Приходят современные проггеры, которые даже Кнута искусство программирования в руках не держали.
+
avatar
+4
которые даже Кнута искусство программирования в руках не держали
Я держал. Подержал и положил на место — не дорос еще. Но это не мешает зарабатывать немного быдлокодом.
+
avatar
+1
Да, собственно, чем от «тех лет» отличается?! Было полтора калеки на тыщу, которые программили при любой возможности. Так и сейчас.
+
avatar
  • Sg43
  • 25 февраля 2017, 19:01
+3
Я даже игры с перфоленты грузил :) Правда на СМ-4
+
avatar
  • mm1348
  • 25 февраля 2017, 19:04
0
Работал с СМ-4, Электроника-75(125), не помню уже. Всякие диск пакеты, ленты и прочая муть забавная. :)
+
avatar
  • Sg43
  • 25 февраля 2017, 19:05
0
У СМ-4 шикарнейший кассетник был. Я всё мечтал его спереть :)
+
avatar
  • mm1348
  • 25 февраля 2017, 19:08
+1
Но главная любовь моя (после БК-0010) это ДВК-2М!
Супер машинка!
+
avatar
0
Да ну на. MX вообще фиг где прочтешь, дискеты летели только в путь. MY хотя бы с помощью программок можно было на PC изучить.
+
avatar
  • fozotron
  • 25 февраля 2017, 23:06
0
del
+
avatar
  • fozotron
  • 25 февраля 2017, 21:05
0
Электроника-75(125)
Это у которого надо было ленту дырявить в начале и конце кассеты?
+
avatar
  • mm1348
  • 25 февраля 2017, 21:51
0
Похоже попутал. Электроника-100/25 — была точно. И была поновее из этой же серии. Если не 75-я то что то типа того. Большие гробы — мини ЭВМ.
+
avatar
  • fozotron
  • 25 февраля 2017, 23:07
0
Видимо да. Там было с правой стороны две кассетные деки. Язык программирования был ЯМБ. Похожа на Искра-226
+
avatar
  • ALexus
  • 25 февраля 2017, 20:38
0
… да, были времена. После БК и домашнего «ситалл'a», учился на ИСКРА-1256. Препод говорил, научитесь на этом, на современных и делать нечего будет! И подливал «солярку» в ИСКРУ! :)
+
avatar
  • Demz
  • 27 февраля 2017, 12:27
0
Я даже игры с перфоленты грузил :) Правда на СМ-4
а я на обрабатывающем центре 2206ПМФ4
от на таком))


только после игр в теннис кнопки часто вылетали. Физически. Слабое крепление у них, да и годы…
+
avatar
0
Золотое время, я так думаю, было лет на 15 раньше чем у вас, и не в СССР:
«В 1970 году был разработан PDP-11.
PDP-11 имел невероятный успех, в СССР был «полностью срисован» процессор КМ1801ВМ2 (аналог DEC LSI-11/03) и на его базе построены практически полные клоны PDP-11 — ДВК и серия микрокомпьютеров, таких как БК-0010, УКНЦ и МК-90 „… Вариации на тему PDP-11 привились в СССР под двумя названиями: СМ-ЭВМ и «Электроника»“
+
avatar
  • mm1348
  • 25 февраля 2017, 19:49
+1
В том числе БК-0010 и производные, все ДВК — все это наши PDP-11.
А то, что наши сделали копии этой ветки — это нормально. Замечательно даже. Я вырос на этих ЭВМ. И благодарен этим железкам, потому как, до сих пор железками и занимаюсь в свое удовольствие. Спасибо нашим PDP-11!
+
avatar
0
Аналогично, все программы и коды в тетрадках были.
На БК был еще подключаемый блок с Паскалем, но это для продвинутых :)
+
avatar
+1
Не все жили в городах. У некоторые калькуляторы видели только на работе у родителей, а ближайший магазин радиодеталей в 200 км.
+
avatar
0
А толку, что в городах? Я МК-52 год ловил после того как увидел в живую и захотел купить. Деньги были, калькуляторов не было. И да, это было в Москве. Покупал в Электронике на Ленинском 99. Там типа по инструкции надо было перед покупкой функциональные тесты провести. В общем они на обед закрылись, а я в мебельном на Ленинском 101 этот час тестя гонял.
+
avatar
  • kotmorse
  • 25 февраля 2017, 23:00
0
Спектрума у меня не было. Я Apple 2 собрал на 155 серии.
+
avatar
0
А CPU какой взяли?
+
avatar
  • kotmorse
  • 26 февраля 2017, 10:16
0
SY6502, как у Apple ][, чтобы эппловский софт подошел.
+
avatar
0
Ты американский агент? Где брал проц такой? Ну, понимаю Z-80, но этот…
Да еще и Эпловский софт. в то время… Не советский человек однако
+
avatar
  • wallie
  • 25 февраля 2017, 20:43
+1
Эх… В моем детстве самой запомнившейся игрушкой был аппарат СТА-М67Б. Папа привез с работы, когда мне было 7 лет, а было сие в 1971 году. Вторая запомнившаяся игрушка — дедушкины часы, примерно тогда же. Приз Гранпри за победу в соревнованиях… После моего вмешательства они выглядели как настоящие, только не тикали, нечем было :)
И, наконец, третья игрушка — 4-х катушечный диктофон с педалью, который также был отдан отцом в мое распоряжение.
И только потом, в конце 80-х, уже были «Крот», «Волна-К», «Р250», ламповый UW3DI и далее по возрастающей :)
+
avatar
  • VLOD
  • 02 марта 2017, 01:36
0
Напомнил… Мой первый калькулятор был «Феликс М», потом на счетах научили и логорифмической линейке…
+
avatar
  • elfraven
  • 25 февраля 2017, 17:51
0
Классная штука! За девайс — плюс!
+
avatar
  • serg_mur
  • 25 февраля 2017, 17:58
0
Шедеврально!
+!
+
avatar
  • Syncaine
  • 25 февраля 2017, 17:58
0
Откуда взят код тетриса?
+
avatar
  • klop
  • 25 февраля 2017, 18:01
+10
Идея всем известна. Код из головы. )
+
avatar
  • Syncaine
  • 25 февраля 2017, 18:04
0
Не могу понять, экран очищается сам или предыдущая фигура стирается кодом, чтобы получилось движение?
+
avatar
+1
ИМХО — проще хранить битовый бэкбуфер и рисовать в нем, а каждый 1/30 тик бросать его в экран.
Как реализовано здесь у автора — я думаю он сам скажет :)
+
avatar
  • Syncaine
  • 25 февраля 2017, 18:08
+1
Через буфер красивая идея.
+
avatar
  • AndyBig
  • 26 февраля 2017, 15:46
+1
Стандартная идея :) Как и варианты с двумя буферами :)
+
avatar
  • klop
  • 25 февраля 2017, 18:07
+3
На каждом ходе экран перерисовывается квадратиками — черными (где есть фигура) и белыми (где ее нет). Поэтому дополнительной очистки не требуется (так плавность отображения выше).
+
avatar
  • Syncaine
  • 25 февраля 2017, 18:09
+2
Зачет!
+
avatar
  • vil2
  • 25 февраля 2017, 18:02
+4
засветы у дисплея большие по бокам :)
+
avatar
+17
ага, и не full hd :D
+
avatar
  • tirarex
  • 25 февраля 2017, 18:29
+3
И даже не IPS
+
avatar
  • Z2K
  • 25 февраля 2017, 22:35
0
какая там может быть графика если процессор даже не эксинос 9 :(
+
avatar
  • Safar
  • 26 февраля 2017, 03:51
+3
Даже Антуту не запустить :(
+
avatar
  • Paravoz
  • 25 февраля 2017, 18:15
0
в минусах указано.
+
avatar
  • AleksLux
  • 25 февраля 2017, 18:13
0
лайк если тоже ждал, что автор на видео соберет хотя бы одну линию)))

А по делу просто отлично быть самому себе программистом, без этого очеень сильно ограничиваются возможности и пропадает желание что либо мастырить))

п.с. можно к Вам изредка обратиться с утреца для разминки мозга в написании программулины на ардуино?))
или правки какого нибудь уже кривого кода)
+
avatar
  • klop
  • 25 февраля 2017, 18:24
+11
Конечно, пишите в личку, какие разговоры? ))
+
avatar
  • AleksLux
  • 25 февраля 2017, 18:37
+1
Спасибо. + ))
+
avatar
  • hatul
  • 25 февраля 2017, 19:18
0
А мне можно? И сразу, если можно, вопрос, как специалисту-программисту: захотелось, для пробы, сделать часики.Присмотрел схему в интернете, заказал кучу комплектующих. А когда начал детально разбираться, оказалось что нужна ардуина Arduino Mega ADK (Rev3). А мне должна прийти UNO R3 ATMEGA328P. Поиски в интернете показали, что принципиальных различий между ними нет. А возможно-ли адаптировать библиотеки и скетчи от Меги к Уно? И насколько это сложно?
+
avatar
  • klop
  • 25 февраля 2017, 19:25
+1
Можно всем. По возможности отвечу. Пишите в личку. По вашему вопросу надо посмотреть конкретнее, что за проект. Может вам подойдет и мой проект часов. У меня программные автономные часы на ардуино с автокоррекцией с теоретической точностью 1 сек в 68 лет. В личку вопросы!
+
avatar
  • Z2K
  • 25 февраля 2017, 22:40
0
сам себе программист — уходит в прошлое :(. Закон Мура уже давно не исполняется, а обьем информации дальше плодится экспоненсиально. Но придет еще эра жесткой оптимизации нативного кода.
+
avatar
  • Safar
  • 26 февраля 2017, 03:54
0
Терминатора по какому каналу крутят?)
+
avatar
  • RDS
  • 25 февраля 2017, 18:19
+13
— Опять хочу стать программистом.
— А что, уже был?
— Нет, уже хотел
+
avatar
+7
А такие по 2.5$ не нравятся? OLED 0.96'' 128x128

+
avatar
  • Bazili0
  • 25 февраля 2017, 18:34
+4
Тогда лучше вот такие цветные по $3.5 (брал себе — полет нормальный):
aliexpress.com/item/J34-A96-Free-Shipping-1-8-Serial-128X160-SPI-TFT-LCD-Module-Display-PCB-Adapter-Power/32599685873.html
+
avatar
  • klop
  • 25 февраля 2017, 18:41
0
Положил в хотелки. +
+
avatar
0
Я вот такие заказал попробовать, но это TFT, OLED все таки поярче
aliexpress.com/item/1-44-Serial-LCD-Display-128-128-SPI-TFT-Color-Screen-With-Adapter-5110-PCB/32599757275.html
+
avatar
  • wyfinger
  • 25 февраля 2017, 19:30
+10
Я такой использую — $6.51 — aliexpress.com/item/-/32602444645.html

2.8', ILI9341, зачем-то еще гнездо для SD карты прикрутили.
С ардуино проблем нет, с Orange Pi сложнее, написал свою библиотеку для простого рисования: github.com/wyfinger/OrangePi_ILI9341, может пригодится кому.
+
avatar
  • Bazili0
  • 25 февраля 2017, 20:15
0
Гнездо для SD-карты там для того, чтобы картинки и элементы интерфейса держать на карте и выводить их на экранчик
+
avatar
  • wyfinger
  • 26 февраля 2017, 03:36
0
Я к тому, что если бы гнездо для SD не распаяли, снизив итоговую цена на $0.5-1 — взял бы без.
На этом модуле и тач-скрин предполагается, но он не распаян.
+
avatar
  • xneo
  • 25 февраля 2017, 20:30
0
Говорят они выгорают быстро. У меня такой неделю выдавал статичную картинку и действительно оптом её было слегка заметно при отрисовке другого чего либо.
+
avatar
0
Выгорают сильно. Я поэтому при использовании оледов либо гашу их после минуты индикации (если это допустимо алгоритмом использования), либо делаю случайное варьирование точки индикации (то есть картинка как бы гуляет по экрану). Ну и понижаю яркость по мере возможности — тоже уменьшает выгорание.
+
avatar
  • dSave
  • 25 февраля 2017, 18:35
0
Отличный обзор! Спасибо! )
На сенсорный экран не планируете обзор делать?
+
avatar
  • klop
  • 25 февраля 2017, 18:46
+1
Есть мысль заказать такой. Может и до обзора дойдет.
+
avatar
  • Bazili0
  • 25 февраля 2017, 20:26
0
Год назад брал себе 3.95 дюйма с тач-скрином и ардуиной мега 2560 за $15.70
Скрин пришел с надколотым уголком, но в целом рабочий. А вот с тач-скрином беда — много левых показаний при нажатиях. Без программной фильтрации вообще не применимы.
+
avatar
0
Такая же беда с координатами касаний. Вообще никак, не вполне случайные показания, а повернутые на 45 градусов как бы. Хотел программно откорректировать, но там каждому набору получаемых координат соответствовала примерно линия, идущая слева сверху вправо вниз. Ничего не смог сделать.
+
avatar
  • Paravoz
  • 25 февраля 2017, 18:45
0
В Беларусь еще и доставка 1.56$
+
avatar
0
Вот решил тоже поэкспериментировать с подобными наборами. Но обилие вариантов на разных чипах смущает. Кто что подскажет — надо снимать значение напряжения с 3 датчиков 1000 раз в секунду (в идеале, что бы АЦП был 12 бит), потом производить некоторые математические операции с этими данными и писать на SD карту раз в секунду. С меткой времени. При этом хотелось бы, что бы была возможность подсоединиться к девайсу через usb и wi-fi для того, что бы слить данные. Интерфейс хочу вывести на 4.5" цветной дисплей, нарисую его сам :) Что можно взять максимально бюджетное для этой задачи до 100 баксов, что было не обидно запороть в случае чего? Может и не на ардуино будет лучше, не знаю
+
avatar
  • Sidula
  • 25 февраля 2017, 21:23
+1
Что нибудь на STM32?
Типа этого.
+
avatar
  • RaJa
  • 25 февраля 2017, 21:45
+1
И реализует он это через пару лет)
+
avatar
0
И реализует он это через пару лет
А чего? Сильно сложно?
+
avatar
  • RaJa
  • 26 февраля 2017, 11:30
+2
Ардуино сильно раскручена и под неё полно библиотек и готового кода. STM32 несмотря на популярность такой базы готового кода не имеет. Это как программировать Atmega 328 без среды ардуино просто на с++
+
avatar
  • vismyk
  • 28 февраля 2017, 08:44
0
Можно пожертвовать частью вкусностей и программировать STM32 из среды Arduino. Но работоспособность ардуинных библиотек при этом будет сильно зависеть от их железо-ориентированностию :/
+
avatar
  • sim31r
  • 08 марта 2017, 21:46
0
Есть Arduino Due для таких целей, ARM процессор, в STM32 потребности нет.
+
avatar
  • vismyk
  • 09 марта 2017, 17:22
0
Как посмотреть. Самая простая платка на STM32 стоит где-то 1,75, а ДУЕ — 15, за эти деньги можно OrangePi PC купить, он куда лохмаче…
+
avatar
  • sim31r
  • 10 марта 2017, 18:00
0
Arduino Due не простенькая плата, она большая, со стабилизатором, огромное число разъемов.
Orange Pi набор китайских глюков, самое то для изучения Linux, а Raspberry Pi 3 намного дороже. И нет у них реального времени, всем управляет медленная ОС…
Но STM32 можно купить отдельно чип, они массовые, и платы есть копеечные, а вот AT91SAM по отдельности не продаются, с Arduino Due никуда не перейти, тупиковая ветка какая-то. Зато встроенная поддержка среды Arduino (но нужны свои библиотеки обычно). Иногда удобно, иногда нет…
+
avatar
  • vismyk
  • 11 марта 2017, 17:31
0
Ну да, DUE это Arduino-тупик какой-то. Такой же, как Intel Galileo. Всё-таки Arduino это в первую очередь AVR…
+
avatar
0
Типа этого
Спасибо, почитаю
+
avatar
+5
Atmel больше нет, с этим надо просто смириться.
Берите stm32f103c8t6 и никого не слушайте. Программировать их проще чем avr-ки, 32 бит, внутрисхемный отладчик, для вашей задачи есть два 12bit ADC. А стоит эта красота 1.5-2.0$, запарывайте с удовольствием.
Контроллер: aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-ForArduin/32282374854.html
Программатор: aliexpress.com/item/Hot-Sale-1PCS-ST-LINK-Stlink-ST-Link-V2-Mini-STM8-STM32-Simulator-Download-Programmer-Programming/1956977845.html
Если 12бит встроенного АЦП не хватит, посмотрите на это:
aliexpress.com/item/I2C-ADS1115-16-Bit-ADC-4-channel-Module-with-Programmable-Gain-Amplifier-2-0V-to-5/32673245125.html
16bit ADC с 4 входами, которые могут использоваться как два дифференциальных входа для измерения разности напряжения между входами, либо как 4 отдельных несимметричных входа.
+
avatar
0
спасибо за ссылки! буду изучать
+
avatar
  • wyfinger
  • 26 февраля 2017, 07:10
+1
Многие советуют эти STM, ждем от Вас обзор такого модуля с примером игры «Змейка» :)
+
avatar
  • RaJa
  • 26 февраля 2017, 11:33
+2
Вы забываете- ардуино программируют домохозяйки. А в STM32 с таким образованием ничего не выйдет. Это полноценный и довольно сложный мк. Достаточно посмотреть мою статью для мигания светодиодом или USB HID, чтобы сравнить
+
avatar
  • sim31r
  • 08 марта 2017, 21:47
0
Arduino Due есть, намного удобнее в работе, с тысячами примеров в на сайте Arduino.cc
+
avatar
  • longamin
  • 26 февраля 2017, 07:00
+2
Если опыт работы с ардуино есть, то самый хороший на мой взгляд вариант это arduino due, меньше 1000 руб и 12бит ацп работающий почти на мегагерце. Там входов АЦП намного больше чем вам надо, и еще есть два выхода ЦАП, что бывает полезно. Быстро и удобно, плюс иметь в хозяйстве" быструю" ардуинку всегда пригодиться)))). Сообщество ардуино развито очень прилично и там всегда помогут новичку.
+
avatar
  • wyfinger
  • 26 февраля 2017, 07:05
+1
Ардуина считывает показания АЦП не на мегагерце.
Скорее всего на 1000 герц считывать три канала без разного рода хаков не получится.
ШИМ тоже не быстрый, без изменения коэффициентов делителя частоты полуторакиловаттный мотор писчал. А при увеличении частоты появляются другие проблемы.
+
avatar
0
Скорее всего на 1000 герц считывать три канала без разного рода хаков не получится
а на той борде, ссылку на которую ранее давали?
www.banggood.com/STM32F407ZET6-Development-Board-M4-STM32F4-Core-Board-Arm-Development-Board-Cortex-M4-p-1103688.html?utm_content=mysku&admitad_uid=79bb8e76dee36923bd784efcde5990b8
Может чуть цену поднять и взять что-то помощнее? Ну и если там на C программировать и библиотеки нормальные есть, было бы отлично
+
avatar
  • wyfinger
  • 26 февраля 2017, 07:51
+1
На счет STM не знаю, в документации написано АЦП может работать в сканирующем режиме по таймеру, а таймер может работать очень быстро.
Другой вопрос будут ли обновляться показания с этой скоростью или он просто будет считыквать одно и тоже, а реальный замер будет меняться с меньшей скоростью. Нужно внимательно читать доки, а еще лучше — проверить.
А Вам что мерить нужно? может лучше взять специализированный ПИМ, который уже сам считает действующее значение напряжения, тока, частоту, гармоники и еще много чего, первый попавшийся пример — energoma.ru/et-mnogofunkcionalnyj-izmeritelnyj-preobrazovatel/
+
avatar
+1
1000 Гц — это даже для AVR ни о чём. В STM32F1 время одного преобразования около 1 мкс. Причём STM32 имеет DMA и секвенсер, то есть можно задать последовательность сканирования каналов, сказать — куда складывать результаты и всё, все преобразования по каналам произойдут автоматически, по завершению будет вызвано прерывание, в котором можно спокойно обрабатывать результат.
+
avatar
  • wyfinger
  • 26 февраля 2017, 13:15
+1
Не посоветуете пример проекта регистратора на STM — хочу писать на карточку 6 каналов (3 тока, 3 напряжения), нужна частота 1000-2000 герц, запись на карту в Comtrade.
Может уже тысячу раз делали, но что-то я не могу нагуглить (кстати и сайт www.st.com из России недоступен).
+
avatar
0
Не посоветую :( Недостатком STM32 с «бытовой» точки зрения является как раз отсутствие массового количества библиотек. Поэтому бОльшую часть кода приходится делать самостоятельно.
А сайт их вполне доступен.
+
avatar
0
А Вам что мерить нужно? может лучше взять специализированный ПИМ
Не, это другое. Там просто надо к аналоговому прибору логгер+считываение/запись значений прикрутить. Ну выше писал. За ответ спасибо. Тоже глянул документацию, вроде STM-ка должна суметь. Ну и интерфейс хочу красивый сделать на большом 4.5 экране)
Вообще у меня главное — сделать максимально быстро и с быстрым входом в тему. Т.е. возможно чуть дороже заплатить, но хотелось бы сразу нормальные библиотеки получить и писать на С
+
avatar
  • flymouse
  • 27 февраля 2017, 07:33
+2
Берите STM32F4 1000 измерений в секунду через DMA — точно не проблема это мы делали даже на STM8 только там ADC 10bit. Основная проблема будет это дисплей — на него нужны ресурсы. Дравйвера под цветной дисплей есть в интернете и на офф сайте. SD карту подключить через SDIO для быстрого доступа. Файловую систему я бы рекомендовал от Chan.
Ну и всё, что там делать то…
Можно на C++ даже писать что может оказаться полезным для UI дисплея если нужен очень красивый.

Если сильно крутая графика не нужна то STM32F2. Не берите F1 серию и тем более F0 и вот почему:
F1 — старый, то есть новые библиотеки и код инициализации дислея и приличного ADC не подойдёт.
F0 — глючный хлам, кроме моргания светодиодом ни на что не годится. ADC там оооочень глючный и медленный (не смотря на заверения ST) и DMA путает каналы.
+
avatar
0
Понял, спасибо. Ну не знаю, насчет крутой графики — битмапов не будет, буду руками рисовать ui и тренды динамически обновлять. Дисплей, наверное, 800x600
+
avatar
  • flymouse
  • 27 февраля 2017, 20:14
+1
битмапов не будет, буду руками рисовать ui и тренды динамически обновлять.
Что ещё раз доказывает необходимость большой вычислительной мощности и скорости интерфейса а не большого объёма памяти.
Ну в общем да, F4 должно быть в самый раз чтобы на большом экране UI не бесил пользователя )
+
avatar
  • sim31r
  • 08 марта 2017, 21:51
0
STM32F407 мощный DSP процессор, он мощнее первых пентиумов, соответственно и сложнее будет, с ним год разбираться можно… Встроенные АЦП не идеальны, возможно лучше подойдут отдельные АЦП специализированные, под вашу частоту и разрядность, с отдельным питанием аналоговым.
Arduino Due же взял и сразу работаешь с ним.
+
avatar
0
Arduino Due же взял и сразу работаешь с ним
Логично. А какие дисплеи 4.3" посоветуете под DUE, что бы работал без шилда? Ну и что бы нормальная библиотека была?
+
avatar
  • sim31r
  • 10 марта 2017, 18:04
+1
+
avatar
+1
спасибо. забавно, нижний дисплей в видео совсем тормоз
+
avatar
  • sim31r
  • 10 марта 2017, 18:29
+2
Это не дисплей тормоз, а Arduino Due очень быстрая благодаря прямому обмену памяти с дислеем. Внизу простая плата Arduino Mega, она не рассчитана на такое.
+
avatar
0
понятно. но, наверное, еще и код не оптимизирован
+
avatar
  • longamin
  • 26 февраля 2017, 11:25
0
Я писал про ардуино DUE и если вы прочитаете профильный форум то увидите что люди считывали на одном канале с частотой 1МГц, или на двух каналах по 500кГц, я знаю о чем пишу, поэтому прошу не вводить людей в заблуждение.
Я считаю что если сделать надо быстро, и для себя то ардуино (они же разные есть, но DUE это одна из самых быстрых с АЦП и ЦАП, да и не такая дорогая) так как я не программист а больше «железячник» и осваивать программирование хоть и хочется, но это не на первом месте.
+
avatar
  • wyfinger
  • 26 февраля 2017, 12:59
0
Я говорил про стандартную библиотеку, про analogRead() и специально уточнил про «разного рода хаки». С DUE не работал, возможно он и умеет очень быстро, просто помню как удивился как долго работает analogRead().
+
avatar
0
Я считаю что если сделать надо быстро, и для себя
Да. Надо быстро и с быстрым входом в тему :) А опыт программирования 10+ лет есть (на компе)
+
avatar
+1
У stm есть отличные киты, типа discovery. Там отладочная плата, можно дисплей на неё вешать. Программатор встроенный, и примеры кода для разной периферии есть. Ну ещё у них конфигуратор CubeMX — половину кода мышкой можно нарисовать, но это на любителя…

И да, если много математики, то может быть полезен fpu
+
avatar
  • sim31r
  • 08 марта 2017, 21:55
0
Если много математики, можно взять Raspbery Pi 3, там многоядерный процессор на частоте более гигагерца, полноценный ПК за те же деньги.
+
avatar
0
Я тут неделю вопрос изучал, оценивал разные варианты. В итоге заказ DUE + плату с RTC + плату с SD ридером. Буду сидеть разбираться. Затык только с дисплеем с тачем. 4.3" под DUE нормального не нашел. Или в отзывах пишут о куче проблем или он без тача или стоит в 1.5 раза больше DUE
+
avatar
  • sim31r
  • 10 марта 2017, 17:51
0
Я покупал большой дисплей с тачем, ценой около 20$, нормально работать с ним не получилось, изображение было перекошенным и мутным. Теперь буду брать, только если именно по данному дисплею будет подробная статья.
+
avatar
0
del
+
avatar
  • Addiss
  • 25 февраля 2017, 19:55
0
Очень круто! Спасибо, обязательно повторю.
+
avatar
  • msp
  • 25 февраля 2017, 21:24
0
Покупал несколько штук. Бывает, попадаются экземпляры, у которых приходится менять параметры
SETTEMP 0x04
SETBIAS 0x10
SETVOP 0x80

Кстати у TM1637 есть фича — к нему можно подключить кнопки и читать по теме же двум проводам.
+
avatar
  • robosku
  • 26 февраля 2017, 19:24
0
И, кстати, простые дисплейчики без кнопок на TM1637 вполне себе хакаются для подключения опроса внешних кнопок.
+
avatar
  • msp
  • 26 февраля 2017, 21:29
0
И, кстати, простые дисплейчики без кнопок на TM1637 вполне себе хакаются для подключения опроса внешних кнопок.
Я это и хотел сказать — чтение кнопок базовая функция чипа.
Еще плюс дисплея на TM1637 — он работает на холоде. А вот дисплей Nokia 5110 уже при +5 начинает тупить
+
avatar
  • vlad1955
  • 25 февраля 2017, 22:16
0
Вот недорого в Беларусь ebay.com/itm/152131918753:g:VhwAAOSwbYZXYmrM
+
avatar
  • zombrero
  • 25 февраля 2017, 22:36
0
Ребят, а как бы найти такой проект для светодиодной матрицы rgb?
+
avatar
  • djinn_82
  • 25 февраля 2017, 23:09
+3
Эх, просто «Обыкновенные гении», так про Вас писал Велтистов в своём «Электронике». Он конечно думал, что вас будет больше, но хорошо что Вы вообще есть. Шикарный интеллектуальный обзор!
+
avatar
  • kirich
  • 26 февраля 2017, 00:16
+1
система ввода-вывода (Пульт IRDA и Nokia 5110)
Не совсем понял, что это за пульт.

эх, вспоминаю как было приятно пользоваться Nokia 1100 солнечным днем, в то время, как народ прятал свои трубки с цветными матрицами в тень, чтобы набрать номер
Полностью поддерживаю, потому пользуюсь телефоном с цветным экраном, который тоже не надо прятать от солнца :)
+
avatar
  • CTAHOK
  • 26 февраля 2017, 00:38
+1
эх, вспоминаю...
Я так понял, речь идёт о сильно прошедшем времени — тогда и цветные экраны были другие — STN и TFT, которые выцветали на солнце только в путь. Хотя ситуацию спасала зеркальная подложка, если таковая была, и выставление контрастной темы (цветовой схемы в телефоне).
+
avatar
  • klop
  • 26 февраля 2017, 03:13
0
система ввода-вывода (Пульт IRDA и Nokia 5110)
Не совсем понял, что это за пульт.
Любой ИК пульт. А IRDA — это аббревиатура — Infra Red Data Association.
+
avatar
  • kirich
  • 26 февраля 2017, 04:20
+2
А IRDA — это аббревиатура — Infra Red Data Association.
Я знаю что такое IRDA, я не могу понять как оно относится к обычному ИК пульту.
+
avatar
  • kirich
  • 26 февраля 2017, 11:28
+3
Интересно, хоть один минусатор знает разницу между ИК пультом и IRDA?

Для незнающих объясню, IRDA это протокол передачи данных (причем двухсторонний), и в ИК пультах этого нет, так как там команды подчинены другому протоколу.
Кто хочет знать больше, может почитать, IRDA, любой ИК пульт.

IRDA использовали как приемник ИК пульта, но дальность действия была очень маленькой, около 1 метра.
+
avatar
  • klop
  • 26 февраля 2017, 11:37
+1
Уважаемый, вы зря на людей обижаетесь. Сами почитайте по своей ссылке. Wiki популярно обясняет, что такое IRDA.
IrDA, ИК‑порт, инфракрасный порт — группа стандартов, описывающая протоколы физического и логического уровня передачи данных с использованием инфракрасного диапазона световых волн в качестве среды передачи.

Поэтому, если написано про пульт IRDA, это и значит, что он работает по ИК. Еще есть радиопульты, к примеру.
+
avatar
+5
> если написано про пульт IRDA, это и значит, что он работает по ИК
Это абсолютно неверно. Это как решить, что если что-то передаёт данные по проводам, то это ethernet. IRDA — это вполне конкретный подкласс спецификации для устройств, использующих ИК для передачи данных. Относить всё, использующее ИК к IRDA — неверно.
+
avatar
  • valkoder
  • 26 февраля 2017, 12:06
0
Похоже кто-то плохо читал википедию:
InfraRed Data Association — IrDA, ИК‑порт, инфракрасный порт — группа стандартов, описывающая протоколы физического и логического уровня передачи данных с использованием инфракрасного диапазона световых волн в качестве среды передачи.
Слово протоколы написано во множественном числе, отсюда понятно, что они бывают разные, а сама аббревиатура IRDA имеет собирательный смысл и никакого конкретного подкласса устройств я там не увидел.
+
avatar
  • kirich
  • 26 февраля 2017, 12:09
+5
Слово протоколы написано во множественном числе, отсюда понятно, что они бывают разные
Правильно, протоколов много, только найдите там протокол RC5, он самый распространенный среди ИК пультов.

Любопытно, минус за коммент есть, а RC5 в списке IRDA протоколов показать слабо :)
+
avatar
  • klop
  • 26 февраля 2017, 13:05
+2
Все пульты к домашней технике относятся именно к IRDA и библиотека из скетча IRremote базируется только на известных протоколах IRDA. Поэтому у меня написано верно. И возмущение уважаемого kirich-а непонятно многим.
+
avatar
  • kirich
  • 26 февраля 2017, 16:04
0
Все пульты к домашней технике относятся именно к IRDA
Можно источник информации? Так сказать — для самообразования.
+
avatar
  • AndyBig
  • 26 февраля 2017, 16:10
+3
Пульты не относятся к IRDA никак. Отличие начинается уже на самом низком уровне: тогда как в IRDA «Модуляция: немодулированный сигнал, без несущей.», в пультах сигнал модулирован несколькими десятками кГц.
+
avatar
  • kirich
  • 26 февраля 2017, 12:07
+1
Поэтому, если написано про пульт IRDA, это и значит, что он работает по ИК. Еще есть радиопульты, к примеру.
IRDA работает по ИК и пульты ДУ работают по ИК, это все, что у них общее.
Но Вы же не будете говорить, WiFi, Bluetooth и просто радиоканал это одно и то же?
Так можно сказать что аналоговое и цифровое ТВ это одно и то же.

У ИК пультов большой радиус действия, малое количество заранее определенных команд, у IRDA все наоборот. И это не говоря о протоколах.

Меня заинтересовала фраза из Вашего обзора-
Пульт IRDA
Можно ссылку на Пульт IRDA? Возможно я что-то просто упускаю, но весьма любопытно, потому я и спросил.
+
avatar
  • klop
  • 26 февраля 2017, 16:58
0
Мы с Вами как-то по-разному читаем Википедию ))).
Чтобы не переливать из пустого в порожнее, останемся каждый при своем, а те читатели, кому это интересно, смогут почитать об этом из Вики по Вашей ссылке. Ок?
+
avatar
  • kirich
  • 26 февраля 2017, 17:15
0
Мы с Вами как-то по-разному читаем Википедию ))).
Видимо по разному, потому как упоминание ИК пультов есть только в русской версии вики.
В оригинале указано —
IrPHY
SIR: 9.6–115.2 kbit/s, asynchronous, RZI, UART-like, 3/16 pulse
MIR: 0.576–1.152 Mbit/s, RZI, 1/4 pulse, HDLC bit stuffing
FIR: 4 Mbit/s, 4PPM
VFIR: 16 Mbit/s, NRZ, HHH(1,13)
UFIR: 96 Mbit/s, NRZI, 8b/10b
GigaIR: 512 Mbit/s – 1 Gbit/s, NRZI, 2-ASK, 4-ASK, 8b/10b
Никаких IR Remote control здесь нет.

Также как и тут


Так что в данном случае ошибка в русской версии вики.
Были попытки приколхозить IRDA порт для управления компом при помощи обычного ИК пульта (LIRC), но малый радиус действия и отсутствие некоторых особенностей ИК приемников свело на нет все эти попытки.

Примерно из той же оперы СОМ порт. Можно работать по протоколу UART, а можно просто «дергать ножками» (как в понипроге), только это будет уже не совсем UART.

Кстати, кроме меня Вам уже как минимум два человека написали то же самое.
+
avatar
  • klop
  • 26 февраля 2017, 17:57
0
Мы с Вами оперируем разными понятиями, я опираюсь на понятие IRDA из русской Википедии. Вы уверяете, что Вики ошибается, а Вы правы. Да и фиг с ним. Главное, что Вы и другие читатели поняли мою мысль: управляем ардуиной, используя любой подвернувшийся под руку ИК пульт дома ). Только это имеет отношение к сабжу.
Да, и дома и в гараже я компом управляю так-же с пульта. Но, тему лучше не поднимать, а то… )
+
avatar
  • klirik
  • 04 марта 2017, 08:51
0
Думаю, нажать кнопку «править» в википедии ничуть не сложнее, чем «ответить» на муське. А эффекта и пользы гораздо больше!
+
avatar
  • flymouse
  • 26 февраля 2017, 01:11
0
Обзор хороший и автор молодец но дисплей дрянь! Через некоторое время, а может и сразу, начинает сильно плавать контрастность. А если пальцем нажать на вот эту металлическую рамочку то экран заплывает чёрным и приходится потом делать ему массаж чтоб настроить нормальный контраст.
Купил под проект у разных продавцов, в итоге все выкинул ибо взбесили.
+
avatar
  • Kiril22
  • 26 февраля 2017, 06:48
0
Полностью присоединяюсь! Для пары проектов в разное время у разных продавцов покупал 7 штук. В итоге 5 из них в утиль. Проблема, на мой взгляд, в тонюсенькой металлической рамке и низкокачественной резинке между дисплеем и платой. Хорошего контакта не получается. Больше брать и применять в поделках не буду.
+
avatar
  • CTAHOK
  • 26 февраля 2017, 06:55
0
Вышеприведённых косяков на этом дисплее не замечал, покупал пару у продавца Alice'цифры' на ebay. Мне больше всего в этих экранах нравится пожалуй самое низкое энергопотребление — около 300мКа, другие популярные экранчики этим похвастать не могут.
+
avatar
  • akaivp
  • 26 февраля 2017, 10:19
+1
Толковый продавец. Он и на Ali присутствует. A+A+A+, вроде, называется.
+
avatar
  • 68k
  • 12 марта 2017, 00:49
0
Какой из них именно?
A+A+A+ Store или A+A+A+?
Оба продают электронные модули. Или это один продавец держит два магазина?
+
avatar
  • akaivp
  • 12 марта 2017, 09:57
0
Второй. С первым не сталкивался. На одного продавца не похоже — разные цены, разная стоимость доставки.
+
avatar
  • WHALE
  • 26 февраля 2017, 02:45
0
Дисплей от Нокии отличный.
+
avatar
+1
Какие шедевры попадаются среди хлама!
Вроде, никчемный экранчик, а и из такого можно сделать интересное. :)

Напишем игру всех времен и народов — Тетрис.
Длялюбого программиста — это как утренняя зарядка, легкое упражение для мозга, поэтому — вперед!
Юмор, с изрядной долей сарказма, оценил! :))
+
avatar
  • nemoi13
  • 26 февраля 2017, 08:05
+1
Посмотрел видео. ну кто так играет?!
Сапог не туда же поставил. Потом будет труднее собрать полосу.
+
avatar
+2
За идею, логическую и программую реализацию — мегаплюс!

А вот с аппаратной частью — проблема: этому дисплею не только питание надо 3.3 вольта, но и управляющие сигналы надо той же величины. В противном случае, срок его жизни становится не очень выигрышной лотереей.
+
avatar
+1
Автор очень вскользь упомянул о том, что экран не толерантен к 5в по входам. Те питать ардуино от 5а а экран от 3в не получиться — экран сгорит. Ардуино и экран должны питаться от 3в
+
avatar
  • klop
  • 26 февраля 2017, 16:41
+1
Вообще это считается нормальным рабочим вариантом подключения (пусть и не лучшим для здоровья дисплейчика). Но если хотите подстраховаться, тут подробно расписаны все способы, как это сделать.
+
avatar
  • AleksLux
  • 27 февраля 2017, 02:24
0
есть ардуины которые выдают и 5 и 3.3в одновременно. правда если использовать подсветку возможно будет превышение по току. Брал такую нано за 2 бакса. сейчас правда 3 с копейками
+
avatar
  • AleksLux
  • 27 февраля 2017, 03:25
0
я наверно немного не о том) но по ссылке действительно есть решения
+
avatar
  • snows93
  • 28 февраля 2017, 23:58
0
Надо говорить Ардруно.
+
avatar
  • klirik
  • 04 марта 2017, 08:53
0
На экранчики 1602 и подобные вы зря напраслину возвели.
Нужно просто брать с индексом CT или CP в конце.

+
avatar
  • klop
  • 05 марта 2017, 20:21
0
Дайте на них ссылочку на Али, плиз (я не нашел). А то, что в России они продаются, то это в обзоре указано.
+
avatar
  • emdskar
  • 26 марта 2017, 14:19
0
Большое спасибо автору! Повторил на Arduino Nano v3. Только у меня дисплей вместо кириллицы отображал псевдографику, но я заменил русские слова в скетче на английские («Влево» на «Left»...) и всё на дисплее стало понятно. Ещё, в самом начале работы программы были глюки с нажатиями кнопок на пульте (сразу отображалось «Press OK, потом сразу Left, Right, и Down»), хотя на пульте никто кнопки не нажимал. Вылечил установкой конденсатора 100мкф*10в на питание в макетную плату. И ещё — этот мой дисплей 5110 имеет белую подсветку и она включается от 5 вольт, как и сам дисплей(от 3.3 вольт на экране еле-еле виден текст). Вот на него ссылка, может кому нужен…
aliexpress.com/item/Smart-Electronics-LCD-Module-Display-Monitor-White-backlight-adapter-PCB-84-48-84x84-Nokia-5110-Screen/32314362902.html

Не хватает кнопок «Mute» и «Pause».
+
avatar
  • klop
  • 28 марта 2017, 11:10
0
Рад, что получилось. Но с 5V надо поосторожнее. Поставьте все-таки 3.3V и, если плохо виден текст, поиграйтесь с контрастностью в операторе display.setContrast(50); в функции Setup(). Попробуйте поставить не 50, а 55 или другие значения рядом. То, что нет кириллицы, нужно скачать русифицированную библиотеку (ссылка в обзоре есть). Если будут проблемы — пишите в личку.
+
avatar
  • biostar
  • 15 ноября 2018, 16:41
0
что неполучается с тетрисом я пользуюсь Ардуино НАНО… целый день мучаюсь
+
avatar
  • biostar
  • 15 ноября 2018, 17:27
0


на УНО тоже неполучатся почемуто
+
avatar
  • klop
  • 16 декабря 2018, 10:31
0
Плохо видно, но судя по всему компилятор не может найти необходимый ему файл. Проверьте все необходимые библиотеки по моим ссылкам и уберите библиотеку RobotIRremote. А вообще с подобными вопросами лучше обращайтесь в личку.