nRF24L01+ пользовательский блока на Си

Создаем свой блок. Вопросы, помощь знатоков.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

nRF24L01+ пользовательский блока на Си

Сообщение Oleg_UA »

Слимпер писал(а):Но по моему дело было в том, что когда в схемы больше 2 двух устройств, становится не понятно кто из них получил пакет. А значит уже нет смыла это использовать.
Если есть возможность попробуйте с изменённым блоком, у меня нет сейчас этих модулей.
Один блок как передатчик и как приёмник для связи с пятью модулями одновременно.Обмен между модулями идёт по своему идентификатору что гарантирует точность доставки указанному клиенту и вывод результата на выход Tx_OK.
Network тяжела для слабых контролеров а master то что нужно когда ресурсы ограничены  .
Гляньте блок может принцип понравится и поможет в дальнейших улучшениях, надеюсь не умрёт библиотека master.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Oleg_UA 04 апр 2017, 19:13, всего редактировалось 1 раз.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

nRF24L01+ пользовательский блока на Си

Сообщение Oleg_UA »

ARDO писал(а):Может у кого та  есть пример как подключить кнопку  к клиенту и реле к серверу? Несколько дней пробую и не получаетса. в тестовых режимах модули работают хорошо
В примере три кнопки и три реле, распиновка модуля написана для nano
Заодно и протестите изменённый блок
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Oleg_UA 04 апр 2017, 13:48, всего редактировалось 1 раз.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

nRF24L01+ пользовательский блока на Си

Сообщение Oleg_UA »

ashil писал(а):В этом случае прав Слимпер - Но по моему дело было в том, что когда в схемы больше 2 двух      устройств, становится не понятно кто из них получил пакет. А значит  уже нет смыла это использовать.
В блоках от Слимпера передача и приём идут по одному ID поэтому и не понятно, в моих блоках для связи с каждым модулем используется свой ID, в этом случае отправка идёт конкретному модулю а не всем сразу.

Я уже потестил этот способ на 5-ти. модулях и всё работает отлично, но создать блоки для общего использования у меня не получилось, из-за сложности настройки (редактор блоков пока не позволяет такое сделать)  .

Если есть желание поковырять могу выложить свои блоки.
У меня сделано: один основной блок с настройками ID и отдельные блоки для связи с каждым модулем,  в котором через параметр выбирается номер удалённого модуля с которым этот блок связан.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

nRF24L01+ пользовательский блока на Си

Сообщение Oleg_UA »

ashil писал(а):Но желание есть.
Тогда добавлю максимум комментариев и выложу
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

nRF24L01+ пользовательский блока на Си

Сообщение Oleg_UA »

В архиве блоки и четыре примера в которых настроил блоки для связи между собой, в блоках добавил описание.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06 сен 2015, 07:09
Откуда: Курган

nRF24L01+ пользовательский блока на Си

Сообщение Oleg1345140 »

Добрый день, проблема в следующем при попытке скомпилировать проект с любым из данных пользовательских блоков получаю сообщение о том что "неудалось выгрузить библиотеку <<RF24-master>>"  и следующее сообщение "не найдены следующие библиотеки RF24.hnRF24L01.h" данные сообщения выдает  FLProg. Библиотека добавлена.

Добавлено (21.05.2017, 14:22)
---------------------------------------------
Проблема не актуальна, если у кого возникнет, папку с библиотекой нужно добавлять путям копирования а не через ИДЕ ардуины.
Аватара пользователя
Dev1
Майор
Сообщения: 1045
Зарегистрирован: 12 июл 2016, 18:04
Откуда: Гондурас
Поблагодарили: 3 раза

nRF24L01+ пользовательский блока на Си

Сообщение Dev1 »

Oleg1345140 писал(а):Проблема не актуальна, если у кого возникнет, папку с библиотекой нужно добавлять путям копирования а не через ИДЕ ардуины.
В настройках IDE поставьте свой путь. По умолчанию она кидает ...\Documents\Arduino\libraries\
Вообще плохая идея использовать стороннюю программу внутри другой.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x :shok:
jet-belan
Рядовой
Сообщения: 75
Зарегистрирован: 17 апр 2016, 10:09

nRF24L01+ пользовательский блока на Си

Сообщение jet-belan »

Oleg1345140 писал(а):Проблема не актуальна, если у кого возникнет, папку с библиотекой нужно добавлять путям копирования а не через ИДЕ ардуины.
спасибо! Как раз была эта проблема, всё исправилось)))
Аватара пользователя
СЛОН0077
Рядовой
Сообщения: 16
Зарегистрирован: 07 фев 2016, 22:30
Откуда: ГОМЕЛЬ

nRF24L01+ пользовательский блока на Си

Сообщение СЛОН0077 »

Олег подключил твой блок NRF.rar(213Kb). В ПЕРЕДАТЧИКЕ УСТАНОВИЛ ГЕНЕРАТОР С ЧАСТОТОЙ ИМПУЛЬСОВ 1 СЕК,СЧЕТЧИК. С ПРИЕМНИКА ВЫВЕЛ ЗНАЧЕНИЕ НА ДИСПЛЕЙ.В СРЕДНЕМ СВЯЗЬ ДЛИТСЯ СЕКУНД 120 ЗАТЕМ СВЯЗЬ ПРОПАДАЕТ.ЕСЛИ ПЕРЕЗАГРУЗИТЬ ПЕРЕДАТЧИК НИЧЕГО НЕ МЕНЯЕТСЯ.
ЕСЛИ ПЕРЕЗАГРУЗИТЬ ПРИЕМНИК СВЯЗЬ ВОССТАНАВЛИВАЕТСЯ НА СЕКУНД 120.РАЗНИЦЫ РАБОТЫ ИЗ- ЗА РАССТОЯНИЯ МЕЖДУ ПРИЕМНИКОМ И ПЕРЕДАТЧИКАМ НЕ ЗАМЕТИЛ
Юрий.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

nRF24L01+ пользовательский блока на Си

Сообщение Oleg_UA »

СЛОН0077, попробовал на двух модулях:один без усилителя, второй с усилителем и антенной, таймер в блоке (timer_send) установил 1000, на расстояние  около метра.
15 минут без единой потери или сбоя.
Единственная проблема это перегрев AMS 1117 питающая модуль с усилителем.
Проверьте питание и наличие кондёра после стабилезатора обязательно.
Аватара пользователя
СЛОН0077
Рядовой
Сообщения: 16
Зарегистрирован: 07 фев 2016, 22:30
Откуда: ГОМЕЛЬ

nRF24L01+ пользовательский блока на Си

Сообщение СЛОН0077 »

Олег,по железу все правильно подключено тестил на нем твои блоки из примера три кнопки три реле 2 недели никаких проблем не было.у меня тоже один модуль с усилителем  другой без,только когда  подключал sd карту при подключении контакта miso соединение разрывалось, если знаешь причину подскажи.
описываю, как я подключал твои блоки,может в этом проблема:
в пояснении ты пишешь ,что настроил блоки для связи между собой.
я часа два пытался что то передать,принять ничего не получилось,тогда я скопировал NRF MASTER  с твоими настройками,и установил его в передатчик и приемник,в новом проекте.
P.S пока писал письмо, приемник произвольно включился и уже работает 6 минут,может все наладилось.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

nRF24L01+ пользовательский блока на Си

Сообщение 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, поэтому не смогу подсказать точнее.
Аватара пользователя
СЛОН0077
Рядовой
Сообщения: 16
Зарегистрирован: 07 фев 2016, 22:30
Откуда: ГОМЕЛЬ

nRF24L01+ пользовательский блока на Си

Сообщение СЛОН0077 »

Олег,по железу все правильно подключено тестил на нем твои блоки из примера три кнопки три реле 2недели никаких проблем небыло.у меня тоже один модуль с усилителем  другтой без,только когда  подключал sd карту при подключении контакта miso соединение разрывалось, если знаеш причину подскажи.
описываю, как я подключал твои блоки может в этом проблема:

Добавлено (30.05.2017, 16:03)
---------------------------------------------
Утром выпаял nrf c усилителем,и заменил на простую nrf,все отлично работает,
это уже вторая nrf c усилителем которая вышла из строя,первая отработала несколько минут.
Олег,спасибо за блоки и за объяснения.

Добавлено (30.05.2017, 18:53)
---------------------------------------------
Утром выпаял nrf c усилителем,и заменил на простую nrf,все отлично работает,
это уже вторая nrf c усилителем которая вышла из строя,первая отработала несколько минут.
Олег,спасибо за блоки и за объяснения.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

nRF24L01+ пользовательский блока на Си

