Table des matières:
- Étape 1: Fonctionnalités
- Étape 2: choses dont vous aurez besoin
- Étape 3: Graver le Bootloader
- Étape 4: Construire l'unité
- Étape 5: SCHÉMA
- Étape 6: FONCTIONNEMENT DU LOGICIEL À BORD
- Étape 7: Clip vidéo de la mini application 'sm' en cours d'exécution
Vidéo: DemUino - Ordinateur personnel/contrôleur : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Un ordinateur inspiré d'Arduino par DemeterArt Tirez le meilleur parti de votre ancien clavier PS2. Hackez-le dans un ordinateur personnel personnalisé pour contrôler les choses ! J'ai toujours voulu construire mon propre ordinateur à la maison, un peu de style rétro, rien d'extraordinaire mais avec des capacités particulières adaptées à mes préférences. J'y suis donc parvenu avec le MCU atmega328 et le kit de développement Arduino.
Permettez-moi de dire que ce projet aurait pris beaucoup plus de temps avec des résultats finaux douteux s'il n'y avait pas eu les fans surdoués qui, de manière moins égoïste, fournissent les bibliothèques de logiciels gratuits pour que tout le monde puisse les utiliser. Merci à tous:-)
visitez mon site pour lire toute l'histoire et télécharger tous les fichiers pertinents
www.sites.google.com/site/demeterart
Étape 1: Fonctionnalités
- Basé sur l'ATMEGA328 avec 32 Ko de flash, 2 Ko de SRAM et 1 Ko d'EEPROM.
- prise en charge des modes interactif et batch
- éditeur de ligne et mode liste en cours d'édition
- 8 caractères personnalisés pour les graphiques utilisateur
- 60 étapes de programme numérotées 00, …, 99
- Boucles conditionnelles 'If', 'while' et 'for' plus instructions 'goto' et 'sub' pour le branchement
- Expressions arithmétiques et mathématiques de base et tests booléens
- les variables système permettent des événements chronométrés, des valeurs moyennes, efficaces, minimales et maximales des broches analogiques, etc.
- 26 variables utilisateur pour interagir avec les variables système et les commandes
- 104 octets d'un tableau adressable par l'utilisateur ou 52 entiers courts
- capacité de lire/écrire les données du programme ainsi que le code à la volée (variable p)
- mini application d'oscilloscope avec des caractères personnalisés pour les pseudo-graphiques
- enregistrer et charger des programmes et des données vers/depuis l'EEPROM
- charger/enregistrer des programmes et des variables depuis/vers le PC
- autoexec dans le chargement et l'exécution d'un programme à partir de l'EEPROM après chaque réinitialisation
- 9 broches GPIO (SPI incluses) disponibles sur connecteur DB15 externe
- BUZZER pour les effets sonores
Étape 2: choses dont vous aurez besoin
Un vieux clavier ps/2 assez épais pour abriter l'affichage des caractères LCD de la carte PCB (le format parallèle populaire) Puce MAX232 pour port RS232 Kit de développement Arduino atmel atmega328PU avec régulateur IDE 1.0.1 LM7805 Redresseur de pont buzzer 5V, condensateurs, un bouton poussoir de réinitialisation, connecteurs etc.
Étape 3: Graver le Bootloader
Ainsi, après avoir acheté une puce atmega328PU «vide», il y a une décision à prendre. Est-ce que j'utilise un programmeur spécial externe ou ISP ou dois-je graver le bootloader Arduino dans la bête et rendre l'unité programmable via son port UART ? J'ai choisi cette dernière pour me simplifier la vie ! Le nouveau chargeur de démarrage n'occupe qu'un demi-ko de mémoire flash, laissant un peu plus de 31 Ko de programme utilisateur et de données statiques disponibles. Le site Arduino couvre le cas de la gravure du chargeur de démarrage sur une nouvelle puce. Lorsqu'il s'agissait d'utiliser avrdude pour graver la puce cible, le processus a échoué avec une erreur indiquant le mauvais identifiant pour le MCU particulier. Donc, après quelques recherches, j'ai trouvé ce gars qui avait raison et j'ai suivi sa procédure. La seule différence était 2 fichiers de configuration, avrdude.conf et boards.txt requis par avrdude et arduino IDE 1.0.1 pour rendre cela possible. Après avoir copié les 2 fichiers à leurs emplacements appropriés (sauvegardez d'abord les anciens), l'option 'arduino328' de tools->Board était disponible et avrdude a procédé à la gravure des fusibles et du chargeur de démarrage. La puce est maintenant prête à être programmée depuis la nouvelle machine !
Étape 4: Construire l'unité
Une carte perforée avec des bandes de cuivre a été utilisée comme solution d'assemblage rapide avec des prises DIP pour les puces, vous savez, juste au cas où ! Ensuite, les trous et les découpes pour les connecteurs, le bouton de réinitialisation et l'écran LCD ont été ouverts à travers le plastique extrêmement solide et épais du clavier. Oui, ça a été construit il y a 25 ans ! Il s'en est suivi le fouillis de fils émanant du PCB vers les différents périphériques. Un contrôle de continuité rudimentaire, puis l'alimentation a été connectée sans puces peuplées juste pour vérifier les prises pour les tensions appropriées. Puis sont arrivés les 2 circuits intégrés et le boîtier du clavier a été fermement fermé via ses boutons-pression en plastique au bas. L'unité était prête à graver des croquis dans le contrôleur !
Je suggère d'utiliser des condensateurs non polaires 1uF/16V pour les pompes de charge MAX232. Localisez les condensateurs de découplage 100nF pour les deux puces aussi près que possible des broches VCC et GND respectives. Utilisez une connexion en étoile pour l'alimentation et la terre référencée au régulateur LM7805. Le commutateur 2 pourrait être un cavalier en fonction de l'implémentation, mais il est bon de l'avoir, ne serait-ce que pour éviter les réinitialisations indésirables du MCU du PC hôte dans certains cas. Dans tous les cas, le commutateur doit être fermé pour permettre à l'IDE Arduino de graver le croquis en réinitialisant le MCU cible (broche DTR de RS232). Dans mon cas, la connexion est permanente (toujours fermée). Utilisez une résistance en série pour le buzzer afin d'isoler les plusieurs nFs de capacité de la porte d'entraînement… on ne sait jamais. Localisez le XTAL et les condensateurs de chargement 18-22pF aussi près que possible des broches respectives du contrôleur.
En raison du pont redresseur, l'unité peut être alimentée par des adaptateurs d'alimentation CA et CC. En cas de courant continu, il y a une chute de tension de 1,5 V entre l'adaptateur et l'entrée du régulateur. En cas de courant alternatif, l'entrée du régulateur est d'environ 1,4 fois la sortie RMS de l'adaptateur ou moins en raison de la charge. Si la différence entre l'entrée du régulateur et sa sortie (+5V) est importante, disons 7 volts, alors la puissance consommée par le régulateur approche les 0,5 watts et il vaut mieux utiliser un petit dissipateur sur lequel monter la puce (à condition il y a de la place pour lui) pour de longues heures de fonctionnement par temps chaud.
Le fusible d'entrée AC peut être sélectionné en fonction de vos charges externes (via le connecteur DB15). D'autres facteurs qui influencent le choix du fusible sont la résistance de limitation de courant pour le rétroéclairage LED de l'écran LCD, le condensateur en pont pour le courant de charge et la capacité de courant du transformateur d'alimentation.
Étape 5: SCHÉMA
Étape 6: FONCTIONNEMENT DU LOGICIEL À BORD
C'est le sketch qui fait tout arriver… et 32 Ko ne suffisent PAS ! Vous pouvez soit l'utiliser sans modification, auquel cas j'apprécierais une référence à mon nom, soit le changer à volonté et m'oublier;-)
Ceci est la documentation détaillée sur la machine.
Résumé des commandes et expressions
: une ligne de commentaire non imprimable
ai: attachez l'interruption 0 (broche D2)
ar: lecture analogique
aw: 'écriture analogique' par arduino ou plus correctement pwm
ca: capture analogique dans un tableau
cl: efface l'affichage cno: retourne *Prgm index du numéro de ligne
di: attendre une série d'impulsions et mesurer la durée et le timing
dl: retard
do: en conjonction avec « wh »
dr: lecture numérique n'importe quelle broche
dw: écriture numérique n'importe quelle broche
ed: mode éditeur / charger le programme depuis le PC / renuméroter les lignes
el: fonction d'accès EEPROM
end: l'instruction END d'un programme
ensb: termine le sous-programme
es: fonction d'accès EEPROM
fl: filtre de moyenne mobile simple
fr: boucle for-next (fr-nx)
go: sauter à l'étape du programme
gosb: continuer l'exécution du sous-programme
gt: attend l'entrée de l'utilisateur
if: condition de test et saut à l'étape
io: GPIO 1-9 bits
ld: charger/fusionner le programme depuis l'EEPROM
lp:: boucle contrôlée par clavier en mode interactif
ls: mode liste / envoie le programme au PC une ligne à la fois
ml: obtenir le temps
mm: afficher la mémoire libre
nos: convertit le nombre en chaîne
nx: en conjonction avec ‘fr’
pl: tracer le tableau cxx
pm: définir les broches pour l'entrée ou la sortie
pr: imprime un message ou une valeur ou un caractère personnalisé
rgc: commande de copie de plage pour les tableaux
rgs: commande de définition de plage pour les tableaux
rn: lance le programme en RAM
rs: réinitialisation logicielle
rx: recevoir un caractère via RS232
si: entrée série synchrone avec broches d'horloge et de données
sm: mini oscilloscope app sno: convertit la chaîne en nombre
donc: sortie série synchrone avec horloge et broches de données
sub: déclare le sous-programme
sv: enregistrer le programme dans l'EEPROM
tn: bip une tonalité
tx: transmettre un numéro via RS232
wh: une boucle do-while utilisée en conjonction avec « do »
Étape 7: Clip vidéo de la mini application 'sm' en cours d'exécution
visitez mon site pour lire toute l'histoire et télécharger tous les fichiers pertinents
www.sites.google.com/site/demeterart
Conseillé:
Construire un enregistreur d'activité personnel : 6 étapes
Construire un enregistreur d'activité personnel : mon ami de Londres, Paul, voulait trouver un moyen de suivre sa nourriture, son activité et son emplacement dans un seul tableau de bord. C'est alors qu'il a eu l'idée de créer un formulaire Web simple qui enverrait des données à un tableau de bord. Il mettrait à la fois le formulaire Web sur un
Persistance du personnel LED Vision : 11 étapes (avec photos)
Persistance de la vision du personnel LED : il est bien connu que même après qu'une lumière a été éteinte, l'œil humain continue de « voir » pendant une fraction de seconde. C'est ce qu'on appelle la persistance de la vision, ou POV, et cela permet de " peindre ". images en déplaçant rapidement une bande o
Arc Reactor a La Smogdog, un projet très personnel… : 13 étapes (avec photos)
Arc Reactor a La Smogdog, un projet très personnel… : Qu'est-ce que j'ai en commun avec ces deux gars ? Ce n'est pas la barbe cette fois ! Nous avons tous un trou dans la poitrine, et bien moi et Leo sommes nés avec Pectus Excavatum, Stark devait gagner le sien :-) Pectus Excavatum est (regardez ici : https://fr .wikipedia.org/wik
Contrôleur de jeu DIY basé sur Arduino - Contrôleur de jeu Arduino PS2 - Jouer à Tekken avec la manette de jeu DIY Arduino : 7 étapes
Contrôleur de jeu DIY basé sur Arduino | Contrôleur de jeu Arduino PS2 | Jouer à Tekken avec la manette de jeu DIY Arduino : Bonjour les gars, jouer à des jeux est toujours amusant, mais jouer avec votre propre contrôleur de jeu personnalisé DIY est plus amusant. Nous allons donc créer un contrôleur de jeu utilisant arduino pro micro dans cette instructables
YABC - Encore un autre contrôleur Blynk - Contrôleur de température et d'humidité du cloud IoT, ESP8266 : 4 étapes
YABC - Encore un autre contrôleur Blynk - Contrôleur de température et d'humidité du cloud IoT, ESP8266 : Salut les fabricants, j'ai récemment commencé à cultiver des champignons à la maison, des pleurotes, mais j'ai déjà 3x de ces contrôleurs à la maison pour le contrôle de la température du fermenteur pour ma bière maison, femme fait aussi ce truc de Kombucha maintenant, et en tant que thermostat pour la chaleur