Table des matières:

PC de base Arduino avec sortie VGA : 5 étapes (avec photos)
PC de base Arduino avec sortie VGA : 5 étapes (avec photos)

Vidéo: PC de base Arduino avec sortie VGA : 5 étapes (avec photos)

Vidéo: PC de base Arduino avec sortie VGA : 5 étapes (avec photos)
Vidéo: Comment programmer un microcontrôleur de type PIC 18f4550 ou 18f2550 avec une Arduino UNO (Sub eng) 2024, Juillet
Anonim
Image
Image
PC de base Arduino avec sortie VGA
PC de base Arduino avec sortie VGA
PC de base Arduino avec sortie VGA
PC de base Arduino avec sortie VGA

Dans mon précédent Instructable, j'ai montré comment construire un ordinateur rétro 8 bits exécutant BASIC, au moyen de deux Arduino et avec un signal de sortie en noir et blanc pour un écran de télévision.

Maintenant, je vais montrer comment construire le même ordinateur, mais avec le signal de sortie en couleur pour un moniteur VGA !

Vous pouvez saisir les variables et le programme BASIC avec un clavier PS2, et il génère la sortie pour un moniteur VGA avec une résolution de texte de 24 colonnes x 10 lignes de caractères 5x6 pixels, en quatre couleurs. Vous pouvez le voir en action dans la vidéo supérieure. Le programme peut ensuite être enregistré sur l'EEPROM Arduino, et vous pouvez toujours contrôler les broches d'E/S directement via des commandes dédiées de base.

Ce projet peut également être utilisé pour imprimer des messages texte simples sur le moniteur, comme le montre la troisième image de cette page.

Un Arduino est le "maître", et il exécute Tiny Basic Plus, une implémentation C de Tiny Basic, en mettant l'accent sur la prise en charge d'Arduino. Il contrôle également un clavier PS2. La sortie est ensuite envoyée via le port série au deuxième Arduino qui génère la sortie VGA grâce à la librairie VGAx.

L'idée d'utiliser un ou plusieurs Arduino pour créer un PC de style ancien exécutant un dialecte de base n'est pas nouvelle mais, pour autant que je sache, aucun d'entre eux n'a de sortie couleur. Dans certains projets disponibles sur le net, les gens ont utilisé des écrans LCD, tandis que dans d'autres, pour permettre l'utilisation de moniteurs, il a été utilisé la bibliothèque TVout, qui est en noir et blanc. De plus, dans bon nombre de ces projets, des boucliers ou du matériel spéciaux doivent être construits. Ici, vous n'avez besoin que de deux Arduino, de quelques résistances et du connecteur pour le clavier PS2 et le moniteur, comme le montrent les images ci-dessus.

Étape 1: Construisez l'Arduino Master avec TinyBasic et le clavier PS2

TinyBasic Plus et la bibliothèque VGAx fonctionnent pour Arduino IDE 1.6.4.

Téléchargez-le d'abord à partir de la page Web officielle d'Arduino. Si vous avez une version plus récente sur votre PC, le mieux est de la télécharger au format.zip et de les décompresser sur votre PC. Cliquez sur ce lien pour télécharger la version Windows.

Vous avez alors besoin de la bibliothèque PS2keyboard. Vous pouvez le trouver en bas de cette page. Décompressez-le et copiez le dossier du clavier PS2 dans: arduino-1.6.4\libraries

Enfin, dans cette page, téléchargez le fichier: TinyBasicPlus_PS2_VGAx.ino, décompressez-le et téléchargez-le sur votre Arduino.

Il s'agit d'une variante du TinyBasic Plus standard où j'ai ajouté la bibliothèque PS2 et modifié le code pour en accepter les variables.

Vous trouverez plus de détails sur TiniBasic Plus et des tutoriels sur ce lien.

S'il n'y a pas de problèmes et de problèmes de compatibilité, Tiny Basic est déjà en cours d'exécution. Vous pouvez le tester via un moniteur série sur votre PC. Pour cela, j'utilise PuTTY, mais de nombreux autres programmes sont disponibles.

Vous devez définir le bon port COM (c'est le même que vous trouvez dans l'IDE Arduino) et le débit en bauds = 4800

Ici, vous pouvez déjà tester certains programmes en Basic simplement en les tapant avec le clavier de votre PC (NB plus tard, je montrerai comment connecter le clavier PS2 directement à l'Arduino).

Essayez par exemple:

10 IMPRIMER "Bonjour, monde!"

20 ALLER À 10

COURS

Vous pouvez ensuite arrêter la boucle infinie en tapant simplement ctrl+c.

Notez que cette combinaison ne fonctionnera pas pour le clavier PS2.

Dans l'étape suivante, je montrerai comment connecter le clavier PS2 à Arduino.

Étape 2: connectez le clavier PS2 à l'Arduino maître

Connectez le clavier PS2 au maître Arduino
Connectez le clavier PS2 au maître Arduino

J'ai obtenu toutes les informations et la bibliothèque de ce Instructable.

Essentiellement, vous devez connecter les quatre broches suivantes:

  • Données du clavier vers Arduino broche 8,
  • IRQ (horloge) du clavier vers la broche 3 de l'Arduino;
  • vous devez également connecter GND et +5V.

J'ai eu un vieux connecteur femelle PS2 d'une carte mère PC cassée. Vous pouvez simplement le revendre avec un pistolet thermique.

Dans l'image montrée dans cette étape, vous pouvez trouver la fonction des broches nécessaires du connecteur PS2.

Étape 3: Téléchargez la bibliothèque et le code VGAx sur le deuxième Arduino et mettez le tout ensemble

Téléchargez la bibliothèque et le code VGAx sur le deuxième Arduino et mettez le tout ensemble
Téléchargez la bibliothèque et le code VGAx sur le deuxième Arduino et mettez le tout ensemble

Téléchargez d'abord le code VGAx-PC.ino au bas de cette page et copiez-le sur votre PC dans un répertoire du même nom.

Téléchargez la bibliothèque VGAx à partir de ce lien sur GitHub. Le plus simple est de le copier dans le sous-dossier du logiciel Arduino nommé "libraries", pour être immédiatement reconnu.

IMPORTANT: cette bibliothèque fonctionne pour Arduno IDE 1.6.4 mais elle n'est pas entièrement compatible avec les versions plus anciennes ou plus récentes.

Téléchargez le VGAx-PC.ino dans votre deuxième carte Arduino (je l'ai testé pour la version Nano mais l'Uno devrait également fonctionner).

Un avertissement pour mémoire disponible faible est normal. Si vous n'avez pas d'autres erreurs, tout va bien et vous pouvez immédiatement commencer à construire votre propre PC 8 bits.

Pour cela il vous faut:

  • deux Arduino Uno Rev. 3 ou deux Arduino Nano 3.x (ATmega328)
  • un connecteur DSUB15, c'est-à-dire un connecteur VGA femelle ou un câble VGA à couper.
  • résistances: 2 x 68 Ohm et 2 x 470 Ohm
  • un connecteur PS2 femelle
  • fils
  • facultatif: une planche à pain ou une planche à lamelles

Le schéma est rapporté en haut de cette étape. Un exemple de « console » finie est présenté dans l'étape introductive.

Le même schéma, avec une résolution plus élevée, est rapporté dans un fichier compressé au bas de cette étape.

Étape 4: Facultatif: Utilisation d'un PCB

Facultatif: Utilisation d'un PCB
Facultatif: Utilisation d'un PCB
Facultatif: Utilisation d'un PCB
Facultatif: Utilisation d'un PCB
Facultatif: Utilisation d'un PCB
Facultatif: Utilisation d'un PCB
Facultatif: Utilisation d'un PCB
Facultatif: Utilisation d'un PCB

Vous pouvez également construire ce PC VGA de base à l'aide d'un petit PCB. Vous pouvez vous inspirer des images de cette étape ou vous pouvez même imprimer votre propre tableau.

J'ai utilisé deux bandes d'en-tête femelles avec 15 trous pour la sortie vidéo Arduino, tandis que pour le maître j'ai utilisé deux bandes avec des trous doubles. De cette façon, je peux utiliser les externes pour insérer les contacts d'autres composants du projet, qui peuvent être pilotés directement avec le code Basic. J'ai également ajouté au centre des bandes restantes, une connectée à 5 V et l'autre pour GND.

Étape 5: Commentaires finaux et remerciements

Ma principale reconnaissance va à Sandro Maffiodo alias Smaffer, le créateur de l'incroyable bibliothèque VGAx.

Un grand merci également aux auteurs de TinyBasic Plus:

  • Petit basique 68k - Gordon Brandly
  • Arduino Basic / Tiny Basic C - Michael Field
  • Tiny Basic Plus - Scott Lawrence

Merci aussi à "djsadeepa", l'auteur de l'Instructable pour la connexion du clavier PS2.

A toutes les personnes intéressées par ce projet: si vous rencontrez des difficultés, n'hésitez pas à demander des suggestions dans les commentaires.

Si vous réussissez, veuillez également écrire un commentaire ou partager une photo de l'appareil que vous construisez.

Conseillé: