Table des matières:

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

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

Vidéo: PC de base Arduino avec sortie TV : 5 étapes (avec photos)
Vidéo: #1 ARDUINO - Découverte et Premier Projet (Allumer une LED) 2024, Juin
Anonim
Image
Image
PC de base Arduino avec sortie TV
PC de base Arduino avec sortie TV
PC de base Arduino avec sortie TV
PC de base Arduino avec sortie TV
PC de base Arduino avec sortie TV
PC de base Arduino avec sortie TV

Dans ce Instructables, je vais montrer comment construire un ordinateur rétro 8 bits exécutant BASIC, au moyen de deux Arduino et de quelques autres composants.

Vous pouvez saisir les variables et le programme BASIC avec un clavier PS2, et la sortie est affichée sur un moniteur avec un texte 47 colonnes x 29 lignes de caractères 8x8 pixels (N&B), une résolution similaire ou meilleure que le Commodore 64, égale à 40 x 25 caractères.

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.

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 vidéo grâce à l'impressionnante bibliothèque MRETV.

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 jusqu'à présent, il y avait de fortes limitations dans la résolution de sortie. 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 a une résolution beaucoup plus faible. 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 diodes, de quelques résistances et du connecteur pour le clavier PS2 et le moniteur, comme le montre l'image ci-dessus.

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

TinyBasic Plus et MRETV fonctionnent pour les anciens - et différents - IDE Arduino.

Téléchargez d'abord IDE 1.6.4 à 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.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 le viariable.

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 = 2400

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;
  • bien sûr, vous devez également connecter GND et +5V.

J'ai récupéré 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 MRETV sur le deuxième Arduino et assemblez le tout

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

Le point clé de ce projet est l'existence de l'impressionnante bibliothèque MRETV. Il existe un Instructable dédié où il est décrit en détail.

Il n'utilise que deux résistances et deux diodes pour générer une vidéo plein écran, avec une résolution de texte de 47 x 29 de 8x8 caractères. Comme il est dit dans l'introduction, "la génération de vidéo a déjà été faite, mais pas comme ça. La série FULL DUPLEX est toujours disponible lors de la génération de la vidéo". Cela permet d'obtenir les données de l'Arduino "maître" et de les afficher sur le moniteur. En pratique ce second Arduino "esclave" sert d'interface graphique !

Étant donné que MRETV fonctionne pour IDE 1.6.6, téléchargez-le à partir de la page Web officielle d'Arduino. Encore une fois, le mieux est de le 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.

Téléchargez ensuite la bibliothèque MRETV à partir de ce lien.

Décompressez-le et enregistrez le dossier "MRETV" dans: arduino-1.6.6\libraries

Enfin, téléchargez TVtext_slave.rar en bas de cette page, décompressez-le et téléchargez-le dans votre esclave Arduino.

S'il n'y a pas de message d'erreur, vous pouvez connecter le connecteur RCA. Vous avez besoin des deux diodes et des résistances de 1 kOhm et 300 Ohm, comme indiqué sur le schéma de cette page.

À ce stade, vous pouvez tout connecter ensemble.

La liste complète des matériaux est:

  • deux Arduino Uno Rev. 3 ou deux Arduino Nano 3.x (ATmega328)
  • deux résistances 1 kOhm
  • une résistance 300 Ohm
  • deux diodes 1n4148 (x2) ou une diode de commutation en silicium similaire
  • deux prises RCA femelles (une pour la vidéo, une - facultative - pour l'audio)
  • un connecteur PS2 femelle
  • une planche à pain et des fils

L'Arduino maître envoie les données à l'esclave via le câble orange, c'est-à-dire la broche principale 1 (Tx) à la broche esclave 2 (Rx). Si vous devez télécharger à nouveau du code, vous devez d'abord déconnecter ce câble.

Connectez ensuite l'arduino esclave à une alimentation 5V, le câble RCA au téléviseur et le clavier à la PS2, et vous devriez maintenant voir le code sur votre téléviseur !

Les fonctions de ce dialecte de base sont décrites en détail dans sa page d'accueil (voir lien à l'étape 2). Avec les commandes "esave" et "eload", vous pouvez enregistrer un programme de base dans l'EEPROM. Ce programme est exécuté par défaut chaque fois que vous réinitialisez l'Arduino maître. Pour le supprimer vous pouvez utiliser la commande "eformat".

L'une des caractéristiques les plus importantes de ce programme est que vous pouvez toujours piloter l'E/S Arduino maître avec des commandes de base dédiées, telles que

  • Broche DWRITE, valeur - définir la broche avec une valeur (HIGH, HI, LOW, LO)
  • Broche AWRITE, valeur - définir la broche avec la valeur analogique (pwm) 0..255
  • DREAD(pin) - obtenir la valeur de la broche
  • AREAD(analogPin) - obtenir la valeur de la broche analogique

Ainsi, vous pouvez écrire un programme en Basic qui pilote du matériel, l'enregistrer dans l'EEPROM, puis l'exécuter automatiquement en réinitialisant simplement l'Arduino.

É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

Vous pouvez également construire ce PC de base en utilisant un petit PCB. Vous pouvez vous inspirer des images de cette étape ou vous pouvez même imprimer votre planche.

Vous pouvez utiliser deux bandes d'en-tête femelles avec 15 trous pour la sortie vidéo Arduino, tandis que pour le maître, je suggère d'utiliser quatre bandes. De cette façon, vous pouvez utiliser les externes pour insérer les contacts des composants de votre projet.

J'ai également ajouté au centre des bandes restantes, une connectée à 5 V et l'autre pour GND.

Enfin, dans le fichier.rar, vous trouverez les masques pour graver une carte cuivrée.

Étape 5: Commentaires finaux et remerciements

Ce projet n'aurait pas pu être réalisé sans la bibliothèque MRETV. Ainsi, ma principale reconnaissance va à son auteur, qui utilise l'acronyme Mr E.

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: il est plus facile à construire qu'il n'y paraît à première vue. Mes principaux problèmes concernent les compatibilités Arduino IDE. Si vous rencontrez des problèmes, 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é: