Автор Гілка: Автопілот  (Прочитано 41840 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Автопілот
« Відповідей #60 : 2011-01-03 13:52:31 »
Клас. Я у захваті. Щойно отримав свій htc і схоже я знаю чим займатимусь найближчим часом. Взагалі, НМД, задача експорту даних датчиків телефону через мережу (типу gps, g-сенсор і тд) цікава в собі безвідносно до авіамоделювання. Я б зовсім не проти спробувати використати свій телефон як кермо в грі або ж просто як пристрій керування там де це буде зручно. Можливо, комусь відомо про вже закінчені реалізації подібних задумів (прямим експортом символьних пристроїв або через будь-який прокотол) для Android? Поділіться, будь ласка.

Можливо щось типу: adb forward dev:.. dev:...
Далі вже з експортованим пристроєм поводитися як з джойстиком. :-/

"GPS Tether" реалізує стандартний gpsd на телефоні:  http://forum.xda-developers.com/showthread.php?t=642461 .
« Змінено: 2011-01-04 12:12:39 від lvm »
[Fedora Linux]

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #61 : 2011-01-03 19:50:32 »
Клас. Я у захваті. ....
Щодо затримок, то тут очевидно варто чітко визначити, чим саме вони зумовлені (xmpp чи інтернет-канал) і по можливості позбавлятися цих ділянок. Якщо саме xmpp, то можна спробувати створити власну систему клієнт-сервер з простим текстовим протоколом, звісно з врахуванням усіх особливостей вашої системи (наприклад, розділити канали для передачі команд на літак і видачі нам даних і тп).
У випадку написання власного  кліент-скервер:
Тут насправді є ще один підводний камінь, так як у випадку disconnect одного з двох (а можливо й більше) клієнтів, буде втрачена IP адреса і клієнт не знатиме куди пересилати дані!  :'(
Але, щоб такого уникнути, можна  реалізувати, при повторному connect, передачу IP адреси  через сервер Jabber, і система вже знатиме один одного і може використовувати власний клієнт-сервер. Отак. :P

 :o А взагалі потрібно подумати над тим, щоб передавати інфу не окремими повідомленнями, а одним потоком данних (Як передача звуку), що фактично аналогічно  вище сказаному. Це повинно мінімізувати затримку в часі!!!

Да, доречі, ця затримка 0.5-1 сек.  :-[


Хто підкаже про реалізацію передачі відео через інтернет?
« Змінено: 2011-01-03 19:53:58 від Ubuntu_Linux »

Відсутній borman

  • Графоман
  • ****
  • дописів: 416
  • Карма: +0/-0
  • Debianizer
Re: Автопілот
« Відповідей #62 : 2011-01-03 23:53:04 »
Щодо зміни ip-адреси, то можна також подивитися в бік dyndns, ну й взагалі безліч workaround. Цікаво, що трапиться у випадку повної інтернет-з'єднання. Ваша система передбачає керування голосом?  :)
dd if=/dev/zero of=/dev/null

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #63 : 2011-01-04 11:23:35 »
Щодо зміни ip-адреси, то можна також подивитися в бік dyndns, ну й взагалі безліч workaround. Цікаво, що трапиться у випадку повної інтернет-з'єднання. Ваша система передбачає керування голосом?  :)
Все буде добре. Керування голосом не буде.
Доречі, щось на телефоні виникли проблеми з відтворенням звукку(саме через голосовий звязок  ) за допомогою Qxmpp бібліотеки. Чомусь аудіо вихід переходить в такий статус , що наче буфер пустий. :'(
А так, то звук працює. :-/

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #64 : 2011-01-04 14:02:19 »
Зі звуком, всетаки проблеми(при аудіо дзвінку), так як на телефоні він не відтворюється. А якщо дзвонити Компютер-Компютер то все в порядку. Будемо думати.... Доречі, при Компютер-Компютер я чую сам себе! (Так же не повинно бути!)
Для тесту написав маленьку програму, яка записує звук з мікрофону ,а потім його відтворює. Так все чудово працює, що означає проблема в протоколі передачі через інтернет яка вилізла на телефоні.


 :pilot: :pilot: :pilot:  
Бонусом, може слугувати 3.5 jack розєм під навушники-гарнітуру в телефоні. Тобто підключившись до мікрофонного входу можна оцифрувати  входящий сигнал і таким чином реалізувати АЦП (Аналогово цифровий перетворювач). Що в свою чергу дозволить вимірювати вольтаж бортового акк. ,температуру, струм. Без особливих схем!
Просто потрібно побудувати RC - цепочку, періодичний заряд і розрад конденсатора, щось типу такого:


 :ps: + ще впаяти один транзистор, щоб забезпечити розрядку конденсатора.

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #65 : 2011-01-04 21:11:09 »
Клас. Я у захваті. ....
Щодо затримок, то тут очевидно варто чітко визначити, чим саме вони зумовлені (xmpp чи інтернет-канал) і по можливості позбавлятися цих ділянок. Якщо саме xmpp, то можна спробувати створити власну систему клієнт-сервер з простим текстовим протоколом, звісно з врахуванням усіх особливостей вашої системи (наприклад, розділити канали для передачі команд на літак і видачі нам даних і тп).
У випадку написання власного  кліент-скервер:
Тут насправді є ще один підводний камінь, так як у випадку disconnect одного з двох (а можливо й більше) клієнтів, буде втрачена IP адреса і клієнт не знатиме куди пересилати дані!  :'(
Але, щоб такого уникнути, можна  реалізувати, при повторному connect, передачу IP адреси  через сервер Jabber, і система вже знатиме один одного і може використовувати власний клієнт-сервер. Отак. :P

 :o А взагалі потрібно подумати над тим, щоб передавати інфу не окремими повідомленнями, а одним потоком данних (Як передача звуку), що фактично аналогічно  вище сказаному. Це повинно мінімізувати затримку в часі!!!

Да, доречі, ця затримка 0.5-1 сек.  :-[


Хто підкаже про реалізацію передачі відео через інтернет?

Почав реалізовувати власний кліент-сервер! + передача IP та номеру порта за допомогою повідомлення через сервер Jabber. Вже все конектиться! Тепер буду проводити експеременти з передачею данних, про результати, обовязково відпишуся! ;D

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Автопілот
« Відповідей #66 : 2011-01-05 15:56:25 »
Ніхто не хоче підняти власний стартап на тему "керування побутовими приладами з телефону через вихід для гарнітури"? :-)
[Fedora Linux]

Відсутній piktor

  • Видавець
  • *******
  • дописів: 3396
  • Карма: +0/-0
Re: Автопілот
« Відповідей #67 : 2011-01-05 18:30:11 »
Ніхто не хоче підняти власний стартап на тему "керування побутовими приладами з телефону через вихід для гарнітури"? :-)
Дорогі яхти дозволяють керувати собою за допомогою iPad.  :)
Всим, хто тоне й не знає,
За що вхопитись,
Хто вже з останніх
Вибився сил:
Попереджаю - я не колода,
Попереджаю - я крокодил.

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #68 : 2011-01-05 22:18:52 »
Написавши власні програми клієнт(телефон) та сервер(комп) які дізнаються один про одного через сервер jabber, було досягнуто зменшення затримки між окремими повідомлення до 300 мілісекунд, що приблизно в 2 рази менше ніж безпосередня передача повідомлень через сервер jabber. Це вже є великим плюсом!  ::)

Але залишилося реалізувати останню ідею передачі повідомлень,  у вигляді неперервного потоку данних від клієнта до сервера! :'(

Буде щястя, якщо вдастця зменшити затримку до 50-100 мс! :'(


« Змінено: 2011-01-05 22:27:34 від Ubuntu_Linux »

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #69 : 2011-01-06 14:51:30 »
Поправив код:  :P тепер клієнт чекає, перед відправкою повідомлення, коли сервер пришле йому звіт, що він отримав попереднє повідомлення. Для визначення дискретної швидкості передачі повідомлень, я кожні 10 сек відправляю на сервер тестовий рядок "### 10 sec ###" .  А потім визначаю кількість повідомлень які прийшли між тестовими рядками.

У результаті я отримав, у середньому (+-5 повідомлень) 160 повідомлень за 10 сек. В один бік з клієнта на сервер! (природно у зворотний бік стільки ж)

За 1 сек. кількість повідомлень = 16.
У результаті матимемо затримку між повідомленнями в 1 / 16 = 0.0625 сек. , або 63 милі-секунди.  8-) 8-) 8-) Ура товарищи!!!
Причому це загальна затримка (туди - сюди)!
« Змінено: 2011-01-06 14:52:50 від Ubuntu_Linux »

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #70 : 2011-01-06 18:12:28 »
Думаю для людей які не зовсім розуміють суть цифри 63мс,  :o потрібно пояснити її більш детально.
Отже, на рисунку представлена часова розгортка PPM сигналу який передається з RC пульту на приймач літального апарату. У відповідності до тривалості певного імпульсу, який вормується по відхиленню ручки на пульті, серва на літаку відхиляється від свого нульового положення на визначений кут. Також важливою характкристикою є час через який прийде новий імпульс на приймач і цей час, як видно з рисунку, дорівнює 20 мілі-секунд.

 :o :o Якщо порівнювати 20мс з тим, що я отримав, то виходить в мене час між даними більший в 3 рази. Що не є смертельним, а сповна "приемлемо" !!! Але час передачі повинен зменшитися коли організувати неперервний потік даних, що в перспективі!!!

По разрахункам, потоку зі швидкістю 25 Кбіт/сек повинно вистачити з головою.  :P

Жаль, що ніхто не хоче помозгувати на тему автопілоту. Або я закрутив усе так, що нічого не зрозуміло? :-?

« Змінено: 2011-01-06 18:22:28 від Ubuntu_Linux »

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1929
  • Карма: +5/-0
Re: Автопілот
« Відповідей #71 : 2011-01-06 20:01:47 »
Off-topic:
от добре на LOU вже блоги є, а то я думав де собі завести ;)
Fedora 35 (x86-64)

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #72 : 2011-01-07 00:24:00 »
Цитата
З такою затримкою думаю літати можна. А як на рахунок такого тесту запустити передачу на час 45 хв і подивитися скільки буде провалів і який середній час обміну даними.

Час виміру 10 хвилин, результат на лицо. :rc_plane:



Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #73 : 2011-01-07 00:24:34 »
Цитата
З такою затримкою думаю літати можна. А як на рахунок такого тесту запустити передачу на час 45 хв і подивитися скільки буде провалів і який середній час обміну даними.

Час виміру 10 хвилин, результат на лицо.  ;)



Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Re: Автопілот
« Відповідей #74 : 2011-01-24 17:27:47 »
На замітку, подумати над реалізацією створення карти місцевості за допомогою знімків з висоти та данних з GPS. Також хочу сказати , що можу дати на тест трекер, який буде записувати дані у файл на карту памяті телефона. Для цього потрібно тел. з GPS !