Радиоуправляемый катер из потолочки

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Я думаю да, у них разное время "высыхания".
Для наших целей все равно.
Кстати неплохо клеит обувь.
Сын на лоджии приклеил к бетону обшивку.
Правда там где он слегка вылез наружу то побурел как обычный макрофлекс.
Можно почитать документацию, я особой разницы свойств не обнаружил

satelit 2
Offline
Зарегистрирован: 04.12.2016

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

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

jeka_tm пишет:
отличие этой схемы что нет инвертирования, и порог срабатывания 0,5-1В, а не 2/3 питания. а это большой плюс. кроме 555 таймера только резистор на выходе таймера нужен 20ом.

Вопрос по этому драйверу, является ли притяжка к минусу (закрывающий резистор 10k от затвора к истоку) одним из трёх:

- необязательной;

- изофаллически (без разницы);

- нежелательной (искажающей диаграммы закрывания транзистора).

Почему спрашиваю, потому что у меня этот резистор предусмотрен. Если он рили не нужен, то надо снять прежде чем заливать всё слоем гудрона.

Такой маленький закрывающий резистор (10k вместо 100k) был поставлен из-за невнятного поведения прошлой модели, иногда крутились двигатели при отклченном питании (выключатель питания только на логику, силовая проводка прямо так и коммутируется только транзисторами).

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Да есть. Без сигнала подтягивает, так как работает как триггер. А вот вход можно подтянуть к минусу, так как напряжение переключения 0,5-1В

+ На всякий случай проверил по даташиту: 0,3-1В

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Всё-ж таки не понимаю, убрать можно или нужно?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

можно

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

jeka_tm, спасибо. Освою blender и начну клепать видос про моделлинг из ПВХ. Делаю танкер. (1.3 м в длину где-то)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Из листов ПВХ? А где достаешь? У рекламщиков?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Ну да. Проблема в основном тонкий надыбать, 2 мм, 3мм, но там и надо крапальца. 10х15 см может быть на всякие мелкие финтифлюшки типа выключателя (у меня выключатель из геркона с магнитиком от отклоняющей системы CD-ROMа). А основной на несущие детали уходит по полтора метра, ради такой пьянки и купить можно. У китайцев лист 5х1.5мх5мм стоит около 2000 руб.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Мой проект на финишной прямой, так что спрошу тут пока ещё не заклеен в герметичный контейнер "модуль бортового компуктора", т. к. непонятка. Всмысле оно работает, но непонятка. Может идеи озвучат да я предприму что-нибудь.

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

const uint64_t pipes[2] = { 0xFBFFFFFF00LL, 0xFBFFFFFF01LL };
byte mtr_max=16;         // right engine time calibration
byte mtr_count=1;        // current cycle phase
bool bFwd=0;
unsigned long lastmtr=millis(),
              lastcmd=millis();
RF24 radio(9,10);
byte rfdata;

/* Device protocol
7   reserved
6                     ACKV
5               L0 D0
4            D1    D0  (D stands for LED2)
3         L1    L0
2     L S
1   R   S
0  F    S
*/

void setup(void){
  DDRD|=B11110000;  //mtr=d5,d6
  PORTD&=B00001111; //led=d7,d4 (d4 unused)
  pinMode(A6,INPUT);
  radio.begin();
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.setChannel(1);
  radio.setAutoAck(1);
  radio.setRetries(15,15);
  radio.setPayloadSize(1);
  radio.openReadingPipe(1,pipes[0]);
  radio.openWritingPipe(pipes[1]);
  radio.startListening();
  PORTD|=B10000000;
  delay(50);
  PORTD&=B01111111;
  mtr_max=EEPROM.read(1);
  if(mtr_max<1) mtr_max=1;
  if(mtr_max>20) mtr_max=20;
}

void loop(void){
  bool done=0;
  byte i=0;
  int volt=0;
  if(bFwd && millis()-lastmtr>=50){            // compensated move forward
    mtr_count++;
    if(mtr_count>20) mtr_count=1;
    if(mtr_count>mtr_max) PORTD&=B11011111;
     else PORTD|=B01100000;
    lastmtr=millis();
  }
  if(millis()-lastcmd>=500)
    if(radio.available()){
    while(!done) done=radio.read(&rfdata,1);
    lastcmd=millis();
    if(rfdata==1){                  // fwd
      PORTD|=B01100000;
      bFwd=1;
    }
    if(rfdata==2){                  // right
      PORTD&=B10111111; //d6l
      PORTD|=B00100000; //d5h
      bFwd=0;
    }
    if(rfdata==4){                  // left
      PORTD&=B11011111; //d5l
      PORTD|=B01000000; //d6h
      bFwd=0;
    }
    if(rfdata==7){                  // stop
      PORTD&=B10011111;
      bFwd=0;
    }
    if(rfdata&16){  // searchlight
//      if(!(rfdata&32)) PORTD|=B00010000; else PORTD&=B11101111;
      if(!(rfdata&32)) mtr_max++; else mtr_max--;                            // temporary: M2 calibration
      if(mtr_max<1) mtr_max=1;
      if(mtr_max>20) mtr_max=20;
      EEPROM.write(1,mtr_max);
      PORTD|=B10000000;
      delay(50);
      PORTD&=B01111111;
      delay(500);
      rfdata=0;
    }
    if(rfdata&8)  // small lights
      if(!(rfdata&32)) PORTD|=B10000000; else PORTD&=B01111111;
    if(rfdata==64){
      PORTD&=B00001111; //unload
      bFwd=0;
      delay(500);
      volt=analogRead(A6);
      volt*=20;
      volt/=30;
      volt>>=1;
      rfdata=(byte)volt;
      radio.stopListening();
      for(i=0;i<5;i++) radio.write(&rfdata,1);
      delay(10);
      radio.startListening();
    }
  }
  if(millis()-lastcmd>=3000){
    PORTD&=B10011111;
    bFwd=0;
  }
}

Как мы видим из скетча, у одного из двигателей (ввиду разброса характеристик оказавшегося более резвым на тех же вольтах) предусмотрена возможность питания по кускам, 20 кадров по 50 мс, из этих 20 может быть пропущено до 19 (до 95% времени), сколько пропускать - может быть сохранено в EEPROM, с пульта это выглядит как вторая кнопка освещения (было 2 канала светодиодов, из них пока второй не нужен и приспособлен под эту калибровку). В конце обработчика кнопки промигиваются светодиоды (PD7), подтверждая нажатие, затем делей т. к. была мысль что вдруг повторится.

Ситуация: оно промыргивает светодиодами 2 раза, то есть я вижу PD7 high, пауза 50 мс, low, 500 мс и думаю что mtr_max уменьшилось/увеличилось на 1, но тут же после этих 500 мс мигает ещё раз: high, 50 пауза, low, что заставляет предположить что прошло ещё одно изменение mtr_max. Писалось ессно по ISP, всё уже вклеено в коробочку, зацепиться негде, провода SPI заняты передатчиком - короче если захочется поснифать, снять дамп - только по новой писать в передатор новые байты, менять протокол - в качку, лень. Да и может я что-то банальное упускаю. Ну не знаю. rfdata обнуляю в этом обработчике, чтобы заново не проработало. Хз. Есть идеи?

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

UPD. Тока что осенило что передатор то сделан по принципу floppy дисковода, всмысле повторять раз 5 перед тем как думать что не получилось. Короче, если передач одинаковой инфы много ("много" - это значит больше одной), может оно остаться в буфере и по новой отработать как настоящая посылка? Флушить буфер приёмника это radio.flush_rx()? Может оно помочь?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Voodoo Doll пишет:
Флушить буфер приёмника это radio.flush_rx()?

На случай если у all будет эта проблема по RF24. Итак, flush_*() - приватные методы, и вытаскивание их наружу не помогает. Не используйте многократные посылки под команду, предназначенную под однократное действие. Или предусматривайте ограничение по метке времени millis(), как это сделано в примерах IRRemote:

unsigned long timestamp=millis();
//...
if(millis()-timestamp>=INTERVAL){
  if(cmd){
    execute();
  }
  timestamp=millis();
}

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Voodoo Doll пишет:

Мой проект на финишной прямой...


Потом выкинуть всё, нажитое непосильным трудом и переделать под стандартный FLYSKY-I6 переточив его на 10 (14) каналов и поставить контроллер APM-2.6 (2.8), GPS M8N, телеметрию на 430Mhz завязав её на смартфон с программой Tower и будут полное рыбацкое счастье (все водоемы и все точки прикормки в базе)

ronixx
ronixx аватар
Offline
Зарегистрирован: 20.12.2018

jeka_tm пишет:

сегодня пришел пульт

протестил с модулями nRF24L01 и ардуиной на меге8 и внутреннем генераторе 8мгц

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

если нажать на правую 2 раза пищит постоянно. а что не хравится хз


Тоже заказал себе такой пульт.
Тоже хочу себе сделать радиоуправление на ардуино нано. Подскажите, вы мозги из пульта выбросили и поставили свою ардуино и модуль с антенной ? Или мозги пульта отставили и подключили к приемнику ардуино и нрф.? Очень интересен вопрос на второй вопрос, если да то как это реализовать

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Пульт остается как есть. ничего переделывать не надо

А уже приемник ардуино и нрф

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

jeka_tm пишет:

Пульт остается как есть. ничего переделывать не надо

А уже приемник ардуино и нрф

Я в проектах декодер PPM для ардуино выложил, можно использовать аппаратуру по этому стандарту

ronixx
ronixx аватар
Offline
Зарегистрирован: 20.12.2018

ua6em пишет:

jeka_tm пишет:

Пульт остается как есть. ничего переделывать не надо

А уже приемник ардуино и нрф

Я в проектах декодер PPM для ардуино выложил, можно использовать аппаратуру по этому стандарту


Есть точная инструкция , пошагово, как пульт на 2.4 гц подключить к нрф ?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

На первой странице есть ссылки, но если вы вообще ничего не знаете и не понимаете, начните с азов

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

jeka_tm пишет:

На первой странице есть ссылки, но если вы вообще ничего не знаете и не понимаете, начните с азов

А вот неплохой пульт и приемник (как проект)

antonzol
Offline
Зарегистрирован: 09.01.2017

jeka_tm, не могли бы вы выложить еще раз разкройку?

 

jeka_tm пишет:

Немного доработал модель в плане выкройки. теперь должно быть понятнее теоретически))

Катер_v3.1_450х173х85

Катер_v3.1_590х227х112

Катер_v3.1_750х288х142

 

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

https://yadi.sk/d/b01VS-kNfxWcxw

Там все выкройки

antonzol
Offline
Зарегистрирован: 09.01.2017

Благодарю!

Openair
Openair аватар
Offline
Зарегистрирован: 06.03.2019

А в каком пакете сапр делались чертежи и печатная плата?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Openair пишет:

А в каком пакете сапр делались чертежи и печатная плата?

Pepakura, Diptrace

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Есть просто пластмасса, есть с коллекторным мотором, есть с безколлекторным.
Разные диаметра выходного сопла.
Самое то для прикормочного кораблика.

https://www.aliexpress.com/item/32977591857.html

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

trembo пишет:

Есть просто пластмасса, есть с коллекторным мотором, есть с безколлекторным.
Разные диаметра выходного сопла.
Самое то для прикормочного кораблика.

https://www.aliexpress.com/item/32977591857.html

 


Спасибо. Посмотрю, мотор есть, нужно просто пластмассу. А то новую версию продумываю периодически, и водомёт наверно то что нужно

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Есть пульт от WLTOYS  хотелось бы подружить с приемником на nrf24.Нашел инфу в этом сообщении http://arduino.ru/forum/proekty/radioupravlyaemyi-kater-iz-potolochki?page=17#comment-227300 ,но по ссылке либы нет v202.Подскажите где качнуть и есть ли подводные камни ?

gppsoft
Offline
Зарегистрирован: 13.10.2014

fly245 пишет:

Есть пульт от WLTOYS  хотелось бы подружить с приемником на nrf24.Нашел инфу в этом сообщении http://arduino.ru/forum/proekty/radioupravlyaemyi-kater-iz-potolochki?page=17#comment-227300 ,но по ссылке либы нет v202.Подскажите где качнуть и есть ли подводные камни ?

Вот тут скачайте. У меня заработало, но как-то странно. В какой-то момент прирывается свзяь и не восстанавливается.. Или восстанавливается рывками. Не могу решить проблему. Попробуйте, может у вас все будет ОК. Я уже и антену на передаитчике заменил. Сделал обычный диполь. Но все равно проблемы.. Биндится через раз и работает нестабильно. 

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Благодарю,побежал качать..Надеюсь словит мой пульт ..

gppsoft
Offline
Зарегистрирован: 13.10.2014

fly245 пишет:

Благодарю,побежал качать..Надеюсь словит мой пульт ..


Отпишитесь если заработает. Я так и не разобрался почему у меня работает нестабильно. Я уже и питание отдельное стабильное для NRF заводил даже.

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

gppsoft пишет:
fly245 пишет:

Благодарю,побежал качать..Надеюсь словит мой пульт ..

Отпишитесь если заработает. Я так и не разобрался почему у меня работает нестабильно. Я уже и питание отдельное стабильное для NRF заводил даже.

А кондеры на питание ставили у модуля nrf?

gppsoft
Offline
Зарегистрирован: 13.10.2014

Да. 10 и 1 микрофарад.

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Постараюсь в бижайшие парочку дней собрать приемник и протестить..

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

А может просто связано с тем что разные радиомодули стоят? Эта библиотека делалась под пульт в котором nrf стоит, а вообще китайцы 5-6 видов радиомодулей используют в своих пультах

ankar
Offline
Зарегистрирован: 09.04.2017

Здравствуйте Евгений. Если у Вас есть четеж на катамаран, то если можете , Выложите на гугл. Бо в нашей 404 стране Яндекс под запретом. Заранее спасибо.

Из эпоксидки получается слишком тяжелый. 3 слоя 200 + шпаклевка. В общем под 1,5кг при длине 500Х270Х120

По поводу эхолота. Там мой ровестник на трубе выложил эхолот на китайском партрониксе. Работает четко.Сейчас перевожу его на радио. Если получится выложу.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Привет. Кажется был. Дома буду скину, насчёт веса при мощном моторе мне кажется не проблема. Блокировка должна обходиться анонимайзером. А вот насчёт эхолота интересно, скиньте ссылку

kolyn
Offline
Зарегистрирован: 18.01.2019

ankar пишет:

 Выложите на гугл. Бо в нашей 404 стране Яндекс под запретом.

А прокси вам Ваша 404 голова пользоваться запрещает?

ankar
Offline
Зарегистрирован: 09.04.2017

ай какие мы вумные. А если мой комп Ваш ровесник? это одно. А второе, VPN, увы, у моего провайдера блокируется.

Насчет эхолота https://www.youtube.com/watch?v=ADszy6QBJTo Это его первая версия. Зайди на его канал, там версия с GPS.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

https://drive.google.com/open?id=10b9i9sQxOFqQ0xhlIPF7RbzOCpEkQUXl

Размеры 330*211*62. Внешний вид кажется уже выкладывал. Там только низ. Верх по месту, смотря какой хочешь

Вот STL если что в Pepakura.Designer нужный размер сделаешь если что

https://drive.google.com/open?id=1pcB59_clrAz6XKm99KbKyVz6d5ZAI9j6

А по поводу эхолота заказал себе пару излучатей, хочу попробовать собрать

ankar
Offline
Зарегистрирован: 09.04.2017

Благодарю. 

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

//Приемник
#include <SPI.h>                                               // Подключаем библиотеку для работы с шиной SPI.
#include <nRF24L01.h>                                          // Подключаем файл настроек из библиотеки RF24.
#include <RF24.h>                                              // Подключаем библиотеку для работы с nRF24L01+.
RF24     radio(7, 8);                                         // Создаём объект radio для работы с библиотекой RF24, указывая номера выводов модуля (CE, SS).
int      myData[5];                                            // Объявляем массив для приёма и хранения данных (до 32 байт включительно).
int      ackData[5]; // Объявляем массив для передачи данных в пакете подтверждения приёма (до 32 байт включительно).
int pwm = 0;
int pwm2 = 0;

int echoPin = 14;
int trigPin = 15;
int duration, cm;

                                                               //
void setup(){  //
    Serial.begin (57600);
    radio.begin();                                             // Инициируем работу nRF24L01+
    radio.setChannel      (27);                                // Указываем канал передачи данных (от 0 до 125), 27 - значит передача данных осуществляется на частоте 2,427 ГГц.
    radio.setDataRate     (RF24_250KBPS);                        // Указываем скорость передачи данных (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS), RF24_1MBPS - 1Мбит/сек.
    radio.setPALevel      (RF24_PA_MAX);                       // Указываем мощность передатчика (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm).
    radio.enableAckPayload();                                  // Указываем что в пакетах подтверждения приёма есть блок с пользовательскими данными.
//  radio.enableDynamicPayloads();                             // Разрешить динамически изменяемый размер блока данных на всех трубах.
    radio.openReadingPipe (1, 0xAABBCCDD11LL);                 // Открываем 1 трубу с адресом 0xAABBCCDD11, для приема данных.
    radio.startListening  ();                                  // Включаем приемник, начинаем прослушивать открытые трубы.
    radio.writeAckPayload (1, &ackData, sizeof(ackData) );     // Помещаем данные всего массива ackData в буфер FIFO. Как только будут получены любые данные от передатчика на 1 трубе, то данные из буфера FIFO будут отправлены этому передатчику вместе с пакетом подтверждения приёма его данных.
     pinMode(trigPin, OUTPUT);
     pinMode(echoPin, INPUT);


}                                                              // В модуле имеется 3 буфера FIFO, значит в них одновременно может находиться до трёх разных или одинаковых данных для ответа по одной или разным трубам.
                                                               // После отправки данных из буфера FIFO к передатчику, соответствующий буфер очищается и способен принять новые данные для отправки.
void loop(){    //
digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  //Serial.println(duration);
  cm = duration / 58; //для воздуха
//  cm = duration / 13; //для воды
ackData[0]=cm;
delay(50);
    if(radio.available()){                                     // Если в буфере приёма имеются принятые данные от передатчика, то ...
        radio.read (&myData,  sizeof(myData)  ); // Читаем данные из буфера приёма в массив myData указывая сколько всего байт может поместиться в массив.
        radio.writeAckPayload (1, &ackData, sizeof(ackData) ); // Помещаем данные всего массива ackData в буфер FIFO для их отправки на следующее получение данных от передатчика на 1 трубе.
   if(myData[0]<=200)
{  
     digitalWrite(5,LOW); 
      pwm = 0;   
}
             if(myData[0]>200)
             {   pwm = map(myData[0], 200,800,0,255);
                 analogWrite(5,pwm);
             }
             else if(myData[0]>800)
                 { 
                   pwm = 255;
                    analogWrite(5,pwm);
                  } 
         
   if(myData[1]>200)
             {   pwm2 = map(myData[1], 200,800,0,255);
                 analogWrite(6,pwm2);
            }
             else if(myData[1]>800)
                         {   pwm2 = 255;
                             analogWrite(6,pwm2);
                        }
                         
              else //if (myData[1]<=200)
               {
                 digitalWrite(6,LOW);
                   pwm2 = 0;
                }
       
  }                                                          // Если все 3 буфера FIFO уже заполнены, то функция writeAckPayload() будет проигнорирована.
      Serial.print (" motor_r =");
      Serial.print (myData[0]);
      Serial.print (" motor_l =");
      Serial.println (myData[1]);
      delay(100);


}                                                              // Так как в данном скетче данные в буфер помещаются только после получения данных от передатчика, значит один из буферов был только что очищен и заполнение всех 3 буферов в данном скетче невозможно.

//Передатчик
#include <SPI.h>                                               // Подключаем библиотеку для работы с шиной SPI.
#include <nRF24L01.h>                                          // Подключаем файл настроек из библиотеки RF24.
#include <RF24.h>                                              // Подключаем библиотеку для работы с nRF24L01+.
RF24     radio(3, 2);                                         // Создаём объект radio для работы с библиотекой RF24, указывая номера выводов модуля (CE, SS)
#define motor_r A1
#define motor_l A2
int      myData[5];                                            // Объявляем массив для хранения и передачи данных.
int      ackData[5];                                           // Объявляем массив для получения данных из пакета подтверждения приёма (до 32 байт включительно).
#include <UTFT.h>                                                                                           // подключаем библиотеку UTFT для работы с TFT дисплеем
UTFT   myGLCD(ILI9341_S5P, 7, 8, 4, 5, 6);  // объявляем  объект myGLCD для работы с библиотекой UTFT, указывая тип дисплея и выводы (TFT01_22SP, SDI/MOSI, SCK, CS, RESET, DC/RS);
extern uint8_t SevenSegNumFontPlusPlus[];
                                                               //
void setup(){                                                  //
   Serial.begin (57600);
    myGLCD.InitLCD(); // иницилизиеуем экран
    myGLCD.clrScr(); //очистка экрана
    myGLCD.setFont(SevenSegNumFontPlusPlus); //шрифт, должен быть в папке


    radio.begin           ();                                  // Инициируем работу модуля nRF24L01+.
    radio.setChannel      (27);                                // Указываем канал передачи данных (от 0 до 125), 27 - значит передача данных осуществляется на частоте 2,427 ГГц.
    radio.setDataRate     (RF24_250KBPS);                        // Указываем скорость передачи данных (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS), RF24_1MBPS - 1Мбит/сек.
    radio.setPALevel      (RF24_PA_MAX);                       // Указываем мощность передатчика (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm).
    radio.enableAckPayload();                                  // Указываем что в пакетах подтверждения приёма есть блок с пользовательскими данными.
//  radio.enableDynamicPayloads();                             // Разрешить динамически изменяемый размер блока данных на всех трубах.
    radio.openWritingPipe (0xAABBCCDD11LL);                    // Открываем трубу с адресом 0xAABBCCDD11 для передачи данных (передатчик может одновременно вещать только по одной трубе).
  // myData[0]=55;
}                                                              //
                                                               //
void loop(){    //
    myData[0]=analogRead(motor_r);
    myData[1]=analogRead(motor_l);

    radio.write(&myData, sizeof(myData));                      // Отправляем данные из массива myData указывая сколько байт массива мы хотим отправить.
    if( radio.isAckPayloadAvailable() ){                       // Если в буфере имеются принятые данные из пакета подтверждения приёма, то ...
        radio.read(&ackData, sizeof(ackData));         // Читаем данные из буфера в массив ackData указывая сколько всего байт может поместиться в массив.
    myGLCD.printNumF((ackData[0]),2,100, 0);
  }                                                          //
    //delay(50);     // Устанавливаем задержку на 50 мс. В этом скетче нет смысла слать данные чаще.
//Serial.println (ackData[0]);
//myGLCD.printNumF((ackData[0]),2,100, 0);
}                                                              //


 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Спасибо. Я хочу частоту повыше, ну 40кгц очень широкий луч, да и модуль даст только глубину измерить, рыбу найти не получится.

Взял в китае на 108кгц и 1.7мгц. 300 мне кажется самый оптимальный, но дешевых таких не нашел. Да еще обычных звуковых, так как хочу автогенератор протестировать: быстрый запуск на резонансной частоте. Резонансная частота будет гулять например от температуры воды, поэтому резонансный генератор кажется оптимальнее. Если не получится ничего хорошего буду шимом генерить

ankar
Offline
Зарегистрирован: 09.04.2017

У меня Лаки беспроводной.  90 градусов,125кгц.Мало того 438МГЦ и при любом включении брелка от мпшины зятя пищит как проклятый. фактически меряет только глубину. А я хочу,чтобы мерял и прфиль дна.Без GPS тут не обойтись. Насчет рыбы. Определять можно по резкой разнице в показаниях глубины. В общем вот такие хотелки.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Да согласен без GPS будет не то

gppsoft
Offline
Зарегистрирован: 13.10.2014

jeka_tm пишет:
А может просто связано с тем что разные радиомодули стоят? Эта библиотека делалась под пульт в котором nrf стоит, а вообще китайцы 5-6 видов радиомодулей используют в своих пультах

Ну я думаю оно бы и не биндилось и не работало вообще. Пульт как у вас 1 в 1

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

У меня тоже периодически пропадала связь, хорошо в парке лодки на прокат. А потом какой то контроль связи добавлял, и перезапускал всю инициализацию нрф. А проблемы я видел только две: питание и наводки

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Нашел видео по эхолотам, а там пример того что видно на разных частотах: 77 и 455 кгц

https://youtu.be/0GsgQXy96sI?t=1058

ankar
Offline
Зарегистрирован: 09.04.2017

В принципе, чем вышв частота, тем больше разрешение. Но тут атмега,увы не потянет.Так, что тут палка о двух концах.

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

mekka
Offline
Зарегистрирован: 16.09.2019

Владелец удалил файлы либо закрыл к ним доступ или в ссылке опечатка.

плиз перезалейте Катер_v3.1_450х173х85 . Спасибо.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Какой то глюк был. Но вроде теперь работает.

ankar
Offline
Зарегистрирован: 09.04.2017

вырезал по чертежам. Размер получил 600мм в длину. Придется изучать Peparura. Бо напрямую очень много мелочевки гонит.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Делал 450мм а получился 600мм?