Mekaniska CPU-klockan



Den mekaniska CPU klocka visar de grundläggande byggstenarna i en CPU (ALU, bussar, RAM, register och en styrenhet). Det kör en uppsättning instruktioner som kommer att emulera en enkel väggklocka.
Inspirationen till projektet kom från försöker lära min son och dotter om hur en dator fungerar (i själva verket var jag alltid fascinerad av mekaniska datorer och tar tid, men jag var tvungen att ge en bättre ursäkt till min fru för att köpa en laserskärare specifikt för detta projekt). Efter att ha tittat runt på nätet på olika mekaniska datorer, kunde jag inte hitta något som representerade alla komponenter i CPU. Men hämtar jag min inspiration från följande projekt (och deras derivat):
Marmor att lägga maskin: www.youtube.com/watch?v=GcDshWmhF4A
DigicompII: http://digi-compii.com/
Boll logik: http://brain.wireos.com/?p=2207

I avsnitten nedan jag kommer att försöka förklara hur allt fungerar som det byggs. Jag tänker inte gå djupt in i ämnet datavetenskap och kommer att medvetet försöka undvika vissa termer, så för att inte förvirra nybörjare läsaren. Om jag använder några termer, ska jag försöka att förklara dem helt enkelt. Men det kan vara lite behövs bakgrund information som jag kommer att sakna, så tveka inte att kontakta mig om att försöka förklara begreppen i mer detaljer (jag inte lova någonting, men jag kommer göra mitt bästa). Även om du inte kommer att bygga klockan, gå igenom avsnitten kommer att bidra till förståelsen av hur klocka/CPU fungerar (i build avsnitt kommer att gå över begreppen ALU, RAM, register, styra enheten och bussar). Igen, ett av motiven för detta projekt var att få folk att förstå hur en CPU (hjärtat av en dator) fungerar.
Mer detaljer om klockan kan hittas här: http://www.liorelazary.com/index.php?option=com_content&view=article&id=46:mechanical-cpu-klocka & catid = 10:clocks & Itemid = 15

123D: http://www.123dapp.com/idw-3D-Model/Mechanical-CPU-Clock/604647


Läsa tiden (http://www.youtube.com/watch?v=iFKargQxN8k) :

Tid (timme) läses i binär (http://en.wikipedia.org/wiki/Binary_numeral_system) från mellersta registret (register A, leta efter höjdpunkten i videon där register A är på). Observera placeringen av 4 vippor (4 uppochner röd T spakarna). Om en hävstång pekar till höger, då siffran är 0, om dess till vänster är det en 1. Skriv ner siffrorna från varje 4 vippor, från toppen till botten. Sedan skriva numret från vänster till höger roterande 90 grader till höger, så att vänster mest siffran är från botten och den högra siffran är från toppen. Till exempel. Om klockan har flips-flops på denna position:

Flip-Flop 1 pekar vänster == 1
Flip-Flop 2 pekar vänster == 1
Flip-Flop 3 pekar vänster == 1
Flip-Flop 4 pekar rätt == 0

som är omskrivet till: 0111 som är en binär representation av 7 decimaler. Så tiden är klockan 7.

Att omvandla från binär till decimal (antal system som människor används till):

Lägg till 1 om övre ratten pekar till vänster eller ingenting om dess pekar till höger
Lägg till 2 om den andra ratten pekar till vänster eller ingenting om dess pekar till höger
lägga till 4 om tredje ratten pekar till vänster eller ingenting om dess pekar till höger
Lägg till 8 om den tillbaka ratten pekar åt vänster eller ingenting om dess pekar till höger

Så ovanstående exempel kan översättas till: 1 + 2 + 4 + ingenting = 7 decimal

Här är en enkel konvertering från binär till decimal. Så om register A har

0000 är 0 men dess 12 i målet klockan
0001 är 1
0010 är 2
0011 är 3
0100 är 4
0101 är 5
0110 är 6
0111 är 7
1000 är 8
1001 är 9
1010 är 10
1011 är 11

I videon går klockan igenom en fullständig cykel, 0,1, 2... 11 och tillbaka till 0, så se om du kan följa den.

Protokollet kan också läsas från bollen och spaken (lite svårt att se i videon) ställning. Siffrorna på utsidan representerar minuter i HEX-format. Att konvertera tal till ett decimalt (antal system som vi är vana vid) du ta den första siffran till vänster multiplicera det med 16 och lägga till den högra siffran.

Exempel: 32 i HEX = 3 * 16 + 2 = 50 i decimal

00 är 12, 05 är 5, 0A är 10, 0F är 15, 14 är 20, etc.

Se Steg
Relaterade Ämnen

Stora 7 Segment klockan

Jag gillar att göra saker. Men jag ska vara ärlig med dig. Jag var inte begåvad med oändliga idéer. Brist på kreativitet? Nej, jag kommer att lösa alla problem. Brist på tid/pengar/energi? Alltid. Allt jag gör har dessutom några användbara syftet. At...

AVR Chronograph från koncept till PCB

en kronograf är en anordning som används för att mäta hastigheten på en passerande objekt. I enklaste form, detta innebär att två sensorer av något slag som "se" objektet, en enhet som kan mäta tid, och några utdata till leverera data till använ...

Konfigurera VPN-inställningar på en DD-WRT Router för privata Internet

I en ålder av Big Data och massövervakning är konsument VPN ett bra sätt att bo mer befästa och privat på Internet. Kör en VPN-klient på din router erbjuder fördelen av sömlöst dirigering trafik från alla enheter som är anslutna till nätverket via VP...

Reparera en överhettning laptop genom att ändra befintliga fläkt till 12V BLDC fan och förbättra luftflöde

reparera en överhettning laptop genom att ändra befintliga fläkt till 12V BLDC fan och förbättra luftflödeDenna handledning kommer att gå över flera steg för att kyla ner en överhettning laptop utöver damm och rengöring och Obs ineffektiviteten i lap...

AVR Assembler Övningsexempel 7

Välkommen till Övningsexempel 7!Idag vi första visar hur du rensar en knappsats och sedan visar hur du använder Analog ingång hamnarna för att kommunicera med knappsatsen.Vi kommer att göra med avbrott och en enda tråd som indata. Vi kommer tråd knap...

AVRSH: Ett kommando tolken skal för Arduino/AVR.

Någonsin velat "logga in" till din AVR microcontroller? Någonsin trodde det skulle vara häftigt att "katt" ett register att se dess innehåll? Har du alltid velat ha ett sätt att driva upp och stänga enskilda perifera sub system din AVR...

AVR Assembler handledning 10

Välkommen till handledning 10!Ledsen att det tog så lång tid för att få denna nästa avbetalning ut men detta är en ganska hektisk tid på året. I alla fall, är här det!Vi har kommit långt och du förmodligen redan är kompetenta nog att skriva många int...

Alla hjärtans broderi Hoop klockan

Alla hjärtans dag, en annan semester som gör det helt acceptabelt att äta choklad till frukost, lunch och middag. Som de flesta av oss på friska äter vagn efter jul frivolities (jag söker fortfarande för nämnda vagn...), varför inte ersätta den tradi...

12 st Lego mekaniska pussel (Lime tid)

Med ett par grundläggande bitar kan du göra detta riktigt cool mekaniska (eller förregling eller burr) pussel. Det är en utmaning att ta isär och sätta ihop igen för!Jag kallar detta en Lime gång eftersom den är gjord av lime färgade tegelstenar och...

Nixie klockan

allt du behöver är-några Nixie lökar (få dem på ebay, fleamarket aso)-en elektronisk klocka (olika erbjudanden på electrinic marknader) att komma åt lamporna (med anvisning)-en nätdel för elektronisk enhet (mellan 9 och 12 v DC)-en gammal skrivmaskin...

Reproduktionen Regulator klockan

Detta instructableDetta instructable visar hur man gör en reproduktion regulator klocka med hjälp av en gammal klocka ärende och tre kvarts rörelser.Jag har använt en gammal engelsk 12"(300mm) Dial klocka fall från Ebay men helst kan användas så läng...

Arduino Magic klockan

Vad händer om en klocka kunde berätta mer än bara tiden? I detta Instructable kommer vi att göra en klocka som med bara en blick, kan berätta var du är och bara att krydda saker upp temperaturen i din omgivning. Okej, ta din Arduino och låter komma i...

Kloka klockan 3 - Arduino-baserad nördiga väckarklocka

Wise klockan 3 är en öppen källkod, mycket hackable nördiga klocka som visar mycket mer än tiden. Dess huvudsakliga funktion är att visa användare redigerbara citat Hämtad från ett SD-kort (som de används i Fotokameror).Wise klockan 3 kan dessutom Vi...

Farfar klockan Media Center

Jag har köpt en full storlek golvuret med avsikt att bygga en mediaserver. Att vara en Whovian och med tanke på det skulle bli en huvudlös personlig moln server; Jag döpte det Gallifrey. Disklagring själv är märkt Nebula.Efter att ha övervägt Linux o...

Linjära klockan

runda klockorna är så 1900-talet! Här är något lite mer post modern och trubbig.Jag kommer att visa dig här en annan full designprojekt, från idé till konstruktion till prototyp. Syftet med vår önskan är idag en linjär klocka, det är en som har siffr...

Elektromekaniska klockan

Elektronik & mekaniska är de två ingenjörsdiscipliner som jag älskar mest. Så ville jag skapa ett mönsterexempel som skildrar awesomeness av dessa discipliner. Jag anser också att tiden är den viktigaste tillgång som någon kan ha.Så jag ville göra nå...

Posten klockan

de flesta människor har dem, gamla poster från förflutnan. Nu vi avancerat till band, och sedan CDs. alla av oss har troligen några poster liggande någonstans. Vad göra med dem? Ja, de kommer att få värde över tiden, men som kan ta många år. Och så k...

Steampunk Mekaniska monocle

Hi det! Här surfar vissa Instructables, jag hittade en hel delsteampunk/cyberpunk/någotpunk projekt, några riktigt intressanta. Jag blev förälskad i den sorten saker, så jag beslöt att göra något efter denna ström.Jag har börjat leta efter en idé, nå...

Steampunk ESP8266 Internet ansluten klockan med hjälp av Arduino IDE

Vad du får när en NeoPixel ring, en billig Arduino Wifi ombord och en laserskärare går in i en ånga Punk Saloon?En fashionabla Steampunk designade Internet ansluten klocka med ESP8266 chip och Arduino IDE förstås!Här är ett projekt för kvällen eller...