Table des matières:
- Étape 1: Pièces que j'ai utilisées
- Étape 2: le circuit
- Étape 3: Le PCB
- Étape 4: Téléchargement du code
- Étape 5: Assemblage
- Étape 6: Bugs et travaux futurs
Vidéo: Ordinateur de poche BASIC : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Ce Instructable décrit mon processus de construction d'un petit ordinateur de poche exécutant BASIC. L'ordinateur est construit autour de la puce AVR ATmega 1284P, qui a également inspiré le nom idiot de l'ordinateur (HAL 1284).
Cette version est fortement inspirée par l'incroyable projet trouvé ici et le badge SuperCON BASIC.
L'ordinateur exécute une version modifiée de TinyBasic, bien qu'une grande partie du logiciel soit basée sur le projet de dan14. Vous pouvez bien sûr suivre ce Instructable, ou encore mieux, l'améliorer car j'ai fait quelques erreurs.
Pour ce projet, j'ai également créé un manuel. Il mentionne quelques bugs et spécificités du moniteur choisi mais surtout, il contient la liste des opérations BASIC.
Après sa publication, j'ai réalisé une vidéo présentant le projet.
Étape 1: Pièces que j'ai utilisées
Pour le circuit intégré principal:
- ATmega 1284P
- Cristal 16MHz
- Condensateur en céramique 2x 22pf
- Résistance 10KΩ (pour la réinitialisation pull-up)
- Bouton à 4 broches (pour la réinitialisation)
- 470Ω Reistor (pour la vidéo composite)
- Résistance 1kΩ (pour la synchronisation vidéo composite)
- Cavalier à 3 broches (pour le signal vidéo)
- Avertisseur passif
Pour le contrôle du clavier:
- ATmega 328P (Comme ceux utilisés dans l'Arduino Uno)
- Cristal 16MHz
- Condensateur en céramique 2x 22pf
- 12x 10KΩ Résistance (Pour reset pull up et boutons)
- 51x bouton 4 broches (pour le clavier réel)
Pour le pouvoir:
- Régulateur de tension L7805
- DEL de 3 mm
- Résistance 220Ω (pour LED)
- 2x 0.1µF condensateur électrolytique
- Condensateur électrolytique 0,22 µF (Vous pouvez remplacer ce 0,22 et un 0,1 par un 0,33. On m'a également dit que les valeurs n'avaient pas vraiment d'importance, mais je ne suis pas doué avec les condensateurs)
- 2x cavalier à 2 broches (pour l'entrée d'alimentation et pour l'interrupteur principal)
GPIO (peut-être ajouter quelques motifs supplémentaires):
- Cavalier 7 broches
- 2x cavalier à 8 broches
- Cavalier à 2 broches (pour 5V et GND)
- Cavalier 3-4 broches (pour la communication série)
Non PCB:
- Écran LCD 4 "avec vidéo composite (le mien avait une tension d'entrée comprise entre 7 et 30 V)
- Support imprimé en 3D pour l'affichage
- Une sorte d'interrupteur
Étape 2: le circuit
Le circuit n'est pas très joli et une grande partie de la région IC principale est inspirée de dan14. Cela étant dit, c'est un Arduino assez simple sur un circuit Breadboard. Le clavier est une simple grille et est contrôlé par l'ATmega328. Les deux puces AVR communiquent via les broches série UART.
Une image et mes fichiers Eagle sont joints et seront, espérons-le, suffisants pour recréer le circuit. Sinon, n'hésitez pas à m'en informer et je mettrai à jour l'Instructable.
Étape 3: Le PCB
Le PCB est à 2 couches et créé à l'aide d'Auto Route (Oh, quel trou ** !). Il a des boutons et un indicateur d'alimentation LED à l'avant et le reste à l'arrière. J'ai fait fabriquer mon PCB avec JCL PCB, et ils ont fait un travail incroyable avec. Les fichiers nécessaires pour recréer le PCB doivent être dans les fichiers Eagle d'avant.
Je vous suggère de reconcevoir le PCB, car j'ai certaines choses que j'aurais aimé faire différemment. Si vous aimez mon design, j'ai encore (au moment de la rédaction) quatre planches inutilisées que je suis plus que disposé à vendre.
La carte a quatre trous de perçage que j'ai utilisés pour monter l'écran LCD.
Étape 4: Téléchargement du code
Le 1284 et le 328 ont bien sûr besoin de code et le code que j'ai utilisé peut être trouvé ici: https://github.com/PlainOldAnders/HAL1284 sous ArduinoSrc/src. J'ai simplement utilisé l'IDE Arduino pour modifier et télécharger le code, mais avant cela, vous devrez graver des chargeurs de démarrage sur les circuits intégrés:
ATMega328:
Celui-ci est simple, dans le sens où il existe de nombreuses informations sur la façon de graver un chargeur de démarrage et de télécharger du code sur ce circuit intégré. Je suis généralement ce guide, principalement parce que j'oublie toujours les détails.
Le code pour le 328 (sous ArduinoSrc/keypad) est assez simple. Il repose totalement sur la bibliothèque Adafruit_Keypad-master-. Au cas où quelque chose changerait à propos de la lib, j'ai inclus la version que j'ai utilisée sur ma page github sous ArduinoSrc/lib.
ATmega1284:
C'était un peu difficile pour moi quand j'ai eu l'IC pour la première fois. J'ai commencé par obtenir le bootloader à partir d'ici et j'ai suivi le guide d'installation. Pour graver le bootloader, j'ai simplement fait la même chose qu'avec le 328 et j'ai obtenu de l'aide d'ici. Pour les deux circuits intégrés, je viens d'utiliser un Arduino Uno à la fois pour graver le chargeur de démarrage et pour télécharger le code (IC supprimé d'Arduino Uno lors du téléchargement).
Le code (sous ArduinoSrc/HAL1284Basic) est beaucoup trop compliqué pour moi mais j'ai pu modifier certaines parties du code:
J'ai ajouté quelques commandes (celles marquées d'un [A] dans le manuel.pdf) et j'ai également modifié d'autres commandes:
Tone: La commande de tonalité utilisait auparavant la fonction de tonalité d'Arduino, mais lors de l'utilisation de la bibliothèque TVout, le buzzer ne fonctionnait pas correctement. Je l'ai changé pour utiliser la fonction de tonalité de TVout, mais cela signifie que la broche de tonalité DOIT être la broche 15 (pour l'atmega1284)
Communication série: étant donné que le clavier est un bricolage, il utilise une communication série pour lire les caractères. Puisque l'atmega1284 est utilisé ici, il y a deux lignes de communication série disponibles, et lorsque "sercom" est activé, le code permet également d'écrire via le port série (à partir d'un ordinateur ou autre).
Résolution: Le moniteur utilisé pour ce projet est assez stupide, et une petite résolution est nécessaire, sinon l'image scintille. Si un meilleur moniteur est utilisé, je vous suggère de modifier la résolution dans la fonction de configuration.
Étape 5: Assemblage
Avec le code téléchargé et le PCB et les pièces prêts, il est maintenant temps de procéder à l'assemblage. Toutes les pièces que j'ai utilisées étaient des trous traversants, donc la soudure n'était pas trop difficile (par opposition aux badass-SMD-soudure-fellas là-bas). Le moniteur a été fixé aux quatre trous de perçage du PCB avec un support imprimé en 3D. Si un autre moniteur est utilisé, les quatre trous de perçage peuvent, espérons-le, être utilisés pour le montage.
Le support de moniteur utilisé ici est également conçu pour loger un interrupteur à bascule (connecté au cavalier "switch" sur le PCB) et les trois boutons de commande du moniteur. Le support est fixé avec des boulons M3 en plastique et des entretoises.
Pour la prise d'alimentation, j'ai utilisé un connecteur PCB JST, bien qu'une prise cylindrique lisse aurait été un peu plus lisse. Pour alimenter la carte, j'ai basculé entre une alimentation 12V ou trois batteries 18650 en série. Un cow-boy plus doux que moi pourrait probablement concevoir un support de batterie lisse pour la planche.
Étape 6: Bugs et travaux futurs
Touches fléchées: les touches fléchées ont été placées accidentellement et ne servent pas à grand-chose. Cela rend la navigation difficile
E/S de fichier: il existe des capacités d'E/S de fichier mais celles-ci ne sont pas implémentées. Pour lutter contre cela, le logiciel HAL1284Com est capable de télécharger des fichiers sur la carte. Il est également possible de télécharger vers l'EEPROM.
PEEK/POKE: PEEK et POKE ne sont pas testés et je ne sais pas quelles sont les adresses.
Break: Break (Esc) a parfois joué avec le code entier, lorsqu'il est dans des boucles infinies.
Broche 7: La broche PWM 7 peut être difficile lorsque vous essayez de DWRITE High ou AWRITE 255. Cela fonctionne bien avec AWRITE 254.
Idiot: Il serait idéal de pouvoir également télécharger via UART1 mais le téléchargement n'est possible que via UART0, donc le téléchargement devra être effectué en extrayant le circuit intégré principal. L'écran et le régulateur de tension 5 chauffent un peu trop lorsqu'ils fonctionnent longtemps.
Conseillé:
MutantC_v2 - un ordinateur de poche/UMPC Raspberry Pi facile à construire : 8 étapes (avec photos)
MutantC_v2 - un ordinateur de poche/UMPC Raspberry Pi facile à construire : une plate-forme portable Raspberry-pi avec un clavier physique, un affichage et un en-tête d'extension pour les cartes personnalisées (comme Arduino Shield). mutantC_V2 est le successeur de mutantC_V1. Découvrez mutantC_V1 à partir d'ici.https://mutantc.gitlab.io/https://gitlab.com/mutant
Ordinateur de poche PCB avec Arduino (avec une option pour passer au sans fil!): 3 étapes
Ordinateur de poche PCB avec Arduino (avec une option pour passer au sans fil!): Mise à jour 28.1.2019Je travaille actuellement sur la prochaine version de cet ordinateur de poche. Vous pouvez suivre le projet sur ma chaîne YouTube ou Twitter. Attention ! J'ai trouvé une erreur dans la disposition du PCB. Les boutons gauche et haut sont connectés à des broches analogiques uniquement. J'ai réparé
Tapis de refroidissement pour ordinateur portable DIY - Awesome Life Hacks avec ventilateur CPU - Idées créatives - Ventilateur d'ordinateur : 12 étapes (avec photos)
Tapis de refroidissement pour ordinateur portable DIY | Awesome Life Hacks avec ventilateur CPU | Idées créatives | Fan d'ordinateur : vous devez regarder cette vidéo jusqu'à la fin. pour comprendre la vidéo
Ordinateur Linux de poche : Pi-Micro : 13 étapes (avec photos)
Ordinateur Linux de poche : Pi-Micro : Avez-vous déjà voulu faire un ordinateur qui pourrait tenir dans votre main ? Un ordinateur portable à part entière, mais minuscule ? Moi aussi, j'ai donc construit ce petit ordinateur portable, que j'appelle le Pi-Micro. Il s'agit de la troisième version du Pi-Micro, presque un an dans le maki
Utiliser la PSP comme joystick d'ordinateur puis contrôler votre ordinateur avec la PSP : 5 étapes (avec photos)
Utilisation de la PSP comme joystick d'ordinateur, puis contrôle de votre ordinateur avec la PSP : vous pouvez faire beaucoup de choses intéressantes avec l'homebrew PSP, et dans cette instructable, je vais vous apprendre à utiliser votre PSP comme joystick pour jouer à des jeux, mais il y a aussi un programme qui vous permet d'utiliser votre joystick comme votre souris. Voici la matière