back to top

#11 PicoBricks (micro:bit) Morse Code Cryptography Projesi

İnsanlar bazen sahip olduğu fiziksel eşyalarını, bazen de yazılı veya görsel içeriklerini korumak amacıyla şifrelere başvurur. Şifrelerde kullanılan sembollerin çeşitliliği şifrenin gücünü artıran niteliklerdendir. Aynı şekilde herkin kolayca tahmin edemeyeceği kişisel verileri de şifrelerde kullanmamak şifrenizin gücünü arttıracaktır. 

Kriptografi, okunabilir durumda olan bir verinin istenmeyen kişiler tarafından anlaşılmayacak bir hale getirilmesini sağlayan işlemlere denir. 

Mors Alfabesinde, her harfe karşılık gelen uzun ve kısa işaretler vardır. Şifrelenmek istenilen metinin her karakteri mors alfabesindeki kısa ve uzun işaretler kullanılarak şifrelenir. Bu işaretler bir bütün olarak birleştirilip çözümlendiğinde şifreli metin ortaya çıkar. Mors alfabesindeki uzun ve kısa işaretler ses ya da ışık kullanılarak oluşturulabilir. Bunun en bilindik örneği SOS yardım çağrısıdır. Elimizde fener vb. ışık aracı ile sırası ile üç uzun-üç kısa- üç uzun ışık yakılarak yardım çağırısı yapılır. Bunun sebebi mors alfabesinde s harfinin değerinin (…) üç kısa o harfinin değerinin ise (—) üç uzun olmasıdır. 

Morse Code Alphabet

Bu projede, kodun içerisinde belirtilen metini mors alfabesini kullanılarak. PicoBricks RGB LED modülü ile şifreleyeceğiz. Şifrelenen metnin her bir karakteri Micro:Bit matrix LED’lerinde oluşacak ve PicoBricks OLED ekranında da mors alfabesindeki karşılığı yazacaktır. 

Bağlantı Şeması:

Bu projeyi kablo bağlantısı yapmadan hazırlayabilirsiniz. 

Proje Görselleri 

Projenin MakeCode Kodları

Projenin Python Kodları

#Morse Code Cryptography
from microbit import *
from picobricks import *
import neopixel

# Pin Initialization
RGB_Pin = pin8
Num_Leds = 3

# Function Initialization
oled = SSD1306()
oled.init()
oled.clear()
np = neopixel.NeoPixel(RGB_Pin, Num_Leds)

#Neopixel
np[0] = (0, 0, 0)
np[1] = (0, 0, 0)
np[2] = (0, 0, 0)
np.show()

morse = ['.-','-...','-.-.','-..','.','..-.','--.','....','..',
         '.---', '-.-','.-..','--', '-.','---', '.--.', '--.-',
         '.-.', '...','-','..-', '...-', '.--','-..-', '-.--',
         '--..', '.----','..---','...--','....-','.....', '-....',
         '--...','---..', '----.','-----']

alphabet = ['a','b','c','d','e','f','g','h','i',
         'j', 'k','l','m', 'n','o', 'p', 'q',
         'r', 's','t','u', 'v', 'w','x', 'y',
         'z', '1','2','3','4','5', '6',
         '7','8', '9','0']

#print(len(alphabet))                
while True:
    if button_a.is_pressed():
        passwordText="picobricks"
        for i in range((len(passwordText))):
            oled.clear()
            oled.add_text(0,0,str(passwordText))
            display.show(passwordText[i])
            oled.add_text(0,1,str(morse[alphabet.index(passwordText[i])]))

            j=0
            for j in range(len(morse[alphabet.index(passwordText[i])])):
                oled.add_text(0,2,str(morse[alphabet.index(passwordText[i])][j]))
                if morse[alphabet.index(passwordText[i])][j] == '.' :
                    np[0] = (255, 255, 255)
                    np[1] = (255, 255, 255)
                    np[2] = (255, 255, 255)
                    np.show()
                    sleep(500)
                else:
                    np[0] = (255, 255, 255)
                    np[1] = (255, 255, 255)
                    np[2] = (255, 255, 255)
                    np.show()
                    sleep(1500)
                np[0] = (0, 0, 0)
                np[1] = (0, 0, 0)
                np[2] = (0, 0, 0)
                np.show()
                sleep(100)

Projenin MicroBlocks Kodları

Son Çıkan Yazılar

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz