Прошу автора уделить большее внимание радиомодулям FS1000A / XY-MK-5V433Mhz TX/RX Module и nRF24L01+. модули дешевые, библиотек для них достаточно,но в Flprog никак не использовать. (Если я ошибаюсь выложите пример передачи данных с термодатчиков). По сути в Flprog реализована поддержка достаточно сложных радиомодулей WI-FI, bluetooth, интерфейс RS-485 для «продвинутых проектов». Но, для популяризации проекта Flprog среди начинающих непрограммистов, считаю необходимым поддержку Вашей программой, распространенных и дешевых радиомодулей.
Тем более в«хотелках» пользователей эта задача висит давно.
Радиомодули FS1000A / XY-MK-5V 433Mhz TX/RX и nRF24L01+
Радиомодули FS1000A / XY-MK-5V 433Mhz TX/RX и nRF24L01+
Последний раз редактировалось alexzh 18 сен 2015, 14:05, всего редактировалось 1 раз.
Радиомодули FS1000A / XY-MK-5V 433Mhz TX/RX и nRF24L01+
Хочу поинтересоваться, как проходит прогресс по сдруживанию программы с упомянутыми модулями, а то даже знатные люди в этой теме не могут нормально обьяснить, как управлять радио-модулем с пульта, по принципу как и с ИК пульта.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Радиомодули FS1000A / XY-MK-5V 433Mhz TX/RX и nRF24L01+
Ruskat, с nRF24 еще более менее понятно, помоему блоки на форуме есть. Но эта гадость бьет только по квартире и то не везде и раз-два в сутки виснет, раз в минуту ее инициализировать надо (с питанием все в порядке: индуктивности, кондеры и т.д.).
С приемниками, аля 20 рублей за ведро, все намного сложнее. Декодером надо постоянно и очень быстро опрашивать выход приемника (период порядка 50-80 микросекунд), Но это в стиле FLProg сделать не удается, потому как народ лепит по принципу: все в кучу на одной плате (иногда период цикла достигает десятка секунд). Если приемник повесить на вход прерывания Ардуины, то программа там зависнет навсегда, потому как шум с приемника бешенный. Я делал блоки для микросхем 2262 - работает пока не поставишь на плату что-нибудь тяжелое. Попытался сделать опрос на прерывании от таймера - работало очень нестабильно и пока это дело забросил (дома ремонт, некогда возиться).
Добавлено (13.02.2017, 12:23)
---------------------------------------------
Передавать/принимать данные неибходимо с помощью ШИМ (единица - импульс 1500мкс, ноль - импульс 500мкс, пауза - 500мкс). Прием/передача по USART - бред, потому как от большой разницы в длине импульсов у приемника срывается синхронизация и он начинает шуметь.
П.С. длина импульсов примерная.
С приемниками, аля 20 рублей за ведро, все намного сложнее. Декодером надо постоянно и очень быстро опрашивать выход приемника (период порядка 50-80 микросекунд), Но это в стиле FLProg сделать не удается, потому как народ лепит по принципу: все в кучу на одной плате (иногда период цикла достигает десятка секунд). Если приемник повесить на вход прерывания Ардуины, то программа там зависнет навсегда, потому как шум с приемника бешенный. Я делал блоки для микросхем 2262 - работает пока не поставишь на плату что-нибудь тяжелое. Попытался сделать опрос на прерывании от таймера - работало очень нестабильно и пока это дело забросил (дома ремонт, некогда возиться).
Добавлено (13.02.2017, 12:23)
---------------------------------------------
Передавать/принимать данные неибходимо с помощью ШИМ (единица - импульс 1500мкс, ноль - импульс 500мкс, пауза - 500мкс). Прием/передача по USART - бред, потому как от большой разницы в длине импульсов у приемника срывается синхронизация и он начинает шуметь.
П.С. длина импульсов примерная.
Последний раз редактировалось Boroda 13 фев 2017, 12:33, всего редактировалось 1 раз.
Радиомодули FS1000A / XY-MK-5V 433Mhz TX/RX и nRF24L01+
Boroda, Ну так с готовыми же релейными радио-модулями все нормально...
Тем более, что на Ардуино, в отличии от готового модуля можно детально скорректировать все.
Что принимать, что слушать, что игнорировать...
Тем более, что на Ардуино, в отличии от готового модуля можно детально скорректировать все.
Что принимать, что слушать, что игнорировать...
Последний раз редактировалось Ruskat 15 фев 2017, 08:50, всего редактировалось 1 раз.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Радиомодули FS1000A / XY-MK-5V 433Mhz TX/RX и nRF24L01+
Ruskat, эти вещи сравнивать нельзя. У готового радиомодуля нет панели Nextion, модбаса, логики, кнопок и т.д. Он заточен только под прием и расшифровку. Еще раз напишу:
Люди брали мои блоки и радовались: "стреляет посылками как из пулемета". А потом ставили на плату экран графический и расстраивались. Программа должа писаться под задачи. FBD - это автоматика, простые и сложные Логические схемы. А вот все эти плюшки (типа экранов, RF, IR, WEB, DS18Bxx) просто не укладываются в саму концепцию FBD и в данном случае пользователь извращается как может.
Возьмите реле Лого! - вы можете вывести на встроенный экран сообщение - это стандартный функционал, работающий независимо от Вашей программы и не мешающий работать Вашей программе. На Ардуине Вы сами ставите этот экран, соответственно это часть Вашей программы, и если Вы сделаете обновление экрана каждый цикл, то он и будет обновляться каждый цикл, отнимая время у другой части Вашей программы.
Добавлено (15.02.2017, 09:46)
---------------------------------------------
Если программу писать кодом под определенные задачи, то можно хоть что делать. Я в двух килобайтах памяти реализовывал динамическую индикацию с регулировкой яркости длительностью засвечивания сегментов индикатора, DS18B20, прием/расшифровку сигналов с десяти радиодатчиков с шифровкой сообщений (динамический код), опрос кнопок, внутренние часы реального времени с коррекцией хода, меню из 15 пунктов. И все это прекрасно работало. Вся конструкция состояла из PIC16F628, приемника 433МГц, индикатора и кнопок. Резервное питание 4,5В 0,7мА. Кварц на 4МГц стоял, значит частота процессора 1МГц. У ардуины частота процессора 16МГц.
Добавлено (15.02.2017, 11:00)
---------------------------------------------
Только из-за этого я попросил Автора FLProg Сергея сделать Условия на выполнение плат. Спасибо ему огромное за реализацию. Основной цикл крутится очень быстро (100-200 микросекунд) и в нем можно выполнять какие-то действия, требующие незамедлительной реакции. А все экраны, датчики, сложные с точки зрения контроллера преобразования и т.д. выполнять только тогда, когда это необходимо.
Вот Вы считали датчик и сразу сделали деление на 10 в формате Float, которое занимает очень много времени. Если Вы это деление просто поставите на плату, оно будет выполняться каждый цикл, а зачем? Ведь считывание датчика происходит каждые две секунды. Контроллер сделает 500 делений за секунду одного и того же числа бесполезно, а его ведь можно сделать один раз после чтения датчика. И таких бесполезных действий море.
Вот и получается, что я свой блок 2262 смогу использовать с дисплеем 1602 и модбасом, потому как я правильно распределил нагрузку процессора, а другой пользователь скажет, что блок нерабочий, потому как без понимания подошел к реализации программы.
П.С. в модбасе эти задержки Delay(5) можно вообще выкинуть, потому как переключение MAX485 прием/передача занимает пару десятков наносекунд. А команда DigitalWrite занимает 4 микросекунды.
Функция приема сигнала RF работает? Работает! Поставишь Модбас - и перестает работать! А потому как у Модбаса в коде стоит Delay(5) перед передачей и после передачи.Boroda писал(а):Я делал блоки для микросхем 2262 - работает пока не поставишь на плату что-нибудь тяжелое
Люди брали мои блоки и радовались: "стреляет посылками как из пулемета". А потом ставили на плату экран графический и расстраивались. Программа должа писаться под задачи. FBD - это автоматика, простые и сложные Логические схемы. А вот все эти плюшки (типа экранов, RF, IR, WEB, DS18Bxx) просто не укладываются в саму концепцию FBD и в данном случае пользователь извращается как может.
Возьмите реле Лого! - вы можете вывести на встроенный экран сообщение - это стандартный функционал, работающий независимо от Вашей программы и не мешающий работать Вашей программе. На Ардуине Вы сами ставите этот экран, соответственно это часть Вашей программы, и если Вы сделаете обновление экрана каждый цикл, то он и будет обновляться каждый цикл, отнимая время у другой части Вашей программы.
Добавлено (15.02.2017, 09:46)
---------------------------------------------
Если программу писать кодом под определенные задачи, то можно хоть что делать. Я в двух килобайтах памяти реализовывал динамическую индикацию с регулировкой яркости длительностью засвечивания сегментов индикатора, DS18B20, прием/расшифровку сигналов с десяти радиодатчиков с шифровкой сообщений (динамический код), опрос кнопок, внутренние часы реального времени с коррекцией хода, меню из 15 пунктов. И все это прекрасно работало. Вся конструкция состояла из PIC16F628, приемника 433МГц, индикатора и кнопок. Резервное питание 4,5В 0,7мА. Кварц на 4МГц стоял, значит частота процессора 1МГц. У ардуины частота процессора 16МГц.
Добавлено (15.02.2017, 11:00)
---------------------------------------------
Только из-за этого я попросил Автора FLProg Сергея сделать Условия на выполнение плат. Спасибо ему огромное за реализацию. Основной цикл крутится очень быстро (100-200 микросекунд) и в нем можно выполнять какие-то действия, требующие незамедлительной реакции. А все экраны, датчики, сложные с точки зрения контроллера преобразования и т.д. выполнять только тогда, когда это необходимо.
Вот Вы считали датчик и сразу сделали деление на 10 в формате Float, которое занимает очень много времени. Если Вы это деление просто поставите на плату, оно будет выполняться каждый цикл, а зачем? Ведь считывание датчика происходит каждые две секунды. Контроллер сделает 500 делений за секунду одного и того же числа бесполезно, а его ведь можно сделать один раз после чтения датчика. И таких бесполезных действий море.
Вот и получается, что я свой блок 2262 смогу использовать с дисплеем 1602 и модбасом, потому как я правильно распределил нагрузку процессора, а другой пользователь скажет, что блок нерабочий, потому как без понимания подошел к реализации программы.
П.С. в модбасе эти задержки Delay(5) можно вообще выкинуть, потому как переключение MAX485 прием/передача занимает пару десятков наносекунд. А команда DigitalWrite занимает 4 микросекунды.
Последний раз редактировалось Boroda 15 фев 2017, 11:25, всего редактировалось 1 раз.
Радиомодули FS1000A / XY-MK-5V 433Mhz TX/RX и nRF24L01+
Boroda, Благодарен за Ваши пояснения, но объясню по проще...
Я хочу с помощью FLprog но на Ардуино собрать систему похожую на такую:
[spoiler][/spoiler]
Поэтому и интересуюсь, как кнопки пульта привязать к соответствующим реле.
Я хочу с помощью FLprog но на Ардуино собрать систему похожую на такую:
[spoiler][/spoiler]
Поэтому и интересуюсь, как кнопки пульта привязать к соответствующим реле.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Радиомодули FS1000A / XY-MK-5V 433Mhz TX/RX и nRF24L01+
Ruskat, если ничего не добавлять, то вполне реализуемо, даже можно какие-либо выходы сделать с таймерами. Пульт лучше взять стандартный, потому как с корпусами проблема всегда возникает. Просто надо пульт расковырять и посмотреть, что внутри стоит или коды кнопок с помощью приемника и компа прочитать. Можно конечно и пульт на Ардуине сделать, но тогда с питанием проблемы будут, кучу диодов от кнопок ставить придется и дальность упадет из-за низкого напряжения.
Добавлено (01.03.2017, 23:49)
---------------------------------------------
Добавил блоки приема/передачи посредством дешевых модулей RF433. Блоки приема работают на прерываниях
независимо от текущей программы, блоки передачи вносят задержку на
выполнение программы, во время передачи.
Добавлено (01.03.2017, 23:49)
---------------------------------------------
Добавил блоки приема/передачи посредством дешевых модулей RF433. Блоки приема работают на прерываниях
независимо от текущей программы, блоки передачи вносят задержку на
выполнение программы, во время передачи.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей