Страница 1 из 2

Бегущие поворотники

Добавлено: 26 авг 2018, 12:49
Selya
Этот блок встречается у Грачика ( Arduino Prom https://www.youtube.com/channel/UCZ2a-G ... 34vq5ob7Kw ) в проекте "Бегущие поворотники на WS2812 и не только". Он с этим блоком плотно поработал в этом проекте, возможно он тоже подскажет.

Бегущие повороники

Добавлено: 27 авг 2018, 19:49
kalobyte
[ref]spektr107[/ref],
посмотрел, на чем сделан блок - Adafruit_NeoPixel
там используется манипуляция пинами при помощи ассемблерной вставки + время между посылкой данных в диоды, которое состоит из кучи неоптимального кода, который нагенерила флпрог

эти светодиоды очень требовательны к таймингам и казалось бы сраных 800 или даже 400кгц при 16мгц контроллера, но...
поэтому есть другая библиотека fast led, которая использует спи для передачи нужных таймингов и модуль надо под нее переделывать

Бегущие повороники

Добавлено: 27 авг 2018, 22:02
ViktorPetrov

Бегущие повороники

Добавлено: 28 авг 2018, 00:03
kalobyte
нужно понимать, что флпрог это не универсальный заменитель кода и многие вещи проще сделать в коде, потому что в флпроге ты затратиш куда больше времени

Бегущие повороники

Добавлено: 28 авг 2018, 05:23
Cancertanly
скиньте проект, пожалуйста, посмотрим

Бегущие повороники

Добавлено: 28 авг 2018, 07:23
Vit114
Вот здесь что-то есть по теме
https://youtu.be/VdaNRqv0syQ

Бегущие повороники

Добавлено: 28 авг 2018, 11:48
kalobyte
spektr107 писал(а): 28 авг 2018, 11:31Так я стараюсь обучать пользователей работе с Flprog
так я и говорю, что флпрог это не универсальное решение всех вопросов
есть вещи, которые флпрог не в состоянии сделать и я с этим столкнулся и пишу код руками

с твоими светодиодами тоже самое, когда эффект реализуется какой-то функцией, которая в реальном времени генерит нужные данные и ее проще руками написать, чем из блоков составлять
к тому же у тебя библиотека тормозная и ее надо заменить, а это значит на 95% переписать код блока, а переписать код - это убить 1-2 дня

программирование это нихера не просто, как любят заявлять разные школьники на хабре и ютубе

Бегущие повороники

Добавлено: 28 авг 2018, 11:53
AVGN
Cancertanly писал(а): 28 авг 2018, 05:23скиньте проект, пожалуйста, посмотрим
Уже давно пора привыкнуть и не реагировать на темы где задают вопросы по своему коряво работающему проекту не предоставляя его.
Автор пришел пообщаться.

Бегущие повороники

Добавлено: 28 авг 2018, 13:50
Evgesha
[ref]AVGN[/ref],
Так вот же выше указана ссылка на проект

Может кто нибудь помочь с этим вопросом господа генералы?
Вот сам проект:https://yadi.sk/d/YlTyP6kl3acq8i

Бегущие повороники

Добавлено: 29 авг 2018, 20:31
kalobyte
а разве тут кто-то кому-то должен что-то?

Бегущие повороники

Добавлено: 29 авг 2018, 20:37
Cancertanly
Прошу прощения, что не хватает на ваш проект времени. Но обещаю, что как только появится хоть немного свободного, сразу же помогу чем смогу. Да и многие на форуме всегда по возможности помогают....

Бегущие повороники

Добавлено: 29 авг 2018, 22:00
kalobyte
дык пусть донатят тогда, за бабло всяко кто-то напишет

Отправлено спустя 32 минуты 42 секунды:
посмотрел твой ролик - хороший, годный пример того, как не надо делать

Бегущие повороники

Добавлено: 30 авг 2018, 07:24
Cancertanly
сразу же вопрос? зачем нужен этот момент?
[spoiler]
2018-08-30_LI.jpg
[/spoiler]
почему сразу ТРУ не поставить?

кстати, этот блок мне знаком. В нем такая фича есть, что если включить светодиод и на входе поменять номер пикселя, то он останется гореть.
можно было и не извращаться с каждым в отдельности, а просто менять номер светодиода с любой периодичностью. и также выключать на вход енабле подавать 0 и переключать номер светодиода. получится еще более интересный эффект

Бегущие повороники

Добавлено: 30 авг 2018, 09:56
Cancertanly
Для решения вашей задачи может подойти немного другой ПБ. Он в принципе такой же и на той же библиотеке но собран для 10ти светодиодов в ленте. если у вас не критично с пинами на уне то каждый отрезок посадить на отдельный пин, так будет проще.
WS2812_Stick_10_blocks_(CODE).ubi

Бегущие повороники

Добавлено: 30 авг 2018, 10:33
kalobyte
тут 2 часть - электрическая и программная
ходовые огни - их назначение - тупо светиться днем, они не должны переливаться, они не должны мигать, поэтому с электрической точки зрения это просто 1 светодиод

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

максимум ты можеш запихать в поворотники линейки из светодиодов обычных, прилепить полевики к общему проводу или улн2003
вот как тут http://www.twovolt.com/tag/large-led-di ... t-and-pcb/

взять библиотеку програмного шима https://github.com/bhagman/SoftPWM
написать код для мигания светодиодами
причем левые и правые поворотники подключены параллельно, а общий провод через пару транзисторов, которые будут включать нужный поворотник

Бегущие повороники

Добавлено: 12 окт 2018, 08:22
KaScada
Если актуально для кого-то, то мы сделали свой блок для управления WS2812, для поворотников должен подойти удачно.
Тут блок и видео как работать.

Бегущие повороники

Добавлено: 21 июн 2019, 10:31
Сергей
spektr107 писал(а): 29 авг 2018, 20:49 Нет конечно. Это не для меня нужно было, публика просила, вопрос был довольно глобальный, не узко направленный на одного человека, у меня вообще авто нет
[ref]spektr107[/ref], привет. Смотрю твой канал регулярно, ну и естественно подписан.
Сейчас занимаюсь детским автомобилем. А в этот момент поворотниками. Вижу что тормозят эти все самоделки.
Делаю блок для поворотников, основанный на работе с таймером. Думаю тормозить будет меньше. Только разбираюсь что к чему, но подвижки есть. Скоро скину.

Отправлено спустя 1 час 9 минут 7 секунд:
Сергей писал(а): 21 июн 2019, 09:22таймером
Там принцип такой. Прерывание по таймеру считают две переменные.
В основном цикле программы по условиям "если" выполняется проход программы по соответствующим веткам этого блока. Первый проход по одному пути - настраивает переменные для поворота, второй по другому - с заданной на входе блока длительностью, последовательно включает заданное любое количество и в любом направлении, светодиодов.
После зажигания последнего диода, программа идёт по третьему пути, где гасит все диоды сразу и выжидает заданную паузу.
Потом цикл повторяется, при условии, что на входе блока все ещё присутствует единица включения.

Быстрота реализации должна быть высокая, потому что запись в ленту проходит только в моменты изменения переменных счётчиков. Путь прохода программы зависит от значений переменных. Основной цикл программы выполняется быстро и не стабильно во времени. Соответственно точность работы зависит от прерываний аппаратного таймера.
Подтормаживания не должно быть, потому что запись в диодную ленту ведётся в одном месте и один раз за проход основного цикла. Перед записью блок настраивает, по вышеописанному принцип, какие именно и сколько диодов нужно включить/отключить.

Забыл написать. Блок работает с библиотекой fastLed.h

Бегущие повороники

Добавлено: 23 июн 2019, 00:57
Сергей
Вот, что получилось:
[bbvideo]https://www.youtube.com/watch?v=cDAxvRt ... e=youtu.be[/bbvideo]
Из недостатков:
- занят один таймер. Кажется Т2.
- этот таймер срабатывает минимум раз на 40 мс. Реже можно установить, но тогда повороты будут медленно работать.
- т. к. в подпрограмме обработки прерываний по таймеру находится почти весь код, (+частый вызов прерывания), на функцию Loop() остается мало процессорного времени во время работы поворотов. Из-а этого практически останавливается работа модбаса и других процессов в функции Loop(). Надо оптимизировать код. Если перенести основную часть кода из таймера в функцию Loop(), то будет подтормаживать работа поворотов. От чего мы пытаемся уйти.

Бегущие повороники

Добавлено: 23 июн 2019, 12:41
com
А что такое повороники?

Бегущие повороники

Добавлено: 23 июн 2019, 14:30
liamhoulet
Сергей а можно попросить ПБ. Говорили что выложите?