Страница 18 из 22
nRF24L01+ пользовательский блока на Си
Добавлено: 03 апр 2017, 20:27
Oleg_UA
Слимпер писал(а):Но по моему дело было в том, что когда в схемы больше 2 двух устройств, становится не понятно кто из них получил пакет. А значит уже нет смыла это использовать.
Если есть возможность попробуйте с изменённым блоком, у меня нет сейчас этих модулей.
Один блок как передатчик и как приёмник для связи с пятью модулями одновременно.Обмен между модулями идёт по своему идентификатору что гарантирует точность доставки указанному клиенту и вывод результата на выход Tx_OK.
Network тяжела для слабых контролеров а master то что нужно когда ресурсы ограничены .
Гляньте блок может принцип понравится и поможет в дальнейших улучшениях, надеюсь не умрёт библиотека master.
nRF24L01+ пользовательский блока на Си
Добавлено: 03 апр 2017, 21:47
Oleg_UA
ARDO писал(а):Может у кого та есть пример как подключить кнопку к клиенту и реле к серверу? Несколько дней пробую и не получаетса. в тестовых режимах модули работают хорошо
В примере три кнопки и три реле, распиновка модуля написана для nano
Заодно и протестите изменённый блок
nRF24L01+ пользовательский блока на Си
Добавлено: 19 май 2017, 18:43
Oleg_UA
ashil писал(а):В этом случае прав Слимпер - Но по моему дело было в том, что когда в схемы больше 2 двух устройств, становится не понятно кто из них получил пакет. А значит уже нет смыла это использовать.
В блоках от Слимпера передача и приём идут по одному ID поэтому и не понятно, в моих блоках для связи с каждым модулем используется свой ID, в этом случае отправка идёт конкретному модулю а не всем сразу.
Я уже потестил этот способ на 5-ти. модулях и всё работает отлично, но создать блоки для общего использования у меня не получилось, из-за сложности настройки (редактор блоков пока не позволяет такое сделать) .
Если есть желание поковырять могу выложить свои блоки.
У меня сделано: один основной блок с настройками ID и отдельные блоки для связи с каждым модулем, в котором через параметр выбирается номер удалённого модуля с которым этот блок связан.
nRF24L01+ пользовательский блока на Си
Добавлено: 19 май 2017, 18:58
Oleg_UA
ashil писал(а):Но желание есть.
Тогда добавлю максимум комментариев и выложу
nRF24L01+ пользовательский блока на Си
Добавлено: 19 май 2017, 20:53
Oleg_UA
В архиве блоки и четыре примера в которых настроил блоки для связи между собой, в блоках добавил описание.
nRF24L01+ пользовательский блока на Си
Добавлено: 21 май 2017, 14:22
Oleg1345140
Добрый день, проблема в следующем при попытке скомпилировать проект с любым из данных пользовательских блоков получаю сообщение о том что "неудалось выгрузить библиотеку <<RF24-master>>" и следующее сообщение "не найдены следующие библиотеки RF24.hnRF24L01.h" данные сообщения выдает FLProg. Библиотека добавлена.
Добавлено (21.05.2017, 14:22)
---------------------------------------------
Проблема не актуальна, если у кого возникнет, папку с библиотекой нужно добавлять путям копирования а не через ИДЕ ардуины.
nRF24L01+ пользовательский блока на Си
Добавлено: 21 май 2017, 15:08
Dev1
Oleg1345140 писал(а):Проблема не актуальна, если у кого возникнет, папку с библиотекой нужно добавлять путям копирования а не через ИДЕ ардуины.
В настройках IDE поставьте свой путь. По умолчанию она кидает ...\Documents\Arduino\libraries\
Вообще плохая идея использовать стороннюю программу внутри другой.
nRF24L01+ пользовательский блока на Си
Добавлено: 21 май 2017, 23:34
jet-belan
Oleg1345140 писал(а):Проблема не актуальна, если у кого возникнет, папку с библиотекой нужно добавлять путям копирования а не через ИДЕ ардуины.
спасибо! Как раз была эта проблема, всё исправилось)))
nRF24L01+ пользовательский блока на Си
Добавлено: 29 май 2017, 18:12
СЛОН0077
Олег подключил твой блок
NRF.rar(213Kb). В ПЕРЕДАТЧИКЕ УСТАНОВИЛ ГЕНЕРАТОР С ЧАСТОТОЙ ИМПУЛЬСОВ 1 СЕК,СЧЕТЧИК. С ПРИЕМНИКА ВЫВЕЛ ЗНАЧЕНИЕ НА ДИСПЛЕЙ.В СРЕДНЕМ СВЯЗЬ ДЛИТСЯ СЕКУНД 120 ЗАТЕМ СВЯЗЬ ПРОПАДАЕТ.ЕСЛИ ПЕРЕЗАГРУЗИТЬ ПЕРЕДАТЧИК НИЧЕГО НЕ МЕНЯЕТСЯ.
ЕСЛИ ПЕРЕЗАГРУЗИТЬ ПРИЕМНИК СВЯЗЬ ВОССТАНАВЛИВАЕТСЯ НА СЕКУНД 120.РАЗНИЦЫ РАБОТЫ ИЗ- ЗА РАССТОЯНИЯ МЕЖДУ ПРИЕМНИКОМ И ПЕРЕДАТЧИКАМ НЕ ЗАМЕТИЛ
Юрий.
nRF24L01+ пользовательский блока на Си
Добавлено: 29 май 2017, 20:27
Oleg_UA
СЛОН0077, попробовал на двух модулях:один без усилителя, второй с усилителем и антенной, таймер в блоке (timer_send) установил 1000, на расстояние около метра.
15 минут без единой потери или сбоя.
Единственная проблема это перегрев AMS 1117 питающая модуль с усилителем.
Проверьте питание и наличие кондёра после стабилезатора обязательно.
nRF24L01+ пользовательский блока на Си
Добавлено: 29 май 2017, 23:57
СЛОН0077
Олег,по железу все правильно подключено тестил на нем твои блоки из примера три кнопки три реле 2 недели никаких проблем не было.у меня тоже один модуль с усилителем другой без,только когда подключал sd карту при подключении контакта miso соединение разрывалось, если знаешь причину подскажи.
описываю, как я подключал твои блоки,может в этом проблема:
в пояснении ты пишешь ,что настроил блоки для связи между собой.
я часа два пытался что то передать,принять ничего не получилось,тогда я скопировал NRF MASTER с твоими настройками,и установил его в передатчик и приемник,в новом проекте.
P.S пока писал письмо, приемник произвольно включился и уже работает 6 минут,может все наладилось.
nRF24L01+ пользовательский блока на Си
Добавлено: 30 май 2017, 01:57
Oleg_UA
СЛОН0077, Настройка заключается в выборе идентификаторов в блоке NRF MASTER
//Идентифекаторы (ID) труб для связи с 5-ю. модулями
const uint64_t pipe_1=0xF0F0F0F0**LL;
const uint64_t pipe_2=0xF0F0F0F0**LL;
const uint64_t pipe_3=0xF0F0F0F0**LL;
const uint64_t pipe_4=0xF0F0F0F0**LL;
const uint64_t pipe_5=0xF0F0F0F0**LL;
Отличатся должны только последними значениями, в примере я вписал ID так что все блоки имеют только одним совпадающий ID у каждого свой.
В блоках клиентов нужно в параметре выбрать (N_pipe номер трубы) с которым этот блок работает, для каждого удалённого модуля свой отдельный блок.
Не придумал способ как упростить настройку мастера для общего применения а писать инструкции я совсем не мастак
СЛОН0077 писал(а):тогда я скопировал NRF MASTER с твоими настройками,и установил его в передатчик и приемник,в новом проекте.
Копировать можно если использовать только два модуля, если больше тогда будут сбои с доставкой пакетов (не понятно от кого пришло и кому отправлено).
На SPI можно садить много устройств разница только в том что они не должны работать одновременно для чего и нужны пины: "slave select
" отвечает за выбор ведомого а "serial clock" за тактирование.
Теоретически sd ридер без команды от мастера не должен слать что либо, возможно проблема в подтягивающих резисторах которые садят линию или скорее всего не согласован режим тактирования.
У меня нет опыта работы с SD, поэтому не смогу подсказать точнее.
nRF24L01+ пользовательский блока на Си
Добавлено: 30 май 2017, 18:53
СЛОН0077
Олег,по железу все правильно подключено тестил на нем твои блоки из примера три кнопки три реле 2недели никаких проблем небыло.у меня тоже один модуль с усилителем другтой без,только когда подключал sd карту при подключении контакта miso соединение разрывалось, если знаеш причину подскажи.
описываю, как я подключал твои блоки может в этом проблема:
Добавлено (30.05.2017, 16:03)
---------------------------------------------
Утром выпаял nrf c усилителем,и заменил на простую nrf,все отлично работает,
это уже вторая nrf c усилителем которая вышла из строя,первая отработала несколько минут.
Олег,спасибо за блоки и за объяснения.
Добавлено (30.05.2017, 18:53)
---------------------------------------------
Утром выпаял nrf c усилителем,и заменил на простую nrf,все отлично работает,
это уже вторая nrf c усилителем которая вышла из строя,первая отработала несколько минут.
Олег,спасибо за блоки и за объяснения.
nRF24L01+ пользовательский блока на Си
Добавлено: 30 май 2017, 22:06
Oleg_UA
СЛОН0077, чем смог, тем помог
nRF24L01+ пользовательский блока на Си
Добавлено: 12 июн 2017, 16:28
Слимпер
Возникала у меня задача переделать свою автоматику где канал передачи данных были Радиомодули nRF24L01+.
По ряду причин все старые версии моих блоков, меня же не устроили
Вот посидел, сделал новую версию.
Основана на доработано
библиотеки
Теперь это не два блока, а целый набор, подробное описание в самих блоках.
Из возможностей :
- Возможно слушать до 5 труб одновременно
- Реализована штатная система контроля доставки сообщений (достоверна только когда адреса у вех труб разные)
- Возможно передавать String (30 символов максимум)
- Возможно передавать INT (пока 5 в одном блоке, но можно доделать до 15)
- Возможно передавать Float (7 в одном блоке)
- В одном проекте можно использовать по несколько блоков одно типа и блоки разных типов.
- На стороне получения в блоках есть выход новые данные
- Есть независимый блок Сканер - для проверки работы модуля и поиска свободного канала.
Если надо можно добавить блоки и для других типов данных.
На столе протестировал в сети из 3 штук. Вроде все работает. Если кому интересно на
Яндекс Диск выложил
Новая версия.
Буду признателен за тестирование. Возможно еще не все косяки выловил.
Тем кто использовал прошлые версии блоков необходимо удалить папки содержащие в названии RF24 из папки Flprog\ide\libraries\ (\Flprog\ideV2\libraries\) и/или c:\Users\Имя пользователя\Documents\Arduino\libraries\
Добавлено (08.06.2017, 06:39)
---------------------------------------------
Тут подумал, походу надо делать еще возможность отсылать данные под разными адресами, чтобы функция контроля доставки могла нормально работать.
Суда по описанию библиотеки, должно получится, надо пробовать сделать.
nRF24L01+ пользовательский блока на Си
Добавлено: 12 июн 2017, 16:38
Слимпер
До работал описанную выше версию блоков
Теперь о возможностях:
- Можно передавать данные сразу от имени несколькими разными адресов
- Возможно слушать до 5 труб одновременно
- Реализована штатная система контроля доставки сообщений (достоверна только когда адреса у вех труб разные)
- Возможно задавать частотные каналы
- Возможно задавать коэффициент усиление передатчика
- Возможно передавать String (30 символов максимум)
- Возможно передавать INT ( 5 и/или 15 в одном блоке)
- Возможно передавать Float (7 в одном блоке)
- В одном проекте можно использовать по несколько блоков одно типа и блоки разных типов.
- Есть отдельный блок для ретрансляции данных от контроллера к контроллеру
- На стороне получения в блоках есть выход новые данные
- Реализована система нескольких попыток отправки сообщения, для надежности доставки.
- Есть контроль переполнения приемного буфера.
- Есть независимый блок Сканер - для проверки работы модуля и поиска свободного канала.
Вообщем, блоки позволяют создать полноценную сеть из модулей и при этом получились довольно компактные.
Выложил там же на
Яндекс Диск Новая версия 1.0.
И прикладываю самый простой пример.
nRF24L01+ пользовательский блока на Си
Добавлено: 26 июн 2017, 11:08
jet-belan
дорогие друзья, пока не могу понять как использовать две платы в одном проекте на новых блоках версии 1,0) если кто то имеет возможность, пожалуйста, создайте проект в котором можно передать значение с кнопки (высокий и низкий уровень) и значение с переменного резистора (от 0 до 255) на другую плату посредством nrf24l01+ и там вывести на пины: аналоговый (значение с кнопки) и цифровой с ШИМ (значение с потенциометра))))
а уж от этого я буду плясать дальше))
nRF24L01+ пользовательский блока на Си
Добавлено: 06 июл 2017, 07:53
vlad
Чем обусловлена разность правил написания адреса в блоке " NRF24_Главный" и в блоках отправки?
( если я конечно правильно понял про адресацию в блоках) я понял что адрес в главном блоке: "1adrs", "2adrs","3adrs"."5adrs"."9adrs" соответствует "0","1","2","3","4" адресу в передающем блоке. Почему нельзя одинаково. что в главном то и в передающем? или я все не правильно понял?
nRF24L01+ пользовательский блока на Си
Добавлено: 06 июл 2017, 14:21
Слимпер
vlad писал(а):Чем обусловлена разность правил написания адреса в блоке " NRF24_Главный" и в блоках отправки?( если я конечно правильно понял про адресацию в блоках) я понял что адрес в главном блоке: "1adrs", "2adrs","3adrs"."5adrs"."9adrs" соответствует "0","1","2","3","4" адресу в передающем блоке. Почему нельзя одинаково. что в главном то и в передающем? или я все не правильно понял?
Тут такое дело, фактически, в главном блоке есть два параметра:
Адреса Устройства -тут через запитую задается массив (список) адресов от имени которых и будет совершатся отправка.
Адреса Прослушки - здесь через запитую задается массив (список) адресов устройств от кого требуется принимать сообщения.
А вход address блоков отправки это всего лишь ссылка на положение (порядковый номер) нужного вам адреса из массива заданного в главном блоке в параметре Адреса Устройства.
Это было сделано для оптимизации получаемого кода.
nRF24L01+ пользовательский блока на Си
Добавлено: 06 июл 2017, 20:54
vlad
Слимпер спасибо, вроде разобрался.