條目中某些資訊已經不符合目前版本情況。
此頁面涵蓋了一些內容不足以單獨成篇的紅石電路。
ABBA電路
ABBA電路有一個輸入和多個輸出。當輸入端有訊號時,輸出端按一定順序開啟(例如先A後B),而當輸入端關閉時,輸出端反序關閉(先B後A)。
輸出端啟動和關閉的用時可以用中繼器的不同延遲來變更。
下面的這些設計都可以無限延長。
已知最早的發布:2011年7月5日(基礎概念)[1]、2012年6月20日(Floor ABBA)[2]和2012年7月18日(Ceiling ABBA)[3]。
當你應用活塞時可能會遇到需要按照一定次序啟動它們,但按相反的次序關閉。例如隱蔽型活塞門,它們的控制電路一般都很龐大。本篇目介紹的壓縮電路之所以被命名為ABBA切換器(ABBA Switch),是因為如果以雙輸出端為例,它被設計為先開啟輸出端A,再B,然後關閉則是按照先B後A的順序。
集成組合邏輯
本條目包括各種利用邏輯門的依次組合達到特定邏輯功能的模組裝置。
二進位運算電路
包括半加器、全加器、減法器等。他們能夠對輸入二進位數進行運算並輸出結果,在現實生活中這些組件均為數位訊號處理電路與運算電路的基礎。詳見高級紅石電路條目。
編碼器與解碼器
詳見高級紅石電路條目。
資料選擇器
資料選擇器
資料選擇器(Multiplexer, MUX)能夠允許你從一個或多個輸入訊號中選擇一個直接作為輸出訊號。右圖的資料選擇器能夠多層級聯,從而提供3位(3 bit)或更多位的資料選擇功能。這個方案中A端和B端為輸入端,C端為選擇端。
活塞資料選擇器(輸入輸出端為了便於講解已延長)
縱向的活塞資料選擇器
活塞的引入使得資料選擇器的方案更為簡潔,反應速度可與舊版媲美,而且體積只有3×3×2。
資料分配器
大型:http://i1221.photobucket.com/albums/dd478/AJFayer/Relay.jpg
中型:http://i1221.photobucket.com/albums/dd478/AJFayer/RelayM.jpg
小型:
繼電器(小型)
資料分配器/解復用器(Demultiplexer)允許你選擇將一個輸入導向多個輸出的某一端。其中具有兩個輸出端的又叫做繼電器(Relay)。在現實生活中,「資料分配器」通常用於數位訊號;「解復用器」通常用於模擬訊號;「繼電器」通常用於電氣工程領域。
繼電器由兩個與門與一個RS或非鎖存器組成。預設情況下,繼電器某一輸出端有效,透過對鎖存器的操作你可以將輸出換成另一個埠。不像單個RS或非鎖存器具有穩定不變的輸出,繼電器允許你輸出可變訊號——也就是說你可以不輸出任何訊號,也可以選擇訊號的輸出端。這個特點對於鎖,以及其他涉及到接收到觸發事件才輸出可變訊號到某輸出端的應用實例,是十分有用的。不像現實中的繼電器,你不需要穩定的電源輸入以保持第二輸出的啟動。本方案需要電能以重設第一輸出。
這裡有一個你需要應用繼電器的例子:一個鎖,需要你以指定順序按動多個按鈕以開啟。繼電器允許你讓單個按鈕可以被使用多次(繼電器將訊號在不同時間導向多個輸出端)。你還可以製作需要用開關輸入多個數字的多位二進位組合鎖。你可以用四個開關輸入4位數字,第五個開關用於驗證數字。第五個開關可以將繼電器切換到其他開關從而讓你能夠使用同一個開關輸入第二個數字。
-透過將RS或非鎖存器的兩個輸出到任一與門來建造繼電器,然後對其他與門輸入端加入共同的一個輸入端。觸發鎖存器就能夠改變輸出。
縱向版本:
縱向的小型繼電器版本
本縱向版本體積為8×5×1,螢光石塊用於隔離兩個與門之間的輸入。控制桿用於切換輸出,按鈕用於啟動選中的輸出。
這裡還有一種更加集成化的繼電器設計。A為輸入端,B為選擇端,C和D為輸出端。
第一層
第二層
三態緩衝器
三態緩衝器(Three State Buffer)相當於一個由一個使能訊號B控制、輸入為A輸出為C的開關。當B為假時,開關閉合,輸入A與輸出C相同;當該訊號為真時,開關斷開,輸出C與輸入A無關。這樣的話就能實現輸出端的低電平、高電平與高阻態(即無關態)三種狀態的變化。這類電路在現實生活中的集成電路技術中應用廣泛。
一般習慣將一個輸入(B)被取反的與門作為三態緩衝器,其邏輯關係與蘊含門有相似之處。因為蘊含門一般由一個輸入端被取反的或門組成——故只需要將蘊含門的或門換成與門(取反的輸入為B端),或是將輸出取反(取反的輸入為A端),就可以輕易地改造為三態緩衝器。
| A | B | C |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 高阻態 |
| 1 | 1 | 高阻態 |
集成時序邏輯
本節包括各類集成化的時序邏輯模組裝置。
移位寄存器
移位寄存器(Shift Register)實際上是D觸發器的串聯,或是共享時鐘輸入的JK觸發器序列,使用紅石中繼器的鎖存功能也能製作移位寄存器。特點是前一個觸發器的輸出還會連到下一觸發器的D輸入端。故移位寄存器按照時鐘輸入的觸發速度能夠將串行資料依次顯示在各個輸出端。中文影片[4]
移位寄存器具有多種移位方式:
邏輯左/右移位: 邏輯移位指溢出的位不會被儲存。在另一端多出來的空位被補零操作代替。因此邏輯移位方式適用於無符號二進位數字。
循環移位: 移位的另一種形式是循環移位,一般稱為「位循環」。在位循環中,從一端溢出的位會在另一端在被補回來,就好像序列被連成環了一樣。
算術左/右移位: 算數左移位相當於邏輯左移位。然而在算術右移位中,並非是在左端補零,而是對最左端數字進行複製。這一特點允許你對補碼形式的二進位數進行除2操作——即使它是負數。(左移位允許對帶符號或無符號數進行乘2操作)
隨機資料生成器
隨機資料生成器可以輸出隨機生成的資料。這裡有一個隨機資料生成器的教學:[5]
偽隨機資料生成器
線性意見回饋移位寄存器是用來生成偽隨機數的電路。下面是一個16位元的線性意見回饋移位寄存器例子。中文影片 [6]
方塊更新感應器
方塊更新感應器(Block Update Detecter,BUD)會偵測來自二階毗鄰方塊的更新。BUD最早由知名的Minecraft玩家Etho發明。「方塊更新」來自部分能夠改變方塊狀態的動作:放置方塊、移除方塊、開門、中繼器的延遲改變、蛋糕被食用、長出草、形成積雪、使用熔爐(或停止使用熔爐)等等(開關儲物箱與使用工作台並不會引起方塊更新,但睡在床上會引起)。大多數流行的BUD均採用了活塞作為核心部件。
可以看到「方塊更新」包括很多動作,但13w01a前他們有一個共同點,那就是方塊的變化(方塊本身的ID被改變)。例如,移除某方塊就是該方塊被空氣方塊代替;放置方塊,移除方塊、長出草、積雪等等變化都是這些方塊代替了空氣方塊,熔爐在被使用時與未使用時的方塊ID不同,等等同理。
不同種類的BUD儘管具有共同的啟動條件——感應器的臨近方塊更新(在Java版中,一般是NC更新),但建構原理利用了各式各樣的錯誤或特性。一種活塞BUD利用了下面的活塞啟動特性:活塞能夠被任意隔一格之上的被充能方塊或是那方塊側面的被充能方塊啟動——但滿足這個啟動條件之後,活塞臨近方塊必須更新才可以讓活塞臂伸出——而且,當啟動條件不被滿足後,活塞臨近方塊要再次更新才能讓活塞臂縮回。某些活塞BUD還利用了其他的錯誤,請看這個中文影片:[7]
BUD幾乎可以應用到所有裝置中,從陷阱到能夠感應陽光來開關隱藏門的裝置等等。這裡有一個應用實例,請仔細觀看作者構築BUD的順序。YouTube英文版:[8] 優酷中文版:[9]
有很多可以自動復位的BUD例子,基本上都是透過啟動BUD時透過一定電路重新在設定自身狀態的方式。例如這個YouTube影片:[10] 優酷中文版:[11]
訊號轉換
本節包括各種紅石訊號與其他類型的訊號之間的轉換裝置。
物品「按鈕」
一個正在工作的物品"按鈕".
從1.0正式版開始,我們可以讓一個木質壓力板像一個按鈕一樣工作了(有物品啟動壓力板後)。在之前的版本中,我們沒有辦法自動清除掉在壓力板上的物品——只能等它自動消失(5分鐘後)或者撿起來。所以所有的需要用物品來啟動的秘密按鈕都是半自動的,因為我們要手動清理掉在上面的物品。現在你可以透過把木質壓力板放在柵欄 (柵欄的碰撞箱被更新為跟它自己顯示出來的大小差不多的程度)上:當一個物品從一個壓力板旁邊壓上去的時候 (不是在中間),它會直接滑過壓力板而產生一個長度為1秒的脈衝 (就像一個按鈕那樣).
物品「按鈕」: A - 物品落入點; B - 輸出端; C - 物品銷毀點.
為了保證物品順利滑過壓力板,我們需要用水把它沖向壓力板而不是直接把它扔在板子上。需要注意的是,柵欄會和周圍的固體方塊連接,而這種連接可以阻擋物品的下落。所以確保你把流向壓力板的那一格水放在非固體方塊 (像玻璃) 上面。 可以肯定的一點是,為了使物品被水衝下去之後不會停在柵欄上 (雖然經測試即使是最短的2格坡道也未遇到這種情況,但為了保險起見,要讓流向柵欄的水位儘可能低。)
物理訊號到紅石訊號的轉換
一個物理訊號到紅石訊號的轉換器
透過水和熔岩(液體)源獨特的刷新方法, 我們可以把一個方塊的狀態變更這種"物理訊號"轉為紅石訊號。 為了達到這個目的,你可以建立一個指定方塊狀態改變時會發生變化的水或者熔岩流。(請你務必參閱 [1],文章利用了液體在被放置時流向最近的8格以內的高度更低的溝渠,而且在液體源臨近方塊狀態改變之前流向不會改變的特性。請注意該文章中的操作次序。),然後在液體源另一側的方塊放置紅石火把/紅石線,最後在同側的近處構造更低的溝渠。一旦液體源鄰近的方塊狀態改變,液體源自己的流向會被更新,使得方向改變的液體流可以沖走這個紅石火把/紅石線。這樣,這個紅石火把/紅石線的消失導致輸出訊號的改變,從而達到訊號轉換的目的。
一旦設定完成,液體源毗鄰方塊狀態改變會觸發你希望看到的結果。「方塊狀態改變」包括:方塊放置與毀滅,沙或礫石掉落到該處,長出草叢,水稻生長,門的開關,甚至是紅石礦「發出蒸汽」。它不包括實體方塊被充能,但紅石元件充能方塊時一般會更新實體方塊毗鄰的純液體和不穩定的含水方塊。
這個裝置只能工作一次,之後需要手動復原。
請參閱方塊更新感應器(BUD)章節。BUD具有更強的適應性。
紅石訊號到動流體訊號的轉換
紅石-動流體訊號轉換器
與上一篇目同理,你也可以利用同樣的特性構建紅石訊號到動流體訊號的轉換。同樣希望你仔細閱讀該文章[2]然後將一個紅石線導向液體源的毗鄰方塊。紅石線的狀態一旦改變,液體源的流向就會被更新。如果設定得當的話,你可以透過電路來重新導向液體流向。
而且自Beta 1.7之後,活塞能夠被多功能地使用在液體控制中。活塞的伸臂能夠阻斷任意方向流來的液體,黏性活塞粘連的方塊同樣有這個作用。所以,用活塞來完成紅石訊號到動流體訊號轉換是十分容易的,而且不需要人工重設。
12w21a之後發射器可以控制液體了。18w10d之後地板門可以含水,水的流向受地板門控制。
紅石顯示器
在Minecraft裡有很多種方法用各種活塞與染色羊毛做出一部很短的短片。但是這些方法系統龐大,結構複雜,每一個新影片都要重新做一次基礎設計。
還好,用上紅石燈我們有了新的方法:LED顯示器。這段文字將介紹這種裝置,這個想法基於學校的那些體育館和運動區域的計分板,但這麼一個計分板在Minecraft單人遊戲裡幾乎什麼用都沒有而且功能也很單一。一個小電視畫面在單人遊戲的用處還是比計分板大的,這就是本篇文字要教你的東西。要做一個「紅石顯示器」,就是把圖像一個一個分割成像素塊,基於解碼器和時鐘電路,再除錯一下(好像講了和沒講一樣)。當你製作時,你會發現一些像素塊會通用(下文省略)
水平的燈屏可透過利用紅石火把充能實體方塊從下面控制或透過黏性活塞移動紅石方塊從上面控制。
鉛垂的燈屏常由相同單片並列而成。
在Java版中,控制鉛垂方向超過6個像素的燈屏有多種思路。
偵測器能充能指向的實體方塊從而啟動一個紅石燈。活塞移動的偵測器形成的時鐘每個週期輸出1刻正脈衝和1刻負脈衝,輸出下降沿時紅石燈計劃在2刻後嘗試熄滅,1刻後偵測器亮起並計劃再過1刻紅石燈嘗試熄滅後滅,然後紅石燈執行計劃刻時不能滅,因此雖然偵測器只能輸出脈衝,紅石燈能一直亮。
絆線鉤也能透過充能方塊控制一個紅石燈。
紅石虛擬3D發光顯示器
這是一種基於多種用途的構想,這可以透過多種方式進行,但在本教學中,我們只打算給你如何建立和使用這個玩意兒的一個例子。(注意是減法模式!)
這是一個虛擬3D顯示器。如果你在第一行上面的第二行放置黏性活塞,你可以製造出2×2的像素。為了完成顯示器的外觀,你需要在活塞前面放上方塊來決定什麼像素是什麼顏色,例如羊毛。原理是當活塞推出方塊時,方塊產生影子來蓋住沒有被推出的方塊,從而產生一種3D視覺效果。這個裝置除了可以用作視覺美觀意外,還甚至可以用作怪物磨床。
參考
- ↑ "VioletTheGeek" (5 July 2011). "Minecraft Redstone Reverse-order deactivation sequencer" (Video). YouTube.
- ↑ "VioletTheGeek" (20 June 2012). "Minecraft Redstone Vertical Reverse-Order Deactivation Circuit" (Video). YouTube.
- ↑ "NiceMarkMC" (18 July 2012). "Minecraft - Tutorial: 1 Wide ABBA Switch" (Video). YouTube.
- ↑ https://www.youtube.com/watch?v=LgAZ5iRsrLM
- ↑ https://www.youtube.com/watch?v=_AwWN2NEbqI
- ↑ https://www.youtube.com/watch?v=sBXgchHXl9A
- ↑ http://v.youku.com/v_show/id_XMzU5MDg1NTIw.html
- ↑ https://www.youtube.com/watch?v=-s72YDTOJw8
- ↑ http://v.youku.com/v_show/id_XMzU5MjcxODMy.html
- ↑ https://www.youtube.com/watch?v=xD-phtgkMK4
- ↑ http://v.youku.com/v_show/id_XMzU5NDU2MDAw.html
- ↑ https://zhuanlan.zhihu.com/p/343317849
