Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 34
  1. #21
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    220

    По умолчанию Re: Катер для рыбалки

    Тему создал OSD? TV-OUT на ...дуино и начал эксперименты, но решил тоже отказаться от формирования OSD средствами Ардуины и перейти на использование МАХ7456. Пока заказал и ожидаю.

    Но тут меня немного осенило, а чего это я не пошел другим путем?
    Цель то в целом такая: катер получает управление с берега и передает видео + данные телеметрии на берег.
    Вот когда я вышел на реальную воду для проверки, взял для записи и просмотра видео свой планшетник, сел на стульчик, положил комп на колени, а в руки пульт управления и вперед на отметку около 300 метров от берега, остановился.
    Поплавок отлично видно в цвете, данные телеметрии днем плохо читабельны, но в момент поклевки, когда схватил пульт, то чуть не уронил ноут... И тут меня ошарашило, сигнала на приемнике ноль. Ноут на траву, сам встал, поймал связь и катер к берегу. А дальше, когда дай Бог поймаю и буду транспортировать катер к берегу, все эти телодвижения не устраивают.
    Поехал прикупил 5" GPS-навигатор с видео-входом, закрепил на свою Футабу и на берег. Тоже очень не комфортно.

    А чего это я зациклился на аппаратуре радиоуправления, создаю алгоритмы расшифровки PPM, ищу вариант с OSD и т.д., сам не пойму.

    Наверно проще связать Ардуину с планшетником по радиоканалу, например через пару KYL-200U и у меня получится прямое радиоуправление с бесконечным количеством каналов управления и самая любая телеметрия без анализа самой Ардуиной. Можно и нетбук и даже КПК с видео-входом приспособить.

    Начал переосмысливать саму идею, до весны еще далеко.
    Сейчас стал вопрос выбора и приобретения радиомодема, может есть нормальный и не дорогой, да и может тут появятся другие подводные камни. Кто в чем силен и подсобите советом.
    Последний раз редактировалось Mastar; 22.12.2011 в 19:25.
    Мои проекты - Катер для рыбалки

  2. #22
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    220

    По умолчанию Re: Катер для рыбалки

    Определился я кажись с выбором радио-модема APC-250 - буду заказывать через неделю, они уже начали праздновать Новый Год.

    Если есть замечания по данному устройству, прошу отписаться тут, даже просто сомнениям уделю внимание.
    Мои проекты - Катер для рыбалки

  3. #23
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    220

    По умолчанию Re: Катер для рыбалки

    Очень долго определялся и наконец решился брать АРС-250, почти месяц ожиданий и на Пасху я получил посылку.
    При скорости 9600 на расстоянии в 200 метров я получал данные с 16 аналоговых каналов с частотой опроса 0,1 секунда и при наличии данных от GPS на входе ардуины, они обрабатывались и также отправлялись на "базу". Теперь я на 100% решил отказаться от OSD и приема-передатчика FUTABA.

    На днях опробую совместную работу радио-удлинителя АРС-250 и видео-передатчика, буду подбирать расстояние между антеннами и частоты одного и второго устройства.

    Уже транслирую и получаю на "базе"

    1. данные о местоположении катера (GPS)
    2. температуре воды, батарей, двигателя+регулятора (3хLM35)
    3. напряжение 4 банок силовой батареи и напряжение батареи для бортовой автоматики
    4. датчик тока силовой батареи, как на разряд, так и на заряд (ACS756-50)
    5. датчик давления (MPXHZ6400), который будет использоваться для измерения нагрузки на снасть.

    Продолжаю обвешивать датчиками...
    Мои проекты - Катер для рыбалки

  4. #24
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    220

    По умолчанию Re: Катер для рыбалки

    Цитата Сообщение от Mastar Посмотреть сообщение
    Теперь я на 100% решил отказаться от OSD и приема-передатчика FUTABA.
    Провел реальные испытания на воде. Мнение изменилось
    Мои проекты - Катер для рыбалки

  5. #25
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Катер для рыбалки

    А что не так?

  6. #26
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    220

    По умолчанию Re: Катер для рыбалки

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

    Chip, а подскажите каким образом можно заносить несколько GPS координат в EEPROM, может есть готовый кусочек скетча или пример? Координаты с точностью 8 знаков после запятой (например 50.12345678 30.12345678) нужно перевести в байты и занести в память, а потом взять из памяти и обратно перевести в координаты. Я чего-то не могу найти варианта.
    Мои проекты - Катер для рыбалки

  7. #27
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Катер для рыбалки

    Одно значение Float можно записать в EEPROM вот так
    SaveEEPROM(0.87977663);
    PHP код:
    void SaveEEPROM(float ir_code)  // записываем значение в EEPROM
    {
      
    EEPROM.write(0ir_code 0xFF);
      
    EEPROM.write(1, (ir_code 0xFF00) >> 8);
      
    EEPROM.write(2, (ir_code 0xFF0000) >> 16);
      
    EEPROM.write(3, (ir_code 0xFF000000) >> 24);

    Взять из EEPROM
    float addr=LoadEEPROM();
    PHP код:
    unsigned long LoadEEPROM()  // считываем значение из EEPROM
    {
      
    byte val EEPROM.read(3); 
      
    unsigned long ir_code=val;
          
    val EEPROM.read(2);
                    
    ir_code= (ir_code << 8) | val;
          
    val EEPROM.read(1);
                    
    ir_code= (ir_code << 8) | val;
          
    val EEPROM.read(0);
                    
    ir_code= (ir_code << 8) | val;
      return 
    ir_code;

    Если записывать несколько таких значений, то нужно учитывать адреса ячеек в EEPROM
    Последний раз редактировалось Chip; 07.06.2012 в 09:32.

  8. #28
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    220

    По умолчанию Re: Катер для рыбалки

    Спасибо.
    Но похоже нужно пожертвовать одним знаком и перейти на значение в 7 знаков после запятой(как ни пытался, теряется восьмой знак в Ардуине или в самом IDE) double - не помогает, да и в описании написано:
    Тип данных double, в отличие от большинства языков программирования, имеет ту же точность, что и тип float и занимает также 4 байта памяти.
    Тип double поддерживается в Arduino для совместимости кода с другими платформами.
    Мои проекты - Катер для рыбалки

  9. #29
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    220

    По умолчанию Re: Катер для рыбалки

    Кстати, Эдуард, а тут ругается void SaveEEPROM(float ir_code)

    Я применил unsigned long

    PHP код:
    #include <EEPROM.h>

    float lon 50.1234567 ;
    float lat 30.7654321 ;

    void setup()
    {
      
    Serial.begin(115200);
      
    unsigned long xxx lon 10000000 ;
      
    unsigned long yyy lat 10000000 ;
      
    SaveEEPROMx(xxx);
      
    SaveEEPROMy(yyy);
    }

    void loop()
    {
      
    unsigned long addr_x LoadEEPROMx();
      
    unsigned long addr_y LoadEEPROMy();
      
    Serial.print ( addr_x ) ;  
      
    Serial.print ( " - " ) ;  
      
    Serial.println addr_y ) ;
      
    delay(3000);
    }

    void SaveEEPROMx(unsigned long code_x)  // записываем значение в EEPROM 

      
    EEPROM.write(0,  code_x 0xFF); 
      
    EEPROM.write(1, (code_x 0xFF00) >> 8); 
      
    EEPROM.write(2, (code_x 0xFF0000) >> 16); 
      
    EEPROM.write(3, (code_x 0xFF000000) >> 24); 
    }

    void SaveEEPROMy(unsigned long code_y)  // записываем значение в EEPROM 

      
    EEPROM.write(4,  code_y 0xFF); 
      
    EEPROM.write(5, (code_y 0xFF00) >> 8); 
      
    EEPROM.write(6, (code_y 0xFF0000) >> 16); 
      
    EEPROM.write(7, (code_y 0xFF000000) >> 24); 
    }  

    unsigned long LoadEEPROMx()  // считываем значение из EEPROM 

      
    byte val EEPROM.read(3);  
      
    unsigned long x val
          
    val EEPROM.read(2); 
                    
    x= (<< 8) | val
          
    val EEPROM.read(1); 
                    
    x= (<< 8) | val
          
    val EEPROM.read(0); 
                    
    x= (<< 8) | val
      return 
    x
    }  

    unsigned long LoadEEPROMy()  // считываем значение из EEPROM 

      
    byte val EEPROM.read(7);  
      
    unsigned long y val
          
    val EEPROM.read(6); 
                    
    y= (<< 8) | val
          
    val EEPROM.read(5); 
                    
    y= (<< 8) | val
          
    val EEPROM.read(4); 
                    
    y= (<< 8) | val
      return 
    y

    И точность еще хуже
    При варианте 0.12345678 все нормально.
    А вот при реальных значениях 50.1234567 и 30.7654321
    Выход такой:
    501234560 - 307654336
    Последний раз редактировалось Mastar; 12.06.2012 в 10:24.
    Мои проекты - Катер для рыбалки

  10. #30
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Катер для рыбалки

    Можно проконвертировать из Float в unsigned Long
    Для этого достаточно умножить unsigned Long=0.12345678*100000000

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •