Discussion:Renaissance d'un Minitel avec une Raspberry Pi

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher

Bonjour

A quelle partie du Rpi correspondent les deux broches du connecteur P3 sur le schéma Alimpinitel4.kicad_pcb ? J'ai fait différents essais mais j'ai un peu peur de "fusiller" une ou deux entrées, voire le Rpi complet...

Selon le mappage du clavier, la pin 1 (17 sur le P4 du schéma) est la masse est n'est reliée à aucune touche, la deux (pin 16 du P4), par contre, s'occupe de 11 touches qui ne sont donc pas opérationnelles sur mon montage...

Merci


Sur le schéma kicad, il est indiqué GPIO P3, dans l'article de ce wiki, GPIO P5, laquelle est la bonne ? tjs sur ce schéma, le circuit sur les broches 2 et 6 permet bien d'alimenter directement le Rpi sans passer par la micro USB ?


Mushussu : Bonjour, attention, le schéma Alimpinitel4.kicad_pcb n'a pas été réalisé. Utilises-tu une RPi 1 modèle B ou B + ou RPi 2. L'avantage de B+ et des 2, c'est que le nombre de GPIO à augmenté.

Ce n'est pas moi qui est réalisé ce schéma, mais sur celui-ci il est indiqué P3, c'est la numérotation interne à Kicad. Ce P3 du schéma sera à brancher sur le P5 de la Raspberry.

Pour les broches 2 et 6, l'objectif est d'alimenter directement la RPi sans passer par le micro-USB. Attention c'est un LM7805 qu'il faut utiliser et pas un LM7806. Pour les essais, abstiens-toi de réaliser le transformateur de courant, car il n'est pas indiquer ou trouver la source courant sur le Minitel. C'est encore un travail à réaliser. Bon courage.


Merci pour les infos, j'utilise un RPi 2, donc, il n'y a plus le GPIO P5 (broches GPIO28, 29, 30 et 31), et les GPIO P2 et P3 ont été ajoutés au GPIO P1 qui est donc plus grand, (les noms des broches sont ceux de cette page: http://elinux.org/RPi_Low-level_peripherals#P5_header ). Cordialement.


Mushussu : Il faut que je regarde les différences avec Wiringpi et que je modifie le fichier en C du clavier si besoin. Je ferais une version RPi 2.


Bonjour, j'espère que je ne suis pas trop ennuyeux, dans le fichier "clavier.c" joint dans l'archive pour le clavier, si je remplace:

int main (void) {
	// Clavier           { 2,  7,  8,  9, 10, 11,12, 17}
	int portSortie [8] =    {20, 12, 13, 14, 11, 10, 6, 15}; // Port wiringPi
	// int portSortie [8] = { 4, 19, 21, 23, 26, 24, 22, 8}; // Port Physique final
	// int portSortie [8] = { 8, 10, 12, 16, 18, 22, 24, 26}; // Prototype

	// Clavier            { 3,  4,  5,  6, 13, 14, 15, 16}
	int portLecture [8] =      {7, 0, 2, 3, 5, 4, 1, 16}; // Port wiringPi
	// int portLecture [8] = { 7, 11, 13, 15, 18, 16, 12, 10}; // Port Physique
	// int portLecture [8] = { 5,  7, 11, 13, 15, 19, 21, 23}; // Prototype

	uint8_t controleTouche[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
	int tableau [8][8] = {{KEY_UP, KEY_BACKSPACE, KEY_F3, KEY_DOWN, KEY_RIGHTSHIFT, KEY_LEFT, KEY_RIGHT, KEY_ENTER},
		{KEY_T, KEY_E, KEY_R, KEY_Y, KEY_SEMICOLON, KEY_MINUS, KEY_SLASH, KEY_LEFTBRACE},
		{KEY_G, KEY_D, KEY_F, KEY_H, KEY_KPASTERISK, KEY_7, KEY_4, KEY_1},
		{KEY_DOT, KEY_ESC, KEY_COMMA, KEY_APOSTROPHE, KEY_TAB, KEY_F4, KEY_KPENTER, KEY_F5},
		{KEY_B, KEY_C, KEY_V, KEY_N, KEY_0, KEY_8, KEY_5, KEY_2},
		{KEY_F7, KEY_Z, KEY_A, KEY_F2, KEY_U, KEY_I, KEY_O, KEY_P},
		{KEY_F6, KEY_S, KEY_Q, KEY_LEFTCTRL, KEY_J, KEY_K, KEY_L, KEY_M},
		{KEY_F1, KEY_X, KEY_W, KEY_SPACE, KEY_RIGHTBRACE, KEY_9, KEY_6, KEY_3}};

par :

int main (void) {
	// J'utilise un minitel RTIC
	// Clavier           {X0, X1, X2, X3, X4, X5, X6}
	int portSortie [7] =    {15, 16, 1, 4, 5, 6, 10; // Port wiringPi

	// Clavier            {Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7}
	int portLecture [8] =      {11, 31, 26, 27, 28, 29, 25, 24}; // Port wiringPi

	uint8_t controleTouche[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
	int tableau [7][8] = {{KEY_LEFTSHIFT, KEY_W, KEY_B, KEY_N, KEY_RIGHTSHIFT, KEY_V, KEY_C, KEY_X},
		{KEY_Q, KEY_D, KEY_G, KEY_J, KEY_L, KEY_7, KEY_8, KEY_9},
		{KEY_LEFTCTRL, KEY_S, KEY_F, KEY_H, KEY_K, KEY_M, KEY_P, KEY_O},
		{KEY_A, KEY_Z, KEY_E, KEY_R, KEY_T, KEY_Y, KEY_U, KEY_I},
		{KEY_ESC, KEY_COMMA, KEY_DOT, KEY_APOSTROPHE, KEY_SEMICOLON, KEY_MINUS, KEY_SLASH, KEY_LEFTBRACE},
		{KEY_F1, KEY_F7, KEY_BACKSPACE, KEY_TAB, KEY_KPENTER, KEY_4, KEY_5, KEY_6},
		{KEY_ALT, KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_1, KEY_2, KEY_3},
		{KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_ENTER,  KEY_KPASTERISK, KEY_0, KEY_RIGHTBRACE, KEY_SPACE}};

(j'utilise un minitel RTIC), est-ce que je devrais (logiquement) avoir un clavier fonctionnel ? Merci encore.


Mushussu :

Bonjour,

Je n'en sais fichtrement rien, à toi de faire des essais, nous n'avons pas pratiqué sur un RTIC. As-tu déjà réalisé le circuit vidéo ? Si il fonctione, je prendrais le temps pour le mappage du clavier.


Merci pour la réponse, j'ai passé commande très récemment sur Conrad pour les circuits intégrés, je ne les ai pas encore, le circuit n'est donc pas réalisé, s'il fonctionne, je le dirai. (Je me suis largement inspiré du circuit de cette page: http://jla.1313-blog.overblog.com/recyclage-d-un-minitel-9-en-moniteur-b/w en y ajoutant une alimentation pour le raspberry pi (avec un LM7805)).


Bonjour,

Je suis enfin de retour ! J'ai réalisé le circuit vidéo et il fonctionne (j'ai quand même eu des soucis à causes d'une histoire de condensateur cramé et de résistance trop forte), j'ai testé le programme du clavier en c, et euh... c'est là que ça coince, quand je lance le programme, (que j'ai de nouveau modifié) le Raspberry Pi affiche:

^[OS?"^[[D?$$$$$

et continue à afficher des «$» sans qu'aucune touches du clavier du minitel ne fonctionne, et ce jusqu'à ce que je fasse ctrl+c (sur le clavier branché en usb). Je n'ai pas réussi à aller plus loin, voici la nouvelle version du programme:

int main (void) {
	// Clavier           {X0, X1, X2, X3, X4, X5, X6, X7}
	int portSortie [8] =    {15, 16, 1, 4, 5, 6, 10, 11}; // Port wiringPi

	// Clavier            {Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8}
	int portLecture [9] =      {7, 0, 2, 3, 12, 13, 14, 21, 22}; // Port wiringPi

	uint8_t controleTouche[9] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
	int tableau [8][9] = {{KEY_LEFTSHIFT, KEY_W, KEY_B, KEY_N, KEY_RIGHTSHIFT, KEY_V, KEY_C, KEY_X},
		{KEY_Q, KEY_D, KEY_G, KEY_J, KEY_L, KEY_7, KEY_8, KEY_9},
		{KEY_LEFTCTRL, KEY_S, KEY_F, KEY_H, KEY_K, KEY_M, KEY_P, KEY_O},
		{KEY_A, KEY_Z, KEY_E, KEY_R, KEY_T, KEY_Y, KEY_U, KEY_I},
		{KEY_ESC, KEY_COMMA, KEY_DOT, KEY_APOSTROPHE, KEY_SEMICOLON, KEY_MINUS, KEY_SLASH, KEY_LEFTBRACE},
		{KEY_F1, KEY_F7, KEY_BACKSPACE, KEY_TAB, KEY_KPENTER, KEY_4, KEY_5, KEY_6},
		{KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_1, KEY_2, KEY_3},
		{KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_ENTER,  KEY_KPASTERISK, KEY_0, KEY_RIGHTBRACE, KEY_SPACE}};

		// WiringPi
	wiringPiSetup () ;

	for (i = 0; i < 8; i++) {
		pinMode(portSortie[i], OUTPUT);
		digitalWrite(portSortie[i], HIGH);
		pinMode(portLecture[i], INPUT);
		pullUpDnControl(portLecture[i], PUD_UP); // Met une résistance de tirage interne au VCC
	}
	
	// Initialisation du clavier
	fd = open("/dev/uinput", O_WRONLY | O_NONBLOCK);
	if (fd < 0) err("Can't open /dev/uinput");
	if (ioctl(fd, UI_SET_EVBIT, EV_KEY) < 0) err("Can't SET_EVBIT");
	for (i = 0; i < 8; i++) {
		for (j = 0; j < 9; j++) {
			if (ioctl(fd, UI_SET_KEYBIT, tableau[i][j]) < 0) err("Can't SET_KEYBIT");
		}
	}

(J' en ai viré un bout pour qu'il ne soit pas trop gros sur cette page). Sinon, pour l'alimentation du Raspberry Pi, j'utilise un LM7805 pour produire du 5 V à partir du 5.56 V du Minitel, mais ce dernier ne délivre que 4 volts et quelques, curieux... Il y a peut-être une erreur dans le circuit... Néanmoins, ça n'empêche pas le Raspberry Pi de fonctionner.


Une petite réponse rapide pour le 7805. La tension du Minitel 5.56 est trop petite pour que le 7805 puisse faire son travail correctement il faut au moins 6.5V. Donc il faut un autre composant pour réguler la tension. Je vais regarder le programme quand j'aurais le temps.


Ok, merci, je vais revoir le datasheet du LM7805, je modifierai le circuit.


Minitel, RPI & MicroOrdinateur pour Enfant

Bonjour,

Je suis en train de remettre au gout du jour un minitel avec un raspberry pi 3 et un écran LCD de 9 pouces pour mes filles. Selon vos sources, je souhaite réutiliser le clavier du minitel. J'ai crée le câble interface pour le clavier, modifier les ports d'entrée en conséquence dans le fichier clavier.c et c'est à partir de cet instant que je sollicite un peu d'aide... En effet j'ai un message d'erreur lors de la compilation du fichier .c (le mien et ainsi que celui d'origine proposé par le wiki) Voici ce que j'obtient dans la console :

  • pi@raspberrypi:~/clavier $ gcc -Wall -o clavier clavier.c -lwiringPi
  • clavier.c: In function ‘main’:
  • clavier.c:49:2: warning: implicit declaration of function ‘err’ [-Wimplicit-function-declaration]
  • if (fd < 0) err("Can't open /dev/uinput");
  • ^
  • clavier.c:76:5: warning: implicit declaration of function ‘valeurDuBit’ [-Wimplicit-function-declaration]
  • if (digitalRead(portLecture[j]) != valeurDuBit(controleTouche[i], j)) {
  • ^
  • pi@raspberrypi:~/clavier $

Je ne connais malheureusement pas bien le C, mais il me semble que 'err' et 'valeurDuBit' ne soit pas bien déclaré.
Je vous remercie par avance pour votre aide, je posterais quelque photo si le projet arrive à son terme :-)

David.


Bonjour,

Moi aussi j'avais eu du mal avec le programme du clavier pour le GPIO. Finalement, j'ai utilisé le circuit d'un vieux clavier que j'avais en rab et j'ai programmé la correspondance des touches avec Xmodmap. Le seul inconvénient que j'ai encore (pour l'instant), c'est que je n'arrive pas à lancer automatiquement le programme au démarrage...


Mushussu :

Bonjour, je suis ravi que vous vous intéressiez au projet. Les messages que vous avez eus étaient des alertes et non des erreurs. J'ai néanmoins corriger le code pour que la compilation soit propre.

Dites-moi si vous rencontrez des problèmes et n'hésitez pas à documenter votre projet sur le wiki pour que d'autres personnes puissent s'en inspirer.


Bonjour à tous,

ça avance!
Merci Mushussu pour le nouveau code, la compilation ce fait au top. Et le clavier minitel réagit de la même façon en mode console et mode xwindows en suivant ce qui est indiqué dans le tuto. Le seul bémol c'est que seule le lettre " e r t y c v b n " fonctionne pour le moment, mais je trouve que c'est un début prometteur :-)
J'ai tester au moins 20 fois mon cordon d'adaptation en le réalisant, je ne pense pas que cela soit dû au hard. Je fait investiguer un peu et je vous tiens au courant de l'avancement.
David


Mushussu :

C'est cool, le Minitel que tu utilises est bien un Minitel 1B Alcatel ? Le même que celui du tuto ?


Bonjour à tous,

Oui, il s'agit bien du même minitel que sur le tuto. Et bonne nouvelle ça fonctionne!!! Le clavier fonctionne en mode console et xwindows, et même après un redémarrage :-)
Deux petit point à signaler

* La touche ? et # ne sont pas bien reconnus est s'affiche comme ], mais ça ira très bien pour ce que je veux en faire.
* Au premier redémarrage, le clavier réagit comme un QWERTY en le déclarer AZERTY. Il vaut donc tricher un peux, est le déclarer clavier QWERTY pour avoir .... un azerty à 99% opérationnel!

Un grand merci à tous, tuto au top pour la partie clavier qui m’intéressé ;-)

Je vais donc pouvoir commencer l'intégration de tout mon basard dans la carcasse du minitel. Le photo suivront...

David


Bonjour,

Après une petite pose, la résurrection du minitel est fini! La vielle boite revis pour le bonheur de tous.
Quelque photos pour voir le résultat final:


Merci pour votre aide, et à bientôt pour de nouveaux projet!
David.


Jolie intégration et très classieux cette couleur violette framboise !
Benjamin