Arduino Forum upgrade scheduled for Monday, October 20th, 11am-4pm (CEST). Sorry for the inconvenience!
Pages: [1] 2   Go Down
Author Topic: Le Minitel n'est pas mort!!!  (Read 8736 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks, Apple sucks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-wink
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks, Apple sucks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
// 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.  smiley

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  smiley-wink. 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  smiley-grin
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 31
Posts: 3234
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

 smiley
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Forum Administrator
Torino, Italia
Offline Offline
Sr. Member
*****
Karma: 4
Posts: 387
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

wow.
tres vintage.

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

 smiley-wink
Logged

Celtic Kingdom
Offline Offline
Sr. Member
****
Karma: 2
Posts: 455
hard oui no!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Clair; carrément old school ^.^
Logged

France - Pays de la Loire
Offline Offline
Full Member
***
Karma: 0
Posts: 176
Bidouilleur du dimanche ... et des autres jours de la semaine ...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'en ai un dans mon grenier, vous pouvez faire une offre  smiley

A+
Logged

$300:20 58 FC 60
Offline Offline
Newbie
*
Karma: 1
Posts: 26
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-grin ARF, j'adore, ca sert pas à grand chose donc c'est totalement indispensable  smiley-wink
J'attends vivement la suite
Logged

Massongex, Suisse
Offline Offline
Full Member
***
Karma: 3
Posts: 169
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est excellent ! Un "Aller vers le passé"1 qui me plait bien. En plus, on retombe en enfance, ça faisait un sacré moment que je n'avais pas vu de minitel en marche.
Sinon, pour les photos, comme Jean-François : plus petites svp.

churchill

1 mauvais antonyme de "retour vers le futur"  :smiley
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks, Apple sucks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Désolé pour les photos, voilà maintenant c'est tout bon  smiley.

J'ai aussi fait une rectification dans l'image du premier post : ce n'était pas "4.7 ohms", mais bien "4.7 kohms"...

Je travaille sur cet objet "Minitel" et je vous tiens au courant  smiley-wink
« Last Edit: April 17, 2010, 11:45:15 am by SoranneFr » Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 31
Posts: 3234
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Super, merci pour les photos. smiley-wink
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,
Merci beaucoup pour le partage du code smiley Avec un ami on a parsé les touches pour le menu (mais il manque les premières lettres de l'alphabet :O), on a ajouté 2/3 pages (dont une qui joue de la musique sur un haut parleur), etc.

Pour tous ceux qui ont un Arduino Duemillanove, remplacez tous les Serial1 par Serial et le bidule des 7 bits + bit de parité.

Enjoy smiley-grin

Code:
32 = Espace
33 = !
34 = "
35 = #
36 = $
37 = %
38 = &
39 = '
40 = (
41 = )
42 = *
43 = ;
44 = ,
45 = -
46 = .
47 = /
48 = 0
49 = 1
50 = 2
51 = 3
52 = 4
53 = 5
54 = 6
55 = 7
56 = 8
57 = 9
58 = :
59 = ;
60 = <
61 = =
62 = >
63 = ?
64 = @
65 = ENVOI
66 = RETOUR
67 = RÉPÉTION
68 = GUIDE
69 = ANNULATION
70 = SOMMAIRE
71 = CORRECTION
72 = SUITE
73 = CTRL + CONNEXION / FIN
74 = J
75 = K
76 = L
77 = M
78 = N
79 = O
80 = P
81 = Q
82 = R
83 = S
84 = T
85 = U
86 = V
87 = W
88 = X
89 = Y
90 = Z
91 = [
92 = \93 = ]
94 = "FLECHE HAUT"
97 = CTRL + A
98 = CTRL + B
99 = CTRL + C
100 = CTRL + D
101 = CTRL + E
102 = CTRL + F
103 = CTRL + G
104 = CTRL + H
105 = CTRL + I
106 = CTRL + J
107 = CTRL + K
108 = CTRL + L
109 = CTRL + M
110 = CTRL + N
111 = CTRL + O
112 = CTRL + P
113 = CTRL + Q
114 = CTRL + R
115 = CTRL + S
116 = CTRL + T
117 = CTRL + U
118 = CTRL + V
119 = CTRL + W
120 = CTRL + X
121 = CTRL + Y
122 = CTRL + Z
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 35
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quand tu parles des bits de parité et 7 tu veux dire qu'il faut aussi modifier ça : Serial1.begin(1200); ?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 35
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut, j'ai un problème la presentation ne s'affiche et je ne peux mettre plus de 3pages. J'ai un Arduino Duemilanove Atmega168.

EDIT : J'ai viré le Serial.begin(9600); sinon ça bugger et j'ai remplacé les Serial1 par Serial et modifier les 7bits + bit de parité par UCSR0C = B00100100;

Merci smiley
« Last Edit: August 05, 2010, 03:06:33 pm by ayme.32 » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 1
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Enfin un moyen de recycler les minitels !! Bravo c'est une idée mortelle !!!!
j'ai très envie d'essayer :-)
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je suis débutant et je n'arrive pas à connecter mon minitel à l'Arduino Duemilanove. En fait je ne sais pas comment faire le branchement. Quelqu'un pourrait-il m'expliquer comment je dois faire ? D'avance merci.
« Last Edit: September 18, 2010, 03:55:00 pm by DavidZ67 » Logged

Pages: [1] 2   Go Up
Arduino Forum upgrade scheduled for Monday, October 20th, 11am-4pm (CEST). Sorry for the inconvenience!
Jump to: