rf-nano

koc9k
Offline
Зарегистрирован: 27.03.2021

всем привет, задача такая: я делаю светодиодные костюмы для номера. 1 костюм готов и мигает. теперь задача чтоб несколько костюмов мигали синхронно для чего были приобретены платы rf-nano, 

везде на форумах пишут, что надо просто подключить к питанию и в списке wi-fi появится плата, но у меня такого не происходит.

причём вот эта плата в списке wi-fi появляется

подскажите что можно сделать

sadman41
Offline
Зарегистрирован: 19.10.2016

NRF24L01+ , установленный на Nano-RF, в принципе не может появиться в списке сетей или клиентов WiFi.

rkit
Offline
Зарегистрирован: 23.11.2016

Может быть, это как-то связано с тем фактом, что это две совершенно разные платы, и на первой нету вайфая?

koc9k
Offline
Зарегистрирован: 27.03.2021

А для чего там антена, и как ей пользоваться, где хоть посмотреть чоонибудь по моец теме. У меня много таких как первая и надо чтоб они работали синхронно. Как определить для чего антена на плате? В инете ничего еайти не могу

koc9k
Offline
Зарегистрирован: 27.03.2021

Какие библиотеки можно использовать для их синхронизации

foxmania
Offline
Зарегистрирован: 22.11.2018

Не забывайте, что на одной плате у Вас действительно модуль вай-фай, там где надпись wi-fi, возможно это что-то из серии 8266,
а на другой плате у Вас модуль другого типа, NRF24L01+,
его частота также вроде Frequency: 2.4GHz.,
но он не работает с протоколом вай фая, это другой тип модулей,
если у Вас есть модули как на первом фото,
тогда делайте общение ----- модуль1  NRF24L01+ одна плата .....   на ...... модуль2  NRF24L01+  и общение с модулем вайфай - две платы,

sadman41
Offline
Зарегистрирован: 19.10.2016

Google -> "arduino NRF24L01"

b707
Offline
Зарегистрирован: 26.05.2017

koc9k пишет:
Какие библиотеки можно использовать для их синхронизации

никакие, это абсолютно разные протоколы

koc9k
Offline
Зарегистрирован: 27.03.2021

Мне надо синхронизировать несколько первых между собой. 2ая плата не нужна

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

В #6 все ответили. 

genia1991
Offline
Зарегистрирован: 25.12.2019

вот решение с кодом. Надеюсь вопросов больше не возникнет.

Вы электроникой раньше занимались?

Спрашиваю потому что у людей завтра выступление. а им срочно надо моргалку на костюм сделать. Сходить просто купить модули и думать что завтра уже готовый проэкт будет такого не бывает.

Надо время. надо разбираться. надо читать познавать новое. надо много еще чего.

А все хотят быстро . бесплатно и ачественооо. не бывает такого

https://howtomechatronics.com/tutorials/arduino/how-to-build-an-arduino-wireless-network-with-multiple-nrf24l01-modules/

OK0
Offline
Зарегистрирован: 06.03.2020

Может кому пригодится (не для ТС, по-видимому) rf nano описание платы.

 

genia1991
Offline
Зарегистрирован: 25.12.2019

OK0 пишет:

Может кому пригодится (не для ТС, по-видимому) rf nano описание платы.

 

Вся инфа собрана в 1 архив. Скачал что бы не искать если надо :)

в принципе удобно сделано. Такие платы не юзал сдвоенные . Но они нечем не отличаются от связки нано+ nrf

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

koc9k пишет:
В инете ничего еайти не могу
Прокачивайте умение искать.

https://github.com/keywish/keywish-nano-plus/tree/master/RF-Nano

OK0
Offline
Зарегистрирован: 06.03.2020

Уважаемый ТС задал конкретный вопрос: плата с wi-fi модулем в "списке wi-fi появляется", а без wi-fi  модуля в "списке wi-fi"  не появляется (внимание! вопрос!) "подскажите, что можно сделать"?

А мы его лицемерно на gitHub  посылаем... Негуманно. Я бы, обращаясь  к ТСу (не обращаясь, - написал выше) написал бы честно - "не знаю".

koc9k
Offline
Зарегистрирован: 27.03.2021

 

всем спасибо

действительно если гуглить про вайфай то ничего не находится, а если как подсказал #6 то всё нашлось, буду разбираться

на али было написано нано ардуино + вайфай отсюда и такие запросы

нет выступление не завтра ))) как раз интересно разобраться со всей этой электроникой, а так я ещё нуб

 

Mizar
Offline
Зарегистрирован: 23.12.2018

Делал проект с новогодними шапками, но использовал другой передатчик. Был один главный, он задавал такт, остальные слушали и выполняли туже программу.

А вот с NRF получится ли так? Я так понял, что там один мастер и он с каждым из слейвов должен установить связь, а вот можно ли это сделать одновременно?

А вот WIFI использовать для синхронизации костюмов я бы не стал.

genia1991
Offline
Зарегистрирован: 25.12.2019

Mizar пишет:

А вот WIFI использовать для синхронизации костюмов я бы не стал.

nrf это не вайфай. общая только частота

Mizar
Offline
Зарегистрирован: 23.12.2018

Это понятно. Там в начале фотка с ESP и попытки связать через файфай.

Можно и на ESP костюмы собрать и связать их в одну сеть. Но будет ли оно так синхронно, как хотелось бы?

sadman41
Offline
Зарегистрирован: 19.10.2016

Синхронность - это сущность экспериментальная.

В прошлом году (вроде) один костюмейкер спрашивал почему на обычных nano рассинхрон через 3 секунды наступает. Я проверил и, действительно, обнаружил, что небольшое отклонение в тактовой разных экземпляров МК порождает разброд и шатание в блинке, который запускается синхронно на всех ардуинах.

С ЕСП ещё добавится влияние TCP/IP сети, которая тоже не совсем realtime

genia1991
Offline
Зарегистрирован: 25.12.2019

sadman41 пишет:
Синхронность - это сущность экспериментальная. В прошлом году (вроде) один костюмейкер спрашивал почему на обычных nano рассинхрон через 3 секунды наступает. Я проверил и, действительно, обнаружил, что небольшое отклонение в тактовой разных экземпляров МК порождает разброд и шатание в блинке, который запускается синхронно на всех ардуинах. С ЕСП ещё добавится влияние TCP/IP сети, которая тоже не совсем realtime

У меня тоже есть тогда вопрос.

Использую модуль nrf24 отдельный через радиосвязь подключена серво машинка.

Заметил что когда крутить джостик то серво запаздывает. не сильно может на пол секунды. Но задержка есть (

Скетч с примеров такой же результат дает. Скорость передачи 250 кб. Вот думаю может из за скорости. Может маленькая она?

Mizar
Offline
Зарегистрирован: 23.12.2018

Не бывает двух одинаковых ардуин... при длительном автономном полете в каждом из экземпляров с одной и той же программой, неизбежно будет расхождение.

В своих шапках столкнулся с такой же проблемой. Решение: разбил большие участки эффектов на подпрограммы, ну а мастер выдавал всем номер программы. И то, пришлось вносить корректировку времени между мастерами и слейвами, так как мастер раньше начнет программу на доли секунды.

sadman41
Offline
Зарегистрирован: 19.10.2016

genia1991 пишет:

Скетч с примеров такой же результат дает. Скорость передачи 250 кб. Вот думаю может из за скорости. Может маленькая она?


Сомневаюсь, что дело в скорости.
Этот момент можно прояснить через логгирование. Открыть две консоли рядом и погонять на кнопке. С джоем может отправка идёт с задержкой на сглаживание.

Mizar
Offline
Зарегистрирован: 23.12.2018

genia1991 пишет:

Использую модуль nrf24 отдельный через радиосвязь подключена серво машинка.

А вы можете связать обе ардуины через UART без радиоканала? и проверить на тот же эффект?

nrf стал использоваться недавно, но чувство задержки у меня тоже присутствует.

genia1991
Offline
Зарегистрирован: 25.12.2019

Mizar пишет:

genia1991 пишет:

Использую модуль nrf24 отдельный через радиосвязь подключена серво машинка.

А вы можете связать обе ардуины через UART без радиоканала? и проверить на тот же эффект?

nrf стал использоваться недавно, но чувство задержки у меня тоже присутствует.

добавлю еще что я наблюдал за другими людьми их тесты с той же серво.

Так самое интересное то что и у них эта мини задержка была :)

Возможно даже особенность такая этих датчиков . а еще гуглил задержка в nrf инфы ноль )

Как для пульта на самолет это не критично. но неудобства доставляет и самолет разбить очень даже реально при таком поведении.

 

genia1991
Offline
Зарегистрирован: 25.12.2019

sadman41 пишет:
genia1991 пишет:

Скетч с примеров такой же результат дает. Скорость передачи 250 кб. Вот думаю может из за скорости. Может маленькая она?

С джоем может отправка идёт с задержкой на сглаживание.

а как тогда ее отключить?

 

genia1991
Offline
Зарегистрирован: 25.12.2019

Mizar пишет:

genia1991 пишет:

Использую модуль nrf24 отдельный через радиосвязь подключена серво машинка.

А вы можете связать обе ардуины через UART без радиоканала?

не знаю как это сделать  :)

там же spi . по ему только подключаю

 

