[Projekt] – TypESPwriter – Interfejs do elektronicznych maszyn do pisania

[Uwaga, wpis będzie z czasem uzupełniany, na ten moment dodaję go, żeby w ogóle go dodać]

Moje lata, gdy interesowałem się elektroniką bardziej poważnie minęły za czasów rosnącej popularności Raspberry Pi, więc wiedza już bardzo nieaktualna.
Jednak w związku z moim zamiłowaniem do starych sprzętów perfekcyjnych w swoim działaniu, a wypartych postępem, zamarzyło mi się stworzenie uniwersalnego interfejsu pozwalającego na wpięcie się do elektronicznych maszyn do pisania, które prawie zawsze wprowadzanie znaków oparte mają na zwykłych klawiaturach membranowych. W skrócie maszyna posiada X pinów dla kolumn i Y pinów dla rzędów. Zwieranie poszczególnych pinów pozwala na „wystukanie” danego znaku lub uruchomienie dodatkowej funkcji.

Co posiadam:
2x Elektroniczna maszyna do pisania
— Quasar 180 – na niej opieram obecnie swoje działania ponieważ ścieżki w klawiaturze skorodowały i nie da się jej używać w tradycyjny sposób. W rzeczywistości jest to rebrandowana maszyna Adler Twen T180 na rynek polski, zawierająca polskie symbole.
— AEG Olympia Carrera II – zapasowa, na późniejsze dalsze testy. Całkowicie sprawna jednak z niemieckim zestawem znaków.
— Dwa typowe multipleksery 16-kanałowe oparte o CD74HC4067 (dzięki @rownicki !) – wykorzystywane w podobnych projektach przez innych modderów maszyn do pisania, a z uwagi na 16 kanałów w każdym przyjmuję największe szanse ich użytkowania w szerokiej gamie maszyn.
— Jedno z HSowych Arduino Nano – na obecnym etapie wyłącznie na potrzeby testów samej łączności między PC a maszyną. Po udanych testach planuję przerzucić się na któreś ESP.

Co udało mi się dotychczas zrobić:
:heavy_check_mark: Zmapować układ klawiatury maszyny Quasar 180

Na czym obecnie stanęło:
† Żeby zaoszczędzić czas, próbowałem wesprzeć się ChatemGPT celem stworzenia prostego debugera na zasadzie wysyłania znaków terminalem do maszyny. Niestety nie jestem jeszcze w stanie zlokalizować problemu w postaci zakłóceń tj. Maszyna zachowuje się tak jakby multipleksery / Arduino powodowało zakłócenia i zwierało losowo wszystkie podłączone piny.
Póki co wstrzymuje mnie to przed dalszymi działaniami.

To na tyle! :clinking_glasses:

Dodatkowe multimedia:

  1. Instrukcja obsługi Quasar 180 (Oryginalna instrukcja dla niemieckiego modelu Adler Twen 180)
    Adler_Twen_BA-T180.pdf (832,2 KB)
  2. Instrukcja obsługi AEG Carrera II w języku polskim
    OLYMPIA CARRERA II i II MD (pl)_compressed.pdf (2,4 MB)

Mapowanie klawiszy dla Quasar 180:

Po namyśle przerzucam na część publiczną. Ma to więcej sensu :stuck_out_tongue:

W jaki sposób zwierasz te piny? Jak rozumiem multiplekser może co najwyżej ustawić stan wysoki / niski na danym pinie, a tutaj chcesz całkowicie “pasywnie” zrobić zwarcie między jednym a drugim pinem przychodzącym “z zewnątrz”.

Dwa analogowe muxy zczepione dupami przez COM to właśnie robią.
BTW czemu @bartlomiejnestvarno nie weźmiesz na początek kodu z tego projektu, który sam znalazłeś: GitHub - artillect/serial-typewriter: This is the Arduino code for my typewriter computer project. .
To co teraz kombinujesz i masz na devboardzie to jest dokładnie połowa tego co tam jest , ta która “udaje” klawiaturę.

1 polubienie

Brakujący fragment informacji to że to multiplekser analogowy a nie cyfrowy, on zwiera fizycznie wybrany z 16 opcji pin ze wspólnym (AFAIK standardowo dwoma MOSFETami spiętymi zaporowo po prostu) a nie przekazuje sygnału logicznego

2 polubienia

TIL, nawet nie wiedziałem że coś takiego istnieje, a brzmi jak coś, co mi się może przydać w przyszłości. Dzięki :slightly_smiling_face: