Go Down

Topic: Le Minitel n'est pas mort!!! (Read 8 times) previous topic - next topic

SoranneFr

Boujour à tous!

Je viens d'arriver il n'y a pas si longtemps que ça sur le forum, et j'aimerais présenter un peit projet qui n'est pas très avancé mais qui pourra servir de base pour certains qui seront interressés : MiniOS.
MiniOS est un OS pour Minitel. C'est grâce à un arduino que l'on communique avec un Minitel par le biais de la prise péri-informatique située à l'arrière des Minitels.
Le montage n'est pas difficile il suffit de connecter un prise mâle DIN comme sur le schéma ci-dessous :

.

Pour communiquer avec un Minitel il faut utiliser un débit de 1200 bauds, le code dans le prochain post  ;)

SoranneFr

Le code n'est composé que d'un seul fichier car l'OS est assez basique...

Code: [Select]
// Commandes de mise en page
byte gauche = 8;
byte droite = 9;
byte bas = 10;
byte haut = 11;
byte debutDeLigne = 13;
byte hautGauche = 30;
byte hautGaucheEfface = 12;
byte separateurDeSousArticle = 31;
byte remplissageEspace = 24; //Remplit le reste da la rangée avec des espaces

void setup() {

 UCSR1C = B00100100; // passage en mode 7bits + bit de parité
 Serial1.begin(1200);

 presentation(); // écran de démarrage
 Serial.begin(9600); // pour debug



}

void loop() {

 //Serial.print(menu()); //(Pour debug seulement)
 switch (menu())
 {
 case 49 :
   fakebook();
   break;
 case 50 :
   credits();
   break;
 }

}

void presentation() {
 int i =0;

 Serial1.print(hautGaucheEfface);

 while(i<11)
 {
   Serial1.print(bas, BYTE);
   i++;
 }
 i=0;

 while(i<16)
 {
   Serial1.print(droite, BYTE);
   i++;
 }

 Serial1.print(27, BYTE);
 Serial1.print(79, BYTE); //Grossit la police
 Serial1.print("MiniOS");
 Serial1.print(27, BYTE);
 Serial1.print(76, BYTE); //Police normale
 Serial1.print(bas);
 Serial1.print(bas);
 i = 0;
 while(i<13)
 {
   Serial1.print(gauche);
   i++;
 }
 Serial1.print("The Minitel OS");
 i=0;
 while(i<6)
 {
   Serial1.print(bas, BYTE);
   i++;
 }
 i=0;

 while(i<22)
 {
   Serial1.print(droite, BYTE);
   i++;
 }
 Serial1.print(27, BYTE);
 Serial1.print(72, BYTE); // clignotement
 Serial1.print("Appuyez sur une touche...");
 Serial1.print(27, BYTE);
 Serial1.print(73, BYTE); // fixe

 Serial.print(7, BYTE);
 while(Serial1.available() <= 0) {  
 }
 Serial1.read(); // Attente d'une touche

}

int menu(){
 Serial1.print(hautGaucheEfface);
 Serial1.print(27, BYTE);
 Serial1.print(77, BYTE); // lettres de double hauteur
 Serial1.print(bas);
 Serial1.print("                ### Menu ###");
 Serial1.print(27, BYTE);
 Serial1.print(76, BYTE); //Police normale

 Serial1.print(bas);
 Serial1.print(bas);
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("1 - Fakebook");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("2 - Credits");
 int inByte = 0;

 while(Serial1.available() <= 0) {  
 }
 Serial1.print(hautGaucheEfface);
 inByte = Serial1.read();

 return inByte;

}
void fakebook(){
 Serial1.print(hautGaucheEfface, BYTE);
 Serial1.print(bas);
 Serial1.print(27, BYTE);
 Serial1.print(77, BYTE); // lettres de double hauteur
 Serial1.print(" 3615  ");
 Serial1.print(27, BYTE);
 Serial1.print(79, BYTE); // lettres de double grandeur
 Serial1.print("FACEBOOK");
 Serial1.print(27, BYTE);
 Serial1.print(77, BYTE); // lettres de double hauteur
 Serial1.print(bas);
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("Amis               Mon Statut");
 Serial1.print(27, BYTE);
 Serial1.print(76, BYTE); // police normale
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("- Mikou Coco      ......................");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("- Matthieu Gaill  ......................");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("- Nielsou Ptich   ......................");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("- Mel Gormany     ......................");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("                  ......................");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("- voir mes amis        valider le statut");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("                           ");
 Serial1.print(27, BYTE);
 Serial1.print(93, BYTE); //Inversion de fond
 Serial1.print(" ENVOI ");

 Serial1.print(27, BYTE);
 Serial1.print(76, BYTE);
Serial1.print(27, BYTE);
 Serial1.print(92, BYTE); //Inversion de fond // police normale
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("----------------------------------------");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print(27, BYTE);
 Serial1.print(77, BYTE); // lettres de double hauteur

 Serial1.print("  Actualites :");

 Serial1.print(27, BYTE);
 Serial1.print(76, BYTE); // police normale
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("        Soranne Guilly :");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print(" A vu des screenshots du prochain");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print(" Windows 2.1!");



 while(Serial1.available() <= 0) {  
 }
 Serial1.read(); // Attente d'une touche
}

void credits() {
 Serial1.print(hautGaucheEfface);
 Serial1.print("MiniOS by Ronan Gaillard");
 Serial1.print(bas);
 Serial1.print(debutDeLigne);
 Serial1.print("Powered by Arduino");
 while(Serial1.available() <= 0) {  
 }
 Serial1.read(); // Attente d'une touche
}





Voilà, si vous avez des questions n'hésitez pas...
Je prévoit de programmer une classe Minitel afin de simplifier tout ça et de permettre à plusieurs personnes de pouvoir utiliser ce terminal comme écran.  :)

Je met ici quelques screenshots pour ceux qui voudraient voir à quoi ça ressemble  :o :


Voilà; ça c'est le montage sur un Arduino Mega comme vous pouvez le voir  ;). Les DELS servent justent de témoins.


L'écran de présentation...


Le Menu, un peu vide je vous l'accorde  ;D


Pour le fun  :D

Jean-François

Si tu peux mettre des photos plus petites, parce que là on voit rien.... Tu peux editer ton message avec le bouton "edit".

:)
MacBook intel core 2 duo  os X snow Leopard 10.6
 eMac PPc G4  os X Leopard 10.5
powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Davide

wow.
tres vintage.

Je dois acheter sur Ebay un minitel seulement pour essayer ce project,

;)

ekaki

Clair; carrément old school ^.^

Go Up