Альфа-версия комплекса измерения и индикации времени заезда для Мотоджимханы.

RN6LJK
Offline
Зарегистрирован: 24.03.2013

Альфа-версия комплекса измерения и индикации времени заезда для  Мотоджимханы.

Мотоджимхана — спортивное испытание на время, в котором участники на мотоциклах соревнуются на самое быстрое маневрирование на асфальтовой площадке среди искусственных препятствий в виде конусов.

Комплекс состоит из:

1.ИК датчики китайские барьерные датчики

https://ru.aliexpress.com/item/Free-Shipping-30Meter-Home-Security-2-Beam-Photoelectric-Infrared-Detector-ABT-30M/2043528350.html?spm=a2g0s.9042311.0.0.NE2LLU.

Разобраны и установлены на основания.

2.Плата TX . Содержит  Wemos D1 mini + NRF24L01 + 18650 Wemos шилд;

3. Плата RX – секундомер. Содержит Wemos D1 mini + NRF24L01 + 18650 Wemos шилд (2 шт. для отдельно питания контроллера и индикатора)+ MAX 7219 MATRIX (8 матриц 8х8);

4. Индикатор MAX 7219 MATRIX (8 матриц 8х8) для отдельно питания контроллеров и индикатора;

5. Батарейные контейнеры для питания барьерных датчиков ;

6. 18650 Wemos шилд для Arduino 3 штуки

https://ru.aliexpress.com/item/Wemos-18650-Battery-shield-V3-RaspberryPi-Arduino/32812129147.html?spm=a2g0s.9042311.0.0.6NvnLx.

 

Модуль срабатывает по «первому колесу». Задержка прерывания от датчика 5 сек. для предотвращения повторно срабатывания от «второго колеса». Результат индицируется, но не фиксируется. Индикация сохраняется до следующего старта. Питание каждого датчика от 8 батареек А2 или аккумуляторов. Питание контроллеров и индикатора независимое от элементов 18650, установленных в Wemos шилд, причем этот шилд, позволяет заряжать батарею по USB  без выемки. Предусмотрен режим тестирования без подключенных датчиков. Всего установлено 3 шилда.

Схемы (пардон от руки, рабочий материал):

 

 

Датчики:

приемник

 

передатчик

 

 

секундомер+индикатор

 

На всякий случай скетчи

// Передатчик   версии - Wemos D1 mini
//    таймаут - задержка - игнорирования входа
//   GPIO_PIN  - принудительно на земле. Прерывание от внешнего датчика подачей единицы (VСС).
//   
// последняя рабочая версия
//31.12.2017

 /*
#define CE           D7   // Chip Enable Activates RX or TX mode          
#define CSN          D4  // SPI Chip Select   D4 - default
#define SCK_PIN      D1  // SPI Clock    
#define MOSI_PIN     D3  // SPI Slave Data Input    
#define MISO_PIN     D2  // SPI Slave Data Output, with tri-state option
#define IRQ          RX   // Maskable interrupt pin   D8 - default
*/



#include "NRF24L01.h"

#define TX_ADR_WIDTH    5   // 5 unsigned chars TX(RX) address width
#define TX_PLOAD_WIDTH  1   // 3 unsigned chars TX payload
unsigned char TX_ADDRESS[TX_ADR_WIDTH]  = 
{
    0x34,0x43,0x10,0x10,0x01
}; 
unsigned char tx_buf[TX_PLOAD_WIDTH] = {0};
#define GPIO_PIN D5  // D5 через резистор 10к
int i=0;
void setup()
{
  pinMode(GPIO_PIN, INPUT);
    Serial.begin(115200);
    tx_buf[0] = 0x55;
//    tx_buf[1] = 0xAA;
//    tx_buf[2] = 0x11;
//        pinMode(0, OUTPUT);  
//    digitalWrite(0, LOW); 
    NRF_Init();    // Initialize IO port
    Serial.println("");
    Serial.println("TX_Mode Start");    
        digitalWrite(GPIO_PIN,0);
        attachInterrupt(GPIO_PIN, blink, RISING );



}

void loop()
{ 
if(i==1){
  delay(5000); 
  attachInterrupt(GPIO_PIN, blink, RISING );
  i=0;
}
}
void blink()
{
     NRF_SeTxMode();

 while(!NRF_CheckAck()); 
          Serial.println("TX");  
          NRF_Send(tx_buf);
            detachInterrupt(GPIO_PIN);
            i=1;

         
}

// Упрощенный вариант=приемник+секундомер
// Последняя рабочая версия
//31.12.2017
//  
// работает по приему сигнала от NRF24L01
// только вывод результата
//  WEMOS D1 R2 & mini
//  MAX 7219 MATRIX  
//  динамическое отображение секундомера 
// 
// 

#include <String.h>
#include "LedControl.h"
#include "NRF24L01.h"

unsigned char RX_ADDRESS[TX_ADR_WIDTH]  = 
{
  0x34,0x43,0x10,0x10,0x01
};
#define TX_PLOAD_WIDTH  1
//unsigned char rx_buf[TX_PLOAD_WIDTH] = {0};
unsigned char rx_buf[1] = {0};

float times;
int start=0;
int finish=0;
int finish1=0;
int cycle=0;
int ind=0;
float shas=0.0;
float minut=0.0;
float secund=0.0;
float secundOld=0.0;
int delay_2=0; // признак задержки после ФИНИШа => 0 снята, 1 установлена
int delay_ =0; // признак задержки после СТАРТа => 0 снята, 1 установлена
int ij=0;
char res;

int i;
int fin=1;
int intsec=0;
int rassec=0;
int sh=0;
int mi=0;
int se=0;   
int sh1 =0;
int sh2 =0;  
int mi1 =0;
int mi2 =0;        
int se1 =0;
int se2 =0;    
int rs1 =0;
int rs2 =0;  
int hh=0;
int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};
int count=0;
char td1=' ';
char td2=' ';
char td3=' ';
char td4=' ';
char td5=' ';
char td6=' ';

int th1=0;
int th2=0;
int tm1=0;
int tm2=0;

int h11=0;
int h22=0;
int m11=0;
int m22=0;


/*
 * Подключение max7219
 pin D0 is connected to the DataIn 
 pin D6 is connected to the CLK 
 pin D5 is connected to CS 
 * 
 */
LedControl lc=LedControl(D0,D6,D5,8);
unsigned long delayTime=1000;  // Delay between Frames

// Переменные для матрицы
int poz,dig,zap; // позиция,значение,разделитель)
// Ш Р И Ф Т 
byte c1[] =  // 1
{
0b00000010,
0b00000110,
0b00001110,
0b00000110,
0b00000110,
0b00000110,
0b00000110,
0b00000000

};
byte c2[] = // 2
{
0b00001110,
0b00011011,
0b00000011,
0b00000110,
0b00001100,
0b00011000,
0b00011111,
0b00000000

};
byte c3[] =  // 3
{
0b00001110,
0b00011011,
0b00000011,
0b00001110,
0b00000011,
0b00011011,
0b00001110,
0b00000000

};
byte c4[] =  // 4
{
0b00000011,
0b00000111,
0b00001111,
0b00011011,
0b00011111,
0b00000011,
0b00000011,
0b00000000

};
byte c5[] =  // 5
{
0b00011111,
0b00011000,
0b00011110,
0b00000011,
0b00000011,
0b00011011,
0b00001110,
0b00000000

};
byte c6[] =  // 6
{
0b00001110,
0b00011011,
0b00011000,
0b00011110,
0b00011011,
0b00011011,
0b00001110,
0b00000000

}; 
byte c7[] =  // 7
{
0b00011111,
0b00000011,
0b00000110,
0b00001100,
0b00001100,
0b00001100,
0b00001100,
0b00000000

};
byte c8[] =  // 8
{
0b00001110,
0b00011011,
0b00011011,
0b00001110,
0b00011011,
0b00011011,
0b00001110,
0b00000000

};
byte c9[] =  // 9
{
0b00001110,
0b00011011,
0b00011011,
0b00001111,
0b00000011,
0b00011011,
0b00001110,
0b00000000

};

byte c0[] =  // 0
{
0b00001110,
0b00011011,
0b00011011,
0b00011011,
0b00011011,
0b00011011,
0b00001110,
0b00000000 

};


//----------- с точкой
byte _c1[] =  // .1
{
0b00000010,
0b00000110,
0b00001110,
0b00000110,
0b00000110,
0b00000110,
0b11000110,
0b11000000

};
byte _c2[] = // .2
{
0b00001110,
0b00011011,
0b00000011,
0b00000110,
0b00001100,
0b00011000,
0b11011111,
0b11000000

};
byte _c3[] =  // .3
{
0b00001110,
0b00011011,
0b00000011,
0b00001110,
0b00000011,
0b00011011,
0b11001110,
0b11000000

};
byte _c4[] =  // .4
{
0b00000011,
0b00000111,
0b00001111,
0b00011011,
0b00011111,
0b00000011,
0b11000011,
0b11000000

};
byte _c5[] =  // .5
{
0b00011111,
0b00011000,
0b00011110,
0b00000011,
0b00000011,
0b00011011,
0b11001110,
0b11000000

};
byte _c6[] =  // .6
{
0b00001110,
0b00011011,
0b00011000,
0b00011110,
0b00011011,
0b00011011,
0b11001110,
0b11000000

}; 
byte _c7[] =  // .7
{
0b00011111,
0b00000011,
0b00000110,
0b00001100,
0b00001100,
0b00001100,
0b11001100,
0b11000000

};
byte _c8[] =  // .8
{
0b00001110,
0b00011011,
0b00011011,
0b00001110,
0b00011011,
0b00011011,
0b11001110,
0b11000000

};
byte _c9[] =  // .9
{
0b00001110,
0b00011011,
0b00011011,
0b00001111,
0b00000011,
0b00011011,
0b11001110,
0b11000000

};
byte _c0[] =  // .0
{
0b00001110,
0b00011011,
0b00011011,
0b00011011,
0b00011011,
0b00011011,
0b11001110,
0b11000000 

};


//--------------------------------------------------------------------------------------------------------------------
void setup(void)
{
      Serial.begin(115200);
      Serial.println();
    NRF_Init();                           
    NRF_SetRxMode();
        Serial.println("");
    Serial.println("RX_Mode start...");

    lcclear(); //  О Ч И С Т К А   И Н Д И К А Т О Р А     
    lcOut();// Вывод результата  на индикатор
//------------------------------------------------------------------------------------------------   
}

void loop(void)
{
if(NRF_Receive(rx_buf))
    {
        if((rx_buf[0]==0x55)){
                  Serial.println();
                          Serial.println("Yes");
                          Serial.write(rx_buf,5);
                          rx_buf[0] = 0;
//start_();
blink();

        }
    }
     
  if(fin==1){
     lcOut(); 
  }
// Задержка после ФИНИШа
if (delay_2==1){
         delay_2=0; 
          fin=1;
}

// Задержка после СТАРТа
if (delay_==1){

// Динамическая индикация

   while (ind==1){


    delay(1);
     finish1=millis();
                         delay_=0;

    times = finish1-start;
    if (times>=5000 && times<=6000){
      // задержка
    }
 
    shas=times/3600000;
    minut=times/60000;
    secund=times/1000;

   intsec=secund;
   rassec=(secund-intsec)*100;

                  sh=shas;
                  mi=secund/60;
                  se=secund-(mi*60);   
                  sh1 = sh/10;
                  sh2 = sh%10;  
                  mi1 = mi/10;
                  mi2 = mi%10;        
                  se1 = se/10;
                  se2 = se%10;    
                  rs1 = rassec/10;
                  rs2 = rassec%10;     
                       

if(NRF_Receive(rx_buf))
    {
        if((rx_buf[0]==0x55)){
                  Serial.println();
                          Serial.println("Yes2");
                            Serial.write(rx_buf,5);
blink();
        }
    }   

lcOut();// Вывод результата  на индикатор

    } 
  } 
}

void blink()
{
  delay_=1;
  ind=0;
    if(cycle==1){

    finish=millis();
    cycle=0;
  
        
    Serial.print("times: ");
    times = finish-start;
    Serial.println(times);

    shas=times/3600000;
    minut=times/60000;
    secund=times/1000;
    int intsec=secund;
    int rassec=(secund-intsec)*100;
    
            Serial.print("Shas      : ");
                Serial.println(shas,4);
                            Serial.print("Minut     : ");
                            Serial.println(minut,4);
                                                        Serial.print("Secund    : ");
                                                        Serial.println(secund,4);
                sh=shas;
                mi=secund/60;
                se=secund-(mi*60);                                        
                Serial.print(sh);
                Serial.print(".");
                Serial.print(mi);
                Serial.print(".");
                Serial.print(se);
                Serial.print(".");
                Serial.println(rassec);
                sh1 = sh/10;
                sh2 = sh%10;    
                Serial.print(sh1);
                Serial.println(sh2);                     
                mi1 = mi/10;
                mi2 = mi%10;    
                Serial.print(mi1);
                Serial.println(mi2);                                  
                se1 = se/10;
                se2 = se%10;
                Serial.print(se1);
                Serial.println(se2);
                rs1 = rassec/10;
                rs2 = rassec%10;
                Serial.print(rs1);
                Serial.println(rs2);
     Serial.println("Finish ");               
lcclear();// Вывод результата  на индикатор
lcOut(); 
   

  delay_=0;   
  delay_2=1;
  fin=1;
    }
    else {   // СТАРТ   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
              lcclear();    //  О Ч И С Т К А   И Н Д И К А Т О Р А
               start=millis();

          h11=th1;
          h22=th2;
          m11=tm1;
          m22=tm2;
         
          Serial.println("");
          Serial.println("Start "); 

      cycle=1;
      ind=1;
      fin=0;
    }
//  }
 }





////////////////////////////////////////////////
// Функции вывода на индикатор

// вывод символа без точки
void cc1() // Изображение символа "1"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c1[i]);
  }
}
void cc2()// Изображение символа "2"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c2[i]);
  }
}
void cc3()// Изображение символа "3"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c3[i]);
  }
}
void cc4()// Изображение символа "4"
{
  for (int i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c4[i]);
  }
}
void cc5()// Изображение символа "5"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c5[i]);
  }
}
void cc6()// Изображение символа "6"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c6[i]);
  }
}
void cc7()// Изображение символа "7"
{
  for (i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c7[i]);
  }
}
void cc8()// Изображение символа "8"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c8[i]);
  }
}
void cc9()// Изображение символа "9"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c9[i]);
  }
}
void cc0()// Изображение символа "0"
{
  for (i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,c0[i]);
  }
}

// вывод символа с точкой

// вывод символа без точки
void _cc1() // Изображение символа ".1"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c1[i]);
  }
}
void _cc2()// Изображение символа ".2"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c2[i]);
  }
}
void _cc3()// Изображение символа ".3"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c3[i]);
  }
}
void _cc4()// Изображение символа ".4"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c4[i]);
  }
}
void _cc5()// Изображение символа ".5"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c5[i]);
  }
}
void _cc6()// Изображение символа ".6"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c6[i]);
  }
}
void _cc7()// Изображение символа ".7"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c7[i]);
  }
}
void _cc8()// Изображение символа ".8"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c8[i]);
  }
}
void _cc9()// Изображение символа ".9"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c9[i]);
  }
}
void _cc0()// Изображение символа ".0"
{
  for ( i = 0; i < 8; i++)  
  {
    lc.setRow(poz,i,_c0[i]);
  }
}

// Вывод на индикатор

void setDig()// poz,dig,zap - позиция,значение,разделитель
{
lc.clearDisplay(poz);  // очистить позицию

if(zap==0){
switch (dig) {
  case 1:
        cc1();
        break;

  case 2:
        cc2();
        break;

  case 3:
        cc3();
        break;
   case 4:
        cc4();
        break;
   case 5:
        cc5();
        break;  
  case 6:
        cc6();
        break;  
  case 7:
        cc7();
        break;  
  case 8:
        cc8();
        break; 
  case 9:
        cc9();
        break; 
  case 0:
        cc0();
        break;                              
  default:
  break;
}
}
else {
  switch (dig) {
  case 1:
        _cc1();
        break;

  case 2:
        _cc2();
        break;

  case 3:
        _cc3();
        break;
   case 4:
        _cc4();
        break;
   case 5:
        _cc5();
        break;  
  case 6:
        _cc6();
        break;  
  case 7:
        _cc7();
        break;  
  case 8:
        _cc8();
        break; 
  case 9:
        _cc9();
        break; 
  case 0:
        _cc0();
        break;                              
  default:
  break;
}
}    
return;  
}


void lcclear()//  О Ч И С Т К А   И Н Д И К А Т О Р А
{
  lc.shutdown(0,false);  
  lc.shutdown(1,false);
  lc.shutdown(2,false);
    lc.shutdown(3,false);
      lc.shutdown(4,false);
        lc.shutdown(5,false);
          lc.shutdown(6,false);
            lc.shutdown(7,false);
  lc.setIntensity(0,5);  
  lc.setIntensity(1,5);
  lc.setIntensity(2,5);
    lc.setIntensity(3,5);
      lc.setIntensity(4,5);
        lc.setIntensity(5,5);
          lc.setIntensity(6,5);
            lc.setIntensity(7,5);
  lc.clearDisplay(0);  
  lc.clearDisplay(1);
  lc.clearDisplay(2);
    lc.clearDisplay(3);
      lc.clearDisplay(4);
        lc.clearDisplay(5);
          lc.clearDisplay(6);
            lc.clearDisplay(7);
 
}


void lcOut() // ВЫВОД РЕЗУЛЬТАТА НА ИНДИКАТОР
{
    if(mi1>>0){
    poz=5;
dig=mi1;
zap=0;
setDig();
       
    }
    if((mi2>=0 && mi1>>0) || (mi2>>0)){  
    poz=4;
dig=mi2;
zap=0;
setDig();   
    }

    poz=3;
dig=se1;
zap=1;
setDig();

    poz=2;
dig=se2;
zap=0;
setDig();

    poz=1;
dig=rs1;
zap=1;
setDig();
  
    poz=0;
dig=rs2;
zap=0;
setDig(); 
}
void start_(){
  // СТАРТ   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
              lcclear();    //  О Ч И С Т К А   И Н Д И К А Т О Р А
               start=millis();

          h11=th1;
          h22=th2;
          m11=tm1;
          m22=tm2;
         
          Serial.println("");
          Serial.println("Start "); 

      cycle=1;
      ind=1;
      fin=0;
    
}


void stop_(){

      finish=millis();
    cycle=0;
  
        
    Serial.print("times: ");
    times = finish-start;
    Serial.println(times);

    shas=times/3600000;
    minut=times/60000;
    secund=times/1000;
    int intsec=secund;
    int rassec=(secund-intsec)*100;
    
            Serial.print("Shas      : ");
                Serial.println(shas,4);
                            Serial.print("Minut     : ");
                            Serial.println(minut,4);
                                                        Serial.print("Secund    : ");
                                                        Serial.println(secund,4);
                sh=shas;
                mi=secund/60;
                se=secund-(mi*60);                                        
                Serial.print(sh);
                Serial.print(".");
                Serial.print(mi);
                Serial.print(".");
                Serial.print(se);
                Serial.print(".");
                Serial.println(rassec);
                sh1 = sh/10;
                sh2 = sh%10;    
                Serial.print(sh1);
                Serial.println(sh2);                     
                mi1 = mi/10;
                mi2 = mi%10;    
                Serial.print(mi1);
                Serial.println(mi2);                                  
                se1 = se/10;
                se2 = se%10;
                Serial.print(se1);
                Serial.println(se2);
                rs1 = rassec/10;
                rs2 = rassec%10;
                Serial.print(rs1);
                Serial.println(rs2);
     Serial.println("Finish ");               
lcclear();// Вывод результата  на индикатор
lcOut(); 
   

  delay_=0;   
  delay_2=1;
  fin=1;
}

 

Slavyanin55
Slavyanin55 аватар
Offline
Зарегистрирован: 01.06.2014

Во! годная аппаратура!

У нас в Омске мотоджимхана пока почти не развита совсем, но интерес у людей появляется.

Буду знать, где взять, как это сделать! Благодарю!

RN6LJK
Offline
Зарегистрирован: 24.03.2013

К началу сезона 2018 прибор был "причесан" Игорем RC7LL. Заменены датчики на китайские HW02 и помещены в корпуса вместе с источниками питания. Индикатор также помещен в корпус вместе с основной платой и батареями. Эксплутационный испытания прошли успешно. В настоящее время прибор применяется на тренировках. Выкладываю некоторые фото и ссылку на тренировочный заезд. Будут вопросы, пишите.

Видео тренировочного заезда с применением секундомера.

https://youtu.be/FO-OQRoaRh0

RN6LJK
Offline
Зарегистрирован: 24.03.2013
Oleg1975
Offline
Зарегистрирован: 05.06.2020

Сколько сейчас обойдется сборка данной телеметрии?

 

sser
Offline
Зарегистрирован: 25.12.2016

Всем привет.

Интересно , а где взять библиотеку NRF24L01.h  ?

На Гитхабе нашёл только  nRF24L01.h …..

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

sser пишет:

Всем привет.

Интересно , а где взять библиотеку NRF24L01.h  ?

На Гитхабе нашёл только  nRF24L01.h …..

по-моему, там любая подойдет, все что делает NRF - это пересылает байт 0x55. насколько я понял.

 

sser
Offline
Зарегистрирован: 25.12.2016

ага, понял , спс.

RN6LJK
Offline
Зарегистрирован: 24.03.2013

На Гитхабе нашёл только nRF24L01.h …..

Это она и есть. Самое капризное звено во всем проекте это как раз  nRF24L01

а вообще надежнее работает вариант модуля с антенной

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

RN6LJK пишет:

Это она и есть. Самое капризное звено во всем проекте это как раз  nRF24L01

а вообще надежнее работает вариант модуля с антенной

А какие там расстояния обычно между приемником и передатчиком? (абсолютно не представляю себе мотоджихану :)

Можно было бы перевести проект на HC-12, например - на открытой местности на 300-500м они должны работать надежно. Заодно и код немного переписать, а то уж больно он корявый :)

Кстати. в качестве табло можно взять матрицы типа таких - они значительно крупнее тех, что в проекте, для улицы будет удобнее (правда, от батарейки уже не пойдут, но наверно на месте соревнования всегда есть хоть одна машина, от аккумулятора вполне заработает)

IgorSadov
Offline
Зарегистрирован: 06.06.2020

Весь этот сетап должен быть небольших размеров и потреблять по минимуму, с рабоспособностью 6-8 часов, большой секундомер с управлением от пк и на р10 есть и давно используется на соревнованиях.

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

IgorSadov пишет:
Весь этот сетап должен быть небольших размеров и потреблять по минимуму, с рабоспособностью 6-8 часов, большой секундомер с управлением от пк и на р10 есть и давно используется на соревнованиях.

а ну как знаете

nRF  все-таки рекомендую поменять на что-то более надежное и дальнобойное

RN6LJK
Offline
Зарегистрирован: 24.03.2013

b707 пишет:

IgorSadov пишет:
Весь этот сетап должен быть небольших размеров и потреблять по минимуму, с рабоспособностью 6-8 часов, большой секундомер с управлением от пк и на р10 есть и давно используется на соревнованиях.

а ну как знаете

nRF  все-таки рекомендую поменять на что-то более надежное и дальнобойное

может подскажете на что ?

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

RN6LJK пишет:

может подскажете на что ?

например HC-12

ребята. вы в сообщении #9 видимо только картинку табло увидели и сочли за рекламу :) А там еще текст был и вопросы :)

А картинка, кстати, не моя, а какого-то индийца или пакистанца, я сам  не знаю толком :) и я его не рекламирую

RN6LJK
Offline
Зарегистрирован: 24.03.2013

b707 пишет:

RN6LJK пишет:

может подскажете на что ?

например HC-12

ребята. вы в сообщении #9 видимо только картинку табло увидели и сочли за рекламу :) А там еще текст был и вопросы :)

А картинка, кстати, не моя, а какого-то индийца или пакистанца, я сам  не знаю толком :) и я его не рекламирую

Смело. Обоснуйте.

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

RN6LJK пишет:

Смело. Обоснуйте.

что именно? что вы сообщение #9 не читали? - сделал вывод. потому что переспрашиваете, на что заменить NRF, хотя я сразу указал

Или еще что обосновать?

RN6LJK
Offline
Зарегистрирован: 24.03.2013

b707 пишет:

RN6LJK пишет:

Смело. Обоснуйте.

что именно? что вы сообщение #9 не читали? - сделал вывод. потому что переспрашиваете, на что заменить NRF, хотя я сразу указал

Или еще что обосновать?

Я просил обосновать замену NRF на HC-12

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

RN6LJK пишет:

Я просил обосновать замену NRF на HC-12

Вы меня с продавцом на рынке не спутали? :) Зачем мне вас уговаривать, я их продаю, что ли? :) Вы сами жаловались в сообщении 8, что NRF -ки капризные

Сами посмотрите характеристики, если сравнивать обычный (не "дальнобойный")  NRF и HC-12 - у последнего почти на порядок больше дальность как на открытой местности, так и в зданиях сквозь стены. Из-за популярности NRF очень много поддельных на Али, с надежностью как повезет.

Про  HC-12 подобных отзывов нет, все что продается - работает одинаково устойчиво.

Из минусов - у HC-12 связь через УАРТ, что в принципе может давать задержки несколько миллисекунд

 

 

 

 

RN6LJK
Offline
Зарегистрирован: 24.03.2013

Мой прибор прекрасно  работает с NRF, я просто предупредил о возможных капризах при настройке. Вы можете продемонстрировать свои наработки с НС-12 ? Интересно взглянуть.

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

RN6LJK пишет:

Мой прибор прекрасно  работает с NRF,

ну работает и работает, значит я зря влез

 

RN6LJK
Offline
Зарегистрирован: 24.03.2013

ну так тому и быть