INHOUDSOPGAWE:

DemUino - Tuisrekenaar/beheerder: 7 stappe
DemUino - Tuisrekenaar/beheerder: 7 stappe

Video: DemUino - Tuisrekenaar/beheerder: 7 stappe

Video: DemUino - Tuisrekenaar/beheerder: 7 stappe
Video: Jonathan Blow: bewustzijn, gameontwerp en vrije wil 2024, November
Anonim
Image
Image
Brand van die selflaaiprogram
Brand van die selflaaiprogram

'N Arduino -geïnspireerde rekenaar deur DemeterArt Haal die meeste uit u ou PS2 -sleutelbord. Slaan dit in 'n persoonlike rekenaar om dinge te beheer! Ek wou nog altyd my eie tuisrekenaar bou, 'n soort retro-styl, niks anders nie, maar met spesiale vermoëns wat aangepas is by my voorkeure. Ek het dit reggekry met die atmega328 MCU en die Arduino -ontwikkelingsstel.

Laat ek sê dat hierdie projek aansienlik langer sou neem met twyfelagtige eindresultate as dit nie was vir die begaafde aanhangers daar buite wat selfsugtiger die freeware -biblioteke vir almal gebruik nie. Dankie almal:-)

besoek my webwerf om die hele verhaal te lees en alle relevante lêers af te laai

www.sites.google.com/site/demeterart

Stap 1: Kenmerke

  • Gebaseer op die ATMEGA328 met 32KB flits, 2KB SRAM en 1KB EEPROM.
  • ondersteuning vir interaktiewe en groepmodusse
  • reëlredakteur en lys-terwyl-wysigingsmodus
  • 8 pasgemaakte karakters vir gebruikersgrafika
  • 60 programstappe genommer 00, …, 99
  • 'As' voorwaardelik, 'terwyl' en 'vir' lusse plus 'gaan' en 'sub' stellings vir vertakking
  • Basiese rekenkundige en wiskundige uitdrukkings plus booleaanse toetse
  • stelsel veranderlikes maak voorsiening vir tydgebeurtenisse, gemiddelde, rms, min en maksimum waardes van analoog penne, ens
  • 26 gebruikersveranderlikes om met stelselveranderlikes en opdragte te kommunikeer
  • 104 grepe van 'n gebruiker -adresseerbare skikking of 52 kort heelgetalle
  • die vermoë om programdata te lees/skryf asook kode on-the-fly (p veranderlike)
  • mini -ossilloskoop -app met pasgemaakte karakters vir pseudo -grafika
  • stoor en laai programme en data van/na EEPROM
  • laai/stoor programme en veranderlikes van/na 'n rekenaar
  • autoexec om 'n program vanaf EEPROM na elke reset te laai en uit te voer
  • 9 GPIO -penne (SPI ingesluit) beskikbaar op die eksterne DB15 -aansluiting
  • BUZZER vir byklanke

Stap 2: goed wat u benodig

'N Ou PS/2 -sleutelbord wat dik genoeg is om die PCB -LCD -karakterskerm (die gewilde parallelle formaat) te huisves (die gewilde parallelle formaat) vir die RS232 -poort atmel atmega328PU Arduino -ontwikkelingsstel met IDE 1.0.1 LM7805 -reguleerder 5V -gonsbruggelykrigter, kapasitors, 'n hersteltoets, verbindings ens

Stap 3: Brand die opstartlaaier

Dus, nadat u 'n 'leë' atmega328PU -chip gekoop het, moet u besluit. Gebruik ek 'n spesiale programmeerder, ekstern of ISP, of brand ek die Arduino -laaiprogram in die dier en maak ek die toestel programmeerbaar via sy UART -poort? Ek het laasgenoemde gekies om my lewe makliker te maak! Die nuwe selflaaiprogram beslaan slegs 'n halwe kilobyte flitsgeheue, wat 'n bietjie meer as 31KB gebruikersprogram en statiese data beskikbaar stel. Die Arduino -webwerf dek die geval van die verbranding van die selflaaiprogram op 'n nuwe chip, toe avrdude gebruik is om die doelskyfie werklik te verbrand, het die proses misluk, met 'n fout wat die verkeerde ID vir die spesifieke MCU aandui. Na 'n paar soektogte het ek hierdie man gevind wat dit reggekry het en ek het sy prosedure gevolg. Die enigste verskil was 2 konfigurasielêers, avrdude.conf en boards.txt wat avrdude en arduino IDE 1.0.1 benodig om dit moontlik te maak. Nadat die twee lêers na die regte plekke gekopieer is (maak eers 'n rugsteun van die oues), was die opsie 'arduino328' van tools-> Board beskikbaar en het avrdude voortgegaan met die brand van die lonts en die laaiprogram. Nou is die chip gereed om binne die nuwe masjien geprogrammeer te word!

Stap 4: Bou die eenheid

Bou die eenheid
Bou die eenheid
Bou die eenheid
Bou die eenheid

'N Geperforeerde bord met koperstroke is gebruik as 'n vinnige monteeroplossing met DIP -voetstukke vir die skyfies. Toe word die gate en snye vir die verbindings, die reset -knoppie en die LCD -skerm oopgemaak deur die uiters stewige en dik plastiek van die sleutelbord. Ja, dit is 25 jaar gelede gebou! Daar volg die warboel drade wat van die PCB af na die verskillende randapparatuur kom. 'N Rudimentêre kontinuïteitskontrole en dan is die toevoer gekoppel sonder dat daar skyfies ingevul is net om die aansluitings na die regte spanning te kyk. Toe kom die 2 IC's en die sleutelbordkas is stewig toegemaak deur middel van sy plastiekknope onderaan. Die eenheid was gereed om sketse in die kontroleerder te verbrand!

Ek stel voor dat 'n mens nie -polêre 1uF/16V -kapasitors gebruik vir die MAX232 -laaipompe. Vind die ontkoppelingskondensators van 100nF vir die twee skyfies so na as moontlik aan die onderskeie VCC- en GND -penne. Gebruik 'n sterverbinding vir die krag en grond waarna die LM7805 -reguleerder verwys. Skakelaar 2 kan 'n springer wees, afhangende van die implementering, maar dit is goed om te hê, al is dit net om ongewenste MCU -terugstellings van die gasheer -rekenaar in sekere gevalle te vermy. Die skakelaar moet in elk geval gesluit word sodat die Arduino IDE die skets kan verbrand deur die doel MCU terug te stel (pen DTR van RS232). In my geval is die verbinding permanent (altyd gesluit). Gebruik 'n reeksweerstand vir die zoemer om die verskillende nF's van kapasitansie van die ryhek te isoleer … jy weet nooit.. Plaas die XTAL en die laai 18-22pF kapasitors so na as moontlik aan die onderskeie penne van die kontroleerder.

As gevolg van die gelykrigterbrug kan die eenheid deur beide wisselstroom- en gelykstroomadapters aangedryf word. In die geval van DC, is daar 'n 1,5 V spanningsval tussen die adapter en die ingang van die reguleerder. In die geval van wisselstroom is die inset van die reguleerder ongeveer 1,4 keer die RMS -uitset van die adapter of minder as gevolg van laai. As die verskil tussen die ingang van die reguleerder en sy uitset (+5V) groot is, sê 7 volt, dan bereik die krag wat deur die reguleerder verbruik word 0,5 watt en is dit beter om 'n klein heatsink te gebruik om die chip te monteer (met dien verstande daar is ruimte daarvoor) vir lang werksure tydens warm weer.

Die wisselstroom -insetsekering kan gekies word, afhangende van u eksterne ladings (via die DB15 -aansluiting). Ander faktore wat die keuse van die lont beïnvloed, is die stroombeperkingsweerstand vir die LED -agtergrond van die LCD, die brugkapasitor vir die laaistroom en die huidige kapasiteit van die toevoertransformator.

Stap 5: SKEMATIES

SKEMATIES
SKEMATIES

Stap 6: Sagteware loop aan boord

Dit is die skets wat alles laat gebeur … en 32KB is NIE genoeg nie! U kan dit óf onveranderd gebruik, in welke geval ek 'n verwysing na my naam sou waardeer, of dit na willekeur verander en van my vergeet;-)

Dit is die gedetailleerde dokumentasie oor die masjien.

Opsomming van bevele en uitdrukkings

':' N kommentaarlyn wat nie afgedruk kan word nie

ai: heg onderbreking 0 aan (pen D2)

ar: analoog lees

aw: 'analoog skryf' per arduino of meer korrek pwm

ca: analoog vang in 'n skikking

cl: maak die skerm skoon cno: return *Prgm indeks van reëlnommer

di: wag vir 'n reeks pulse en meet duur en tydsberekening

dl: vertraging

doen: in samewerking met 'wh'

dr: digitaal lees enige speld

dw: skryf enige speld digitaal

ed: redakteur af / laai program vanaf rekenaar / hernommer reëls

el: EEPROM -toegangsfunksie

einde: die EINDE -verklaring van 'n program

ensb: eindig subroutine

es: EEPROM -toegangsfunksie

fl: eenvoudige bewegende gemiddelde filter

fr: vir-volgende lus (fr-nx)

gaan: spring na die programstap

gosb: gaan voort met die uitvoering na die subroutine

gt: wag vir gebruikersinvoer

as: toets die toestand en spring na stap

io: GPIO 1-9 bis

ld: laai/saamvoeg program van EEPROM

lp:: sleutelbordbeheerde lus in interaktiewe modus

ls: lysmodus / stuur 'n reël op 'n slag program na 'n rekenaar

ml: kry tyd

mm: vertoon gratis geheue

nos: skakel getal om in string

nx: in samewerking met 'fr'

pl: plotskikking cxx

pm: stel penne in of uit

pr: druk 'n boodskap of waarde of persoonlike karakter af

rgc: opdrag kopieer reeks vir skikkings

rgs: reeks stel opdrag vir skikkings

rn: hardloop die program in RAM

rs: sagte herstel

rx: ontvang 'n karakter via RS232

si: sinchrone reeksinvoer met klok en gegewenspenne

sm: mini -ossilloskoop -app sno: skakel string in getal om

dus: sinchrone reeksuitset met klok en datapennetjies

sub: verklaar subroutine

sv: stoor program in EEPROM

tn: piep 'n toon

tx: stuur 'n nommer via RS232

wh: 'n doen-terwyl-lus wat saam met 'doen' gebruik word

Stap 7: Videoclip van Mini App 'sm' Running

besoek my webwerf om die hele verhaal te lees en alle relevante lêers af te laai

www.sites.google.com/site/demeterart

Aanbeveel: