FLProg — продолжение эволюции
Достаточно долго на хабре не было новостей о проекте FLProg. К сожалению занятость на основной работе и домашние заботы не оставляло мне времени на написание постов. Но проект не умер, а продолжает развиваться. Что нового произошло со времени публикации последнего поста?
Вышли три новые версии программы. В версии 1.8 появилась возможность создавать блоки пользователей. Блоки могут создаваться на любом из двух языков, и использоваться в любом проекте FLProg. Они не привязаны к конкретному контроллеру. Блоки пользователя могут объединяться в библиотеки, сохраняться в виде файла на диск, как в виде отдельного блока, так и целиком библиотека блоков. Возможен обмен блоками, загрузка чужих блоков в свою библиотеку. Более подробно о работе с блоками пользователя можно посмотреть в видео уроках.
Видеоурок «Работа с пользовательскими блоками и создание блока на языке LAD»
Поскольку в версии 1.8. было сильно изменено ядро программы, то в первое время после начала её эксплуатации было обнаружено достаточно большое количество критических ошибок. Это повлекло за собой необходимость выпуска версии 1.8.1 с их исправлениями.
Вчера была выпущена версия 1.9, главной целью которой была организация работы с Bluetooth. Для решения этой задачи пришлось существенно расширить функционал программы. Добавлено шесть новых блоков работы со строками, добавлены два новых типа данных ранее отсутствующих в проекте (Char и Byte). Так же реализована работа с массивами и SoftwareSerial. О новых блоках в программе и работе с ними можно посмотреть в видео уроке.
Кроме того я нашёл в интернете интереснейший проект RemoteXY.
Основная идея проекта — дать возможность создавать собственные интерфейсы управления для плат Arduino в визуальном онлайн редакторе. Описание интерфейса находится в прошивке контроллера, что позволяет одной программе для Android работать с любым созданным в редакторе интерфейсом.
Я связался с авторами проекта, и мы договорились о сотрудничестве. На сайте проекта добавили поддержку программы FLProg, а я сделал специализированный блок для работы с программой RemoteXY. Результат этого сотрудничества можно посмотреть на видео.
Ну и самое ожидаемое пользователями обновление в проекте. Начиная с версии 1.9 в проекте можно в любой момент времени поменять контроллер, и производить копирование между различными проектами, написанными на одном языке. Реализация этого с виду несложного на первый взгляд функционала оказалась очень сложной, что и вызвало задержку в выпуске новой версии.
А напоследок как обычно обзор новых проектов пользователей на сайте FLprog. Сохранен текст авторов публикаций.
Автор: Любитель
Доброго времени суток, коллеги!
Целью создания данного проекта является примером того, что программой многоуважаемого Сергея Глушенко активно пользуются и на ней можно собирать довольно серьезные проекты. Практически в самом начале я написал простенький таймер на FLProg и опубликовал сюда, когда еще в программе не было и половины того, что мы имеем сейчас. Далее мне захотелось создать нечто большее и соответственно полезное и применимое)). Но довольно долгое время у меня не хватало фантазии на что-нибудь интересное.
Но вот настал тот день когда на меня нахлынуло вдохновение! Виновником оказался мой коллега по работе и близкий друг. Он приобрел солнечную батарею и пару аккумуляторов, а вот от заводского контроллера заряда он отказался, так как посчитал что можно это и самим сделать. Вот и решили совместными силами собрать собственный контроллер.
Прочитав множество статей в просторах интернета о принципе смарт зарядки аккумуляторов, мы уже примерно представляли алгоритм программы. Осталось лишь применить это в железе.
Я занялся программированием, а друг взял на себя скрутить и спаять все это. Программа была написана примерно за день, но после многочисленных тестов добавлялись новые плюшки, корректировались ошибки. В данный момент все прекрасно заряжается и отрабатывают все защиты.
Что могу сказать об алгоритме программы? Зарядка идет «плавная», то есть ШИМ. Так же есть режим boost (интенсивная зарядка). Защиты по температуре, от разрядки и перезарядки батареи. Вывод показаний на дисплей и конечно же в COM-порт. Включение дисплея и включение/отлючение выхода нагрузки в ручном и автоматическом режиме.
Как все наверно догадываются, что у всех разный стиль написания программы и поэтому сильно не пинайте)) Если будут какие-либо замечания или добрые советы, то я с удовольствие выслушаю и приму к сведению в дальнейшем.
Спасибо за внимание.
Собственно программа yadi.sk/d/oPgcPit8eSHyX
Автор: seval
Была у меня необходимость сделать Аквасторож, Залило как то весь первый этаж в доме. Спасибо автору FLProg, я запросто написал программу для аквасторожа. Работает больше года. Один раз уже срабатывал.
Для реализации этого проекта был куплен вентиль шаровый с мотором на 12 Вольт и двухпроводным управлением, со встроенными концевыми выключателями. Так же куплен Arduino Pro mini. Остальное было в наличии.
Нарисована схема.
Алгоритм: при обнаружении протечки, срабатывает бит Авария. 4 секунды (замечено опытным путем) подается напряжение на вентиль.
И потом моргает диод Авария. Если устранить протечку, и нажать Сброс — сбрасывается бит Авария и можно открыть вентиль кнопкой Открыть.
Примерно раз в неделю я закрываю вентиль, кнопкой Закрыть, и открываю в целях профилактики.
Выкладываю схему и программу.
Единственное что не осилил, это при срабатывании бита Авария постоянно подается напряжение на вентиль. Пока не сбросить аварию. Но это мне не критично.
Добавил схему в виде картинки.
Уточню что входы и выходы на схеме и в программе могут отличатся. Схему рисовал давно, а программу постоянно меняю.
Автор: Balzamalex
Так получилось, что у меня в квартире большой коридор. А в конце коридора санузел. А ночью темно. Но иногда хочется… Не то, что б я по памяти не помнил куда идти, но решил сделать покрасивее.
Итак, подсветка темного коридора:
Использована Arduino ATmega328. В качестве ключей для управления использован модуль L298N.
Сама подсветка выполнена из светодиодной ленты SMD 5630, наклеенной на алюминиевый профиль. Получилось три светодиодных линейки, примерно по 1,8 метра каждая.
Коротко алгоритм работы:
Есть 2 цифровых датчика: ц1 и ц2
Есть 3 аналоговых выхода: в1, в2, в3
Надо: Если СНАЧАЛА срабатывает ц1, то включается в1, далее срабатывает и ц1 и ц2 — включается в1 и в2, затем, через 2 секунды — включается в2 и в3.
Если СНАЧАЛА срабатывает ц2, то включается в3, затем когда ц2 и ц1 — включается в3 и в2, затем, через 2 секунды — работают в2 и в1.
Когда оба датчика перестают срабатывать все выходы выключаются.
Выключение диодных ламп организовано плавное. (В принципе, включение тоже плавное, но мне это оказалось не нужно, и задержка на включение стоит минимальная)
В качестве датчиков использовал датчики HC-SR501 (2 штуки)
Подсветка установлена внизу, вдоль встроенного шкафа, остальные детали, датчики и т.п. наверху (примерно на высоте 3 метра).
Идею схемы подсказал мне камрад Слимпер, за что ему огромное спасибо.
И сама схема:
Схема уже установлена и действует. Если будут вопросы постараюсь ответить. За код не ругайте, я нисколечко не программист :-)
PS Сам проект: flprog.ru/images/hostingFiles/118191721.flp
Автор: Вячеслав Михайлов
Игрушечный манипулятор на китайских сервомоторах. Собран буквально «на коленке» из хлама и контроллера Ardiuno. Программа контроллера запоминает до 10 шагов. В программу вставлен блок динамического управления скоростью сервопривода в зависимости от необходимого угла поворота.
Программа.