sadman41
Offline
Зарегистрирован: 19.10.2016

genia1991 пишет:

sadman41 пишет:
genia1991 пишет:

Скетч с примеров такой же результат дает. Скорость передачи 250 кб. Вот думаю может из за скорости. Может маленькая она?

С джоем может отправка идёт с задержкой на сглаживание.

а как тогда ее отключить?

 


Закомментировать в исходнике, который есть у вас, а не у меня.

genia1991
Offline
Зарегистрирован: 25.12.2019

sadman41 пишет:
genia1991 пишет:

sadman41 пишет:
genia1991 пишет:

Скетч с примеров такой же результат дает. Скорость передачи 250 кб. Вот думаю может из за скорости. Может маленькая она?

С джоем может отправка идёт с задержкой на сглаживание.

а как тогда ее отключить?

 

Закомментировать в исходнике, который есть у вас, а не у меня.

У меня только данные идут от передатчика к приемнику. Только  в 1 направления

Mizar
Offline
Зарегистрирован: 23.12.2018

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

koc9k
Offline
Зарегистрирован: 27.03.2021

пытаюсь сделать пример из интернета для 2х ардуинок со встроенным радиомодулем (как на 1ой картинке), но меня смущает строко отмеченная ????? пример сделан для радиомодуля, подключаемому к 7 и 8 пинам, но у меня то встроенный, не знаю что там писать в скобках, может эту библиотеку вообще нельзя использовать в данном случае?

пример для приёмника:

#include <SPI.h>

#include <nRF24L01.h>
#include <RF24.h>
 
RF24 radio(7, 8);  // CE, CSN ??????
 
const byte address[6] = "00001";
 
void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}
 
void loop() {
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    Serial.println(text);
  }
}
b707
Offline
Зарегистрирован: 26.05.2017

koc9k пишет:

пытаюсь сделать пример из интернета для 2х ардуинок со встроенным радиомодулем (как на 1ой картинке), но меня смущает строко отмеченная ????? пример сделан для радиомодуля, подключаемому к 7 и 8 пинам, но у меня то встроенный, не знаю что там писать в скобках

вообще в ветке об этом говорилось. надо бы отправить вас самому искать... ну да ладно

RF24 radio(9, 10);  // CE, CSN

koc9k
Offline
Зарегистрирован: 27.03.2021

продолжаю дальше пытаться соединить 2 платки

передатчик:

#include <SPI.h> 
#include <nRF24L01.h>  
#include <RF24.h> 
RF24           radio(9, 10);
int            data[2]; 
void setup() {
   Serial.begin(9600);
  radio.begin(); 
  radio.setChannel(5); 
  radio.setDataRate     (RF24_1MBPS); 
  radio.setPALevel      (RF24_PA_HIGH);  
  radio.openWritingPipe (0x1234567890LL);
}
void loop() {
  data[0] = 1;  
  data[1] = 2; 
  radio.write(&data, sizeof(data));
  if ( radio.write(&data, sizeof(data)) ) {
    Serial.println("+");
    //данные приняты приёмником;
  }
  else {
    Serial.print("-");
    //данные не приняты приёмником;
  }
}

при этом на мониторе порта была примерно такая картинка (а теперь просто -------):
-------------------+
------------------+
-------------------+

приёмник:

#include <SPI.h>  
#include <nRF24L01.h>
#include <RF24.h> 

RF24           radio(9, 10); 
int            data[2];
void setup() {
  Serial.begin(9600);
  delay(1000);
  radio.begin();
  radio.setChannel(5);
  radio.setDataRate     (RF24_1MBPS); 
  radio.setPALevel      (RF24_PA_HIGH);
  radio.openReadingPipe (1, 0x1234567890LL);
  radio.startListening  (); 
  //  radio.stopListening   ();
}
void loop() {
  if (radio.available()) {  
    radio.read(&data, sizeof(data)); 
    Serial.print(data[0]);
    Serial.println(data[1]);
  }
}

на мониторе этого порта отображается
00
00
00
00

 

мне хотелось бы передать хоть какие то данные, не  обязательно массив (просто в примере был массив)

 
b707
Offline
Зарегистрирован: 26.05.2017

в передатчике строку 17 уберите, она лишняя. А в конце loop() вставьте delay(500);

koc9k
Offline
Зарегистрирован: 27.03.2021

не помогает, но есть интересная особенность, если коснуться пальцем контакта D12 платы передатчика, то выдает подтверждение  доставки "+" на serial-port

b707
Offline
Зарегистрирован: 26.05.2017

koc9k пишет:

не помогает,

ок, 17 строчку в передатчик верните, и добавьте делей на полсекунды между 17-й и 18й строчкой.

Перед закрывающий строчкой ЛУП - делей на секунду