Сообщение Oleg_UA »

СЛОН0077, чем смог, тем помог
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

Возникала у меня задача переделать свою автоматику где канал передачи данных были Радиомодули 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)
---------------------------------------------
Тут подумал, походу надо делать еще возможность отсылать данные под разными адресами, чтобы функция контроля доставки могла нормально работать.

Суда по описанию библиотеки, должно получится, надо пробовать сделать.
Последний раз редактировалось Слимпер 12 июн 2017, 16:36, всего редактировалось 1 раз.
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

До работал описанную выше версию  блоков

Теперь о возможностях:
- Можно передавать данные сразу от имени несколькими разными адресов
- Возможно слушать до 5 труб одновременно
- Реализована штатная система контроля доставки сообщений (достоверна только когда адреса у вех труб разные)
- Возможно задавать частотные каналы
- Возможно задавать коэффициент усиление передатчика
- Возможно передавать String (30 символов максимум)
- Возможно передавать INT ( 5 и/или 15 в одном блоке)
- Возможно передавать Float (7 в одном блоке)
- В одном проекте можно использовать по несколько блоков одно типа и блоки разных типов.
- Есть отдельный блок для ретрансляции данных от контроллера к контроллеру
- На стороне получения в блоках есть выход новые данные
- Реализована система нескольких попыток отправки сообщения, для надежности доставки.
- Есть контроль переполнения приемного буфера.
- Есть независимый блок Сканер - для проверки работы модуля и поиска свободного канала.

Вообщем, блоки позволяют создать полноценную сеть из модулей и при этом получились довольно компактные.

Выложил там же  на Яндекс Диск  Новая версия 1.0.
И прикладываю самый простой пример.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
jet-belan
Рядовой
Сообщения: 75
Зарегистрирован: 17 апр 2016, 10:09

nRF24L01+ пользовательский блока на Си

Сообщение jet-belan »

дорогие друзья, пока не могу понять как использовать две платы в одном проекте на новых блоках версии 1,0) если кто то имеет возможность, пожалуйста, создайте проект в котором можно передать значение с кнопки (высокий и низкий уровень) и значение с переменного резистора (от 0 до 255) на другую плату посредством nrf24l01+ и там вывести на пины: аналоговый (значение с кнопки) и цифровой с ШИМ (значение с потенциометра))))

а уж  от этого я буду плясать дальше))
vlad
Лейтенант
Сообщения: 399
Зарегистрирован: 11 сен 2015, 11:50
Откуда: Казань

nRF24L01+ пользовательский блока на Си

Сообщение vlad »

Чем обусловлена разность правил написания адреса в блоке " NRF24_Главный" и в блоках отправки?
( если я конечно правильно понял про адресацию в блоках) я понял что адрес в главном блоке: "1adrs", "2adrs","3adrs"."5adrs"."9adrs" соответствует "0","1","2","3","4" адресу в передающем блоке. Почему нельзя одинаково. что в главном то и в передающем? или я все не правильно понял?
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06 сен 2015, 16:56
Откуда: Новосибирск

nRF24L01+ пользовательский блока на Си

Сообщение Слимпер »

vlad писал(а):Чем обусловлена разность правил написания адреса в блоке " NRF24_Главный" и в блоках отправки?( если я конечно правильно понял про адресацию в блоках) я понял что адрес в главном блоке: "1adrs", "2adrs","3adrs"."5adrs"."9adrs" соответствует "0","1","2","3","4" адресу в передающем блоке. Почему нельзя одинаково. что в главном то и в передающем? или я все не правильно понял?
Тут такое дело, фактически,  в главном блоке есть два параметра:
Адреса Устройства -тут через запитую задается массив (список) адресов от имени которых и будет совершатся отправка.
Адреса Прослушки - здесь  через запитую задается массив (список) адресов устройств от кого требуется принимать сообщения.

А вход address блоков отправки это всего лишь ссылка на положение (порядковый номер) нужного вам адреса из массива заданного в главном блоке в параметре Адреса Устройства.

Это было сделано для оптимизации получаемого кода.
vlad
Лейтенант
Сообщения: 399
Зарегистрирован: 11 сен 2015, 11:50
Откуда: Казань

nRF24L01+ пользовательский блока на Си

Сообщение vlad »

Слимпер спасибо, вроде разобрался.
Ответить

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

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

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