Dzięki wykorzystaniu multipleksacji, projekt, który posiada 115 diod LED, wykorzystuje do ich sterowania jedynie 38-pinów, a 36-przycisków potrzebuje jedynie 4-pinów. Wszystko to również dzięki dobrze dobranym rezystorom (oraz p-kanałowym tranzystorom MOSFET). Gdyby nie zastosowano powyższych metod to nawet w Arduino Mega zabrakłoby pinów do sterownia czterech 16-segmentowych wyświetlaczy oraz diod LED dla każdego przycisku.
Przed wykonaniem pracy przetestowano dokładnie sterownie poszczególnymi diodami. Reszta to tylko matematyka…
Lista części:
1 Arduino Mega
26 znaczników alfanumerycznych
26 gniazd mono Jack ¼’
26 wtyczek Jack ¼’
36 przycisków
1 wyłącznik on/off
4 16-segnentowe wyświetlacz pomarańczowe wyświetlacze LED
4 próbówki na wyświetlacze
Sklejka
Zawiasy
Zamek wpuszczany
Płyta perforowana
38 rezystorów 470Ω
40 rezystorów 1kΩ
7 tranzystorów p-kanałowych MOSFET IRF9Z24N
Kawałek blachy i farby w sprayu
Jeżeli autor robiłby to drugi raz nie użyłby już wtyczek i gniazd Jack ¼”, ponieważ są dość duże i przerastają cały projekt Enigmy. Wtyczki bananowe byłyby tutaj bardziej poręczne i bliźniacze do oryginalnych wtyczek Enigmy.
Płyta perforowana 6”x 8” jest idealna rozmiarowo do rozmieszczenia wszystkich elementów, i doskonale mieści się w obudowie Enigmy.
Przestrzeń na płytce podzielono na 3 obszary, podobnie jak to miało miejsce w prawdziwej Enigmie. Po sprawdzeniu poprawności działania przystąpiono do lutowania.
Jak przyznaje autor projekt wymagał chyba najwięcej lutowania spośród wykonywanych dotychczas prac. Lutowania wymaga 18-pinów 16-segmentowych wyświetlaczy razy 4, plus 26-klawiszy klawiatury plus 26-diod klawiatury plus kilka LED oraz jeden przełącznik on/off.
Decyzja, aby użyć 16-segmentowych wyświetlaczy zamiast lamp Nixie była podyktowana ich ceną i dostępnością, a także wysokim napięciem zasilania. Autor nie chciał mieszać napięcia 100 V z logiką Arduino.
Połączenia pomiędzy poszczególnymi elementami zostały pokazane na dwóch schematach:
Pierwszy schemat pokazuje podłączenie 16-segmentowych wyświetlaczy LED imitujących lampy Nixie (cztery lampy 16—segmentowe). Wyświetlacze te są wykorzystywane zarówno do pokazania ustawienia każdego z rotorów jak to było w Enigmie jak również do tworzenia ustawień w każdym z trybów pracy.
Drugi schemat pokazuje jak podłączone są wszystkie klawisze alfanumeryczne oraz 10-klawiszy funkcyjnych. Pokazane zostały również połączenia dla każdej z diod LED przy każdym przycisku oraz 5 LED przy przyciskach wyboru trybu pracy.
Wszystkie rezystory przy diodach LED mają wartość 470 Ω a wszystkie rezystory przy przyciskach mają wartość 1kΩ
Po uzyskaniu dokładnych wymiarów oryginalnego M4 zakupiono sklejkę i pocięto ją na kawałki do zbudowania zewnętrznego drewnianego pudełka. Blaszane elementy wycięto ze starych obudów serwerowych, gdyż ich blacha miała potrzebną grubość. Po wywierceniu odpowiednich otworów na przyciski i wyświetlacze pomalowano wszystko na czarno jak w oryginale.
Podczas każdego etapu montażu dokonywano tworzenia jakiegoś prostego fragmentu kodu testującego czy wszystkie elementy działają poprawnie. Sprawdzano między innymi czy każdy przycisk jest poprawnie odczytywany, czy działają wszystkie przyciski funkcyjne oraz wszystkie LED.
Kod ENIGMA_POST (Power On Self Test) testuje czy każda za lampek działa poprawnie i przechodzi przez każdy tryb z pewnymi zmianami w stosunku do oryginalnego kodu.
Jak przyznaje autor ten kod to nic z prawdziwym tour-de-force jakim było tworzenie kodu reprodukującego algorytm szyfrowania/deszyfrowania maszyny Enigma M4.
Przy tworzeniu oprogramowania stworzono osobne funkcje dla każdego z trybów pracy maszyny.
W domyślnym trybie 0 Enigma jest prostą maszyną, która podświetla naciśniętą właśnie literę oraz wyświetla w postaci animacji na lampach swój numer modelu.
W trybie 1 użytkownik może wybrać 3 (z 8) rotory, które będą używane do kodowania oraz zdecydować, który (1 z 2) walec odwracający (reflektor) wybiera.
W trybie 2 użytkownik może określić wewnętrzną pozycję każdego z rototów.
Tryb 3 jest używany do ustawiania początkowej pozycji każdego z rotorów.
W trybie 4 użytkownik może wprowadzić do 10 zmian dwóch liter parami.
Tryb 5 jest właściwym trybem pracy, w którym Enigma będzie szyfrować lub odszyfrowywać każdą z liter wpisywanych na klawiaturę.
Źródło:
http://www.instructables.com/id/Make-your-own-Enigma-Replica/?ALLSTEPS
Fajne? Ranking DIY