Протокол связи для радио модулей HC-12
Протокол связи для радио модулей HC-12
Я их и взял. Но там только трансмитер переделан. Другие те же. Попробовал ардуинки проводами соединить. Но проблема осталась, трансмиттер перестает передавать после второго ресета ресивера. Значит модули не причем.
Протокол связи для радио модулей HC-12
Приеду домой проверю.CraCk писал(а): Но проблема осталась, трансмиттер перестает передавать после второго ресета ресивера.
Попробуйте вставить блок приемника после блока передатчика ,можно без настроек, просто чтобы цикл удлинить.
Добавлено (07.03.2017, 00:41)
---------------------------------------------
Очень странный глюк, ресет на приемнике вешает наглухо передатчик. Похоже что-то с таймингами не айс, будем разбираться.
Но если добавить блок приёмника, всё работает.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Протокол связи для радио модулей HC-12
golowa70 писал(а):Очень странный глюк, ресет на приемнике вешает наглухо передатчик
Вот поэтому я и отказался от виснущих nRF24L01, RFM73, постоянно выгорающих nRF24L01+PA+LNA, и всяких подобных китайских железяк на STM с кривыми прошивками.CraCk писал(а):Во время работы если ресетнуть приемник второй раз. После первого ресета соединение восстанавливается. Тогда невозможно восстановить связь.
Протокол связи для радио модулей HC-12
Здесь проблема скорее с библиотекой, потому как при проводном соединении такой же глюк. Нужно разбираться, описание только на английском, поэтому могу что-то недопонять)))Boroda писал(а):Вот поэтому я и отказался от виснущих nRF24L01, RFM73, постоянно выгорающих nRF24L01+PA+LNA, и всяких подобных китайских железяк на STM с кривыми прошивками
А вообще как готовое решение PJON выглядит заманчиво.
Протокол связи для радио модулей HC-12
Проверил так работает хорошо. Ресетил приемник две минуты. Всегда связь восстанавливалась.golowa70 писал(а):Попробуйте вставить блок приемника после блока передатчика ,можно без настроек, просто чтобы цикл удлинить.
Может сама библиотека PJON рассчитана на то что в коде программы должен присуствовать приемник и передатчик. Все таки это имитация полноценной двусторонней связи.golowa70 писал(а):Похоже что-то с таймингами не айс, будем разбираться.
Пока что проблем с модулем не замечал при тестирование PJON. Как работает с проводами так и по радио. За 3$ хорошего по дальности ничего не нашел. А заказывать на слепо, без каких нибудь обзоров, уже устал. целый пакет насобирал nRF, esp, fs1000a, радиобрелков половина из них убитые. Наверное и я рукожопый, и так их жгу.Boroda писал(а):и всяких подобных китайских железяк на STM с кривыми прошивками
И вообще брал модули для Модбаса. Подключил и пользуйся. Но как оказалось не все так просто.
Протокол связи для радио модулей HC-12
Как по мне, то здесь имеет место быть очень хитрый глюк, не поддающийся логическому обьяснению. Передача данных прекращается исключительно после ресета на стороне приемника, не потеря связи, не ошибка в данных, а именно ресет. Причём если ресетнуть при отключеном TX на приемнике, то передатчик продолжает работать нормально, только без подтверждения.CraCk писал(а):Может сама библиотека PJON рассчитана на то что в коде программы должен присуствовать приемник и передатчик. Все таки это имитация полноценной двусторонней связи
Добавлено (08.03.2017, 05:14)
---------------------------------------------
В примерах и в описании не упоминается, что нужно обязательно использовать в одном цикле и функцию приёма и функцию передачи.
Протокол связи для радио модулей HC-12
Привет, ребята, меня зовут Джованни, и я создатель PJON. Я прочитал ваше обсуждение через Google Translate, и благодаря вашим тестам действительно обнаружил неприятный баг в Arduino Toolchain. Я очень рад, что вы пользуетесь PJON, и надеюсь, что он поможет вам в ваших
экспериментах, так как, с моей стороны, я очень уважаю Российскую инженерную школу и ваш подход к решению проблем!
TX:
RX:
В общем, не используя библиотеку PJON, я получил те же результаты, что описываете вы: в этом коде ресивер получает функцию begin() и затем циклично мигает, если же я перезагружаю:
- Часто ресивер зависает с включенным индикатором (LED ON) - кажется, это происходит перед установкой (setup)
- Часто ресивер зависает с выключенным индикатором (LED OFF) - а это, кажется, происходит сразу после установки (setup)
- Я заметил, что для того, чтобы ресивер снова замигал, мне приходится одновременно перезагрузить и ресивер, и трансмиттер
- Осциллограф показывает, что трансмиттер передает данные - поэтому, судя по всему, он не зависает
- Тот же баг происходит и с использованием USB порта, подключенного к ресиверу и трансмиттеру, и без (то есть с другим источником питания)
Перегрузка буфера Serial? (Serial buffer overflow?) Или что-то связанное с загрузчиком (boot loader) или с самим процессом передачи входящих данных во время загрузки после перезагрузки (serial incoming Data in the process of boot after reset)? Я уже сообщил об этой проблеме Arduino: https://github.com/arduino/Arduino/issues/6050
После тестирования, я пришел к выводу, что Arduino Duemilanove работает нормально, не зависает, а у Arduino Mega как раз возникают эти проблемы. Скоро планирую протестировать Arduino Leonardo и Uno.
Еще раз спасибо, что обнаружили этот баг, и помогли разобраться в этой проблеме!
экспериментах, так как, с моей стороны, я очень уважаю Российскую инженерную школу и ваш подход к решению проблем!
TX:
Код: Выделить всё
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("I will now freeze you!");
};
Код: Выделить всё
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, LOW); // Initialize LED 13 to be off
Serial.begin(9600);
};
void loop() {
digitalWrite(13, HIGH); // Initialize LED 13 to be off
delay(10);
digitalWrite(13, LOW); // Initialize LED 13 to be off
delay(30);
};
- Часто ресивер зависает с включенным индикатором (LED ON) - кажется, это происходит перед установкой (setup)
- Часто ресивер зависает с выключенным индикатором (LED OFF) - а это, кажется, происходит сразу после установки (setup)
- Я заметил, что для того, чтобы ресивер снова замигал, мне приходится одновременно перезагрузить и ресивер, и трансмиттер
- Осциллограф показывает, что трансмиттер передает данные - поэтому, судя по всему, он не зависает
- Тот же баг происходит и с использованием USB порта, подключенного к ресиверу и трансмиттеру, и без (то есть с другим источником питания)
Перегрузка буфера Serial? (Serial buffer overflow?) Или что-то связанное с загрузчиком (boot loader) или с самим процессом передачи входящих данных во время загрузки после перезагрузки (serial incoming Data in the process of boot after reset)? Я уже сообщил об этой проблеме Arduino: https://github.com/arduino/Arduino/issues/6050
После тестирования, я пришел к выводу, что Arduino Duemilanove работает нормально, не зависает, а у Arduino Mega как раз возникают эти проблемы. Скоро планирую протестировать Arduino Leonardo и Uno.
Еще раз спасибо, что обнаружили этот баг, и помогли разобраться в этой проблеме!
Последний раз редактировалось gioblu 08 мар 2017, 12:29, всего редактировалось 1 раз.
Протокол связи для радио модулей HC-12
Ооо, а вот и автор)))gioblu писал(а):Привет, ребята, меня зовут Джованни, и я создатель PJON. Я прочитал ваше обсуждение через Google Translate, и благодаря вашим тестам действительно обнаружил неприятный баг в Arduino Toolchain
А вот слона то я и не заметил........gioblu писал(а):В общем, не используя библиотеку PJON, я получил те же результаты, что описываете вы: в этом коде ресивер получает функцию begin() и затем циклично мигает, если же я перезагружаю:
- Часто ресивер зависает с включенным индикатором (LED ON) - кажется, это происходит перед установкой (setup)
- Часто ресивер зависает с выключенным индикатором (LED OFF) - а это, кажется, происходит сразу после установки (setup)
- Я заметил, что для того, чтобы ресивер снова замигал, мне приходится одновременно перезагрузить и ресивер, и трансмиттер
Добавлено (08.03.2017, 12:57)
---------------------------------------------
Нужно протестировать на более старой версии Arduino IDE.
Добавлено (10.03.2017, 16:33)
---------------------------------------------
Я проверил на двух UNO, никакого зависания не было,после перезагрузки всё продолжает работать.gioblu писал(а):В общем, не используя библиотеку PJON, я получил те же результаты, что описываете вы:
Странно, я подключил логический анализатор saleae logic к RX TX , и вижу что после перезагрузки приемника именно передатчик перестает работать.gioblu писал(а):Осциллограф показывает, что трансмиттер передает данные - поэтому, судя по всему, он не зависает
Последний раз редактировалось golowa70 10 мар 2017, 17:17, всего редактировалось 1 раз.
Протокол связи для радио модулей HC-12
Пакет данных на скрине. После перезагрузки приемника там пусто
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось golowa70 10 мар 2017, 17:21, всего редактировалось 1 раз.
Протокол связи для радио модулей HC-12
Цитата golowa70 () 200?'200px':''+(this.scrollHeight+5)+'px');">Нужно протестировать на более старой версии Arduino IDE.Не компилируется.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Протокол связи для радио модулей HC-12
Не, проблема не в IDE, проблема в библиотеке.CraCk писал(а):Не компилируется
Кстати, как с стабильностью? Есть ещё баги помимо известного? Сколько устройств вы используете?
Интересно проверить как будет работать сеть из хотя-бы трёх - четырёх устройств.
Протокол связи для радио модулей HC-12
Ciao golowa, thank you for reporting the problem of inclusion of Ethernet.h.
My suggestion is in any case to update, to the new IDE version. To avoid this sort of problems, I am discussing with the creator of the EthernetTCP strategy, Fred Larsen, if to avoid the inclusion and leave to the user to do it before PJON.h
This could be a fix included in the next release.
Here you can find a link to the compatibility table:
https://github.com/gioblu/PJON/wiki/Interfacing
To avoid the error you get, look at the configuration page:
https://github.com/gioblu....tion.md
As you can see defining PJON_INCLUDE_TS before PJON.h let you include only the ThroughSerial strategy and avoid this compilation error.
Let me know how goes!
My suggestion is in any case to update, to the new IDE version. To avoid this sort of problems, I am discussing with the creator of the EthernetTCP strategy, Fred Larsen, if to avoid the inclusion and leave to the user to do it before PJON.h
This could be a fix included in the next release.
Here you can find a link to the compatibility table:
https://github.com/gioblu/PJON/wiki/Interfacing
To avoid the error you get, look at the configuration page:
https://github.com/gioblu....tion.md
As you can see defining PJON_INCLUDE_TS before PJON.h let you include only the ThroughSerial strategy and avoid this compilation error.
Let me know how goes!
Протокол связи для радио модулей HC-12
Цитата golowa70 () 200?'200px':''+(this.scrollHeight+5)+'px');">Есть ещё баги помимо известного? Еще заметил проблему. Если на один из входов трансмиттера поставить счетчик, и не ограничить счет счетчика до 255. То при достижение значение 255 происходит сброс счета до 0 и начинает счет с начала.
Цитата golowa70 () 200?'200px':''+(this.scrollHeight+5)+'px');">Сколько устройств вы используете? 1. Мега моргает пинами 13 на Нано и ПроМини.
2. Нано отправляет значение анал. входа и считает секунды на Мегу.
3. ПроМини считает секунды на Мегу.
При работе с тремя устройствами начались проблемы с приемом Мегой от двух других устройств. Может принимать только от одного устройства, но отправляет моргание на два устройства. Может я неправильно реализовал прием данных на Меге? Получается что реализацию отправки сделать легко. Создаем несколько блоков трансмитер и на каждом задаем адрес приемника. А от с приемом проблема, имеем только четыре выхода и адрес отправителя на ресивере. Может создать блок как у Слимпера для Nrf24? Чтобы можно было выставлять адрес на блоке от которого мы хотим принимать данные.
Цитата golowa70 () 200?'200px':''+(this.scrollHeight+5)+'px');">Сколько устройств вы используете? 1. Мега моргает пинами 13 на Нано и ПроМини.
2. Нано отправляет значение анал. входа и считает секунды на Мегу.
3. ПроМини считает секунды на Мегу.
При работе с тремя устройствами начались проблемы с приемом Мегой от двух других устройств. Может принимать только от одного устройства, но отправляет моргание на два устройства. Может я неправильно реализовал прием данных на Меге? Получается что реализацию отправки сделать легко. Создаем несколько блоков трансмитер и на каждом задаем адрес приемника. А от с приемом проблема, имеем только четыре выхода и адрес отправителя на ресивере. Может создать блок как у Слимпера для Nrf24? Чтобы можно было выставлять адрес на блоке от которого мы хотим принимать данные.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось CraCk 12 мар 2017, 19:13, всего редактировалось 1 раз.
Протокол связи для радио модулей HC-12
Так и должно быть, байт имеет размер от 0 до 255.CraCk писал(а):Еще заметил проблему. Если на один из входов трансмиттера поставить счетчик, и не ограничить счет счетчика до 255. То при достижение значение 255 происходит сброс счета до 0 и начинает счет с начала.
Лучше использовать один блок передачи и задавать ID приёмника перед передачей данных..CraCk писал(а):Получается что реализацию отправки сделать легко. Создаем несколько блоков трансмитер и на каждом задаем адрес приемника.
Можно для приемника создать переменные для каждого передающего устройства и мониторинг адрес отправителя. В зависимости от кого пришли данные в такую переменную и пишем.CraCk писал(а):А от с приемом проблема, имеем только четыре выхода и адрес отправителя на ресивере.
Попробуем, у меня пока не на чем тестировать.CraCk писал(а):Может создать блок как у Слимпера для Nrf24? Чтобы можно было выставлять адрес на блоке от которого мы хотим принимать данные.
Протокол связи для радио модулей HC-12
Или так
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Протокол связи для радио модулей HC-12
Но почему счетчик сбрасывает? Он ни как не привязан к блоку трансмитера.golowa70 писал(а):Так и должно быть, байт имеет размер от 0 до 255
Какие могут быть проблемы? Если это вредно, тогда может нет смысла доделывать приемник.golowa70 писал(а):Лучше использовать один блок передачи и задавать ID приёмника перед передачей данных..
Тогда придется много логики строить в FBD. Если будет много модулей значит будет и много памяти занимать. А так в С коде все таки экономичней получится.golowa70 писал(а):Можно для приемника создать переменные для каждого передающего устройства и мониторинг адрес отправителя.
Протокол связи для радио модулей HC-12
Так вы удлиняете цикл программы без особой нужды.CraCk писал(а):Какие могут быть проблемы? Если это вредно, тогда может нет смысла доделывать приемник.
не многоCraCk писал(а):Тогда придется много логики строить в FBD
Может и экономичнее ,но не думаю что существенно.CraCk писал(а):Если будет много модулей значит будет и много памяти занимать. А так в С коде все таки экономичней получится.
Через пару недель модули придут , тогда потестирую .
Приемник модифицирую
Последний раз редактировалось golowa70 12 мар 2017, 23:42, всего редактировалось 1 раз.
Протокол связи для радио модулей HC-12
Залил. Вроде работает. Начал ресетить нано и про мини. Соединение восстанавливается. Потом реши ресетнуть Мегу на 2 сек. тоже восстановилось соединение. Потом Мегу ресетнул на 10 сек. потерял прием от Нано хотя передача на Нано продолжалась. Помог только ресет Наны. Иногда при ресете Меги, пропадает и про мини а Нано продолжает работать.golowa70 писал(а):ли такПрикрепления: mega_reciver_PJ.rar(190Kb)
Добавлено (13.03.2017, 00:20)
---------------------------------------------
Что то явно нелады с приемником
Протокол связи для радио модулей HC-12
Сделайте ресет на меге при отключеном RX на Нано и Промини, и посмотрите, будет ли восстанавливаться приём на мегеCraCk писал(а):Потом Мегу ресетнул на 10 сек. потерял прием от Нано
Последний раз редактировалось golowa70 13 мар 2017, 00:32, всего редактировалось 1 раз.
Протокол связи для радио модулей HC-12
Еще заметил если систему оставить в подвисшом состояние. То за некоторое время 5мин. прием на Меге восстанавливаеться.
Немного лучше. Связь восстанавливается, но обновление данных из двух модулей не обновляется синхронно. Происходит задержка как бы подтормажывает.golowa70 писал(а):Сделайте ресет на меге при отключеном RX на Нано и Промини, и посмотрите, будет ли восстанавливаться приём на меге
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей