![](https://habrastorage.org/files/fff/334/79c/fff33479c1fe443f855dee75f9851a10.png)
Достаточно долго на хабре не было новостей о проекте FLProg. К сожалению занятость на основной работе и домашние заботы не оставляло мне времени на написание постов. Но проект не умер, а продолжает развиваться. Что нового произошло со времени публикации последнего поста?
Вышли три новые версии программы. В версии 1.8 появилась возможность создавать блоки пользователей. Блоки могут создаваться на любом из двух языков, и использоваться в любом проекте FLProg. Они не привязаны к конкретному контроллеру. Блоки пользователя могут объединяться в библиотеки, сохраняться в виде файла на диск, как в виде отдельного блока, так и целиком библиотека блоков. Возможен обмен блоками, загрузка чужих блоков в свою библиотеку. Более подробно о работе с блоками пользователя можно посмотреть в видео уроках.
Работа с пользовательскими блоками в FLProg
Видеоурок «Работа с пользовательскими блоками и создание блока на языке FBD»:
Видеоурок «Работа с пользовательскими блоками и создание блока на языке LAD»:
Видеоурок «Работа с пользовательскими блоками и создание блока на языке LAD»:
Поскольку в версии 1.8. было сильно изменено ядро программы, то в первое время после начала её эксплуатации было обнаружено достаточно большое количество критических ошибок. Это повлекло за собой необходимость выпуска версии 1.8.1 с их исправлениями.
Вчера была выпущена версия 1.9, главной целью которой была организация работы с Bluetooth. Для решения этой задачи пришлось существенно расширить функционал программы. Добавлено шесть новых блоков работы со строками, добавлены два новых типа данных ранее отсутствующих в проекте (Char и Byte). Так же реализована работа с массивами и SoftwareSerial. О новых блоках в программе и работе с ними можно посмотреть в видео уроке.
Что нового в программе FLProg -1.9. Работа с массивами, строками, ком-портом, блютуз.
Кроме того я нашёл в интернете интереснейший проект RemoteXY.
![](https://habrastorage.org/files/f46/afa/58d/f46afa58d4a64c21bae3a486c4be3a61.png)
Основная идея проекта – дать возможность создавать собственные интерфейсы управления для плат Arduino в визуальном онлайн редакторе. Описание интерфейса находится в прошивке контроллера, что позволяет одной программе для Android работать с любым созданным в редакторе интерфейсом.
![](https://habrastorage.org/files/fdb/dd5/432/fdbdd543283a4ea0b0c87fe473f3b65a.png)
Я связался с авторами проекта, и мы договорились о сотрудничестве. На сайте проекта добавили поддержку программы FLProg, а я сделал специализированный блок для работы с программой RemoteXY. Результат этого сотрудничества можно посмотреть на видео.
Работа с программой RemoteXY в прооекте FLProg
Ну и самое ожидаемое пользователями обновление в проекте. Начиная с версии 1.9 в проекте можно в любой момент времени поменять контроллер, и производить копирование между различными проектами, написанными на одном языке. Реализация этого с виду несложного на первый взгляд функционала оказалась очень сложной, что и вызвало задержку в выпуске новой версии.
А напоследок как обычно обзор новых проектов пользователей на сайте FLprog. Сохранен текст авторов публикаций.
Автор: Любитель
Контроллер заряда от солнечной батареи
Доброго времени суток, коллеги!
Целью создания данного проекта является примером того, что программой многоуважаемого Сергея Глушенко активно пользуются и на ней можно собирать довольно серьезные проекты. Практически в самом начале я написал простенький таймер на FLProg и опубликовал сюда, когда еще в программе не было и половины того, что мы имеем сейчас. Далее мне захотелось создать нечто большее и соответственно полезное и применимое)). Но довольно долгое время у меня не хватало фантазии на что-нибудь интересное.
Но вот настал тот день когда на меня нахлынуло вдохновение! Виновником оказался мой коллега по работе и близкий друг. Он приобрел солнечную батарею и пару аккумуляторов, а вот от заводского контроллера заряда он отказался, так как посчитал что можно это и самим сделать. Вот и решили совместными силами собрать собственный контроллер.
Прочитав множество статей в просторах интернета о принципе смарт зарядки аккумуляторов, мы уже примерно представляли алгоритм программы. Осталось лишь применить это в железе.
Я занялся программированием, а друг взял на себя скрутить и спаять все это. Программа была написана примерно за день, но после многочисленных тестов добавлялись новые плюшки, корректировались ошибки. В данный момент все прекрасно заряжается и отрабатывают все защиты.
Что могу сказать об алгоритме программы? Зарядка идет «плавная», то есть ШИМ. Так же есть режим boost (интенсивная зарядка). Защиты по температуре, от разрядки и перезарядки батареи. Вывод показаний на дисплей и конечно же в COM-порт. Включение дисплея и включение/отлючение выхода нагрузки в ручном и автоматическом режиме.
Как все наверно догадываются, что у всех разный стиль написания программы и поэтому сильно не пинайте)) Если будут какие-либо замечания или добрые советы, то я с удовольствие выслушаю и приму к сведению в дальнейшем.
Спасибо за внимание.
Собственно программа yadi.sk/d/oPgcPit8eSHyX
Автор: seval
Аквасторож
Была у меня необходимость сделать Аквасторож, Залило как то весь первый этаж в доме. Спасибо автору FLProg, я запросто написал программу для аквасторожа. Работает больше года. Один раз уже срабатывал.
Для реализации этого проекта был куплен вентиль шаровый с мотором на 12 Вольт и двухпроводным управлением, со встроенными концевыми выключателями. Так же куплен Arduino Pro mini. Остальное было в наличии.
Нарисована схема.
Алгоритм: при обнаружении протечки, срабатывает бит Авария. 4 секунды (замечено опытным путем) подается напряжение на вентиль.
И потом моргает диод Авария. Если устранить протечку, и нажать Сброс — сбрасывается бит Авария и можно открыть вентиль кнопкой Открыть.
Примерно раз в неделю я закрываю вентиль, кнопкой Закрыть, и открываю в целях профилактики.
Выкладываю схему и программу.
Единственное что не осилил, это при срабатывании бита Авария постоянно подается напряжение на вентиль. Пока не сбросить аварию. Но это мне не критично.
Добавил схему в виде картинки.
Уточню что входы и выходы на схеме и в программе могут отличатся. Схему рисовал давно, а программу постоянно меняю.
Автор: Balzamalex
Темный коридор
Так получилось, что у меня в квартире большой коридор. А в конце коридора санузел. А ночью темно. Но иногда хочется… Не то, что б я по памяти не помнил куда идти, но решил сделать покрасивее.
Итак, подсветка темного коридора:
Использована Arduino ATmega328. В качестве ключей для управления использован модуль L298N.
![](https://habrastorage.org/getpro/habr/post_images/36a/18c/6d2/36a18c6d21e61bc84b741c2e151ad61e.jpg)
Сама подсветка выполнена из светодиодной ленты 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 метра).
Идею схемы подсказал мне камрад Слимпер, за что ему огромное спасибо.
И сама схема:![](https://habrastorage.org/files/7da/613/ba4/7da613ba470d4915a30b9d7d5591671f.jpg)
![](https://habrastorage.org/files/90e/bd2/9fb/90ebd29fbc8842f8b594121622f1e742.jpg)
![](https://habrastorage.org/files/783/3d7/45c/7833d745c0c44f4b8cd788075ddc301b.jpg)
![](https://habrastorage.org/files/a8e/077/f9b/a8e077f9b3bd4ca8a70fc339ac74531d.jpg)
![](https://habrastorage.org/files/6ef/b55/aa6/6efb55aa61be4b76a8880676470c40c7.jpg)
![](https://habrastorage.org/files/3e2/19a/73c/3e219a73cc2f4cd8bd2b672922098b59.jpg)
![](https://habrastorage.org/files/7da/613/ba4/7da613ba470d4915a30b9d7d5591671f.jpg)
![](https://habrastorage.org/files/90e/bd2/9fb/90ebd29fbc8842f8b594121622f1e742.jpg)
![](https://habrastorage.org/files/783/3d7/45c/7833d745c0c44f4b8cd788075ddc301b.jpg)
![](https://habrastorage.org/files/a8e/077/f9b/a8e077f9b3bd4ca8a70fc339ac74531d.jpg)
![](https://habrastorage.org/files/6ef/b55/aa6/6efb55aa61be4b76a8880676470c40c7.jpg)
![](https://habrastorage.org/files/3e2/19a/73c/3e219a73cc2f4cd8bd2b672922098b59.jpg)
Схема уже установлена и действует. Если будут вопросы постараюсь ответить. За код не ругайте, я нисколечко не программист.
PS Сам проект: flprog.ru/images/hostingFiles/118191721.flp
Автор: Вячеслав Михайлов
Программируемый мини-манипулятор
Игрушечный манипулятор на китайских сервомоторах. Собран буквально «на коленке» из хлама и контроллера Ardiuno. Программа контроллера запоминает до 10 шагов. В программу вставлен блок динамического управления скоростью сервопривода в зависимости от необходимого угла поворота.
Программа.
Комментарии (5)
radiolok
03.07.2015 13:27+1Манипулятор напомнил мне, как я к доске приматывал проволокой двигатель на 12В, ставил самодельные колеса из фанеры, подключал все это к трансформатору и катал эту Машинку по квартире.
Тяжелое детство, деревянные игрушки :)
А вообще успехов проекту!
uterr
03.07.2015 14:59а что за датчики использованы в манипуляторе? я как-то искал энкодеры абсолютного угла и не нашел, либо нашел по космическим ценам.
EighthMayer
Манипулятор получился просто божественный.