Comments 13
В шапке заметки гифка — мне показалось или на самом деле библиотечка оставляет хвосты при сдвиге? Т.е. предыдущий столбец гаснет после того, как засвечивается новый.
0
На видео хвостов не видно. Это особенности сжатия. Гифка полученная из видеофайла имела размер 10 Мб. Пришлось ее ужать. Вот и такой эффект.
0
На видео тот же эффект. Так быть не должно, сам натыкался на подобный эффект, была ошибка в коде.
0
Скорей всего дело в записи на камеру, когда один из кадров в череде видеофайла ловит момент, в одну половину которого горел предыдущий пиксель, а в другую — следующий. Избежать этого при съёмке без хардовой модификации платы нельзя, если уменьшить выдержку — будет видно на видео, как загораются отдельные светодиоды. А на каждый светодиод по конденсатору паять — то ещё мучение.
+1
Что то неправдоподобное написали вы. У меня такого эффекта не было:
http://www.youtube.com/watch?v=3etFtuy6sP0
А вот тут была кривая прошивка, которая при динамической индикации засвечивала столбец:
http://www.youtube.com/watch?v=Va96GCUEiPE
http://www.youtube.com/watch?v=3etFtuy6sP0
А вот тут была кривая прошивка, которая при динамической индикации засвечивала столбец:
http://www.youtube.com/watch?v=Va96GCUEiPE
0
Да нет, у вас тоже такой эффект есть. Дело в fps камеры
Я на планшет снимал. У вас может камера по продвинутей.
Убедится можно так:
И смотрим папку frames
Убедится можно так:
youtube-dl "https://www.youtube.com/watch?v=3etFtuy6sP0"
mv "stm8s-discovery 74hc595 8x8 led matrix-3etFtuy6sP0.mp4" "matrix.mp4"
mkdir frames
ffmpeg -i "matrix.mp4" -r 10.1 -f image2 frames/image-%3d.png
И смотрим папку frames
На сам скетч, который гоняет строку, я двумя комментариями ниже ссылку дал. Можете посмотреть и сами проверить.
0
Похоже, что тут играются с ступенчатым увеличением интенсивности при включении и затуханием при выключении — не считаю это хорошей идеей.
0
Что бы вы не гадали, что да как, выложил скетч который выводит эту надпись. Смотрите сами.
0
Не будет ли код, написанный на С++11 медленней чем то, что писали раньше? Ардуинка не резиновая ведь.
--Шутка про драйвер на JavaScript--
--Шутка про драйвер на JavaScript--
0
С чего бы коду на C++11 быть медленнее? Медленнее может быть только компиляция, да и то вряд ли и вы этого даже не заметите. А исполняемый код ни чем не будет отличаться от кода на чистом C или на классическом C++.
0
Даже более того, благодаря
constexpr
и семантике переноса, исполняемый код получается даже более эффективный. Поскольку часть повторяющихся вычислений может быть перенесена на этап компиляции. А семантика переноса позволяет избежать ненужных копирований, заменив их переносом.0
Работа действительно большая в плане универсальности.
Но не хватает заметки (или просто примера) как использовать ее для вывода бегущих строк — ведь матрицы в 95% используют именно для этого. Дочитано полностью, но фраза "Библиотека не реализует средств для печати текстовых строк на каскаде матриц" все равно непонятна — что мешает определиться с количеством и ориентацией матриц и, уже используя эти данные, выводить текст?
Но не хватает заметки (или просто примера) как использовать ее для вывода бегущих строк — ведь матрицы в 95% используют именно для этого. Дочитано полностью, но фраза "Библиотека не реализует средств для печати текстовых строк на каскаде матриц" все равно непонятна — что мешает определиться с количеством и ориентацией матриц и, уже используя эти данные, выводить текст?
0
Спасибо за отзыв.
LedMatrix создан как библиотека общего назначения. То есть она не делает ни каких предположений о конфигурации пользовательского монтажа, а допускает любую конфигурацию в рамках аппаратных ограничений.
Поэтому включение методов управления конкретной конфигурацией было бы нарушением целостности. Это архитектурно не правильно включать в библиотеку общего назначения реализацию конкретной конфигурации.
Например, матрицы могут быть скомпонованы в две строки или четыре. Или в горизонтальный блок. Или вообще для игры в тетрис.
Я согласен, что в большинстве случаев, библиотека будет использоваться (ну я надеюсь, что будет) для управления однострочной горизонтальной компоновкой. Правильное решение — это сделать отдельную библиотеку поверх этой.
У меня есть такие планы.
На самом деле, даже сейчас это совсем не сложная задача. Вот два примера:
https://github.com/valmat/LedMatrix/blob/master/examples/MultiShift/MultiShift.ino
https://github.com/valmat/LedMatrix/blob/master/examples/HelloHabr/HelloHabr.ino
Если кратко, то нужно с помощью метода
Сейчас нет интерфейса для конвертации строки в набор символов с автоматической установкой в матрицу. Т.е. что бы работать с чем то вроде
Но как я уже сказал, это отдельная задача, которая должна быть (и возможно, будет) реализована в отдельной библиотеке.
LedMatrix создан как библиотека общего назначения. То есть она не делает ни каких предположений о конфигурации пользовательского монтажа, а допускает любую конфигурацию в рамках аппаратных ограничений.
Поэтому включение методов управления конкретной конфигурацией было бы нарушением целостности. Это архитектурно не правильно включать в библиотеку общего назначения реализацию конкретной конфигурации.
Например, матрицы могут быть скомпонованы в две строки или четыре. Или в горизонтальный блок. Или вообще для игры в тетрис.
Я согласен, что в большинстве случаев, библиотека будет использоваться (ну я надеюсь, что будет) для управления однострочной горизонтальной компоновкой. Правильное решение — это сделать отдельную библиотеку поверх этой.
У меня есть такие планы.
На самом деле, даже сейчас это совсем не сложная задача. Вот два примера:
https://github.com/valmat/LedMatrix/blob/master/examples/MultiShift/MultiShift.ino
https://github.com/valmat/LedMatrix/blob/master/examples/HelloHabr/HelloHabr.ino
Если кратко, то нужно с помощью метода
void setCol(const Col &col, buint8_t value);
установить соответствующие столбцы.Сейчас нет интерфейса для конвертации строки в набор символов с автоматической установкой в матрицу. Т.е. что бы работать с чем то вроде
const char *
/ const wchar_t *
.Но как я уже сказал, это отдельная задача, которая должна быть (и возможно, будет) реализована в отдельной библиотеке.
+1
Sign up to leave a comment.
Ардуино С++11 библиотека для управления светодиодными матрицами