Pytanie:
Sterowanie nadajnikiem Opentx z komputera?
mr_guy99493
2020-06-02 06:03:50 UTC
view on stackexchange narkive permalink

czy standardowy sposób kontrolowania fizycznego samolotu poprzez podłączenie nadajnika frsky do komputera?

NIE chcę używać nadajnika do sterowania symulatorem lotu itp.

Chciałbym sam napisać oprogramowanie autopilota i uruchomić je na komputerze. Chciałbym podłączyć komputer do nadajnika i wysłać dane wejściowe do samolotu, a także przesłać z powrotem dane telemetryczne.

Wolałbym nie używać pilota ardupilot.

odsyłacz do szczegółowych informacji o kimś, kto robił to wcześniej?

Tldr: czy mogę używać klawiatury do sterowania samolotem za pomocą nadajnika frsky?

Dwa odpowiedzi:
mr_guy99493
2020-06-02 06:21:55 UTC
view on stackexchange narkive permalink

OpenTX można zbudować ze źródła dla twojego odbiornika przy użyciu różnych opcji kompilacji, które mogą być przydatne.

Włączenie USB_SERIAL i CLI umożliwi połączenie z Twój komputer za pomocą połączenia szeregowego, którego możesz używać do komunikacji dwukierunkowej.

Będziesz musiał dodać kod do oprogramowania OpenTX, aby akceptować polecenia z komputera i sterować radiem. Najprościej może być wykorzystanie zmiennych trenera do sterowania wyjściami.

Wymagane zmiany to:

w cli.cpp , podłącz port szeregowy do zmienne trenera:

  int cliSet (const char ** argv) {if (! strcmp (argv [1], "trainer")) {int thr; int chan; if ((toInt (argv, 2, &chan) > 0) && (toInt (argv, 3, &thr) > 0)) {ppmInput [chan] = thr; ppmInputValidityTimer = 240; // PPM_IN_VALID_TIMEOUT; serialPrint ("!"); }} ... cliSet kontynuuje}  

w mixer.cpp , włącz wszystkie kanały trenera domyślnie:

  // skomentuj to sprawdzenie // && isFunctionActive (FUNCTION_TRAINER_STICK1 + ch)  

w trainer.cpp , wyczyść wszystkie sygnały trenera po przekroczeniu limitu czasu:

  void checkTrainerSignalWarning () {... else if (! ppmInputValidityTimer && (ppmInputValidState == PPM_IN_IS_VALID)) {ppmInputValidState = PPM_IN_INVALID; AUDIO_TRAINER_LOST (); memset (ppmInput, 0, sizeof (ppmInput)); // wyczyść wszystkie dane trenera} ...}  

Powinieneś wtedy móc używać poleceń przez łącze szeregowe, takich jak:

  set trainer 1 500  

aby kontrolować kanał 1 do wartości 500

jpou
2020-06-02 19:13:58 UTC
view on stackexchange narkive permalink

Nie tylko klawiatura, ale także joystick. Zarówno FC oparte na ArduPilot, jak i na Px4 obsługują taki przypadek użycia. Aby to zrobić - podłącz dowolny standardowy joystick do komputera i zainstaluj oprogramowanie QGroundControll. Wykryje obecność joysticka i pozwoli ci użyć go do sterowania dronem. Zwróć uwagę, że sterowanie za pomocą RC zostanie wyłączone.

Zasadniczo dronem można latać za pomocą dowolnego urządzenia sterującego (lub oprogramowania), jeśli możesz ustanowić łącze danych między komputerem a dronem. Jeśli chodzi o łącze danych, możesz skorzystać z rozwiązań opartych na radiu SiK lub Wi-Fi.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...