Selasa, 05 Mei 2026

Projek robotik 30

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

  1. 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 / -).

  2. Pemrosesan: Micro:bit akan menyimpan rangkaian titik dan garis ini sementara (misalnya: .-).

  3. Pengiriman & Eksekusi: Tombol B digunakan untuk menandai bahwa satu huruf sudah selesai dimasukkan. Micro:bit akan menerjemahkan sandi tersebut menjadi huruf (misal: .- menjadi A), lalu mengirimkan huruf "A" via gelombang Radio.

  4. Penerima: Micro:bit kedua menangkap sinyal Radio dan menampilkannya di layar LED.


Langkah-langkah Pemrograman (MakeCode)

Buka makecode.microbit.org dan buat proyek baru. Kita akan membuat satu program yang diunduh ke kedua Micro:bit, sehingga keduanya bisa saling mengirim dan menerima.

Langkah 1: Persiapan Radio dan Variabel

Kita perlu memastikan kedua Micro:bit berada di saluran frekuensi yang sama dan menyiapkan wadah penampung sandi.

  1. Ambil blok on start.

  2. Masukkan blok radio set group 1 (Pastikan angkanya sama untuk kedua perangkat, misal 1).

  3. Buat variabel baru bernama sandi_aktif (untuk menampung titik/garis) dan waktu_tekan (untuk menghitung durasi).

  4. Set variabel sandi_aktif menjadi 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).

  1. 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 beat agar ada bunyi beep saat tombol ditekan (ubah durasinya agar terus berbunyi saat ditahan jika memungkinkan, atau biarkan standar untuk efek suara).

  2. Mendeteksi Pelepasan Tombol (Looping):

    • Buat blok logika untuk menghitung selisih waktu. (Cara termudah di MakeCode blok dasar adalah menggunakan struktur while atau 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 while selesai (artinya tombol dilepas), buat variabel baru bernama durasi.

      • 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 join ada di menu Text.

Langkah 3: Menerjemahkan (Decoding) dan Mengirim

Setelah rangkaian sandi terbentuk, kita gunakan Tombol B untuk memprosesnya menjadi huruf.

  1. Ambil blok on button B pressed.

  2. Gunakan blok logika bersarang if / else if yang panjang untuk membandingkan isi sandi_aktif dengan kamus Morse.

    • if sandi_aktif = ".-" then

      • radio send string "A"

    • else if sandi_aktif = "-..." then

      • radio send string "B"

    • else if sandi_aktif = "-.-." then

      • radio 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).

  3. 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.

  1. Ambil blok on radio received (receivedString).

  2. Masukkan blok show string (receivedString). Layar akan otomatis menggulirkan huruf yang diterima dari stasiun lain.

  3. Tambahkan efek suara play melody singkat agar operator tahu ada pesan masuk.


 Mengunduh dan Pengujian

  1. Sambungkan Micro:bit pertama ke komputer. Klik Download.

  2. Setelah selesai, cabut, dan sambungkan Micro:bit kedua. Klik Download lagi (gunakan kode yang sama persis).

  3. Pasang kotak baterai pada keduanya dan berikan satu perangkat ke teman Anda.

  4. 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.