Proyek Mesin Sandi Morse (Morse Code Transceiver)
Adalah salah satu proyek tingkat lanjutan yang paling menarik. Proyek ini menggabungkan logika pengaturan waktu (untuk membedakan tekanan panjang dan pendek), struktur data dasar (menerjemahkan sandi ke huruf), dan komunikasi nirkabel (Radio).
Berikut adalah panduan lengkap untuk membangun dua stasiun telegraf cerdas ini.
Peralatan yang Dibutuhkan
2x BBC Micro:bit (Satu sebagai pengirim, satu sebagai penerima. Bisa bertukar peran jika diprogram identik).
2x Kotak Baterai (Battery Pack) + Baterai AAA (Agar kedua stasiun bisa diletakkan berjauhan).
2x Kabel Micro-USB (Untuk memprogram dari komputer).
(Opsional) Buzzer Eksternal & Kabel Capit Buaya (Hanya jika Anda menggunakan Micro:bit V1 yang tidak memiliki speaker internal, agar suara "beep" telegraf terdengar).
Konsep Dasar Logika
Input: Kita akan menggunakan Tombol A. Jika ditekan sebentar (< 250 milidetik), itu dihitung sebagai Titik (Dot /
.). Jika ditekan lebih lama, itu dihitung sebagai Garis (Dash /-).Pemrosesan: Micro:bit akan menyimpan rangkaian titik dan garis ini sementara (misalnya:
.-).Pengiriman & Eksekusi: Tombol B digunakan untuk menandai bahwa satu huruf sudah selesai dimasukkan. Micro:bit akan menerjemahkan sandi tersebut menjadi huruf (misal:
.-menjadiA), lalu mengirimkan huruf "A" via gelombang Radio.Penerima: Micro:bit kedua menangkap sinyal Radio dan menampilkannya di layar LED.
Langkah-langkah Pemrograman (MakeCode)
Buka
Langkah 1: Persiapan Radio dan Variabel
Kita perlu memastikan kedua Micro:bit berada di saluran frekuensi yang sama dan menyiapkan wadah penampung sandi.
Ambil blok
on start.Masukkan blok
radio set group 1(Pastikan angkanya sama untuk kedua perangkat, misal 1).Buat variabel baru bernama
sandi_aktif(untuk menampung titik/garis) danwaktu_tekan(untuk menghitung durasi).Set variabel
sandi_aktifmenjadi teks kosong (gunakan blok tanda kutip ganda""dari menu Text).
Langkah 2: Logika Tekanan Panjang (Dash) dan Pendek (Dot)
Di MakeCode, kita perlu mengukur berapa lama tombol ditahan menggunakan blok waktu (running time).
Saat Tombol Ditekan:
Ambil blok
on button A pressed.Simpan waktu saat ini ke variabel:
set waktu_tekan to (running time (ms))dari menu Input > More.Tambahkan blok suara
play tone Middle C for 1 beatagar ada bunyi beep saat tombol ditekan (ubah durasinya agar terus berbunyi saat ditahan jika memungkinkan, atau biarkan standar untuk efek suara).
Mendeteksi Pelepasan Tombol (Looping):
Buat blok logika untuk menghitung selisih waktu. (Cara termudah di MakeCode blok dasar adalah menggunakan struktur
whileatau memeriksa kondisi setelah penundaan).Cara alternatif yang lebih mudah direplikasi:
Masukkan blok
while (button A is pressed)do:pause (10)ms (biarkan kosong / menunggu).
Setelah blok
whileselesai (artinya tombol dilepas), buat variabel baru bernamadurasi.set durasi to (running time (ms) - waktu_tekan).
Penentuan Titik atau Garis:
Gunakan logika
if / else.if durasi < 250(kurang dari seperempat detik):set sandi_aktif to join(sandi_aktif, ".")(Gabungkan isi sandi saat ini dengan titik).show leds(Gambarkan satu titik di tengah layar LED).
else:set sandi_aktif to join(sandi_aktif, "-").show leds(Gambarkan garis horizontal di layar LED).
Catatan: Blok
joinada di menu Text.
Langkah 3: Menerjemahkan (Decoding) dan Mengirim
Setelah rangkaian sandi terbentuk, kita gunakan Tombol B untuk memprosesnya menjadi huruf.
Ambil blok
on button B pressed.Gunakan blok logika bersarang
if / else ifyang panjang untuk membandingkan isisandi_aktifdengan kamus Morse.if sandi_aktif = ".-" thenradio send string "A"
else if sandi_aktif = "-..." thenradio send string "B"
else if sandi_aktif = "-.-." thenradio send string "C"
(Lanjutkan untuk huruf-huruf lain yang ingin Anda program. Untuk tahap awal, buat 5-10 huruf pertama saja sebagai percobaan).
else:radio send string "?"(Jika sandi tidak dikenali/salah).
Setelah mengirim, sangat penting untuk mengosongkan kembali variabelnya.
set sandi_aktif to ""(kembali ke teks kosong).clear screen(membersihkan layar LED).
Langkah 4: Menerima Pesan
Sekarang kita perintahkan Micro:bit untuk bereaksi jika ada pesan radio yang masuk.
Ambil blok
on radio received (receivedString).Masukkan blok
show string (receivedString). Layar akan otomatis menggulirkan huruf yang diterima dari stasiun lain.Tambahkan efek suara
play melodysingkat agar operator tahu ada pesan masuk.
Mengunduh dan Pengujian
Sambungkan Micro:bit pertama ke komputer. Klik Download.
Setelah selesai, cabut, dan sambungkan Micro:bit kedua. Klik Download lagi (gunakan kode yang sama persis).
Pasang kotak baterai pada keduanya dan berikan satu perangkat ke teman Anda.
Cara Bermain:
Di perangkat 1: Tekan tombol A sebentar (muncul titik), lalu tekan tombol A agak lama (muncul garis). Sandi tersimpan:
.-Tekan tombol B.
Perhatikan perangkat 2: Layarnya akan berkedip, memainkan melodi, dan menampilkan huruf "A".
Dengan menyelesaikan proyek ini, Anda pada dasarnya telah menciptakan ulang sistem komunikasi telegraf nirkabel yang menjadi fondasi telekomunikasi modern! Anda selalu bisa memodifikasi kodenya nanti untuk menambahkan tombol "Spasi" (misal dengan menekan A+B bersamaan) atau menambahkan fitur enkripsi sederhana.