Пользовательский блок для LED матриц типа Р10

Создаем свой блок. Вопросы, помощь знатоков.
aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок для LED матриц типа Р10

#1

Сообщение aidar_i » 27.09.2017{, 11:44}

Начал разбираться с этими матрицами и решил сделать блок.
В пользовательском блоке располагаю библиотеки в определенном порядке, после компиляции проекта они в IDE меняют положения и  при проверке из за этого появляется ошибка. После перестановки на место библиотеки, все работает.

Должен быть (как в блоке):
#include <DMD2.h>
#include <SPI.h>
#include <fonts/Arial14.h>
В IDE:
#include <fonts/Arial14.h>
#include <DMD2.h>
#include <SPI.h>
Главное, чтобы шрифт стоял после DMD2.

Библиотека  DMD2.h находится в папке: Документы/ Arduino/librares. Пробовал библиотеку смещать в IDE в FLProgе не помогло.
Вложения
DMD2-master.rar
(48.22 КБ) 148 скачиваний
Последний раз редактировалось aidar_i 14.03.2018{, 16:37}, всего редактировалось 3 раза.

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#2

Сообщение aidar_i » 15.10.2017{, 22:55}

Naladchik писал(а):Попробуйте в библиотеке папку fonts переименовать как zfonts
Это получается при компиляции FLProg располагает библиотеки по алфавиту?

Вопрос автору, можно подправить программу?

Добавлено (15.10.2017, 22:55)
---------------------------------------------
Пора заняться этими матрицами. У кого она есть, чтобы можно было проверять?
Последний раз редактировалось aidar_i 28.09.2017{, 13:32}, всего редактировалось 1 раз.

tomas111
Рядовой
Сообщения: 15
Зарегистрирован: 21.11.2017{, 11:43}
Репутация: 0

Пользовательский блок на LED матрицах типа Р10

#3

Сообщение tomas111 » 26.02.2018{, 17:44}

Привет, что нить получилось?

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#4

Сообщение aidar_i » 27.02.2018{, 15:08}

У меня нет этой матрицы, чтобы проверить.

tomas111
Рядовой
Сообщения: 15
Зарегистрирован: 21.11.2017{, 11:43}
Репутация: 0

Пользовательский блок на LED матрицах типа Р10

#5

Сообщение tomas111 » 27.02.2018{, 20:06}

aidar_i писал(а):
27.02.2018{, 15:08}
У меня нет этой матрицы, чтобы проверить.
У меня есть! Могу проверить! И не одна ))

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#6

Сообщение aidar_i » 28.02.2018{, 01:53}

[quote=tomas111 post_id=42638 time=1519751180 user_id=9357]У меня есть! Могу проверить! И не одна ))


Давайте подключайте!

tomas111
Рядовой
Сообщения: 15
Зарегистрирован: 21.11.2017{, 11:43}
Репутация: 0

Пользовательский блок на LED матрицах типа Р10

#7

Сообщение tomas111 » 28.02.2018{, 12:42}

aidar_i, у меня кое что уже работает. Не понятно как быть с русским шрифтом, графикой и статическим текстом!

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#8

Сообщение aidar_i » 28.02.2018{, 14:36}

tomas111 писал(а):
28.02.2018{, 12:42}
Не понятно как быть с русским шрифтом, графикой и статическим текстом!
Нужно попросить помочь наших гуру. Напишите, что Вы хотите от блока, может смогут помочь! Русский шрифт , я думаю можно решить аналогично как в блоках бегущих строк. В библиотеке в папке examples есть примеры, прокрутите все и узнаете , что может библиотека, и что Вы хотите.

tomas111
Рядовой
Сообщения: 15
Зарегистрирован: 21.11.2017{, 11:43}
Репутация: 0

Пользовательский блок на LED матрицах типа Р10

#9

Сообщение tomas111 » 28.02.2018{, 16:58}

aidar_i писал(а):
28.02.2018{, 14:36}
tomas111 писал(а):
28.02.2018{, 12:42}
Не понятно как быть с русским шрифтом, графикой и статическим текстом!
Нужно попросить помочь наших гуру. Напишите, что Вы хотите от блока, может смогут помочь! Русский шрифт , я думаю можно решить аналогично как в блоках бегущих строк. В библиотеке в папке examples есть примеры, прокрутите все и узнаете , что может библиотека, и что Вы хотите.
Уже посмотрел! русский шрифт нашел правда маленький. Хотелось бы размер больше. Но походу придется самим как то "рисовать".
Вот что хочу для начала:
- вывод текста (бегущая строка). Уже умею.
- статический текст. В процессе
- работа с графикой. Не почему с чего начать.
- работа со шрифтами а именно добавление и редактирование своего. Японский что бы понимал ))
Вот как бы все )) можем списаться в ватцапе или скайпе.

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#10

Сообщение aidar_i » 28.02.2018{, 21:02}

Удалил
Последний раз редактировалось aidar_i 13.03.2018{, 12:12}, всего редактировалось 3 раза.

Аватара пользователя
Fuji1604
Сержант
Сообщения: 282
Зарегистрирован: 19.01.2016{, 06:09}
Репутация: 40
Откуда: Березники
Имя: Сергей

Пользовательский блок на LED матрицах типа Р10

#11

Сообщение Fuji1604 » 28.02.2018{, 21:22}

Есть скрипт которы создает шрифт в бинарном виде из картинки, возможно пригодится.

Отправлено спустя 5 минут 20 секунд:
Взято из этой темыhttp://forum.flprog.ru/viewtopic.php?f= ... &hilit=Vga
Вложения
tools.zip
(241.52 КБ) 109 скачиваний
когда мастерю обычно подсматриваю,
не рыли ли окоп в том же направлении,
не изобретали ли велосипед с такими-же квадратными как у меня колёсами,
а уже потом - не торопясь, торю свою лыжню

tomas111
Рядовой
Сообщения: 15
Зарегистрирован: 21.11.2017{, 11:43}
Репутация: 0

Пользовательский блок на LED матрицах типа Р10

#12

Сообщение tomas111 » 01.03.2018{, 11:30}

что то я уже совсем запутался. Я щас пищу в Arduino IDE. но вывод букв как написано не просиходит но очень гдето рядом... Как будто где то сдвиг (( Так же файлик со шрифтом прилагаю. Может кто мне объяснит как мне использовать шрифт? ))

Код: Выделить всё

void DrawMHD_2(){
  // Running Text
 dmd.clearScreen( true );   // Очистить экран //
 dmd.selectFont(katakana);   // Выбор шрифта //
 dmd.drawMarquee("モスクワ.",8,(32*DISPLAYS_ACROSS)-1,0);    // Вывод сообщений
 long start=millis(); 
 long timer=start;
 boolean ret=false;
 while(!ret){
     if ((timer+40) < millis()) {
       ret=dmd.stepMarquee(-1,0);
       timer=millis();
     }
   } 
}
Вложения
katakana.h
(16.18 КБ) 93 скачивания

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#13

Сообщение aidar_i » 03.03.2018{, 01:04}

Удалил
Последний раз редактировалось aidar_i 13.03.2018{, 12:12}, всего редактировалось 1 раз.

tomas111
Рядовой
Сообщения: 15
Зарегистрирован: 21.11.2017{, 11:43}
Репутация: 0

Пользовательский блок на LED матрицах типа Р10

#14

Сообщение tomas111 » 05.03.2018{, 13:51}

aidar_i писал(а):
03.03.2018{, 01:04}
Сделал симулятор Р10 на Протеус, русский шрифт не работает.
Прошу посмотреть скетч для блока, подсказать где ошибка, шрифт с кириллицей выше в библиотеке, SystemFont5x7.h(убрал rus)
СпойлерПоказать
#include <SPI.h>
#include <DMD2.h>
#include <fonts/SystemFont5x7.h>


#define DISPLAYS_WIDE 3
#define DISPLAYS_HIGH 1

SoftDMD dmd(DISPLAYS_WIDE,DISPLAYS_HIGH);
DMD_TextBox box(dmd, 0, 0, 32, 16);
String tape = "";
String utf8rus(String source)
{
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };

k = source.length(); i = 0;
while (i < k) {
n = source; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x2F;
break;
}
case 0xD1: {
n = source; i++;
if (n == 0x91) { n = 0xB7; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x6F;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
}

void setup() {
dmd.setBrightness(255);
dmd.selectFont(SystemFont5x7);
dmd.begin();

}




void loop() {
tape = utf8rus("АБВГДЕЖЗИЙКЛМНОПабвгдежзийклмноп");
dmd.drawString(0, 0, tape);
dmd.marqueeScrollX(-1);

}


У меря работает и русский и японский. Хочу вообще три языка но не пойму как создать такой большой шрифт?
Пользуюсь вот так:
dmd.drawMarquee (" \x85A8""\x85A9",3,(32*DISPLAYS_ACROSS)-1,1);
На выходе у меня:
薨薩
Думаю может реально сделать один большой шрифт? Но не пойма как сделать что бы Arduino IDE компилировала проект.

Отправлено спустя 1 час 11 минут 21 секунду:
aidar_i писал(а):
03.03.2018{, 01:04}
Сделал симулятор Р10 на Протеус, русский шрифт не работает.
Прошу посмотреть скетч для блока, подсказать где ошибка, шрифт с кириллицей выше в библиотеке, SystemFont5x7.h(убрал rus)
СпойлерПоказать
#include <SPI.h>
#include <DMD2.h>
#include <fonts/SystemFont5x7.h>


#define DISPLAYS_WIDE 3
#define DISPLAYS_HIGH 1

SoftDMD dmd(DISPLAYS_WIDE,DISPLAYS_HIGH);
DMD_TextBox box(dmd, 0, 0, 32, 16);
String tape = "";
String utf8rus(String source)
{
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };

k = source.length(); i = 0;
while (i < k) {
n = source; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x2F;
break;
}
case 0xD1: {
n = source; i++;
if (n == 0x91) { n = 0xB7; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x6F;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
}

void setup() {
dmd.setBrightness(255);
dmd.selectFont(SystemFont5x7);
dmd.begin();

}




void loop() {
tape = utf8rus("АБВГДЕЖЗИЙКЛМНОПабвгдежзийклмноп");
dmd.drawString(0, 0, tape);
dmd.marqueeScrollX(-1);

}


Снял даже видео.
Но вопрос остался открытым по графике и сдвигу графики ))

Отправлено спустя 2 часа 27 минут 41 секунду:
aidar_i писал(а):
03.03.2018{, 01:04}
Сделал симулятор Р10 на Протеус, русский шрифт не работает.
Прошу посмотреть скетч для блока, подсказать где ошибка, шрифт с кириллицей выше в библиотеке, SystemFont5x7.h(убрал rus)
СпойлерПоказать
#include <SPI.h>
#include <DMD2.h>
#include <fonts/SystemFont5x7.h>


#define DISPLAYS_WIDE 3
#define DISPLAYS_HIGH 1

SoftDMD dmd(DISPLAYS_WIDE,DISPLAYS_HIGH);
DMD_TextBox box(dmd, 0, 0, 32, 16);
String tape = "";
String utf8rus(String source)
{
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };

k = source.length(); i = 0;
while (i < k) {
n = source; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x2F;
break;
}
case 0xD1: {
n = source; i++;
if (n == 0x91) { n = 0xB7; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x6F;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
}

void setup() {
dmd.setBrightness(255);
dmd.selectFont(SystemFont5x7);
dmd.begin();

}




void loop() {
tape = utf8rus("АБВГДЕЖЗИЙКЛМНОПабвгдежзийклмноп");
dmd.drawString(0, 0, tape);
dmd.marqueeScrollX(-1);

}


личные сообщения отключены, позже я добавлю тюда шрифты. Но явно не хватает знаний в С (( Понял как рисовать шрифты и применять их. Но программы в которой это было бы удобно пока не нашёл ((

Отправлено спустя 18 минут 20 секунд:
Помогло http://robocraft.ru/blog/892.html

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#15

Сообщение aidar_i » 06.03.2018{, 23:23}

tomas111 писал(а):
05.03.2018{, 17:48}
Помогло
Изучил статью, добавил кириллицу, но не работает. Пока возился, научился выводить в компорт русский текст, но в Р10 не получился.

tomas111
Рядовой
Сообщения: 15
Зарегистрирован: 21.11.2017{, 11:43}
Репутация: 0

Пользовательский блок на LED матрицах типа Р10

#16

Сообщение tomas111 » 07.03.2018{, 11:21}

aidar_i писал(а):
06.03.2018{, 23:23}
tomas111 писал(а):
05.03.2018{, 17:48}
Помогло
Изучил статью, добавил кириллицу, но не работает. Пока возился, научился выводить в компорт русский текст, но в Р10 не получился.
Как щас я сделал. Поскольку мне надо три языка а именно: казахский, китайский и англ. Но слова уже сделаны заранее я взыл шрифт где есть по умолчанию Англ. и добавил туда килирицу и иероглицы. и вывожу их на панель! Вот так! Как именно ты хочешь выводить кириллицу ?
У меня щас стоит задача это буквы заранее измевтные выводить! Но щас у меня следущая задача это modbus. С этим уже сложнее. RS-485 уже работает. надо протокол каким то образом сделать. Может есть идеи или опыт? После смогу полную полную статью написать как я сделал )) Хотя вроде со шрифтом я разобрался. Может не совсем корректно выводить но как увидел так и сделал ))

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#17

Сообщение aidar_i » 08.03.2018{, 09:22}

tomas111 писал(а):
07.03.2018{, 11:21}
Как
С помощью utf8rus. А нужно адреса правильно написать, пока не разобрался.

Аватара пользователя
magpit
Лейтенант
Сообщения: 382
Зарегистрирован: 01.10.2017{, 12:55}
Репутация: 16
Имя: Сергей

Пользовательский блок на LED матрицах типа Р10

#18

Сообщение magpit » 08.03.2018{, 10:24}

Мне помогла читать коды вот эта прога.
В ней можно переделать весь алфавит
Может вам поможет.
Вложения
KS0108.rar
(117.15 КБ) 122 скачивания

aidar_i
Полковник
Сообщения: 3160
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 691
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользовательский блок на LED матрицах типа Р10

#19

Сообщение aidar_i » 08.03.2018{, 15:37}

magpit писал(а):
08.03.2018{, 10:24}
Мне помогла читать коды вот эта прога.
Не открывается.
Скачал с сайта.

Аватара пользователя
magpit
Лейтенант
Сообщения: 382
Зарегистрирован: 01.10.2017{, 12:55}
Репутация: 16
Имя: Сергей

Пользовательский блок на LED матрицах типа Р10

#20

Сообщение magpit » 08.03.2018{, 19:45}

А ты её разорхивировал?

Ответить

Вернуться в «Разработка пользовательских блоков»