[CA80]Obudowa.

Kącik dla elektroniki retro - układy, urządzenia, podzespoły, literatura itp.
Awatar użytkownika
Zegar
User
User
Posty: 316
Rejestracja: wtorek 02 lip 2019, 14:42

[CA80]Obudowa.

Postautor: Zegar » sobota 02 sty 2021, 21:07

Nowy CA80 na płytce kolegi @phill2k jest prawie gotowy. Przydałaby się dla niego obudowa. Niestety kalkulatory ELWRO 183, których obudowa została wykorzystana przez Pana Gardynika, są trudnodostępne. Pojedyńcze egzemplarze osiągają cenę rzędu kilkuset złotych (np. https://www.olx.pl/oferta/elwro-183-kal ... HMB6l.html). Zdecydowałem się na tańszy model. Jest co prawda większy, ale okazało się to zaletą - nie trzeba nic upychać.
CA80_ELWRO330_D.jpg


Egzemplarz który kupiłem, był sprawny. Oczywiście wymontowałem z niego wszystko. Jako wyświetlacz służyła radziecka lampa VFD. Jej cena to prawie cała wartość zakupu, czyli obudowę mam gratis. Na razie zamontowałem zastępczy wyświetlacz LED mojej konstrukcji. Podparłem go prowizorycznym wspornikiem ze ścinków laminatu. (Nie ma takiego złomu, który się nie przyda w domu.)
GERBER_CA80_DISPLAY.zip

CA80_ELWRO_EKSMISJA.jpg


Niestety nie umiem zrobić ładnej klawiatury mechanicznej... Żeby nie oszpecić komputerka, zaprojektowałem klawiaturę dotykową. Nie napisałem jeszcze porządnego programu, który będzie reagował tak jak prawdziwa klawiatura. Na razie prosty testowy program symuluje wciśnięcie klawisza i po chwili jego puszczenie. Nie wiem, jak rozwiązać problem trzymania wciśniętego klawisza.
CA80_ELWRO330.jpg

Gerber_CA80_touch.zip

CA80_Touch.zip


Kiedy projektowałem płytkę, nie wiedziałem jeszcze, jaką obudowę użyję, więc nie przewidziałem mocowania. Nie projektowałem otworów, bo byłoby to nieestetyczne. Spód płytki pokryty jest warstwą miedzi, więc można, zdrapawszy uprzednio lakier, przylutować nagwintowane tulejki.
CA80_MOCOWANIE_KLAW.jpg


Maskownica klawiatury miała wiele otworów, więc ją usunąłem. Była tylko w kilkunastu punktach zgrzana z górną częścią oudowy. Wystarczyło zeskrobać nożem cienką warstwę plastiku i połączenie puszczało. Obyło się bez uszkodzeń.
CA80_MASKOWNICA_KLAW.jpg


Nową maskownicę wyciąłem ze starego kawałka pleksi. Nie mam CNC ani laserowej piły, więc wyszło, jak wyszło. Pod "szkło" podłożyłem czarny papier. Wywierciłem otwory przez które przełożyłem przylutowane tulejki. Otwór do złącza klawiatury wyciąłem multitoolem (na szczęście tego nie widać). "Śledzie" ze starego PeCeta posłużyły jako wsporniki nowej klawiatury.
CA80_ELWRO330_F.jpg


Jako sterownik klawiatury użyłem przerobioną płytkę symulującą wyświetlacz i klawiaturę CA80 na konsoli VT100, którą zaprojektowałem wcześniej. Do podłączenia modułu MPR121 użyłem złącza przewidzianego dla wyświetlacza LCD. Przeciąłem kilka ścieżek i przylutowałem w następujący sposób:
PIN1 D2 (IRQ)
PIN2 SCL (MPR121 ma otwarty dren i nie boi się +5v)
PIN3 SDA (jak wyżej)
PIN4 GND - bez zmian
PIN5 +3.3V
Gerber_CA80_Terminal.zip

CA80_TERMINAL.pdf


W obudowie zostało jeszcze dużo miejsca np. na zasilacz sieciowy. Na razie używam gniazdo, które przewidział autor płytki. Wyciąłem z boku obudowy otwór i bez problemu daje się podłączyć przewód. Boję się trochę, że przez pomyłkę włożę tam nie tę wtyczkę... Większość zasilaczy, które mam, ma taki sam wtyk (5,5 x 2,1 mm), jednak napięcia oferują wyższe. Jeżeli coś jest możliwe, to na pewno kiedyś się zdarzy...
CA80_ELWRO330_B.jpg


Gniazdo ZU50 podłączyłem za pomocą płytki drukowanej. Zaprojektowałem ją w ramach ćwiczeń obsługi Kicada. Można było zaprojektować mniejszą... Kiedy już ją miałem fizycznie, dotarło do mnie, że nie zmieści się w obudowie... No ale nie wiedziałem, że istnieje ELWRO 330. :-)
CA80_ELWRO330_C.jpg

CA80_ELWRO330_E.jpg

Gerber_CA80_ZU50.zip


Kalkulatory można kupić na przykład na OLX: https://www.olx.pl/oferta/kolekcjonersk ... HLYRN.html lub https://www.olx.pl/oferta/kalkulator-el ... HWVK4.html

Może nie jest to zbliżone do oryginału, ale mnie się podoba.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein

Awatar użytkownika
Zegar
User
User
Posty: 316
Rejestracja: wtorek 02 lip 2019, 14:42

Re: [CA80]Obudowa.

Postautor: Zegar » sobota 02 sty 2021, 22:45

Zapomniałem opisać zasilanie klawiatury. W CA80 klawiatury są pasywne, czyli nie potrzebują zasilania. W "starej" wersji styki klawiszy były połączone w matrycę 3 x 10. W "nowej" zaś 4 x 6, więc zaoszczędzono trzy linie. ZK nadal ma trzynaście pinów, ale trzy pierwsze są niepodłączone. Pod płytką MIK290 poprowadziłem przewody do dodatkowych punktów lutowniczych. Do ZK1 +5V, a do ZK2 GND. To samo zrobiłem na dodatkowej płytce "terminala" Na zdjęciu widać dolutowany czerwony przewód i obok niego goły przewód przylutowany do pola GND z którego zdrapałem lakier.
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein

Awatar użytkownika
Zegar
User
User
Posty: 316
Rejestracja: wtorek 02 lip 2019, 14:42

Re: [CA80]Obudowa.

Postautor: Zegar » środa 06 sty 2021, 20:43

Poradziłem sobie z klawiaturą. Przepraszam, że na Arduino, ale po co się męczyć. Jak będzie coś trudniejszego, zastosuję inny kontroler. ;-) (Najpierw się nauczę.)
To jest najważniejsza funkcja programu. Reszta to ustawienie wartości parametrów MPR121 (pożyczone) i transmisja I2C.

Kod: Zaznacz cały

// ------------------------------------------------------------------------------
// Kody klawiszy tworzymy wg. wzoru: starsza cyfra nr kolumny,
// mlodsza ma zero na pozycji numeru wiersza
//
//  wiersz \ kolumna  5 4 3 2 1 0
// -------------------------------
//  3 (0111)          Z C D E F M
//  2 (1011)          X 8 9 A B G
//  1 (1101)          Y 4 5 6 7 .
//  0 (1110)          W 0 1 2 3 =
// ------------------------------------------------------------------------------

void czytajKlawiature()
{
  uint16_t touchstatus;
  int touchNumber;
  while (checkInterrupt());   // Wbrew nazwie nie zglaszamy przerwania
  touchNumber = 0;
  Wire.requestFrom(0x5A, 2);  //read the touch state from the MPR121
  byte LSB = Wire.read();
  byte MSB = Wire.read();
  touchstatus = ((MSB << 8) | LSB); //16bits that make up the touch states
  byte row = 0;
  byte column = 0;
  for (int j = 0; j < 4; j++) // Check how many electrodes were pressed
  {
    if ((touchstatus & (1 << j)))
    {
      touchNumber++;
      row |= 1 << (3 - j);  // Odwrotna kolejnosc elektrod...
    }
  }
  if (touchNumber == 1)
  {
    touchNumber = 0;
    for (int j = 4; j < 10; j++) // Check how many electrodes were pressed
    {
      if ((touchstatus & (1 << j)))
        touchNumber++;
    }
    if (touchNumber == 1)
    {
      byte col = touchstatus & 0x3F0;
      for (int j = 4; j < 10; j++) // Check which electrode were pressed
      {
        if ((touchstatus & (1 << j)))
          column = 5 - (j - 4);   // Też wyszlo odwrotnie
      }
      byte keyCode = (row ^ 0xF) | ( column << 4 ); // Obliczamy kod klawisza
      sendKey(keyCode);
    }
    else
    {
      byte keyCode = 0xFF;  //noKey()
      sendKey(keyCode);
    }
  }
  else
  {
    byte keyCode = 0xFF;
    sendKey(keyCode);     //noKey()
  }
}

Teraz działa prawie jak mechaniczna.
CA80_Touch_opt.zip
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein


Wróć do „Retro”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości