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

Создаем свой блок. Вопросы, помощь знатоков.
Selya
Рядовой
Сообщения: 3
Зарегистрирован: 26 авг 2018, 00:33
Имя: Сергей

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

Сообщение Selya »

Этот блок встречается у Грачика ( Arduino Prom https://www.youtube.com/channel/UCZ2a-G ... 34vq5ob7Kw ) в проекте "Бегущие поворотники на WS2812 и не только". Он с этим блоком плотно поработал в этом проекте, возможно он тоже подскажет.
kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22 окт 2016, 14:22

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

Сообщение kalobyte »

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

эти светодиоды очень требовательны к таймингам и казалось бы сраных 800 или даже 400кгц при 16мгц контроллера, но...
поэтому есть другая библиотека fast led, которая использует спи для передачи нужных таймингов и модуль надо под нее переделывать
Аватара пользователя
ViktorPetrov
Капитан
Сообщения: 807
Зарегистрирован: 09 апр 2018, 23:56
Имя: Виктор
Благодарил (а): 4 раза
Поблагодарили: 1 раз

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

Сообщение ViktorPetrov »

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22 окт 2016, 14:22

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

Сообщение kalobyte »

нужно понимать, что флпрог это не универсальный заменитель кода и многие вещи проще сделать в коде, потому что в флпроге ты затратиш куда больше времени
Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06 апр 2016, 19:59
Откуда: bish
Имя: Антон
Поблагодарили: 1 раз

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

Сообщение Cancertanly »

скиньте проект, пожалуйста, посмотрим
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino
Vit114
Рядовой
Сообщения: 4
Зарегистрирован: 18 авг 2018, 06:48
Имя: Виталий

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

Сообщение Vit114 »

Вот здесь что-то есть по теме
https://youtu.be/VdaNRqv0syQ
kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22 окт 2016, 14:22

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

Сообщение kalobyte »

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

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

программирование это нихера не просто, как любят заявлять разные школьники на хабре и ютубе
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

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

Сообщение AVGN »

Cancertanly писал(а): 28 авг 2018, 05:23скиньте проект, пожалуйста, посмотрим
Уже давно пора привыкнуть и не реагировать на темы где задают вопросы по своему коряво работающему проекту не предоставляя его.
Автор пришел пообщаться.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Evgesha
Лейтенант
Сообщения: 537
Зарегистрирован: 29 окт 2015, 09:57
Откуда: Kazakhstan
Имя: Evgesha

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

Сообщение Evgesha »

[ref]AVGN[/ref],
Так вот же выше указана ссылка на проект

Может кто нибудь помочь с этим вопросом господа генералы?
Вот сам проект:https://yadi.sk/d/YlTyP6kl3acq8i
kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22 окт 2016, 14:22

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

Сообщение kalobyte »

а разве тут кто-то кому-то должен что-то?
Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06 апр 2016, 19:59
Откуда: bish
Имя: Антон
Поблагодарили: 1 раз

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

Сообщение Cancertanly »

Прошу прощения, что не хватает на ваш проект времени. Но обещаю, что как только появится хоть немного свободного, сразу же помогу чем смогу. Да и многие на форуме всегда по возможности помогают....
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino
kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22 окт 2016, 14:22

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

Сообщение kalobyte »

дык пусть донатят тогда, за бабло всяко кто-то напишет

Отправлено спустя 32 минуты 42 секунды:
посмотрел твой ролик - хороший, годный пример того, как не надо делать
Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06 апр 2016, 19:59
Откуда: bish
Имя: Антон
Поблагодарили: 1 раз

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

Сообщение Cancertanly »

сразу же вопрос? зачем нужен этот момент?
[spoiler]
2018-08-30_LI.jpg
[/spoiler]
почему сразу ТРУ не поставить?

кстати, этот блок мне знаком. В нем такая фича есть, что если включить светодиод и на входе поменять номер пикселя, то он останется гореть.
можно было и не извращаться с каждым в отдельности, а просто менять номер светодиода с любой периодичностью. и также выключать на вход енабле подавать 0 и переключать номер светодиода. получится еще более интересный эффект
У вас нет необходимых прав для просмотра вложений в этом сообщении.
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino
Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06 апр 2016, 19:59
Откуда: bish
Имя: Антон
Поблагодарили: 1 раз

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

Сообщение Cancertanly »

Для решения вашей задачи может подойти немного другой ПБ. Он в принципе такой же и на той же библиотеке но собран для 10ти светодиодов в ленте. если у вас не критично с пинами на уне то каждый отрезок посадить на отдельный пин, так будет проще.
WS2812_Stick_10_blocks_(CODE).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino
kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22 окт 2016, 14:22

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

Сообщение kalobyte »

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

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

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

взять библиотеку програмного шима https://github.com/bhagman/SoftPWM
написать код для мигания светодиодами
причем левые и правые поворотники подключены параллельно, а общий провод через пару транзисторов, которые будут включать нужный поворотник
Аватара пользователя
KaScada
Лейтенант
Сообщения: 388
Зарегистрирован: 23 апр 2016, 12:33
Контактная информация:

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

Сообщение KaScada »

Если актуально для кого-то, то мы сделали свой блок для управления WS2812, для поворотников должен подойти удачно.
Тут блок и видео как работать.
ПО КаСкада на базе смартфона/планшета с ОС Андроид

Подробнее здесь: http://www.hmi-kascada.ru/
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

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

Сообщение Сергей »

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

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

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

Забыл написать. Блок работает с библиотекой fastLed.h
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

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

Сообщение Сергей »

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

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

Сообщение com »

А что такое повороники?
liamhoulet
Рядовой
Сообщения: 14
Зарегистрирован: 08 мар 2017, 22:15
Откуда: Ростовская обл. г. Зерноград

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

Сообщение liamhoulet »

Сергей а можно попросить ПБ. Говорили что выложите?
liam
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость