Indholdsfortegnelse:

DemUino - hjemmecomputer/controller: 7 trin
DemUino - hjemmecomputer/controller: 7 trin

Video: DemUino - hjemmecomputer/controller: 7 trin

Video: DemUino - hjemmecomputer/controller: 7 trin
Video: Incredible Commodore 64 Education collection Commodore 16 C64 C128 Books programs and games 2024, Juli
Anonim
Image
Image
Brænder Bootloader
Brænder Bootloader

En Arduino -inspireret computer af DemeterArt Få mest muligt ud af dit gamle PS2 -tastatur. Hack den til en tilpasset personlig computer for at styre ting! Jeg har altid ønsket at bygge min egen hjemmecomputer, en slags retrostil, ikke noget fancy, men med særlige muligheder tilpasset mine præferencer. Så jeg nåede det med atmega328 MCU og Arduino -udviklingssættet.

Lad mig konstatere, at dette projekt ville have taget betydeligt længere tid med tvivlsomme slutresultater, hvis det ikke var for de begavede fans derude, der egoistisk mindre leverer freeware -biblioteker, som alle kan bruge. Tak allesammen:-)

besøg mit websted for at læse hele historien og downloade alle relevante filer

www.sites.google.com/site/demeterart

Trin 1: Funktioner

  • Baseret på ATMEGA328 med 32KB flash, 2KB SRAM og 1KB EEPROM.
  • understøttelse af interaktive og batch -tilstande
  • linjeditor og liste-mens-redigeringstilstand
  • 8 brugerdefinerede tegn til brugergrafik
  • 60 programtrin nummereret 00,…, 99
  • "Hvis" betinget, "mens" og "for" sløjfer plus "gå" og "sub" udsagn til forgrening
  • Grundlæggende aritmetiske og matematiske udtryk plus boolske tests
  • systemvariabler giver mulighed for tidsbestemte hændelser, gennemsnit, rms, min og max værdier fra analoge ben osv
  • 26 brugervariabler til at interagere med systemvariabler og kommandoer
  • 104 bytes i et brugeradresserbart array eller 52 korte heltal
  • evne til at læse/skrive programdata samt kode on-the-fly (p variabel)
  • mini -oscilloskop -app med tilpassede tegn til pseudografik
  • gemme og indlæse programmer og data til/fra EEPROM
  • indlæse/gemme programmer og variabler fra/til pc
  • autoexec til at indlæse og køre et program fra EEPROM efter hver nulstilling
  • 9 GPIO -ben (inkluderet SPI) tilgængelige på eksternt DB15 -stik
  • BUZZER til lydeffekter

Trin 2: Ting, du får brug for

Et gammelt ps/2 -tastatur, der er tykt nok til at rumme pcb LCD -tegnskærmen (det populære parallelle format) MAX232 -chip til RS232 -port atmel atmega328PU Arduino -udviklingssæt med IDE 1.0.1 LM7805 -regulator 5V summer -bro -ensretter, kondensatorer, en reset -knap, stik osv

Trin 3: Brænding af bootloader

Så efter at have købt en 'tom' atmega328PU -chip er der en beslutning, der skal træffes. Bruger jeg en speciel programmerer enten ekstern eller internetudbyder, eller brænder jeg Arduino bootloader ind i dyret og gør enheden programmerbar via dens UART -port? Jeg valgte det sidste for at gøre mit liv lettere! Den nye bootloader fylder kun en halv kilobyte flashhukommelse og efterlader lidt mere end 31 KB brugerprogram og statiske data til rådighed. Arduino -stedet dækker sagen om at brænde bootloaderen på en ny chip, da det kom til at bruge avrdude til faktisk at brænde målchippen, mislykkedes processen med en fejl, der angav det forkerte id for den pågældende MCU. Så efter lidt søgning fandt jeg denne fyr, der havde det rigtigt, og jeg fulgte hans procedure. Den eneste forskel var 2 konfigurationsfiler, avrdude.conf og boards.txt, som avrdude og arduino IDE 1.0.1 havde brug for for at gøre det muligt. Efter at have kopieret de 2 filer til deres rigtige placeringer (sikkerhedskopier først de gamle) var indstillingen 'arduino328' fra værktøjs-> Board tilgængelig, og avrdude fortsatte med at brænde sikringerne og bootloaderen. Nu er chippen klar til at blive programmeret inde fra den nye maskine!

Trin 4: Opbygning af enheden

Bygger enheden
Bygger enheden
Bygger enheden
Bygger enheden

Et perforeret bræt med kobberstrimler blev brugt som en hurtig montageløsning med DIP -fatninger til chipsene, du ved, bare for sikkerheds skyld! Derefter blev hullerne og snittene til stik, reset -knappen og LCD -displayet åbnet gennem tastaturets ekstremt robuste og tykke plast. Ja, den blev bygget for 25 år siden! Der fulgte rodet af ledninger, der kom fra pcb'et mod de forskellige perifere enheder. En rudimentær kontinuitetskontrol og derefter var forsyningen tilsluttet uden chips fyldt bare for at kontrollere stikkontakterne for korrekte spændinger. Derefter kom de 2 IC'er, og tastaturetuiet var godt lukket via sine plastiksnaps i bunden. Enheden var klar til at brænde skitser i controlleren!

Jeg foreslår, at man bruger upolare 1uF/16V kondensatorer til MAX232 opladningspumper. Find 100nF afkoblingskondensatorer for de to chips så tæt som muligt på de respektive VCC- og GND -ben. Brug en stjerneforbindelse til strøm og jord, der refereres til LM7805 -regulatoren. Switch 2 kan være en jumper afhængigt af impementation, men det er godt at have, hvis det kun er for at undgå uønsket MCU -nulstilling fra værts -pc'en i visse tilfælde. I hvert fald skal kontakten være lukket, så Arduino IDE kan brænde skitsen ved at nulstille mål -MCU'en (pin DTR på RS232). I mit tilfælde er forbindelsen permanent (altid lukket). Brug en seriemodstand til summeren til at isolere de forskellige nF'er for kapacitans fra køreporten … du ved aldrig.. Find XTAL og indlæsningskondensatorerne 18-22pF så tæt som muligt på regulatorens respektive ben.

På grund af ensretterbroen kan enheden drives af både vekselstrøms- og jævnstrømsadaptere. I tilfælde af DC er der et 1,5 V spændingsfald mellem adapteren og indgangen til regulatoren. I tilfælde af vekselstrøm er regulatorens input cirka 1,4 gange adapterens RMS -output eller mindre på grund af belastning. Hvis forskellen mellem regulatorens indgang og dens udgang (+5V) er stor, f.eks. 7 volt, når den effekt, der bruges af regulatoren, 0,5 watt, og det er bedre at bruge en lille kølelegeme til at montere chippen på (forudsat der er plads til det) til lange driftstimer i varmt vejr.

AC -indgangssikringen kan vælges afhængigt af dine eksterne belastninger (via DB15 -stikket). Andre faktorer, der påvirker sikringsvalget, er strømbegrænsningsmodstanden til LCD -baggrundsbelysningen på LCD'en, brokondensatoren til ladestrømmen og strømforsyningens transformatorens nuværende kapacitet.

Trin 5: SKEMATISK

SKEMATISK
SKEMATISK

Trin 6: SOFTWARE KØRES OMBORD

Dette er skitsen, der får det hele til at ske … og 32KB er IKKE nok! Du kan enten bruge det uændret, i så fald ville jeg sætte pris på en henvisning til mit navn, eller ændre det efter behag og glemme mig;-)

Dette er den detaljerede dokumentation om maskinen.

Oversigt over kommandoer og udtryk

“: En kommentarlinje, der ikke kan udskrives

ai: vedhæft afbrydelse 0 (pin D2)

ar: analog læsning

aw: 'analog skrivning' per arduino eller mere korrekt pwm

ca: analog optagelse i en matrix

cl: sletter displayet cno: return *Prgm indeks for linjenummer

di: vent på en række pulser og mål varighed og timing

dl: forsinkelse

gøre: i forbindelse med 'wh'

dr: digital læs enhver pin

dw: digital skriv en hvilken som helst pin

ed: editor mode / load program from PC / renumber lines

el: EEPROM adgangsfunktion

slut: END -erklæringen for et program

ensb: slutter underprogram

es: EEPROM adgangsfunktion

fl: enkelt glidende gennemsnitsfilter

fr: for-næste sløjfe (fr-nx)

gå: spring til programtrin

gosb: fortsæt udførelsen til underprogram

gt: venter på brugerinput

hvis: test tilstand og spring til trin

io: GPIO 1-9 bits

ld: indlæs/flet program fra EEPROM

lp:: tastaturstyret sløjfe i interaktiv tilstand

ls: listetilstand / send program til pc en linje ad gangen

ml: få tid

mm: vis ledig hukommelse

nr.: konverterer nummer til streng

nx: i forbindelse med 'fr'

pl: plot array cxx

pm: indstil stifter til ind eller udgang

pr: udskriver en meddelelse eller værdi eller et tilpasset tegn

rgc: kommando for områdekopiering til arrays

rgs: range set -kommando for arrays

rn: kør programmet i RAM

rs: blød nulstilling

rx: modtag et tegn via RS232

si: synkron seriel indgang med ur og datapinde

sm: mini oscilloskop app sno: konverterer streng til tal

altså: synkron seriel udgang med ur og datapinde

sub: erklærer underprogram

sv: gem program til EEPROM

tn: bip en tone

tx: overfør et nummer via RS232

wh: en do-while-loop, der bruges sammen med 'do'

Trin 7: Videoklip af Mini App 'sm' Running

besøg mit websted for at læse hele historien og downloade alle relevante filer

www.sites.google.com/site/demeterart

Anbefalede: