<本站文本内容除另有声明外,转载时均必须注明出处。(详情…本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。需要管理员的协助?在管理员告示板留言也许可以帮到您。>

教程/高級紅石電路

出自Minecraft Wiki
跳到: 導覽搜尋
Mcredstonesim icon.png
此條目利用紅石模擬器(MCRedstoneSim)格式的圖表以求表述緊湊明晰。
有些設計的高度超過了兩格,此處使用GIF動態圖像逐幀或者多幅圖表並列展示。完整圖例請見紅石圖例頁面。

紅石電路與現實生活中的數字電路(基於布爾邏輯代數)基本可以等同看待。如果您熟悉高等教育中的數字電路與初等計算機科學的知識的話,本篇目對您來說將較為容易理解。

計算機[編輯 | 編輯原始碼]

在Minecraft中,一些遊戲內的系統在計算機科學中與圖靈機等價——也就是說這樣您可以建構信息處理的裝置。這些系統包括:水,沙,礦車,活塞與紅石。

這些系統中只有紅石是特別為信息處理而設計的,主要以紅石信號的方式來表示。

紅石與電力類似,具有高適應性與較快的切換速度。就像在現實世界中電力取代了蒸汽動力成為高科技的基石一樣,前述的這些特性使紅石力壓其他機械系統,成為Minecraft中最具有科技含量的部分。

現代數字電路與紅石工程在複雜信息處理的應用時。都被簡化為抽象的從基本到複雜的多層次結構。

第一層是最基本的組件:紅石粉、紅石火把、紅石中繼器、活塞、按鈕、控制桿與壓力板等所有與紅石信號相關的方塊。

第二層是二進制邏輯門;他們是能夠處理有限位(一般是1-3位)的混合裝置。

第三層是由邏輯門組合而成的高階組件。這些組件用於處理模式化的位數據,一般能夠將其編碼為更加易讀的數字。例如數學加法器,組合鎖具,寄存器等。

第四層,也是最後一層,是由一系列的高階組件組合成的功能型計算機系統,通常能夠在不需要人工維護的情況下處理任意數據。

一個8位寄存器,屬於第三層結構


半加器[編輯 | 編輯原始碼]

半加器

邏輯門:異或,蘊含

紅石火把數量:12

紅石粉數量:7

方塊數量:19

尺寸:5X4X4

這個半加器能夠輸出兩個一位二進制數的和。結果位輸出到輸出端S(英文Sum,加法和之意)。如果兩個數字都是1,那麼會產生進位1到輸出端C(Carry,進位之意)(C會變為0)。這個半加器可以被修改為具有同相輸出的C端,但圖中這種結構在全加器鏈中可以照搬。

註:由於紅石線的新特性,本結構已經失效!為了應急,您可以先使用下面的全加器,只要不使用C輸入端即可。

全加器(1位)[編輯 | 編輯原始碼]

全加器(1位加法器)

邏輯門:同或(2),蘊含,非,或,與

紅石火把數量:16

紅石粉數量:32

方塊數量:48

尺寸:從上到下6X12X5,包括輸入/輸出端。

這個全加器能夠將兩個一位二進制數與前一個加法器的進位C相加(事實上是C而不是C,第一層的左下部),產生一個和(S端)和進位(事實上是C而不是C)。

如果要改造為減法器,把其中一個二進制輸入取反(第一個或第二個數)即可。想把第幾個輸入作為被減數,就取反第幾個輸入。如此改造成減法器時,輸出計算結果也是反向的。在現實世界中的計算機里,二進制帶符號數的第一位(也被稱為「標誌位」)決定了該二進制數的正負,如果你把這個特性(應用相同的反相規則)引入,你就可以得知該數字是負數,還僅僅只是一個較大的數字。

當使用上述的邏輯門時,注意輸入與輸出,您可能會對為什麼這裏使用了如此多的反相信號而不是同相信號有疑問。這個全加器使用了比異或門更能實現壓縮的同或門,同理,蘊含門比與門更為壓縮。因此如果您想壓縮全加器的體積,必須使用反相信號。如果用能夠表示2層方格的符號來表示,圖像將十分複雜,因此我們將每一層都單獨用圖表表示了出來,而且也方便您分層次地建造。

活塞全加器[編輯 | 編輯原始碼]

1位活塞全加器

2位活塞全加器

紅石火把數量:3

黏性活塞數量:2

紅石中繼器數量:8

紅石粉數量:16

方塊數量:7

交替全加器[編輯 | 編輯原始碼]

全加器

進位輸入與輸出端對稱,這樣您能夠方便的壓縮並組合多個這樣的單元。

紅石火把數量:14

紅石線數量:15

尺寸:5x6x3

4位加法器[編輯 | 編輯原始碼]

4位加法器

注意!重要性最低的那一位數就是圖表中的最左邊那位(即「個位」)。這裏之所以標明,是為了向您清楚地說明全加器比起半加器的功能優勢——半加器無法處理比其低一數位的進位。如果您想依據一般的使用習慣把個位放在右邊,那麼將圖表左右鏡像處理即可。

註:由於紅石線的新特性,本結構的個位部分的半加器已經失效!為了應急,您可以先使用全加器,只要不使用C輸入端即可。

邏輯門:同或(7),蘊含(4),非(4),或(3),與(3)

紅石火把數量:56

紅石粉數量:108

方塊數量:164

尺寸:23X12X5

這個加法器能夠將兩個四位二進制數相加(A與B),產生每一位數的和(S)與整個和的進位(C,相當於第五位)。和的位數順序與加數的順序相同,這也就是說,最左側的S是和的最低位。這個4位加法器僅僅是一個全加器鏈的示例,您可以通過同樣的構造來建造具有更多位數加法或減法能力的計算單元。

邏輯單元(2-4譯碼器)[編輯 | 編輯原始碼]

在電路中,有時候您可能需要建造能夠依據輸入來選擇輸出的邏輯單元。這樣的邏輯單元能夠用於更複雜的電路中,比如說算術邏輯單元(ALU)。下面介紹的邏輯單元又被稱為2-4譯碼器。

這是一個2位邏輯單元,依輸入不同可以有4種狀態。

Logic unit.gif

輸出端在最上面一行,依照11、00、01、10的順序排列(輸入端順序為上側的是第一位,下側第二位)。

下面是另一種採用格雷碼的簡化版本。輸出端為頂部那行末端的紅石火把。本設計能夠被擴展到任意位,但會受到電路延時的限制。相對地,輸出排序為11、01、00、10。

Logic unit 3.gif

二進制轉換為八進制(3-8譯碼器)[編輯 | 編輯原始碼]

3位二進制轉換為1位八進制

這個裝置是一系列邏輯門的組合,分為8部分。當組合起來時能夠將一個3位二進制數輸入轉換為一位八進制數輸出(未編碼狀態,所以輸出端數量與進制數相同),功能等同於3-8譯碼器。由於其最大佔地面積不過5x5x3,所以有很強的適應性。

右圖的每一部分都可以將輸入端連接到共同的輸入源,但建議您在每一個輸入端都加一個反相器以使在該電路與其他電路協同工作時,輸入端保持獨立性。

某些部分也可以作為三態緩衝器使用,或至少您能夠方便地將其改造為三態緩衝器。

下表與右上圖的8部分一一對應。

對應八進制數字 0 1 2 3 4 5 6 7
尺寸 5x3x2 5x3x3 5x5x3 5x5x3 5X3X3 5x4x3 5x5x3 5x5x3
紅石火把數量 1 2 2 3 2 3 3 4
紅石粉數量 7 7 12 10 7 7 10 10

二進制轉換為十進制/十六進制(4-10或4-16譯碼器)[編輯 | 編輯原始碼]

4位二進制轉換為十進制/十六進制

這個裝置是一系列邏輯門的組合,分為10或16部分。當組合起來時能夠將一個4位二進制數輸入轉換為一位十進制或十六進制數輸出(未編碼狀態,所以輸出端數量與進制數相同),功能等同於4-10或4-16譯碼器。由於其最大佔地面積不過3x5x2,所以有很強的適應性。

與上一章節的3-8譯碼器類似,右圖的每一部分都可以將輸入端連接到共同的輸入源,但建議您在每一個輸入端都加一個反相器以使在該電路與其他電路協同工作時,輸入端保持獨立性。

右圖的右下角是一個說明性質的圖例,圖表中列出的16個部分的輸入端皆按此逆時針順序排列。

對應十進制/十六進制數字 0 1 2 3 4 5 6 7 8 9 A B C D E F
尺寸 3x3x2 3x4x2 3x4x2 3x4x2 3x4x2 3x5x2 3x5x2 3x5x2 3x4x2 3x5x2 3x5x2 3x5x2 3x5x2 3x5x2 3x5x2 3x5x2
紅石火把數量 1 2 2 3 2 3 3 4 2 3 3 4 3 4 4 5
紅石粉數量 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

十六進制轉換為二進制(16-4編碼器)[編輯 | 編輯原始碼]

您也可以將一個十六進制信號轉換為一個4位二進制信號。與前面不同的是,您不再需要除了或門之外的任何邏輯門了——因此您只需要分析各個輸入端與哪幾個輸出端的對應關係,然後直接用紅石線連過去。需要注意的是,為了防止不同輸入端連線的互相干擾,在最終連到輸出端之前您需要用連續的兩個非門或是中繼器來互相隔離;您也可以選擇在一堆連向某一輸出端的紅石線末端用最簡單的輸入隔離型或門(參見紅石電路條目的或門設計方案B或C)。在最終投入使用前請先測試以保證不會出錯。


下面是十六進制與對應二進制的列表:

十六進制數 0 1 2 3 4 5 6 7 8 9 A B C D E F
第4位 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
第3位 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
第2位 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
第1位 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

如果您想得到一個八進制轉二進制的8-3編碼器,在本機構基礎上剝離第四位輸出與前八位輸入即可。

示例-順序敏感的3位十進制數密碼鎖[編輯 | 編輯原始碼]

一個對順序敏感的3位十進制數密碼鎖邏輯圖

右側的示例採用了OR(符號為>=1)、異或門 (符號為=)、 RS或非鎖存器(符號為SR)和一些延遲器(符號為dt*)。依個人喜好,我採用了同或門設計方案C。

右側的例子採用了4位設計,因而您可以設定一個十六進制的密碼。由於狀態(0)十六進制 == (0000)二進制無法激活系統,故您只可以設定15種密碼(1到F,或0到E)。如果您希望加入第16種,那麼請自行編輯電路添加第五位輸入。

接下來我們將規定(0)十六進制 為 (1111)二進制,至於[1,9]區間內的數請查看上一節末尾的表格。這樣,我們就可以使用十進制數字作為密碼的外在顯示了。我們必須把十個按鈕分配到對應的二進制數據上,請看右圖的前兩列:第一列代表表示為十進制(當然十六進制在[0,9]區間內和十進制的表示一樣)的輸入碼;第二列對應着每一個輸入碼的二進制。當然您也可以添加更多的按鈕來對應區間[A,E],我只是為了講解方便而把那幾位去除了。方框/b1\輸出第一位,方框/b2\輸出第二位,依此類推。

接下來您可以看到用Key[i](i=1,2,3)來表示的密碼設定區。這幾個Key[i]方框的第一個輸出均為第一位,第二個輸出為第二位,依此類推。您可以在每個Key[i]處用控制桿設定二進制加密型的密碼。請參考上一節末尾的表格,還有(0)十六進制:= (1111)二進制的特殊對應。如果我們用按鈕輸入了第一位,裝置會與這一位對應的四位二進制數逐位比較。一旦每一位都正確,才會輸出置位信號到下一級。

因此我們要實現邏輯運算(((b1=b1 & b2=b2) & b3=b3) & b4=b4) =: (b*=b*),在Minecraft中至少需要4個與門。這樣我們可以把識別通過的信號存到RS鎖存器/A\中。Key[2]和Key[3]具有同樣的驗證比較過程。

我們必須確認如果第二輸入位是錯的話狀態會被清除。因此我們採用了一個按鍵觸發事件(--/b1 OR b2 OR b3 OR b4\--/dt-\--/dt-\--)。請在圖中找到包括兩個"dt-"的那三個方框。工作原理是:任意鍵按下就會產生信號,然後再加上一個小延遲。為了在第二個輸入位錯誤時復位/A\,我們進行邏輯運算(有鍵按下) 「與」 (非B),即「任何鍵按下且第二位輸入錯誤」。這樣如果我們正輸入第一位,/A\不會被復位;如果/A\已經被激活,那麼只有/A\應當被復位。因此在第二位輸入錯誤而且第一位已經輸入時繼續邏輯運算(B* & A) =: (AB*),這樣/AB*\就復位了記憶單元/A\。為了避免如果按按鈕時間過長從而使/A\錯誤地被復位的問題,我們加入了主延遲元件/dt+\。/AB*\後面的非門是為了人工復位而設計的(例如可以連接一個壓力板)。

然後,把整個復位電路複製到Key[2]上去,除了人工復位端由(非A)引出,自動復位端(即錯誤輸入後的)從C引出。從A接來的人工復位阻止在第一位未輸入前B就被激活。所以這一系列線路保證了本裝置密碼的順序敏感特性。

問題是為什麼我們要使用短延遲方塊/dt-\。如果/A\激活後,第二位也成功輸入,那麼B激活,(非B)變為低電平。但當(非B)仍然為高電平時,按鍵觸發事件也被激活,A會被錯誤地復位——但這一切沒有發生。/dt-\方塊的應用使得在按鍵觸發事件被激活之前/B\可以有充足的時間作出反應。

對於/C\來說,只需要引自B的人工復位端即可以防止C在B激活之前被錯誤激活,同時也能保證在人工復位端復位/A\與/B\時,/C\也可以被復位。

優缺點:

+ 您可以在不改變電路的前提下改變每一位密碼。
+ 您可以依據同樣原理擴展比較模塊電路以使密碼鎖支持更多位數的密碼。
+ 您可以通過將除了最後一位之外的任何位為(0000)二進制來減少密碼位數。
+ 您可以將最後一位設為(0000)二進制來直接使門打開。
- 想要支持越多的位數,輸入欄就越長。您可以選擇被編碼的按鍵以保持電路的小規模——但要小心,事實上輸入編碼電路比起由於位數增加而使背後巨大的裝置規模變得更大來說,是微不足道的。

嚴格來說不算缺點的缺點:本電路中當密碼是311時可能會出現剛輸入到第二位,密碼鎖就打開了。為了防止這種情況,用中繼器在(非A)與(復位B)之間加一個延遲即可。

如果您修復了這一點,電路會因密碼長度差異而具有以下的加密強度:( ||位數|| = 2n-1,密碼組合數:||位數||長度 )

長度 1位數 2位數 3位數 4位數 5位數
2 位 3 9 27 81 243
3 位 7 49 343 2401 16807
4 位 15 225 3375 50625 759375
5 位 31 961 29791 923521 28629151

雜項[編輯 | 編輯原始碼]

對順序不敏感的密碼門[編輯 | 編輯原始碼]

只要特定組合的控制桿拉下或是按鈕按下,門就會打開。 (註:您需要對邏輯門有一定的了解才能理解本設備的構造)

RS或非密碼鎖[編輯 | 編輯原始碼]

把一系列的按鈕連接到RS鎖存器陣列的S端,然後根據需要將這些RS鎖存器的Q端或Q端連入一系列與門的輸入,將與門的輸出接到鐵門那裏。最後,用一個單獨的復位用按鈕連接所有RS鎖存器的R端。RS鎖存器使用的是Q端(需要按按鈕)還是Q端(不需按按鈕)決定了密碼組合。
簡單的例子:

RSnorlatchlock.gif

這個例子不具有自動關門功能。如果加入自動復位電路就可以解決這個問題。

與門密碼鎖[編輯 | 編輯原始碼]

基於與門的組合鎖僅僅需要控制桿開關、與門和非門。像下面的例子一樣,與門鎖具構造極其簡單,但在複雜系統中不具有動態變化能力,也沒有自動復位裝置。密碼組合取決於控制桿所附着方塊後面是否有火把附着(起到非門的作用)。您可以像這個例子一樣在最末端的與門處放一個具有最高權限的控制桿,只有控制桿拉下時,輸入正確密碼才能開門。

Combolockredstone.gif

或門密碼鎖[編輯 | 編輯原始碼]

或門密碼鎖就更為簡便了,當所有輸入全部錯誤時,輸出才會無信號。

由於或門密碼鎖的高壓縮性與快速反應能力,本裝置對於地址解碼器與可尋址存儲器(RAM)極其有用。

設計方案A。密碼由輸入端那裏的紅石火把決定(圖中為1001)。

Or-lock.gif

您也可以通過把輸入端後的紅石線改成中繼器,從而能夠讓控制桿門都靠在一起。

同理,您可以擴展更多的輸入端。

設計方案B。密碼由藍色區域那裏的反相器決定(圖中為001001)。

Compact or-lock.JPG


N為輸入端數量 K為您希望設定的密碼中「1」的個數

設計方案 A B
尺寸 2N-1x3x1 Nx6x2
紅石火把數量 K 2N-K
紅石粉數量 3N-K-1 2.5N + 2K

信號分類輸出裝置[編輯 | 編輯原始碼]

深色方格為裝置本體,淺色方格標明擴展方式

本裝置構造簡單,實質上只有一個或門與一個與門。

輸入端為右側和下側。這個設備將輸入信號分類,兩輸入均為「1」時,上側輸出才為「1」;兩輸入均為「0」,左側輸出才為0,這樣您就可以統計兩個輸入端1與0的個數或持續時間了。 如圖所示,本設計方案十分容易擴展。淺色的方格展示了擴展的方法與輸入、輸出端的位置。依照圖示,將同樣的裝置對應端口接入即可。

3位分類輸出裝置的真值表:

A B C 1 2 3
0 0 0 0 0 0
1 0 0 1 0 0
0 1 0 1 0 0
0 0 1 1 0 0
1 1 0 1 1 0
0 1 1 1 1 0
1 0 1 1 1 0
1 1 1 1 1 1

順序敏感的RS或非密碼鎖[編輯 | 編輯原始碼]

這種密碼鎖只有當以特定順序按下按鍵時,門才會打開。

註:您需要對邏輯門與MCRS符號有一定的了解才能理解本設備的構造。

做一系列的按鈕,並只連接其中一個到RS或非鎖。然後把RS或非鎖與第二個按鈕連接至通向另一個RS或非鎖的與門,繼續這個步驟下去直到你連接了所有的按鈕或者對這個鎖滿意了。把最後一個的RS或非鎖和一個來自輸入按鈕的信號連接到一個單獨的與門,接出到輸出的RS或非鎖。然後把所有剩餘的按鈕都連接到輸入按鈕並且將重置信號發送到每一個RS或非鎖。在門旁邊放置一個壓力板可以將門重置。這種類型的鎖的安全性有嚴格的限制。比如說,不是所有按鈕都能被使用,否則這個系統將無法重置。


Ic translate.svg
此條目的(部分)內容需要被翻譯。
你可以幫助我們來翻譯此條目,但請勿使用機器翻譯

此條目的內容需要改進以達到條目標準
此條目的內容因翻譯質量較低而違反或未達到條目標準。
你可以幫助我們來改進此條目。

對於一個可任意組合大小,使用到了所有的按鈕以及附帶一個錯誤重置系統的鎖,你需要使用不同的方法重置它。為了建造這把鎖,將一組按鈕(任何數字,最好在四個以上)連接到一系列相鄰的中繼器上。Invert as necessary so that all the repeaters are powered and are unpowered by the press of the corresponding button。這些中繼器為一排方塊提供信號。在方塊的頂部,放一個對應於第一個數字的錯誤按鈕的火把。對於正確的按鈕/數字,place dust under the powered block which leads to a RS NOR Latch。Place a row of blocks above the torches for the incorrect buttons,with redstone dust on top。然後將這個紅石粉連接到第一個RS或鎖存器的復位。只有按下正確的按鈕才能激活RS或鎖存器,而按下其他的按鈕將會重置這把鎖。將RS或鎖存器的輸出連接到與門的一半。在第一排復位火把之後,放置另一排中繼器和另一排方塊。再把連接錯誤的按鈕的紅石線放在連接正確的按鈕的紅石線下面。將正確的按鈕連接到與門的另一半。只有滿足按對了第一個按鈕激活第一個RS或鎖存器並且正確地按下第二個按鈕的條件下,與門才會發送一個信號來激活第二個RS或鎖存器。同樣,將連接錯誤的按鈕的火把連接到第二個RS或鎖存器的復位線。註:延遲復位信號由一個完整的中繼器,給下一個RS或鎖存器設定時間之前,復位發生。繼續以相同的方式構建數組,直到達到所需的位數為止。在操作中,當一個按鈕被按下時,每個RS或鎖存器檢查(通過與門)是否為先前RS或鎖存器被激活,並且這個RS或鎖存器正確的按鈕已被按下。只有當以正確的順序按下按鈕時,信號才能通過條件RS或鎖存器才能把信號輸出到最後。將最後一個RS或鎖存器的輸出連接到門上,並將一條線連接到門內的壓力板上,以重置RS或鎖存器。參見下面連結的影片演示。

參考[編輯 | 編輯原始碼]


相關頁面[編輯 | 編輯原始碼]