🎉 20 Ans du Forum WDA - 2004-2024 ! 🎉

Découvrez l'histoire et les moments marquants de notre communauté depuis 2004. Rejoignez-nous dans les célébrations !

[Adaptation] Utilisation d'un clavier PS2 sur TAVERNIER

Les ordinateurs personnels des années 80 et 90. Amstrad, Atari, Amiga et bien d'autres ordinosaures ...

Modérateur : Membres WDA

Règles du forum
N'oubliez pas; Présentez-vous ...
(Règlement interne du forum WDA)
Avatar du membre
michel guyot 66
Messages : 5
Enregistré le : 27 sept. 2016, 12:30
Collectionneur (-euse) ? : Non

[Adaptation] Utilisation d'un clavier PS2 sur TAVERNIER

Message non lu par michel guyot 66 »

Bonjour Krapoutchik,

Effectivement, avec l'aide du forum.system_cfg.com, j'ai réussi à remettre en marche mon micro TAVERNIER.

N'ayant pas conservé le clavier d'origine, j'ai réutilisé un clavier PS2.
Afin de rester dans l'esprit de la marchine, j'ai préféré dans un premier temps effectuer le traitement des signaux à l'aide d'une interface en logique TTL associée à un bout de code 6809. 
Entre temps, le forum m'a signalé votre projet similaire utilisant une carte ARDUINO pour utiliser un clavier PS2 sur un Apple.
Je souhaiterai en faire de même pour mon TAVERNIER, ce qui me permettra du même coup de découvrir le monde de l'ARDUINO...

Afin de m'éviter de trop galérer, pourriez vous m'éclairer sur quelques points :

Lors de la frappe et du relachement d'une touche, le clavier PS2 génère des codes MAKE et BREAK....
Disposez-vous d'informations sur ce que retourne en fait la librairie PS2KEYBOARD ?
Le fichier keyboard apple.zip indiqué dans votre post est-il le meilleur point de départ ?
Dans mon cas, seul le script keyboard_reset.ino serait à modifier ?

Merci de votre aide
Cordialement
Michel guyot
Modifié en dernier par Casio le 15 oct. 2022, 17:25, modifié 1 fois.
Raison : Modif. par Casio : MaJ.
Avatar du membre
Krapoutchik
Contrôle WDA
Contrôle WDA
Messages : 1068
Enregistré le : 01 juil. 2009, 08:00
Collectionneur (-euse) ? : Oui
Localisation : Paris

Re: [Adaptation] Utilisation d'un clavier PS2 sur TAVERNIER

Message non lu par Krapoutchik »

Hellooooooo !

La librairie PS2KEYBOARD retourne uniquement le caractère frappé sur le clavier, donc pas de codes MAKE et BREAK.

Pour faire simple, l'instruction char c = keyboard.read() de la librairie retourne dans la variable C le caractère frappé au clavier.
Dans ton cas (et le mien) cela simplifie fortement le programme qui n'a pas besoin de filtrer des codes inutiles.

Je suis parti de l'exemple de base de la librairie et ai rajouté simplement le traitement de la variable contenant le caractère et permettant de transformer le code ASCII en un mot de 7 bits sur 7 pins (divisions successives 128, 64, 32, 16...). C'est le premier truc qui m'est venu à l'esprit mais il y a sans doute un code plus élégant pour former un mot de 7 bits sur les sorties.
Les 3 dernières lignes envoient un strobe calibré à 10 µs sur la patte 13 (voir instructions #Define en début de code).

Code : Tout sélectionner

if (x >= 128) {
		x = x - 128;
        } else {}
	if (x >= 64) {
		x = x - 64;
		digitalWrite(d6,HIGH);
	} else {
		digitalWrite(d6,LOW);
	}
	if (x >= 32) {
		x = x - 32;
		digitalWrite(d5,HIGH);
	} else {
		digitalWrite(d5,LOW);
	}
	if (x >= 16) {
		x = x - 16;
		digitalWrite(d4,HIGH);
	} else {
		digitalWrite(d4,LOW);
	}
	if (x >= 8) {
		x = x - 8;
		digitalWrite(d3,HIGH);
	} else {
		digitalWrite(d3,LOW);
	}
	if (x >= 4) {
		x = x - 4;
		digitalWrite(d2,HIGH);
	} else {
		digitalWrite(d2,LOW);
	}
	if (x >= 2) {
		x = x - 2;
		digitalWrite(d1,HIGH);
	} else {
		digitalWrite(d1,LOW);
	}
	if (x >= 1) {
		digitalWrite(d0,HIGH);
	} else {
		digitalWrite(d0,LOW);
	}
	digitalWrite(strobe,HIGH); // D0-D7 positionnés, on envoie le strobe pour prise en compte
	delayMicroseconds(10);
	digitalWrite(strobe,LOW);
Le code peut être utilisé tel que si le Tavernier a besoin d'un mot de 7 bits et d'un strobe pour valider la présence de ce mot.

Je ne me suis pas replongé dans le code mais il y a sans aucun doute des améliorations à faire car il y a un souci de typage de données car tout code > à 127 devient négatif. Certainement une variable mal déclarée quelque part.

L'exemple de base est très facile à utiliser car chaque caractère frappé est envoyé sur le moniteur série intégré dans l'outil de développement ARDUINO. C'est assez pratique pour le débuggage :D .

Pour info, j'ai acheté un arduino 3.0 nano (Atmega328) à 2,10 Euros sur Aliexpress début 2016, je viens de regarder et on en trouve entre 2 à 3 euros aujourd'hui.
Attention prendre un modèle 5 V et avec un bootloader installé, en effet, on trouve aussi des modèles sans bootloader ou à 3,3V ce qui serait rédhibitoire pour l'adapter à de la TTL classique.
L'environnement de développement est téléchargeable gratuitement sur le site ARDUINO et est vraiment très facile à prendre en main.
Modifié en dernier par Casio le 15 oct. 2022, 17:25, modifié 1 fois.
Raison : Modif. par Casio : MaJ.
Tektronix 454A, Atten ADS 1102CAL Powa !!
Born to bricole
[Rch] Vieux composants électroniques et circuits intégrés toute époque et vieilles cartes à microprocesseur
Ma petite collection...
Tutoriel pour insérer des photos...
Avatar du membre
michel guyot 66
Messages : 5
Enregistré le : 27 sept. 2016, 12:30
Collectionneur (-euse) ? : Non

Re: [Adaptation] Utilisation d'un clavier PS2 sur TAVERNIER

Message non lu par michel guyot 66 »

Bonjour à tous,

Comme prévu j'ai examiné comment utiliser un clavier récent PS/2 sur mon TAVERNIER en utilisant cette fois un module ARDUINO.

J'ai tout simplement repris le projet décrit par Krapoutchick

J'ai utilisé :
- une carte ARDUINO Uno
- la librairie PS2Keyboard
- le script keyboard_reset.ino

La mise en oeuvre est finalement très simple et le fonctionnement obtenu est amplement suffisant.
N'étant pas un pro du monde ARDUINO, j'ai repris intégralement le logiciel tel quel.
Comme j'aime bien comprendre, je me pencherai un peu plus tard sur les lignes de codes....

Au niveau schéma, j'ai retenu d'alimenter le montage (carte ARDUINO et clavier) par le connecteur USB du module ARDUINO en prélevant le 5 volts sur la carte IVG09

Le signal STROBE réglé à 10 micro-seconde semble suffisant et permet une acquisition correcte des caractères.

Le signal RAZ est de 200 micro-seconde. Je ne l'ai pas encore testé, mais cela ne devrait pas poser de problème.

Il me reste à analyser plus finement et à compléter si besoin la restitution des caractères
A suivre.....
Michel Guyot
Fichiers joints
Signal RESET.JPG
Signal STROBE.JPG
Acquisition scan-code.JPG
Essais en cours.JPG
Carte interface.JPG
Schema.jpg
Modifié en dernier par Casio le 15 oct. 2022, 17:25, modifié 1 fois.
Raison : Modif. par Casio : MaJ.
Avatar du membre
Krapoutchik
Contrôle WDA
Contrôle WDA
Messages : 1068
Enregistré le : 01 juil. 2009, 08:00
Collectionneur (-euse) ? : Oui
Localisation : Paris

Re: [Adaptation] Utilisation d'un clavier PS2 sur TAVERNIER

Message non lu par Krapoutchik »

Bravo :clap: !
Ta bidouille est bien plus propre que la mienne et je suis heureux d'avoir pu t'aider :banana: .

L'Arduino est un vrai couteau suisse et je suis bien certain que tu ne vas tarder à t'en acheter un 2eme pour faire autre chose :mrgreen: .
Modifié en dernier par Casio le 15 oct. 2022, 17:26, modifié 1 fois.
Raison : Modif. par Casio : MaJ.
Tektronix 454A, Atten ADS 1102CAL Powa !!
Born to bricole
[Rch] Vieux composants électroniques et circuits intégrés toute époque et vieilles cartes à microprocesseur
Ma petite collection...
Tutoriel pour insérer des photos...
Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités