Indholdsfortegnelse:

KIM Uno - en 5 € mikroprocessor Dev Kit -emulator: 13 trin (med billeder)
KIM Uno - en 5 € mikroprocessor Dev Kit -emulator: 13 trin (med billeder)

Video: KIM Uno - en 5 € mikroprocessor Dev Kit -emulator: 13 trin (med billeder)

Video: KIM Uno - en 5 € mikroprocessor Dev Kit -emulator: 13 trin (med billeder)
Video: Will we be able to live at 8 billion on earth? (Documentary in english) 2024, Juni
Anonim
Image
Image
KIM Uno - en 5 € mikroprocessor Dev Kit -emulator
KIM Uno - en 5 € mikroprocessor Dev Kit -emulator
KIM Uno - en 5 € mikroprocessor Dev Kit -emulator
KIM Uno - en 5 € mikroprocessor Dev Kit -emulator

KIM Uno er et bærbart, software -defineret dev -kit til (retro) mikroprocessorer. Men lad mig introducere ideen om det ved at gå tilbage i tiden:

I slutningen af 2018 kom jeg til at tænke på, at jeg ville bygge et lille bærbart mikroprocessor dev-kit, ligesom den berømte KIM-1 fra MOS Technology, Inc. og designet af Chuck Peddle, der også var involveret i at skabe 6502 CPU.

Men at bygge et "bare-ben" dev-kit med diskrete logiske komponenter var ingen mulighed, da det havde brug for en stor strømforsyning (da de gamle enheder har en tendens til at tage en alvorlig strøm), og udviklingen ville også være meget tidskrævende. Og jeg vil det nu!

Derfor designede jeg KIM Uno som en bærbar enhed, som passer i den ene hånd og drives af to CR2032 -batterier. Den bruger ATMega328p ("Arduino") mikrokontroller, der kører ved 8 MHz til at efterligne (eller simulere) en ønsket CPU. Denne arkitektur sikrer også, at de emulerede CPU'er kan udskiftes med alt, hvad der passer ind i mikrokontrollerens flash -hukommelse. Så det er en multifunktionsenhed.

Ved et tilfælde så jeg senere en rigtig god tale - kaldet The Ultimate Apollo Guidance Computer Talk (34C3) - på YouTube, hvor "One Instruction Set Computers" eller OISC'er nævnes. Jeg kendte ikke til dem og fandt dette som den perfekte kandidat til at implementere det.

KIM Uno emulerer en CPU med kun en instruktion: subleq - subtraher og forgren hvis den er mindre end eller lig med nul.

Hvis du følger med mig gennem denne Instructable, kan du bygge din egen KIM Uno på ingen tid. Og den bedste del - udover at du kan ændre den efter din smag - er, at den kun koster 4, 75 € at lave (ved udgangen af 2018).

Et tip: der er et Git -lager, der indeholder alle filerne fra de forskellige trin i denne instruerbare. Hvis du vil ændre nogle ressourcer og dele dem med os, kan du lave en PR. Men du kan også downloade alle filer på en gang der. Simpelthen til https://github.com/maxstrauch/kim-uno. Tak!

Der er et andet temmelig interessant projekt, kaldet det samme (KIM Uno), som laver en rigtig kopi af 6502 KIM Uno. Tjek det ud her. Skaberen sælger endda kittet. Så hvis du er interesseret i 6502 og kan lide dette projekt, bør du tage et kig der!

Trin 1: Sourcing af printkortet

Køb af PCB
Køb af PCB
Køb af PCB
Køb af PCB

Som du kan se, benyttede jeg lejligheden til at designe et printkort og lade det blive lavet professionelt. Da det vil tage meget tid at producere det eksternt og sende det til dig (afhængigt af hvor du er i verden;-)), er det første trin at få det bestilt. Vi kan derefter fortsætte med de andre trin, mens printkortet er lavet og sendt til dig.

Jeg bestilte mine printkort i Kina på PCBWay for kun $ 5. Jeg får ingen fordel ved at præsentere PCBWay som min goto -producent til PCB'er, det er bare, at det fungerede fint for mig og måske også fungerede fint for dig. Men du kan bestille dem andre steder som JLCPCB, OSH Park eller et hvilket som helst lokalt PCB -selskab.

Men hvis du er villig til at bestille dem på PCBWay, kan du downloade den vedhæftede ZIP-fil "kim-uno-rev1_2018-12-12_gerbers.zip" og uploade den direkte til PCBWay uden ændringer. Dette er den originale fil, jeg brugte til at bestille de printkort, du kan se på billederne.

Hvis du bestiller dem fra en anden producent, skal du muligvis eksportere dem igen fra de originale KiCad-kilder, fordi jeg genererede dem med specifikationerne fra PCBWay, som du kan finde her. For de originale KiCad-kilder skal du downloade "kim-uno-kicad-sources.zip" og pakke det ud.

Men der er endda en anden måde: Hvis du ikke vil bestille printkortet, kan du bygge din egen version ved hjælp af perfboard eller endda et brødbræt.

Anyway: da printkortene nu er på vej, kan vi fokusere på de andre dele! Kom, følg mig.

Trin 2: Sourcing af komponenterne

Køb af komponenterne
Køb af komponenterne
Køb af komponenterne
Køb af komponenterne
Køb af komponenterne
Køb af komponenterne

Nu skal du hente komponenterne. Til dette finder du et oversigtsbillede af alle komponenter og mængder, du har brug for, knyttet til dette trin samt en stykliste (stykliste).

Styklisten indeholder links til eBay. Selvom disse tilbud måske lukkes, når du læser dette, kan du bruge det som udgangspunkt. De brugte komponenter er temmelig standard.

I det følgende forklarer jeg dig alle de nødvendige komponenter:

  • 7x 1 kΩ modstande til de syv segmentskærme. Du kan reducere værdien (f.eks. Til 470 Ω) for at få dem til at lyse lysere, men reducere den ikke for meget, ellers dør LED'erne, eller batteriet tømmes meget hurtigt. Jeg fandt ud af, at denne værdi virker for mig
  • 1x 10 kΩ som en pull-up-modstand til RESET-linjen på mikrokontrolleren
  • 1x 100nF kondensator til at udjævne eventuelle spændingsspidser (hvilket ikke burde ske, da vi bruger batterier, ikke desto mindre …)
  • 1x ATMega328P i DIP-28-pakken (normalt kaldet ATMega328P-PU)
  • 1x hovedkortet - se det foregående trin; enten bestilt eller bygget af dig selv
  • 2x CR2032 batteriholdere
  • 1x SPDT (enkeltpolet, dobbeltkast) switch, der stort set har tre kontakter, og i hver af sine to tilstande (enten til eller fra) forbinder den to kontakter
  • 20x taktile trykknapper til tastaturet. For at bruge bagsiden af printkortet brugte jeg SMD -taktile trykknapper (standard 6x6x6 mm) - de er ret lette at lodde, som du vil se
  • VALGFRIT: 1x 1x6 pin header til tilslutning af programmereren, men dette er valgfrit, som du vil se senere
  • 1x syv segment display med 4 cifre og 1x syv segment display med 2 cifre - tavlen tager kun 0,36 tommer (9, 14 mm) elementer med fælles anodeledninger. Begge krav er vigtige for at få en arbejdsenhed. Men også denne type syv segment display er meget almindelig

Vedhæftet dette trin kan du finde filen "component-datasheets.zip", som indeholder mere præcise oplysninger om dimensioner og typer af de brugte komponenter. Men de fleste komponenter er meget standard og kan let hentes for få penge.

Nu skal du vente, indtil du har alle komponenter klar til at fortsætte med lodning. I løbet af denne tid kan du allerede springe til ende og læse lidt om at bruge KIM Uno, hvis du vil.

Trin 3: Oversigt over loddeværktøj

Oversigt over loddeværktøj
Oversigt over loddeværktøj
Oversigt over loddeværktøj
Oversigt over loddeværktøj

Til lodning og opbygning af KIM Uno har du brug for værktøjerne vist på billederne:

  • Wire cutter (til at skære enden af komponenttrådene)
  • Flad tang
  • Et pincet
  • (anstændigt) Lodde, der ikke er for tykt - jeg bruger 0,56 mm loddemetal
  • Et loddejern - du behøver ikke et avanceret loddejern (for vi laver heller ikke raketvidenskab her) - jeg bruger Ersa FineTip 260 i lang tid nu, og det er virkelig godt
  • En fluxpen: tilføjelse af flux til komponenterne og puderne gør det meget lettere at lodde dem, da loddetiden derefter "flyder" af sig selv til det rigtige sted*
  • Eventuelt: en svamp (fra metaluld) til dit loddejern

For senere at programmere KIM Uno skal du også bruge:

  • en computer med AVR-GCC værktøjskæden og avrdude for at uploade firmwaren
  • en internetudbyder (programmerer) - som du kan se på billedet, bruger jeg min Arduino Uno som en internetudbyder med en særlig skitse - så det er ikke nødvendigt at købe noget fancy hardware

* lidt vejledning fra mennesker nødvendig;-)

Er du klar? I det næste trin skal vi begynde at samle KIM Uno.

Trin 4: Lodning #1: Tilføjelse af modstande og kondensatorer

Lodning #1: Tilføjelse af modstande og kondensatorer
Lodning #1: Tilføjelse af modstande og kondensatorer
Lodning #1: Tilføjelse af modstande og kondensatorer
Lodning #1: Tilføjelse af modstande og kondensatorer
Lodning #1: Tilføjelse af modstande og kondensatorer
Lodning #1: Tilføjelse af modstande og kondensatorer
Lodning #1: Tilføjelse af modstande og kondensatorer
Lodning #1: Tilføjelse af modstande og kondensatorer

Du bør altid arbejde fra de mindste (i form af komponenthøjde) komponenter først til de højeste komponenter sidst. Derfor starter vi med at tilføje modstandene og bøje over benene bagpå, så modstandene er lette at lodde og blive på plads. Skær bagefter de lange ledninger.

Også, ikke vist på billederne, tilføj den lille 100 nF kondensator på samme måde.

Et tip: opbevar disse trådben i en lille beholder, de er nogle gange nyttige.

Trin 5: Lodning #2: Samling af tastaturet

Lodning #2: Samling af tastaturet
Lodning #2: Samling af tastaturet
Lodning #2: Samling af tastaturet
Lodning #2: Samling af tastaturet
Lodning #2: Samling af tastaturet
Lodning #2: Samling af tastaturet

Det næste trin er at lodde de 20 SMD -taktile kontakter. Da dette arbejde er lidt besværligt, gør vi det nu, når printet ligger fladt på arbejdsbordet.

Vi arbejder fra top til bund (eller fra venstre mod højre, hvis printkortet er orienteret som vist på billederne) og starter med den første række: Vælg en af de fire puder for hver switch og fugt den med fluxpen.

Brug derefter en pincet til at gribe en kontakt og placere den forsigtigt på de fire puder. Lod derefter kun benet på kontakten, der er på puden, du valgte og forberedte med flux. Til dette skal du "tage" noget loddemetal med dit jern, inden du starter. Brug denne metode til at fuldføre hele rækken af kontakter, der kun lodder et ben.

Billedet med pilene viser en forstørrelse, hvordan lodningen blev udført nøjagtigt.

Når du har loddet hele rækken (kun en stift), kan du foretage små justeringer ved at opvarme stiften igen og placere kontakten igen. Sørg for, at kontakterne er justeret så godt som muligt.

Hvis du er tilfreds med justeringen, kan du fugtige alle andre ben med fluspen og derefter lodde dem ved at røre den med loddejernet og tilføje en lille smule lodde ved også at røre ved den. Du vil se, at loddetøjet suges direkte på puden.

Efter lodning af en række eller deromkring vil du bemærke, at du får styr på det, og det er ikke så svært, men gentaget. Så gør bare resten, og du ender med et færdigt tastatur på ingen tid.

Trin 6: Lodning #3: Displayet med syv segmenter, switch og pin -header

Lodning #3: Displayet med syv segmenter, switch og pin -header
Lodning #3: Displayet med syv segmenter, switch og pin -header
Lodning #3: Displayet med syv segmenter, switch og pin -header
Lodning #3: Displayet med syv segmenter, switch og pin -header
Lodning #3: Displayet med syv segmenter, switch og pin -header
Lodning #3: Displayet med syv segmenter, switch og pin -header

Nu kan du tilføje switch og pin header (valgfri) ved at holde den med din finger og lodde en pin for at holde den til printet, så du kan lodde de andre pins og til sidst røre ved den oprindelige holder pin.

Vær forsigtig, så du ikke brænder dig med det varme loddejern. Hvis du ikke er fortrolig med dette, kan du bruge en lille smule tape (f.eks. Malerbånd) til at holde komponenten. På denne måde har du begge hænder fri til at bevæge sig.

De syv segmentskærme er loddet på samme måde (se billede): du sætter det i, holder det med din hånd eller tape og lodder to modstående stifter for at holde det på plads, mens du kan lodde de andre stifter.

Men vær forsigtig, og placer displayet i syv segmenter i den rigtige retning (med decimalpunkterne vendt mod tastaturet). Ellers er du i problemer …

Trin 7: Lodning #4: Lodning af mikrokontrolleren

Lodning #4: Lodning af mikrokontrolleren
Lodning #4: Lodning af mikrokontrolleren

Nu hvor du har meget øvelse, kan du gå videre og sætte mikrokontrolleren i med hakket på toppen (eller første pin) vendt mod kontakten. Ved hjælp af Flat tang kan du forsigtigt bøje benene på mikrokontrolleren en lille smule ind, så de matcher hullerne på printkortet.

Da den sidder stramt, har du brug for noget kontrolleret kraft til at sætte mikrokontrolleren i. Fordelen er, at den ikke falder ud. Det betyder, at du kan tage dig god tid og lodde den bagfra.

Trin 8: Lodning #5: Tilføj batteriholdere (sidste trin)

Lodning #5: Tilføj batteriholdere (sidste trin)
Lodning #5: Tilføj batteriholdere (sidste trin)
Lodning #5: Tilføj batteriholdere (sidste trin)
Lodning #5: Tilføj batteriholdere (sidste trin)
Lodning #5: Tilføj batteriholdere (sidste trin)
Lodning #5: Tilføj batteriholdere (sidste trin)

Endelig skal du tilføje batteriholderne på bagsiden. Til dette bruger du simpelthen fluxpen og gør alle fire puder våde og får derefter lidt loddemetal på dit strygejern. Juster batteriholderen omhyggeligt på begge puder. I begge ender af kontakterne skal der være den samme mængde af printpladen synlig. Rør ved printpladen og benet på batteriholderen med dit strygejern. Loddetøjet flyder under puden og over det og fastgør det på plads som vist på billedet. Hvis du har problemer med dette, kan du tilføje mere flux med pennen.

Trin 9: Blinker emulatoren

Blinker emulatoren
Blinker emulatoren
Blinker emulatoren
Blinker emulatoren
Blinker emulatoren
Blinker emulatoren

I det vedhæftede zip-arkiv "kim-uno-firmware.zip" kan du finde kildekoden til emulatoren sammen med en allerede sammensat "main.hex", som du kan uploade direkte til mikrokontrolleren.

Før du rent faktisk kan bruge det, skal du indstille sikringsbitene på mikrokontrolleren, så den bruger det interne 8 MHz ur uden at dele det i to. Du kan få jobbet udført med følgende kommando:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U lfuse: w: 0xe2: m -U hfuse: w: 0xd9: m -U efuse: w: 0xff: m

Hvis du ikke kender avrdude: det er et program til at uploade programmer til en mikrokontroller. Du kan lære mere om det her. Grundlæggende installerer du det, og så er det klar til brug. Til din opsætning skal du muligvis ændre argumentet "-P" til en anden seriel port. Kontroller venligst på din computer, hvilken seriel port der bruges (f.eks. Inde i Arduino IDE).

Herefter kan du flashe firmwaren til mikrokontrolleren med denne kommando:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U flash: w: main.hex

Igen: det samme gælder "-P" som ovenfor.

Da jeg ikke ejer en "professionel" ISP (In-System Programmer) bruger jeg altid min Arduino UNO (se billede) og den skitse jeg vedhæftede ("arduino-isp.ino", fra Randall Bohn). Jeg ved, at der er en nyere version, men med denne version havde jeg ingen problemer med de sidste fem år, så jeg beholder den. Det virker bare. Ved hjælp af kommentaren i overskriften på skitsen får du pinout på Arduino UNO og ved hjælp af skematikken over KIM Uno (se vedhæftet) kan du få pinout af 1x6 ISP -header på KIM Uno. Firkantstiften, tæt på displayet med syv segmenter, er pin 1 (GND). Følgende stifter er (i den rigtige rækkefølge): RESET, MOSI, MISO, SCK, VCC. Du kan tilslutte VCC enten til 3V3 eller til 5V.

Hvis du ikke tilføjede 1x6 pin -headeren, kan du bruge brødbrætstråde og sætte dem i forbindelseshullerne og vinkle dem med din finger - ligesom vist på billedet. Dette får nok kontakt til at blinke firmwaren og indstille sikringerne. Men hvis du kan lide en mere permanent opsætning, skal du helt sikkert tilføje 1x6 pin -overskrifterne.

Jeg har to enheder: en produktionsversion uden pinhovederne og en udviklingsversion med pinhoveder, som jeg lader være tilsluttet og bruger den igen og igen under udviklingen. Dette er meget mere behageligt.

Trin 10: Færdig

Færdig
Færdig
Færdig
Færdig

Nu er du færdig og kan begynde at skrive dine egne subleq -programmer på papir, samle det og derefter indtaste det i hukommelsen.

KIM Uno leveres med en forprogrammeret Fibonacci-beregning, der starter ved hukommelseslokation 0x0a. Den er som standard indstillet til n = 6, så den bør resultere i en værdi på 8. Tryk på "Go" for at starte beregningen.

Trin 11: PCB -designanalyse

PCB design analyse
PCB design analyse
PCB design analyse
PCB design analyse

Efter at have afsluttet dette projekt fandt jeg et par punkter, der er bemærkelsesværdige og bør behandles i en ny revision af bestyrelsen:

  • ATMega328p's silkeskærm har ikke det sædvanlige hak, hvor den første pin er placeret. DIP-28-fodaftrykket har ikke engang en firkantet pude, hvor den første pin er placeret. Dette bør helt sikkert forbedres med en mere detaljeret silketryk for at forhindre forvirring
  • internetudbyderens overskrift har ingen forbindelsesetiketter på silketryk. Dette gør det svært at genkende, hvordan man slutter det til internetudbyderen
  • ISP -headeren kan ændres til en 2x6 -pin header med et standard pin -layout for at forhindre forvirring

Bortset fra disse punkter er jeg ret glad for, hvordan det viste sig og fungerede i første forsøg.

Trin 12: Sådan programmeres SUBLEQ?

Image
Image
Hvordan programmeres SUBLEQ?
Hvordan programmeres SUBLEQ?
Hvordan programmeres SUBLEQ?
Hvordan programmeres SUBLEQ?

Som nævnt i begyndelsen emulerer KIM Unos nuværende firmware en One Instruction Set Computer (OISC) og giver subleq -instruktion til at udføre beregning.

Subleq -instruktionen står for subtraktion og gren, hvis den er mindre end eller lig med nul. I pseudokode ligner det følgende:

subleq A B C mem [B] = mem [B] - mem [A]; hvis (mem [B] <= 0) gik til C;

Da KIM Uno efterligner en 8-bit maskine, er alle argumenter A, B og C 8 bit-værdier, og derfor kan den adressere en samlet hovedhukommelse på 256 byte. Dette kan naturligvis udvides ved at lave A, B og C multi-byte værdier. Men lad os nu holde det simpelt.

KIM Uno har også "periferiudstyr": skærmen og tastaturet. Det bruger en hukommelseskortet arkitektur til at grænseflade disse eksterne enheder, selvom hukommelseskortet er meget enkelt:

  • 0x00 = Z -registret (nul) og skal holdes nul.
  • 0x01 - 0x06 = seks bytes, der repræsenterer værdien af hvert af displaysegmenterne (fra højre til venstre). En værdi 0xf - se kildekoden (main.c) for flere detaljer.
  • 0x07, 0x08, 0x09 = tre bytes, hvor hver byte repræsenterer to syv segmentdisplays (fra højre til venstre). Denne hukommelseslokationer tillader ganske enkelt at vise et resultat uden at opdele resultatet i to nibbles for at placere det i de encifrede hukommelsessteder 0x01 - 0x06.
  • 0x0a+ = Et program starter ved 0x0a. I øjeblikket udføres "Go" -nøglen fra 0x0a fast.

Med disse oplysninger kan man nu skrive et program i assembler og indtaste instruktionerne i hukommelsen og derefter udføre det. Da der kun er en instruktion, indtastes kun argumenterne (A, B og C). Så efter tre hukommelsessteder begynder de næste instruktionsargumenter og så videre.

Vedhæftet dette trin kan du finde filen "Fibonacci.s" og også et billede af det håndskrevne program, som er et eksempel på implementering af Fibonacci. Men vent: der bruges tre instruktioner - specifikt ADD, MOV og HLT - som ikke er subleq. "Hvad er handlen? Sagde du ikke, at der kun er en instruktion, subleq?" spørger du? Det er meget let: med subleq kan man efterligne disse instruktioner meget let:

MOV a, b - kopier data på stedet a til b kan bestå af:

  1. subleq b, b, 2 (næste instruktion)
  2. subleq a, Z, 3 (næste instruktion)
  3. subleq Z, b, 4 (næste instruktion)
  4. subleq Z, Z, f.eks. 5 (næste instruktion)

Ved hjælp af subtraktionsfunktionen i subleq, som gør mem - mem [a] og overskriver mem med resultatet, kopieres værdien ved hjælp af nulregistret. Og "subleq Z, Z, …" nulstiller simpelthen nulregistret til 0, uanset værdien af Z.

ADD a, b - tilføjer værdierne a + b og gemmer summen i b kan bestå af:

  1. subleq a, Z, 2 (næste instruktion)
  2. subleq Z, b, 3 (næste instruktion)
  3. subleq Z, Z, f.eks. 4 (næste instruktion)

Denne instruktion beregner simpelthen mem - (- mem [a]), som er mem + mem [a] ved også at bruge subtraktionsfunktionen.

HLT - stopper CPU'en og afslutter udførelsen:

Per definition ved emulatoren, at CPU'en ønsker at afslutte, hvis den hopper til 0xff (eller -1 hvis den synges). Så en enkel

subleq Z, Z, -1

gør jobbet og angiver for emulatoren, at den skal afslutte emuleringen.

Ved hjælp af disse tre enkle instruktioner kan Fibonacci -algoritmen implementeres og fungerer fint. Dette er, fordi OISC kan beregne alt, hvad en "rigtig" computer kan beregne med kun instruktionens subleq. Men selvfølgelig er der mange afvejninger at gøre - som kodelængde og -hastighed. Men ikke desto mindre er det en fantastisk måde at lære og eksperimentere med softwareprogrammering og computere på lavt niveau.

Vedhæftet dette trin kan du også finde zip -arkivet "kim_uno_tools.zip". Den indeholder en grundlæggende assembler og simulator til KIM Uno. De er skrevet i NodeJS - sørg for at du har installeret det.

Samling af programmer

Hvis du kigger på "Fibonacci/Fibonacci.s", vil du opdage, at det er kildekoden til den diskuterede Fibonacci -implementering. For at samle det og lave et program ud af det, som KIM Uno kan køre, skal du indtaste følgende kommando (i roden af det ekstraherede "kim_uno_tools.zip" arkiv):

node assemble.js Fibonacci/Fibonacci.s

og det vil enten udskrive en fejl, hvis du lavede en fejl eller spildte det resulterende program. For at gemme det kan du kopiere output og gemme det i en fil eller blot køre denne kommando:

node assemble.js Fibonacci/Fibonacci.s> dinfil.h

Outputtet er formateret på en måde, så den kan inkluderes direkte i KIM Uno -firmwaren som en C -headerfil, men simulatoren kan også bruge den til at simulere. Bare indtast:

node sim.js din fil.h

Og du vil blive præsenteret for simuleringsresultatet og output forventet fra KIM Uno på displayet.

Dette var en meget kort introduktion til dette værktøj; Jeg anbefaler dig at lege med dem og se, hvordan de fungerer. På denne måde får du en dyb viden og lærer funktionsprincipperne bag CPU'er, instruktioner, samlere og emulatorer;-)

Trin 13: Outlook

Outlook
Outlook
Outlook
Outlook
Outlook
Outlook

Tillykke

Hvis du læste dette, har du sandsynligvis gennemgået hele denne instruerbare og bygget din egen KIM Uno. Dette er virkelig rart.

Men rejsen slutter ikke her - der er uendeligt mange muligheder for, hvordan du kan ændre KIM Uno og tilpasse den til dine behov og smag.

For eksempel kunne KIM Uno være udstyret med en "rigtig" retro CPU -emulator, som kan efterligne den berømte MOS 6502 eller Intel 8085, 8086 eller 8088. Så ville det gå vejen til min første vision, før jeg lærte om OISC'er.

Men der er andre anvendelsesmuligheder, da hardware -designet er ret generelt. KIM Uno kunne bruges som …

  • … en fjernbetjening f.eks. til CNC'er eller andre enheder. Måske kablet eller udstyret med en IR -diode eller en anden trådløs sender
  • … en (hexadecimal) lommeregner. Firmwaren kan meget let tilpasses, og brættets design behøver ikke ændres særlig meget. Måske kan silketrykket tilpasses med matematikoperationer, og afstanden mellem segmenterne kan fjernes. Bortset fra dette er det allerede klar til denne transformation

Jeg håber, at du havde lige så meget sjov med at følge og forhåbentlig bygge KIM Uno, som jeg havde designet og planlagt det. Og hvis du forlænger eller ændrer det - lad mig det vide. Skål!

PCB -konkurrence
PCB -konkurrence
PCB -konkurrence
PCB -konkurrence

Runner Up i PCB -konkurrencen

Anbefalede: