Prawie rok temu pisałem o noworocznym prezencie, tym razem „Mikołaj” nie chciał być gorszy.
Opisując moje zmagania z budową elementów pulpitu, kilka razy zwracałem uwagę, że żałuję pozostawienia wielu interesujących elementów w złomowanej ET41-135 w tym najważniejszego – kolumny nastawników. Moja własna konstrukcja musiała dać radę i w sumie byłem z niej zadowolony, bo jak to mówią „z braku laku dobry i kit”. Były jednak chwile gdy obawiałem się o jej stan. Sam budowałem, więc wiedziałem jak się obchodzić z, bądź co bądź delikatną konstrukcją, jednak młodzi pasjonaci odwiedzający imprezy, na których prezentowałem swój pulpit, mieli mniej delikatne podejście. Kilka razy musiałem poprawiać działanie mechanizmu i nadal marzyłem o oryginale. W głębi serca wierzyłem, że w końcu tak się stanie i wstrzymywałem pokusę budowy kopii we własnym zakresie. Minęło sporo czasu, i jak to zwykle bywa, spotkałem kilka życzliwych osób, i tuż przed Świętami piękna kolumna nastawników zagościła w moim domu. I jak tu nie wierzyć w cuda?!
Wyczekiwany długo element jest, więc trzeba się wziąć za robotę. Brakowało w nim kilku części, dlatego chcąc posłuchać przyjemnego klekotu zapadek musiałem dorobić tylną ścianę i podstawę z gniazdami na łożyska wałów. Kilka kawałków sklejki i nastawnik stanął o własnych siłach. Można było w końcu zakręcić kieratem. Teraz czas dobrać się do wnętrza. Długie życie członu B lokomotywy ET41-179 odcisnęło swoje piętno i trochę wysiłku zajęło pozdejmowanie wszystkich manipulatorów, i pokrywy mechanizmów zapadkowych. W końcu była ona tylko dekadę młodsza ode mnie. Człon A przedłużył swój żywot jako część ET41-182.
Zająłem się oględzinami i czyszczeniem mechanizmów. Pozbyłem się nagromadzonego latami brudu i nasmarowałem elementy, które za chwilę znowu znikną pod ciężką pokrywą. Swoją drogą mimo ciężaru, stare rzeczy były nie tylko solidnie budowane ale przede wszystkim naprawialne. Myślę tu o konstrukcji, która daje się rozbierać nie stresując urwaniem jakiegoś ukrytego zaczepu będącego częścią plastikowego odlewu. Jak nie wiesz człowieku jak otworzyć taką nowoczesną obudowę, to jest duża szansa granicząca z pewnością, że pourywasz to i owo, i w efekcie element stanie się bezużyteczny. Nastawnik odczyszczony, poskładany… no to czas pomyśleć o integracji z symulatorem, bo dostosowanie całego pulpitu zajmie jeszcze sporo czasu.
Jakiś czas temu zainspirowałem się projektem COM, czyli komunikacji szeregowej pulpitu z MaSzyną. PoKeys jest bardzo fajny i w zasadzie wszystko co chciałem mam do niego podłączone ale ma też i swoje ograniczenia. Nawet udało się ogarnąć zmiany wprowadzane w nowszych wersjach exe, więc czego chcieć więcej. Ano zawsze korciło mnie, żeby mając stabilny mechanizm w postaci oryginalnej kolumny nastawników pozbyć się niestabilności działania enkodera szczelinowego. Wprawna ręka i dobra regulacja elementów elektronicznych pozwalała na w zasadzie niezakłóconą jazdę, jednak inne osoby mogły mieć z tym problem. Czasami gubienie się impulsów było irytujące. Niestety nie miałem pomysłu jak wprowadzić bezpośredni odczyt pozycji z użyciem dotychczasowego interfejsu i pokusiłem się spróbować nowego.
Z Arduino korzystałem już od dawna i na jego bazie wykonałem kilka projektów, w tym konwerter A/D do obsługi haslera. Dzięki dobrym radom bardziej doświadczonych w tym temacie kolegów udało mi się zrobić mały prototyp jeszcze na posiadanym Arduino UNO. Efekty były zadowalające i pomyślałem realnie o przejściu na nową platformę. Zakupiłem Arduino Mega żeby już w miarę docelowo testować kilka kluczowych elementów takich jak kontrolki (symulowane diodami), przełączniki, mierniki, potencjometr hamulca i bawiłem się nowymi możliwościami. Pozytywne testy skłoniły mnie do przygotowania dedykowanej płytki z ekspanderami, która miała stać się dedykowanym interfejsem dla kolumny nastawników, która jeszcze była w fazie marzeń. Kilka modyfikacji kodu i interfejs czekał już tylko na podłączenie do jakiegoś elementu wykonawczego. Ekspandery stały się nieodzowne przy chęci podłączenia wszystkich 44 pozycji nastawnika jazdy, 7 pozycji bocznikowania i jeszcze nastawnika kierunku. Dzięki temu będę miał jedną płytkę z wiązkami przewodów w obudowie nastawnika i tylko jeden 4-żyłowy przewód do podpięcia tego niezależnego modułu do płytki kontrolera. To znacznie ograniczy plątaninę przewodów i ułatwi przenoszenie elementów.
Oczekiwanie na zdobycie nastawnika i inne obowiązki były okazją obmyślania najlepszej i realnej w budowie, a zarazem stabilnej i trwałej konstrukcji mechanizmu stykowego. Miałem chwilę zawahania nad układem optycznym z jakąś formą enkodera jednak skończyło się na pierwotnej koncepcji styków. Gdy już dostałem swój nastawnik i zobaczyłem, że ma kompletne krzywki, to pomyślałem, że może można je skutecznie wykorzystać i gdyby nie brak oryginalnych styków to pewnie bym tego spróbował. Niestety styków nie było, więc zacząłem budowę własnego koła stykowego. Kawałek sklejki i kilkadziesiąt śrub, trochę zabawy w lutowanie, i Nowy Rok zainaugurowałem pierwszym testem nowego interfejsu podłączonego poprzez Arduino Mega.
Projekt wymaga jeszcze drobnych poprawek i testowania na okoliczność stabilności, a także trwałości ale pierwsze efekty są obiecujące.
Po pierwszych testach zakończonych sukcesem pokusiłem się o próbę połączenia sił PoKeys i Arduino. Większość funkcji kontroluje dotychczasowy mikrokontroler, a Arduino z dedykowanym interfejsem nastawników przejęły obsługę nastawnika jazdy. Taki mariaż sprawdził się nadspodziewanie dobrze co pozwala pozytywnie myśleć o czekającej mnie migracji. Liczę, że wbudowane w pulpit Arduino będzie mogło sukcesywnie przejmować zadania bez konieczności wyłączenia wszystkich funkcji na czas modernizacji. Znając życie proces ten potrwa dość długo i dobrze byłoby, aby zachować funkcjonalność na ile się da w jego trakcie.
Kolejny krok to dodanie obsługi nastawnika kierunkowego. W zasadzie to łatwa sprawa, dwa mikroprzełączniki dźwigienkowe dopasowane do odpowiednich krzywek i gotowe. Chciałem jednak zrobić to raz, a dobrze i przy okazji przećwiczyć rozwiązania, które będę mógł zastosować w nastawniku osłabienia pola. Trochę czasu zajęło dobranie najlepszego przełącznika i jego ustawienie w optymalnej pozycji. Kolejny był już tylko kopią pierwszego rozwiązania. Na koniec lutowanie przewodów i można podłączyć się do interfejsu, który roboczo nazwałem I2CIN czyli I2C Interfejs Nastawników. Jestem z niego bardzo zadowolony bo mam gotowca, do którego wystarczy podłączyć kolejne nastawniki, a przy okazji przećwiczyłem sobie obsługę ekspanderów. Dodatkowo na wolnych pinach wyprowadziłem sobie kontrolne LEDy, co pozwala szybko sprawdzić prawidłowość sygnałów z każdego nastawnika. Ewentualny brak kontaktu jest tu szybko widoczny, a to zwykle najczęstsza przyczyna problemów z elektroniką i sterowaniem.
Teraz już tylko zmultiplikować koncepcję kierunkowego i będę mógł się bardziej rozpędzić korzystając z bocznika.
Zatem słowo ciałem się stało i po kilku godzinach składania kloców ostatni z nastawników zaczął działać. Wykorzystanie oryginalnych krzywek zmusiło mnie do dokonania niezbędnych zmian w kodzie mikrokontrolera. W odróżnieniu od nastawnika jazdy i kierunku, krzywki bocznika nie mają indywidualnych wcięć dla każdej z pozycji identyfikujących jednoznacznie położenie wału dlatego musiałem wykorzystać krótki algorytm rozpoznawania pozycji na podstawie analizy wszystkich 7 styków.
Sterowanie wszystkimi trzema nastawnikami zostało wykonane i wstępnie przetestowane. Teraz czas na fizyczną integrację kolumny z pulpitem co będzie wymagało dokonania… masakry piłą mechaniczną.
Takowa masakra została rozpoczęta i są już jej pierwsze efekty. Pulpit przybrał teraz trochę bardziej realistyczne kształty, a mój palec lekko ucierpiał. Początkowe założenia konstrukcji pudła pulpitu nie uwzględniały bardzo ścisłych odniesień do rzeczywistości dlatego późniejsze modyfikacje nie zawsze mogą się do niej zbliżyć. Podcięcia wokół kolumny nastawników nie będą niestety zgodne z oryginałem ale ogólny wygląd ma do niego nawiązywać. Będzie też trochę wygodniej bo miejsca na kolana będzie więcej.
Stary to co zrobiłeś to jest genialne.
Jak ci sie udało jednocześnie i Arduino i PoKeysa podłączyć to nie wiem. Mi i koledze wychodziło tylko z PoKeysem.
Szukam obecnie sposobów na integracje z Arduino MaSzyny i widzę że masz wszelką myśl jakiej potrzebuję 😉
Informacje o początkach przesiadki z PoKeys na Arduino są opisane w https://baur.pl/arduino-przejmuje-kontrole/ Większość rzeczy może współpracować, za wyjątkiem kranów hamulcowych, o czym wspominam w powyższym wpisie.