Des amateurs d'Arduino là-bas?
Hé, j'y ai pensé et plus j'y pense, plus je pense que je peux vraiment faire ça. Mon idée est essentiellement la suivante: fabriquer un ordinateur fonctionnel à partir d'un microcontrôleur Arduino Uno.
Mon seul objectif pour cet ordinateur est de pouvoir éditer et exécuter des programmes BASIC. C'est tout. Je ne le veux que pour la programmation, car c'est à peu près la seule chose qui m'intéresse en ce moment :)
Donc, d'après ce que je vois, j'ai besoin de trois composants matériels principaux:
- une forme d'affichage (écran VGA ou autre)
- un moyen d'enregistrer l'entrée du clavier, et
- un moyen de stocker des données dans la mémoire externe.
Quelqu'un connaît-il un moyen de le faire? Je connais des façons d'afficher sur un écran, mais je ne connais pas un bon composant API / matériel pour enregistrer les entrées au clavier ou pour stocker la mémoire externe.
Je vais avoir besoin de beaucoup d'aide à ce sujet. Quelqu'un peut-il m'aider et offrir des idées et des conseils et suggestions utiles pour un bon matériel / une bonne bibliothèque open source, ou deux, ou trois, ou dix?
Ajoutée:
Blog Créer un ordinateur Arduino Uno pour tous ceux qui sont intéressés.
Réponses:
Le clavier peut être fait simplement en utilisant un clavier PS / 2 - c'est juste en série, et il y a beaucoup de tutoriels là-bas.
Le stockage des données peut se faire simplement sur une carte SD - il existe déjà un bouclier pour le faire.
Quant à la vidéo - c'est beaucoup plus difficile. Si vous voulez que l'Arduino génère un signal vidéo PAL par exemple, vous avez du pain sur la planche. Oui, c'est possible, et quelqu'un a créé un jeu Arduino "pong", mais c'est des graphismes très volumineux et uniquement en noir et blanc.
Pour VGA, vous aurez besoin d'une certaine forme d'interface pour faire le travail pour vous. Sparkfun vendait la carte vidéo Picaso qui pourrait être conçue pour fonctionner avec l'Arduino, mais hélas, elle a été abandonnée et il n'y a pas encore de plan de remplacement.
TBH votre meilleur pari serait d'utiliser quelque chose comme un terminal Wyse et de communiquer complètement avec l'Arduino en série. Beaucoup plus simple que de jouer avec des signaux vidéo et autres.
la source
Je vois le point d'Olin ici - si vous voulez seulement éditer / exécuter / apprendre BASIC, utilisez simplement un PC.
Cependant, si l'objectif est le défi de créer un ordinateur qui peut exécuter BASIC et en savoir plus sur le matériel et la mise en œuvre de niveau inférieur en même temps, c'est un peu différent. Je suis tout pour des trucs comme ça, c'est un excellent moyen d'améliorer les connaissances et je suis sûr que vous en tirerez beaucoup. Comme Steven mentionne toutes les couches déroutantes et (principalement) non pertinentes que, par exemple, Windows peut supprimer, laissant les concepts de base (sans jeu de mots).
Quoi qu'il en soit, vous voudrez peut -être regarder quelque chose d'un peu plus puissant comme le PIC32, car il devrait être capable de gérer toutes les fonctionnalités (par exemple, VGA de base) seul.
Voici une carte compatible Arduino, l' UNO32
Le Maximite est un ordinateur avec interprète BASIC basé autour d'un PIC32, vous voudrez peut-être regarder la conception et la construction pour quelques idées.
la source
Votre chance, en quelque sorte, parce que je travaille actuellement sur un PC Arduino! Ce n'est pas grand-chose cependant, seulement le premier modèle. Le firmware est également très simple et dispose d'un petit ensemble d'API. Mais, la chose fonctionne! Pas assez bon pour éditer BASIC (ou n'importe quelle langue sauf la sienne), mais ce n'est que le premier modèle. La mobo est assez simple, et j'utilisé ce . Voici le firmware que j'ai utilisé:
La description de la méthode est difficile à expliquer, mais le code est stocké sous forme d'octets bruts. Je devrais avoir un logiciel de développement bientôt ... J'espère que cela vous aidera! Si jamais vous souhaitez l'utiliser pour des projets, VOUS DEVEZ AVOIR UN fichier BIOS.mk8 dans le répertoire racine de la SD ou le système ne fonctionnera pas.
la source
Avec tout le respect que je dois à David Brin (il se trouve que j'aime beaucoup ses livres; je ne suis pas qualifié pour juger de sa qualité d'astrophysicien), il n'est ni programmeur ni éducateur.
J'étais en train de coder dans les premiers jours des PC et j'ai écrit une bonne quantité de code BASIC. Et j'écris du code professionnellement depuis.
La raison pour laquelle nous avons utilisé BASIC à l'époque était que vos deux options étaient d'utiliser BASIC ou d'écrire dans l'assemblage, et l'assemblage était à la fois plus difficile à comprendre et beaucoup plus lourd à utiliser. Donc, BASIC.
Depuis plus de 30 ans, des améliorations importantes ont été apportées à l'enseignement de la programmation. Ma femme enseigne une classe de programmation débutante qui utilise Alice (www.alice.org), et c'est beaucoup mieux conceptuellement que les anciennes approches.
Je pense que la solution de Brin était assez élégante. Vous pourriez construire quelque chose d'assez simple sur un Raspberry PI. Sur l'arduino, je pense qu'il sera difficile de mettre tout ce dont vous avez besoin dans 2 Ko de RAM; qui doit contenir le système d'exploitation / moniteur que vous finissez par écrire, un interpréteur de commandes, du code pour faire l'affichage et le stockage du programme de base lui-même.
Sans parler du fait que vous allez devoir faire beaucoup de programmation difficile et personnalisée pour pouvoir écrire du code dans un environnement simple.
la source
Je ne comprends pas. Si vous voulez seulement avoir un moyen de programmer en Basic, exécutez un interpréteur de base sur votre PC. Je ne comprends pas comment vous attendez de l'Arduino pour vous aider. L'Arduino est un microcontrôleur avec de nombreux logiciels sophistiqués pour cacher les détails du matériel. Une partie du coût de cela est des performances inférieures et une utilisation plus importante des ressources que le programme équivalent exécuté directement sur le microcontrôleur nu. Maintenant, vous voulez écrire du code Arduino pour le transformer en un ordinateur à usage plus général, tout cela pour que vous puissiez à son tour exécuter un interpréteur de base sur cet ordinateur à usage général? Cela n'a guère de sens.
Étant donné que votre seul objectif est de pouvoir éditer et exécuter des programmes de base (exécuter un interpréteur de base), commencez par une plate-forme informatique plus générale, de préférence même une qui dispose déjà d'un interprète de base. Votre PC est exactement une telle plateforme. Si vous voulez que ce soit du matériel externe, cela ressemble à un ordinateur à carte unique prêt à l'emploi qui répondrait beaucoup mieux à vos besoins qu'un Arduino.
Ajoutée:
Vous dites maintenant que vous ne voulez pas exécuter sur un PC et placez ce lien sur quelqu'un qui veut en ligne de commande Basic pour que son enfant apprenne. Certes, je n'ai pas lu l'intégralité de l'article (je n'aime pas que les gens répondent avec des liens. Vous devriez pouvoir exprimer votre point de manière indépendante en quelques phrases), mais je ne vois pas comment un PC exécutant une ligne de commande Interprète de base ne règle pas votre problème. Pourquoi l'interpréteur de base n'est-il pas autorisé à s'exécuter sur un PC mais est-il correct de s'exécuter sur un Arduino? Rappelez-vous, vous avez dit à l'avance que votre seul objectif était de modifier et d'exécuter des programmes de base. Rien dans cette déclaration ne dit sur quel matériel il doit fonctionner, et aucune de vos explications ultérieures n'explique pourquoi un PC ne fonctionnerait pas bien.
Il existe probablement des interprètes de base qui s'exécutent sur la ligne de commande. L'ancien QBASIC peut toujours fonctionner dans certains modes de compatibilité DOS. Même si ce n'est pas le cas, puisque vous êtes prêt à y consacrer du matériel, comment l'exécution de DOS et QBASIC sur un PC ne fournit-elle pas ce que vous avez demandé?
la source
poke
instructions. Pas de pilotes COM virtuels à installer, pas d'USB vers les ponts, pas d'IDE de développeur complexe à charger. Les SBC sont comparables, mais manquent généralement de l'interface clavier / vidéo (et du stockage de cassette!) Des ordinateurs personnels.Liste des interprètes AVR BASIC:
la source
J'aime l'idée d'exécuter une application commune, telle que BASIC sur un Arduino, surtout si vous l'avez vous-même construite à la main. J'aime la commodité d'avoir un appareil Arduino pratique et alimenté par batterie exécutant l'application que je voulais. Si c'était moi, j'utiliserais peut-être un Arduino MEGA, donc j'aurais assez de broches pour le clavier et un blindage SD pour le stockage.
Je choisirais un écran LCD graphique couleur ou un écran TFT sur VGA pour simplifier la programmation et les connexions, un moyen de garder une trace de la date et de l'heure (RTC), et qu'est-ce qu'une application sans Internet ni réseau (bouclier Ethernet)? Des RAM I2C supplémentaires (24LC256) peut-être? Et quelques I2C MCP223017 au cas où j'aurais besoin de quelques ports supplémentaires. Que diriez-vous de plusieurs Arduino effectuant une tâche parallèle? Cela améliorerait les performances, j'en suis sûr.
la source