Taula de continguts:

DemUino - Ordinador / controlador domèstic: 7 passos
DemUino - Ordinador / controlador domèstic: 7 passos

Vídeo: DemUino - Ordinador / controlador domèstic: 7 passos

Vídeo: DemUino - Ordinador / controlador domèstic: 7 passos
Vídeo: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, De novembre
Anonim
Image
Image
Cremant el carregador d'arrencada
Cremant el carregador d'arrencada

Un equip inspirat en Arduino de DemeterArt Aprofita al màxim el teu vell teclat PS2. Introduïu-lo en un ordinador personalitzat per controlar coses. Sempre he volgut construir el meu propi ordinador casolà, d’estil retro, res de luxe, però amb capacitats particulars adaptades a les meves preferències. Vaig aconseguir-ho amb la MCU atmega328 i el kit de desenvolupament Arduino.

Permeteu-me afirmar que aquest projecte hauria trigat bastant més amb dubtosos resultats finals si no fos pels fans dotats que ofereixen menys les biblioteques de programari gratuït per a tothom. Gràcies a tots:-)

visiteu el meu lloc per llegir tota la història i descarregar tots els fitxers rellevants

www.sites.google.com/site/demeterart

Pas 1: funcions

  • Basat en l'ATMEGA328 amb flash de 32 KB, SRAM de 2 KB i EEPROM d'1 KB.
  • suport per a modes interactius i per lots
  • editor de línies i mode de llista mentre s’edita
  • 8 caràcters personalitzats per a gràfics d'usuari
  • 60 passos del programa numerats 00,…, 99
  • "Si" condicional, bucles "mentre" i "per" més sentències "passa" i "sub" per a la ramificació
  • Expressions matemàtiques i aritmètiques bàsiques més proves booleanes
  • les variables del sistema permeten esdeveniments temporitzats, valors mitjans, efectius, mínims i màxims de pins analògics, etc.
  • 26 variables d'usuari per interactuar amb variables i ordres del sistema
  • 104 bytes d'una matriu adreçable per l'usuari o 52 enters enters curts
  • capacitat de llegir / escriure dades del programa, així com codi sobre la marxa (variable p)
  • aplicació de mini oscil·loscopi amb caràcters personalitzats per a pseudo gràfics
  • deseu i carregueu programes i dades a / des de EEPROM
  • carregar / desar programes i variables des de / a l'ordinador
  • autoexec per carregar i executar un programa des de EEPROM després de cada reinici
  • 9 pins GPIO (SPI inclòs) disponibles al connector DB15 extern
  • BUZZER per a efectes de so

Pas 2: coses que necessitareu

Un vell teclat ps / 2 prou gruixut com per contenir la pantalla de caràcters LCD de PCB (el popular format paral·lel) xip MAX232 per al kit de desenvolupament Arduino del port RS232 atmel atmega328PU amb regulador IDE 1.0.1 LM7805, reductor de pont zumbador de 5 V, condensadors, un botó de reinici, connectors, etc.

Pas 3: gravar el carregador d'arrencada

Per tant, després d’haver comprat un xip atmega328PU ‘buit’, s’ha de prendre una decisió. Utilitzo un programador especial extern o ISP o puc gravar el gestor d’arrencada Arduino a la bestia i fer que la unitat es pugui programar a través del seu port UART? He escollit aquest darrer per fer-me la vida més fàcil! El nou carregador d’arrencada ocupa només mig kilobyte de memòria flash, deixant una mica més de 31 KB de programa d’usuari i dades estàtiques disponibles. El lloc Arduino cobreix el cas de gravar el carregador d’arrencada en un nou xip, quan es tractava d’utilitzar avrdude per gravar realment el xip objectiu, el procés va fallar amb un error que indicava l’identificador incorrecte de l’MCU en particular. Així que després d’haver fet algunes cerques, vaig trobar aquest noi que ho va encertar i vaig seguir el seu procediment. L'única diferència eren dos fitxers de configuració, avrdude.conf i boards.txt que necessitava avrdude i arduino IDE 1.0.1 per fer-ho possible. Després de copiar els 2 fitxers a les seves ubicacions adequades (primer feu una còpia de seguretat dels antics), l’opció ‘arduino328’ de tools-> Board estava disponible i avrdude va procedir a gravar els fusibles i el carregador d’arrencada. Ara el xip està llest per programar-se des de la nova màquina.

Pas 4: Construir la unitat

Construint la Unitat
Construint la Unitat
Construint la Unitat
Construint la Unitat

Es va utilitzar una placa perforada amb tires de coure com a solució de muntatge ràpid amb endolls DIP per a les estelles, ja se sap, per si de cas. A continuació, els forats i talls dels connectors, el botó de reinici i la pantalla LCD es van obrir a través del plàstic extremadament resistent i gruixut del teclat. Sí, es va construir fa 25 anys. Va seguir el desgavell de cables que emanaven del PCB cap als diversos perifèrics. Es va fer una rudimentària comprovació de continuïtat i, a continuació, es va connectar el subministrament sense xips poblats només per comprovar que els endolls tinguessin tensions adequades. Després van aparèixer els 2 circuits integrats i la caixa del teclat es va tancar fermament mitjançant els seus clips de plàstic a la part inferior. La unitat estava preparada per gravar esbossos al controlador.

Us suggereixo que s’utilitzin condensadors no polars 1uF / 16V per a les bombes de càrrega MAX232. Localitzeu els condensadors de desacoblament de 100 nF per als dos xips el més a prop possible dels respectius pins VCC i GND. Utilitzeu una connexió en estrella per a l'alimentació i la terra a què fa referència el regulador LM7805. El commutador 2 podria ser un pont depenent de la impementació, però és bo tenir-lo, només per evitar restabliments MCU no desitjats del PC amfitrió en determinats casos. En qualsevol cas, l’interruptor s’ha de tancar per permetre que l’Arduino IDE pugui gravar l’esbós restablint l’MCU objectiu (pin DTR de RS232). En el meu cas, la connexió és permanent (sempre tancada). Utilitzeu una resistència de sèrie per al buzzer per aïllar els diversos nF de capacitat de la porta de conducció … mai se sap. Localitzeu el XTAL i els condensadors de càrrega de 18-22pF el més a prop possible dels respectius pins del controlador.

A causa del pont rectificador, la unitat pot alimentar-se amb adaptadors de corrent altern i continu. En cas de corrent continu, hi ha una caiguda de voltatge d’1,5 V entre l’adaptador i l’entrada al regulador. En cas de corrent altern, l'entrada del regulador és aproximadament 1,4 vegades la sortida RMS de l'adaptador o menys a causa de la càrrega. Si la diferència entre l’entrada del regulador i la seva sortida (+ 5 V) és gran, diguem-ne 7 volts, la potència consumida pel regulador s’acosta als 0,5 watts i és millor utilitzar un petit dissipador de calor sobre el qual muntar el xip (sempre hi ha espai per a això) per a llargues hores de funcionament quan fa calor.

El fusible d'entrada de CA es pot seleccionar en funció de les càrregues externes (mitjançant el connector DB15). Altres factors que influeixen en l'elecció del fusible són la resistència limitadora de corrent per a la retroiluminació LED de la pantalla LCD, el condensador de pont per al corrent de càrrega i la capacitat actual del transformador de subministrament.

Pas 5: ESQUEMÀTIC

ESQUEMÀTICA
ESQUEMÀTICA

Pas 6: FUNCIONAMENT DEL PROGRAMARI A BORD

Aquest és l'esbós que fa que tot passi … i 32 KB no són suficients! Podeu utilitzar-lo sense modificar, en aquest cas agrairia una referència al meu nom o bé canviar-lo a voluntat i oblidar-me de mi;-)

Aquesta és la documentació detallada sobre la màquina.

Resum d'ordres i expressions

“: Una línia de comentaris no imprimibles

ai: adjuntar la interrupció 0 (pin D2)

ar: lectura analògica

aw: ‘escriptura analògica’ per arduino o més adequadament pwm

ca: captura analògica en una matriu

cl: esborra la pantalla cno: return * Prgm índex del número de línia

di: espera una sèrie de polsos i mesura la durada i el temps

dl: retard

fer: juntament amb "wh"

dr: digital llegeix qualsevol pin

dw: escriure digitalment qualsevol pin

ed: mode editor / programa de càrrega des de PC / renumeració de línies

el: funció d'accés EEPROM

end: la sentència END d'un programa

ensb: acaba la subrutina

es: funció d'accés EEPROM

fl: filtre mitjà mòbil simple

fr: bucle per al següent (fr-nx)

anar: saltar al pas del programa

gosb: continuar l'execució fins a la subrutina

gt: espera l'entrada de l'usuari

si: prova l’estat i salta al pas

io: GPIO 1-9 bits

ld: carrega / combina el programa des de EEPROM

lp:: bucle controlat per teclat en mode interactiu

ls: mode llista / envia el programa al PC una línia a la vegada

ml: obtenir temps

mm: mostra memòria lliure

nos: converteix el número en cadena

nx: juntament amb "fr"

pl: plot array cxx

pm: defineix els pins per a l'entrada o sortida

pr: imprimeix un missatge o un valor o un caràcter personalitzat

rgc: ordre de còpia de rang per a matrius

rgs: ordre range set per a matrius

rn: executeu el programa a la memòria RAM

rs: restabliment suau

rx: rep un personatge mitjançant RS232

si: entrada sèrie síncrona amb rellotge i pins de dades

sm: mini oscil·loscopi app sno: converteix la cadena en número

així: sortida sèrie síncrona amb rellotge i pins de dades

sub: declara la subrutina

sv: deseu el programa a EEPROM

tn: emet un so

tx: transmet un número mitjançant RS232

wh: un bucle do-while que s'utilitza conjuntament amb "fer"

Pas 7: Videoclip de la mini aplicació "sm" en execució

visiteu el meu lloc per llegir tota la història i descarregar tots els fitxers rellevants

www.sites.google.com/site/demeterart

Recomanat: