Autor Wątek: Kokpity, panele - dla budowniczych symulatorów  (Przeczytany 130597 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

damos

  • Gość
Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #195 dnia: Czerwca 19, 2009, 16:50:35 »
projekt ma takie możliwości,że trudno sobie wyobrazić jego praktyczne zastosowanie.
No... dziękuję bardzo - wydaje mi się jednak, że ja bym tam kilka zastosowań znalazł ;) Zgaduje, że chodziło ci o trudność z praktycznym wyczerpaniem możliwości a nie z zastosowaniem ?

Właściwie to system jako całość z softem jest dobrym materiałem na patent (kiedyś to było modne,nie wiem jak to teraz wygląda)
ja to chcę jako opensource wydać a nie patentować :)

przepraszam za pytania,ale to mój stary nawyk,gdy coś mam zrobić staram się  zrozumieć działanie układu
I bardzo dobrze! Wszystkie pytamnia mile widziane. W dodatku często odpowiadając na cudze pytania zaczynasz widzieć "dziury" w swoim rozwiązaniu. Rozumiem, że od strony sprzętowej "przyklepujesz" projekt ? Pozostaje mi jeszcze pomiar prądu pobieranego przez drivery i ustalenie, jaki stopień wyjściowy z uP jest potrzebny (bo np. 28x30 dla linii "CLK" daje max 47uA na driver ! :)  ).

BTW - z Codekingiem chciałbym porozmawiać o definiowaniu wirtualnych obszarów na wyświetlaczu - on już ma pierwsze przemyślenia za sobą. mam swoja wizję, ale po co ryzykować powtarzanie błędów, przez które ktoś już przeszedł?
« Ostatnia zmiana: Czerwca 19, 2009, 17:02:40 wysłana przez damos »

Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #196 dnia: Czerwca 19, 2009, 18:18:55 »
Cytuj
Zgaduje, że chodziło ci o trudność z praktycznym wyczerpaniem możliwości a nie z zastosowaniem ?
Dokładnie o to mi chodziło.
Co do obciążalności prądowej uP przez wejścia MBI 5026 to można pomyśleć ewentualnie o bramce separującej CLK w każdej DB (bramki są tanie,może być układ tranzystorowy).

mickey81

  • Gość
Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #197 dnia: Czerwca 19, 2009, 18:57:33 »
a ja nieśmiało od siebie zapytam, na jakiej zasadzie będzie działał soft do tego niezwykłego ustrojstwa :)  :020:

damos

  • Gość
Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #198 dnia: Czerwca 19, 2009, 19:30:28 »
Co do obciążalności prądowej uP przez wejścia MBI 5026 to można pomyśleć ewentualnie o bramce separującej CLK w każdej
Świetny pomysł. Można by to montować tylko w pierwszej DB (reszta w stacku  będzie sterowana z niej). Buforować trzeba będzie dwie linie: CLK oraz LE. Jest jakiś mały i tani układ zawierający dwie bramki z otwartym kolektorem ?

a ja nieśmiało od siebie zapytam, na jakiej zasadzie będzie działał soft do tego niezwykłego ustrojstwa :)  :020:
A o co dokładnie pytasz? Ogólne wyjaśnienia są na poprzednich stronach. Chodzi o szczegóły czy przybliżenie idei? W planie są dwie wersje softu do sterowania. Właściwie to dwa algorytmy sterowania przełączane w konfigu Jeden dla najszybszej reakcji (kiedy będzie odpalony na osobnym kompie). Drugi dla jak najmniejszego zużycia CPU (żeby nie zabierać CPU symulatorowi - ale wtedy update będzie tylko kilka razy na sekundę).
« Ostatnia zmiana: Czerwca 19, 2009, 19:39:56 wysłana przez damos »

mickey81

  • Gość
Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #199 dnia: Czerwca 19, 2009, 20:08:45 »
Przejrzałem posty jeszcze raz, bo Damos już raz mi udowodnił, że mam problemy ze wzrokiem, ale nie znalazłem nic, co by mi rozjaśniło wątpliwości. Otóż wyjaśnij proszę, czy będzie to jakaś duża aplikacja sterująca całością projektu, czyli MB i wszystkimi DB równocześnie? Trzeba też rozważyć optymalizację kodu pod względem obciążalności procesora PC? Sam symulator jest dość obciążającym procesem, a reszta? Masz jakiś pomysł?

damos

  • Gość
Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #200 dnia: Czerwca 19, 2009, 21:27:31 »
Przejrzałem posty jeszcze raz, bo Damos już raz mi udowodnił, że mam problemy ze wzrokiem
Tam od razu "udowodnił" i "problemy" :)

Trzeba też rozważyć optymalizację kodu pod względem obciążalności procesora PC? Sam
symulator jest dość obciążającym procesem, a reszta? Masz jakiś pomysł?
hmm na razie mam to:
W planie są dwie wersje softu do sterowania. [...] dla najszybszej reakcji (kiedy będzie odpalony na osobnym kompie). Drugi dla jak najmniejszego zużycia CPU (żeby nie zabierać CPU symulatorowi
:)

ale nie znalazłem nic, co by mi rozjaśniło wątpliwości. Otóż wyjaśnij proszę, czy będzie to jakaś duża aplikacja sterująca całością projektu, czyli MB i wszystkimi DB równocześnie?
Autorowi zawsze wydaje się, że wszystko jest jasne, nawet kiedy nie jest :)
Już śpieszę z wyjaśnieniami:

Zgodnie z założeniami:
[...]uniwersalne[...] PCB, które będzie takie samo dla wszystkich modułów i będzie zawierać ATMega16 wraz z supportem dla USB. Do niej podłączało by się peryferia typu wyświetlacze LCD, LED, diody itd... [...] Była by to solidna podstawa do budowania różnych urządzeń. Wszystkie one były by na PC obsługiwane jednym, spójnym interfacem.
Hardware i bazowa aplikacja do sterowania nim będą kompletnie niezależne od jakiegokolwiek symulatora. Będziesz mógł używać ich z dowolnego FS'a a nawet  zrobić sobie na tym sterowanie oświetleniem w domu przez internet :)
Mówię zupełnie serio. Główny kontroler będzie pracować jako serwer sieciowy - wystawiasz go więc na publicznym IP. [...] Łączysz się z serwerem przez [...]net
Moja koncepcja jest taka:
(zrobiłem prosty diagram do prezentacji tej idei)
http://www.damos.k11.pl/LO/diagram/index.htm

Jest tam ogólnie pokazane, jak informacje z symulatora są pobierane i wysyłane dalej za pomocą TCP do kontrolera [...]. Kontroler może być na tej samej maszynie - to nie problem. Powinien być serwisem windows lub osobną aplikacją. Dla jasności został umiejscowiony na innej.

Punkt styku oparty na TCP zdejmuje konieczność tworzenia bibliotek dla różnych języków i różnych systemów op.

- Program sterujący (Controller) jest jeden i steruje wszystkimi MB. Do MB podłączone są DB, ale nimi Controller się nie przejmuje (w konfigu jedynie może miec zdefiniowane pewne parametry adresacji).
- Tak, jak jest pokazane na diagramie: MB podłączone do USB na PC, USB kontrolowane przez libusb, a z libusb korzysta jedna aplikacja: Controller.
- Controller będzie serwerem TCP i to będzie jedyna droga komunikacji z nim. Będzie mógł pracować jako Windows Service lub Linux Daemon.
- Protokół komunikacji będzie maksymalnie uproszczony i będzie obejmować:
 * konfigurację (definiowanie fizycznych urządzeń takich jak wielkości konkretnych wyświetlaczy i ilości podłączonych diod)
 * definiowanie virtualnych urządzeń (takich jak obszary tekstowe na różnych wyświetlaczach LCD, składanie kilku wyświetlaczy 7-seg w jeden, wieloznakowy. Wtedy wysyłasz dane do tego "virtualnego" urządzenia nie martwiąc się, gdzie powinien pojawić się jaki znak lub cyfra)
 * wysyłanie poleceń do "virtualnych" urządzeń (np. clear)
 * wysyłanie danych do "virtualnych" urządzeń (np. wysyłasz liczbę do virtualnego urządzenia "frequency disp 1" a jeden z wątków Controllera, odpowiedzialny za obsługę danego typu MB już sobie znajdzie, na jakie segmenty ma to trafić i zamieni ją na odpowiednią prezentację binarną właściwą dla tych wyświetlaczy, i wyśle je gdzie trzeba)
W późniejszej wersji Controller zajmie się również:
- symulowaniem mrugania lampek itd.
- przyjmowaniem prośby o wysyłanie zdarzeń danego typu (jak np. kliknięcia klawisza, obrót/zmiana położenia przełącznika, obrót enkodera itd)
- wysyłaniem zdarzeń (eventów) zarejestrowanym klientom (jak np. kliknięcia klawisza, obrót/zmiana położenia przełącznika, obrót enkodera itd)
- generowaniem zdefiniowanych key-kodów (emulacja klawiatury) w odpowiedzi na zdarzenia w urządzeniu USB.

Proces wysyłania danych do urządzeń USB będzie zależny od konfiguracji - albo natychmiast, albo nie częściej niż np. co 30 ms (jest szansa na zakumulowanie większej ilości zmian i wysłanie ich razem i zaoszczędzenie CPU)

Przyznaję, że nie robiłem testów obciążenia kompa przy masowej transmisji USB. Wydaje mi się jednak, że ze względu na "powolność" ATmegi nie powinno to stanowić problemu.
« Ostatnia zmiana: Czerwca 19, 2009, 21:33:46 wysłana przez damos »

mickey81

  • Gość
Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #201 dnia: Czerwca 19, 2009, 21:32:09 »
no, teraz wszystko jasne :) Może skopiuj poprzedni post celem zamieszczenia go w manualu :)
Pozdrawiam
mickey81

Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #202 dnia: Czerwca 20, 2009, 12:33:03 »
Witam,
jestem po testach,układ działa prawidłowo (jak zwykle).Jest jeden MBI 5026,ale dla sprawdzenie projektu wystarczy.


Teraz parę spostrzeżeń na temat konfiguracji przyszłego softu.Z tego co pamiętam (konfigurowałem tylko jeden raz)z mojej konfiguracji SIOC to trzeba było wpisać liczbę płyt master oraz córki,rodzaj interfejsu USB czy LPT i jeszcze parę innych rzeczy.W momencie pisania skryptu w SIOC deklarowało się adresowanie konkretnych wyjść oraz wejść.
W naszym przypadku może być podłączonych duża liczba różnorodnych urządzeń.
Zastanawiam się nad jedną sprawą.Informacja jest przesyłana w jednym kierunku u nas oraz w OC,nie ma potwierdzeń w sensie identyfikacji oraz prawidłowego odbioru (np.suma kontrolna)tak może być.Ponieważ nie ma systemu identyfikacji ilości oraz typu DB to ktoś nieuważny może zadeklarować np.10 DB a podłączyć 1 DB i program będzie wysyłał informację do 10 DB,ale to sprawa tego kto to stosuje.
Jeszcze jedno trywialne pytanie do Damosa,może już o to pytałem.Większość urządzeń stosuje USB (mysz,kontroler gier,aparat cyfrowy itp.)Czy są to wyspecjalizowane układy do obsługi USB?Jeśli tak to czy nie można tego typu peryferial zastosować u nas?Może obsługa tego układu przez uP jest nieefektywna.

damos

  • Gość
Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #203 dnia: Czerwca 20, 2009, 15:23:51 »
Jeszcze jedno trywialne pytanie do Damosa,może już o to pytałem.Większość urządzeń stosuje USB (mysz,kontroler gier,aparat cyfrowy itp.)Czy są to wyspecjalizowane układy do obsługi USB?Jeśli tak to czy nie można tego typu peryferial zastosować u nas?Może obsługa tego układu przez uP jest nieefektywna.
Nie ma sensu stosowane dodatkowego układu pośredniczącego dla USB. Nadal pozostaje kwestia komunikacji między nim a ATmegą (szybkość). Dodatkowo przychodzi koszt tego układu, lutowanie go, miejsce na płytce. Obecne, software'owe rozwiązanie jest w miarę wystarczające. Później zastosuje się uP Atmela z wbudowaną obsługą USB Hi-Speed - tam dane trafiają po wewnętrznych szynach, co jest dużo szybsze. Na priv już ci dawałem fotkę takiego uP: http://www.damos.k11.pl/elektronika/atmele/IMG_3112.jpg
Producenci myszy nie muszą mieć wysokich transferów. Producenci aparatów cyfrowych w produkcji masowej dodają sobie specjalizowany chip VLSI za kilkanaście $. Mogą nawet korzystać z uP z wbudowaną obsługą USB i potężną mocą obliczeniową - przy cenie cyfrówki to prawie nic.

Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #204 dnia: Czerwca 20, 2009, 16:35:24 »
Pamięć zawodzi,rzeczywiście już o to pytałem i otrzymałem odpowiedź,przepraszam.

Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #205 dnia: Czerwca 20, 2009, 18:48:37 »
BTW - z Codekingiem chciałbym porozmawiać o definiowaniu wirtualnych obszarów na wyświetlaczu - on już ma pierwsze przemyślenia za sobą. mam swoja wizję, ale po co ryzykować powtarzanie błędów, przez które ktoś już przeszedł?

U mnie obsługa obszarów wyświetlacza jest obsługiwana po stronie Windows'a. Jest zrobiona prosto ale daje fajne możliwości. Pierwsze to definiujesz zbiór pozycji znaków, które należą do obszaru (wiersz i kolumna wyświetlacza). Każdemu znakowi dodatkowo nadajesz numer porządkowy, więc łatwo zrobić aby napis był wyświetlany kolumnami (tzn. znak pierwszy w kolumnie 0 i wierszu 0, znak drugi w kolumnie 0 i wierszu 1 itd.). Dodatkowo obszary mają opcje formatowania. Możliwość wyboru z której strony tekst ma być przycięty jeśli jest dłuższy niż obszar. Możliwość zdefiniowania czy za krótki tekst ma być uzupełniany jakimś innym znakiem i z której strony. I ostatnia opcja (tylko gdy nie ma włączonego uzupełniania) to wyrównywanie tekstu do lewej, centrowanie lub do prawej. To wszystko jest proste w implementacji (ale nie po stronie uP). Niby proste ale daje duże możliwości. Dodatkowo nie wykluczam obszarów kolidujących tzn. zawierających znak (pozycję) już używaną w innym obszarze.

Jeszcze pytanie do Damosa - udostępnisz bibliotekę do bezpośredniego sterowania tymi urządzeniami ew. Tzn. protokół wykorzystywany przy komunikacji PC -> MB (USB) ?

Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #206 dnia: Czerwca 21, 2009, 13:30:30 »
Witam,ponieważ nie mam jeszcze możliwości rysowania schematów ideowych to postaram się objaśnić słownie.Moim zdaniem można już robić pcb dla MB.Wprowadzę skróty,które już stosujemy:MB-płyta matka,DB-płyty córki,ST-stack czyli połączone szeregowo z sobą córki.
DB-LED córki realizujące sterowanie 16 LED
DB-LCD córki realizujące sterowanie LCD
BD-7seg córki realizujące sterowanie 7-seg LED
Z założeń wynika,że maksymalny ST dla DB -LED to 30,ST dla DB-LCD to 21.
Na podstawie 2 schematów Damosa można już zaprojektować MB.
Zasilanie alternatywne tzn.z możliwością przełączania.Jeśli mała liczba DB to zasilamy z USB jeśli duża to płyta MB z USB pozostałe DB z zewnętrznego zasilacza najlepiej z PC (masy USB oraz zasilacza połączone).
ST dla DB-LED.
Dla każdego ST  złożonego z DB-LED z MB trzeba wyprowadzić 3 sygnały CLK,SDI oraz LE (1-28).Czyli jeśli chcemy zrealizować wszystkie 28 ST to mamy 28 3 pin wyprowadzeń,gdzie CLK oraz SDI jest wspólne dla 28 ST.
DB-LED ma na wejściu łączówkę 3 pin (CLK,SDI oraz linię LE1 -28).Dwa pierwsze sygnały są buforowane inwerterami (dwa w szereg) HC04.
DB-LED ma 2 układy MBI 5026 oraz 16 wyjść do sterowania LED oraz wyjście 3 pin dla następnej córki.
ST dla DB-LCD.
Mamy tutaj 11 wspólnych sygnałów:D0-D7,RS oraz VCC i GND.Potencjometr do regulacji jasności świecenia na DB-LCD.Można na DB zrealizować podświetlanie.Realizacja pcb dla DB-LED nie powinna być problemem.Jeśli zdecydujemy się wyświetlacze z wyprowadzeniami w jednym rzędzie to można realizować wyprowadzenia wg.schematu Damosa,jeśli LCD 2 rzędy po 7pin to na pin 2 jest gnd na pin 1 VCC.
Wymienione powyżej sygnały mogą być wyprowadzone na taśmę do której można wpiąć łączówki.
Jedyny problem to doprowadzenie do DB-LCD sygnału E pin 6.Trzeba doprowadzić indywidualnie do każdej DB-LED jeden przewód z sygnałem E.
Jeśli coś pominąłem to proszę uzupełnić.
ps
Jeśli miałbym dokument np.schemat ideowy to gdzie go umieścić tak aby można go było pobrać klikając link (tak jak to zrobił Damos).

mickey81

  • Gość
Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #207 dnia: Czerwca 21, 2009, 19:15:48 »
Wrzuć ten schemat może jako obrazek na ImageShack. Każdy będzie mógł go pobrać.
Zastanawiałem się, jak podpiąć więcej przełączników typu toggle i wymyśliłem coś takiego



Dioda służy do sygnalizacji zadziałania układu. Między wejście i wyjście klucza 4066 wpina się zaciski pushbuttonów w mjoyu. Druga para 'styków' w kluczu służy do rozładowania pojemności kondensatora. Można to zrobić również za pomocą dwusekcyjnego przełącznika, wtedy rozładowanie pojemności następowałoby poprzez zwarcie jej drugą parą styków przełącznika. Wówczas można zaoszczędzić jeden tor w 4066
« Ostatnia zmiana: Czerwca 21, 2009, 19:25:24 wysłana przez mickey81 »

Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #208 dnia: Czerwca 21, 2009, 21:42:09 »
Witam Panowie
Kolega Arek dał mi link to tego forum jakiś czas temu ale dopiero teraz tu zaglądnąłem.
Też robię projekt I/O (dla swojego kokpitu A320, który buduję od roku) i jak do tej pory jestem troszeczkę dalej niż to co tutaj widzę. Mam dopracowaną komunikację pomiędzy kompem i mikrokontrolerem przez USB. Aplikacja, która to wszystko kontroluje napisana jest w Visual C#. Cały zamysł jest dość podobny, lecz dla moich potrzeb projekt podzielony jest na dwie części, stanowiące 2 oddzielne płytki. Jedna płytka dla GLARE i PEDESTAL a druga dla OVERHEADA. Docelowo jednak wszystko będzie działało na zasadzie: płytka główna + płytki dodatkowe (podobnie jak w Waszym projekcie).
Parametry a raczej możliwości:
• wejścia A/D - 8
• wejścia - 512 (do których można podłączyć włączniki, przełączniki, enkodery) z możliwością rozszerzenia do 1024
• wyjścia LED - 512 z możliwością rozszerzenia do 1024
• 7 segmentowe wyświetlacze - 256
Obecnie nie robiłem nic z wyświetlaczami LCD bo mój kokpit takich nie potrzebuje ale bez problemów będę w stanie sterować takimi wyświetlaczami, więc w przyszłości możliwość taka będzie.
Kilka szczegółów technicznych na koniec:
1. Konfiguracja w 99% odbywa się z poziomu aplikacji PC, więc przyszłościowo odpada przeprogramowywanie MC.
2. Aplikacja PC używa tylko kilku komend do zapisu i odczytu MC więc jest bardzo łatwo adaptować środowisko do dowolnych potrzeb, chociaż nie planuję innych zastosowań niż symulowanie lotu.
3. Aplikacja jest robiona pod FSX więc ze światem komunikuje się poprzez Simconnect co daje możliwość uruchomienia jej na dowolnym, kompie w sieci.

Na koniec coś co pewno się wam nie spodoba - mój projekt jest zrobiony na PIC18f4550 :015:

Odp: Kokpity, panele - dla budowniczych symulatorów
« Odpowiedź #209 dnia: Czerwca 21, 2009, 22:26:30 »
Witamy na naszym forum.Mam z Arkiem kontakt ale na priv.Zachęcam go do zaprezentowania swoich osiągnięć na naszym forum.Mam nadzieję,że zaprezentuje ostatnie swoje dzieło HUD dla Falcona.
Nasz pomysł zrodził się przypadkowo.Są konkretne potrzeby głównie dla FS oraz Falcona i kolega Damos zaproponował rozwiązanie dla naszych doraźnych potrzeb.W trakcie dyskusji doszliśmy do wniosku,że można zrobić coś więcej i powstaje uniwersalna platforma dla sterowanie układów wykonawczych.Układy wejściowe typu analog,przełączniki,enkodery realizujemy odzielnie z pomocą MJoya.
Cytuj
mój projekt jest zrobiony na PIC18f4550
Ponieważ jest nas mało i każdy reprezentuje swoje umiejętności dlatego ten a nie inny uP.W naszym zespole Damos ma największą wiedzę oraz doświadczenie zarówno w uP jak i w programowaniu.
Cieszę się,że przedstawiłeś swój projekt.Może będzie możliwość współpracy.Jeszcze raz serdecznie witam na naszym forum i myślę,że kolega Damos będzie miał kilka pytań
pozdrawiam,vito_zm