Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Tastaturersatz für K7637 » Themenansicht

Autor Thread - Seiten: -1-
000
17.04.2024, 17:47 Uhr
DL
Default Group and Edit


Und weil es so schön war, hier noch ein Vorschlag für die Serielle Tastatur von A5120/K8924 mit dem "LEGO-System für Programmgestaltung"
Manchmal steht irgendwo so eine Kiste ohne Tastatur sinnlos herum...
Als Schaltung kann die vom MC80 übernommen werden -> https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=21851
,es müssen nur Anschlüsse B2<->B4 am Stecker zum BC getauscht werden.
Auch hier gilt wieder, etwas Vorsicht walten lassen, die 12V kommen direkt vom Netzteil, bei Kurzschluss dampft da im Rechnerfuß ein Leiterzug auf der Anschlussplatine weg und die baut sich echt schlecht aus...

Es sind noch nicht alle (Sonder-)Tasten verteilt, die Belegung/Codes findet man im Serviceplan zur Tastatur.
Die *.ino dafür:

Quellcode:

//-----------------------------------------------------------------------------------------------------------------
//Emulation Tastatur K7637 mit PS/2 Tastatur + Arduino Nano und Paul Carpenter's PS2KeyMap+PS2KeyAdvanced library
//-----------------------------------------------------------------------------------------------------------------
#include <PS2KeyAdvanced.h>
#include <PS2KeyMap.h>
//#include <Arduino.h> //nur für VSC
#define DATAPIN 4 //PS/2 DATA
#define IRQPIN  3 //PS/2 CLK
#define TONEPIN 5 //Beeper(buzzer)
//Variablen
uint16_t c,d,rdat;
uint8_t x,y,idx,LEDSTAT;
//von KeyMap library nicht erzeugte bzw. umdefininierte Key Codes ,{Taste,Code}
uint16_t Map[][2] = {
{PS2_KEY_F1,0xc1},{PS2_KEY_F2,0xc2},{PS2_KEY_F3,0xc3},{PS2_KEY_F4,0xc4},{PS2_KEY_F5,0xc5},{PS2_KEY_F6,0xc6},//F1-6
{PS2_KEY_F7,0xc7},{PS2_KEY_F8,0xc8},{PS2_KEY_F9,0xc9},{PS2_KEY_F10,0xca},{PS2_KEY_F11,0xcb},{PS2_KEY_F12,0xcc},//F7-12
{PS2_KEY_HOME,0x9c},{PS2_KEY_ENTER,0xFF},{PS2_SHIFT+PS2_KEY_ENTER,0xFE},//Home,ET1,ET2
{PS2_KEY_L_ARROW,0x96},{PS2_KEY_R_ARROW,0x97},{PS2_KEY_UP_ARROW,0x94},{PS2_KEY_DN_ARROW,0x95},//Cursor
{PS2_KEY_DIV,0x2d},{PS2_SHIFT+PS2_KEY_DIV,0x5f},{0x06,0xaf},//"-","_",Pause für Reset
{PS2_CTRL+PS2_KEY_X,0x18},{PS2_CTRL+PS2_KEY_C,0x03}//...CTRL Codes direkt oder über ENTER2 (shift+enter)
};
//classes
PS2KeyAdvanced keyboard;
PS2KeyMap keymap;

void setup( )
{
keyboard.begin( DATAPIN, IRQPIN );
keyboard.typematic( 11, 1);
keyboard.setNoRepeat(1);
keyboard.setNoBreak(1);
keymap.selectMap( (char *)"DE" );
Serial.begin( 9600,SERIAL_8N1);
}

void loop( )
{
if(Serial.available() >0)
   {
    y=Serial.read();
    if(y==0x20)//Fehler optisch+akustisch
    {
      LEDSTAT=keyboard.getLock();
      LEDSTAT ^= (1<<0);//Scroll LED als Anzeige
      keyboard.setLock(LEDSTAT );
      tone(TONEPIN, 1000, 1000);
      }
    if(y==0x44)tone(TONEPIN, 1000, 1000); //nur akustisches Signal
    Serial.write(0x80);//Typ, die Antwort auf alles :-)
   }
if( keyboard.available() ) //Taste gedrückt?
  {
  c = keyboard.read( );//einlesen
  if( c > 0 && c!=0xfa) // 0 wäre Fehler, 0xfa Acknowledge
    {
    d=keymap.remapKey(c); //remapping auf "DE"Layout
    //die im remap fehlenden Tasten (s.0. codes) einfügen, bzw. redefinieren        
    rdat = c & ( PS2_CTRL + PS2_ALT + PS2_SHIFT + 0xFF ); //Filtern
    for( idx = 0; idx < sizeof(Map)/sizeof(Map[0]); idx ++ )
    if(rdat == Map[idx][0])          //Taste nachschlagen
     {
     rdat = Map[idx][1]; d &= ~0xFF; d |= rdat;  //Code bereinigen & zuweisen                  
     break;
     }
    if(d>0)
     {
      Serial.write( d & 0xff); //Tastencode ausgeben
     }    
    }
  }
}



Dieser Beitrag wurde am 30.04.2024 um 09:36 Uhr von DL editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
18.04.2024, 13:21 Uhr
Klaus



Hallo Detlef,

vielen dank für Deine Tastatur-Adapterserie.

MC80.30 habe ich nicht mehr und einen PC1715 auch nicht.
Aber mein K1520-Gerippe (ala A5120/K8924).

Dort nutze ich schon sei Jahren Deinen kleinen Miniadapter mit ATtiny (der ins EFS10 Gehäuse eingebaut ist) mit einer Mini-PS2-Tastatur, anstelle der K7637.
Funktioniert prima!

Gibt es zu dem jetzigen Adapter-Projekt da Unterschiede?

Danke und viele Grüße,
Klaus

Dieser Beitrag wurde am 18.04.2024 um 13:22 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
18.04.2024, 13:59 Uhr
DL
Default Group and Edit



Zitat:
Klaus schrieb
Gibt es zu dem jetzigen Adapter-Projekt da Unterschiede?



Nö, nur dass es auf der ARDUINO-Plattform beruht und somit von jedermann mal fix zusammengesteckt und/oder angepasst werden kann.
Gab es "damals" halt so noch nicht, als ich meine Adapter zusammengezimmert hab, das hätte mir einiges erleichtert.

Dieser Beitrag wurde am 18.04.2024 um 14:04 Uhr von DL editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
18.04.2024, 16:27 Uhr
Klaus



Ok. Detlef.

Danke... alles klar.
Der kleine Miniadapter von damals funktioniert prima und ist schön im EFS-Stecker versteckt

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
18.04.2024, 18:33 Uhr
felge1966
Default Group and Edit


Bei mir ist immer noch der Adapter für die K7636 direkt auf der ZRE in Nutzung.
Spart auf jeden Fall schon mal die zusätzliche ASS, wenn kein Drucker benötigt wird.
@DL
War ja auch mal von dir entwickelt worden.

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
19.04.2024, 10:23 Uhr
Rainer



und ich finde die Arduino-Lösung toll! Ist schnell zu bauen, anpassbar und recht universell...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek