Daftar Isi:
- Perlengkapan
- Langkah 1: Membangun Basis
- Langkah 2: Bagian Servo
- Langkah 3: Menambahkan Motor Servo dan Gulungan Kertas ke Basis
- Langkah 4: Membangun Rangka Motor Stepper
- Langkah 5: Sentuhan Akhir
- Langkah 6: Elektronik
- Langkah 7: Pemecahan Masalah
Video: Penulis Kode Morse Arduino: 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Saya membuat robot yang dapat mengubah teks apa pun menjadi kode Morse dan kemudian menuliskannya!! Itu terbuat dari karton dan Lego dan untuk elektronik saya menggunakan Arduino dan hanya dua motor.
Perlengkapan
Papan Arduino Uno Motor stepper Micro servo SG90ULN2003 modul driver motor stepper Modul catu daya Papan tempat memotong roti4× Kabel jumper6× Kabel dupont perempuan-ke-Laki-laki9V1A AdaptorKabel USB Karton 2× Pena kayu 2× Pegas Sedotan Kertas putihLego Lem super Pistol lem panas Pita elastis (untuk membuat tempat pena) Pemotong Gunting
Langkah 1: Membangun Basis
Mulailah dengan membangun alasnya. Milik saya lebarnya 4 stud dan panjangnya 20 stud, setelah membangun satu lapis dengan panjang tersebut, saya membangun boarder lebar satu stud di sekelilingnya meninggalkan celah di satu sisi untuk menyisakan ruang bagi motor stepper, lalu saya menambahkan potongan ubin ke bagian tengah di mana strip kertas akan berada. Menggunakan Lego membuatnya sangat kokoh dan mudah dimodifikasi. Untuk membuat gulungan kertas, saya memotong kertas A4 dengan lebar 1,2cm (saya memilih lebar ini karena lebarnya sama dengan roda Lego yang saya gunakan, Anda dapat membuat Anda lebih besar atau lebih kecil tergantung pada roda Anda) dan saya merekatkan ujungnya menjadi satu. untuk membentuk satu strip yang sangat panjang, lalu saya melilitkannya di sekitar roda.
Langkah 2: Bagian Servo
Untuk langkah ini Anda perlu:
- dua pasak kayu panjang 4cm
- dua pegas dengan panjang 2 cm
- satu sedotan dipotong menjadi dua bagian dengan panjang masing-masing 2 cm
- satu karton berukuran 12cm kali 4cm
- dua potong karton berukuran 4cm kali 1,5cm
- satu karton berukuran 4cm kali 2cm
Pertama, rekatkan pasak ke salah satu dari potongan 4 kali 1,5, lalu masukkan pegas dan sedotan ke pasak, lalu rekatkan potongan karton lainnya di sisi lain untuk menahan semuanya pada tempatnya.
Kedua, rekatkan potongan 4cm kali 2cm di atas sedotan.
Ketiga, balikkan seluruh bagian dan rekatkan pasak kecil di bagian belakangnya, bukan di tengah tetapi sedikit ke kiri. (Saya lupa menambahkan dowel kecil di gambar pertama)
Terakhir, buat lubang di karton besar seukuran depan motor servo dan rekatkan motornya, lalu rekatkan potongan yang baru saja kita buat dengan pasak ke potongan besar sehingga ketika servo bergerak, mendorong pasak kecil ke bawah yang pada gilirannya mendorong pegas ke bawah juga.
Saya akhirnya memotong sekitar 3cm dari bagian bawah potongan 12cm kali 4cm dan menempelkan dua potongan lagi berukuran 4cm kali 1,5cm, lalu menutupinya dengan selembar karton 5,5cm kali 4cm. Dan untuk memegang spidol saya membuat kecil lingkaran karet gelang dan menempelkannya ke selembar karton kecil lalu saya menempelkannya ke potongan 4cm kali 2cm yang akan bergerak ke bawah ketika servo dimulai. Penambahan ini menghentikan penanda dari bergerak dari sisi ke sisi ketika pegas muncul kembali.
Langkah 3: Menambahkan Motor Servo dan Gulungan Kertas ke Basis
Saya menambahkan dua batu bata lagi ke satu sisi alas untuk menopang bagian servo dan saya menempelkannya di tempatnya. Kemudian saya menambahkan roda ke ujung alas yang jauh.
Langkah 4: Membangun Rangka Motor Stepper
Langkah ini sedikit menantang, karena motornya tidak dibuat pas dengan Lego secara sempurna. Namun, saya berhasil melakukannya dengan menggunakan dua lubang di motor untuk mengamankannya pada tempatnya. Selanjutnya saya menempelkan roda Lego ke ujung motor dan kemudian saya letakkan tepat di samping alas pada sisi yang saya biarkan terbuka pada langkah 1.
Langkah 5: Sentuhan Akhir
Saya menambahkan dua potongan busur untuk menutupi roda untuk memperbaiki kertas di tempatnya. Dan saya menambahkan dua potongan busur yang lebih kecil satu untuk menahan kabel motor stepper dan satu lagi untuk menahan kertas. Terakhir, saya mengubah roda motor stepper menjadi sedikit lebih besar yang menggerakkan kertas lebih baik daripada roda lama.
Langkah 6: Elektronik
Terakhir, Anda harus menghubungkan motor ke Arduino dan mengunggah kodenya.
Kita akan mulai dengan motor servo, sambungkan kabel coklat (kabel ground) ke pin GND, lalu kabel merah (kabel power) ke pin 5V, dan kabel oranye (kabel sinyal) ke Dig #5 pin. Selanjutnya, motor stepper, sambungkan 1N1 ke Dig #11, 1N2 ke Dig #10, 1N3 ke Dig #9, 1N4 ke Dig #8, 5V ke sisi positif papan tempat memotong roti dan pin ground ke sisi negatif papan tempat memotong roti papan tempat memotong roti. Dan jangan lupa untuk menghubungkan modul catu daya ke papan tempat memotong roti untuk memastikan bahwa sisi positif dan negatifnya sejajar dengan benar ke sisi yang sesuai pada papan tempat memotong roti. Jika Anda lupa melakukannya, Anda akan membalikkan kekuatan ke proyek Anda, dan Anda tidak ingin melakukannya.
Untuk kodenya, saya menulis empat metode, satu untuk menulis titik, satu untuk menulis tanda hubung, dan dua untuk meninggalkan spasi di antara setiap huruf dan setiap kata. Dengan begitu, saya bisa memanggil metode ini saat saya membutuhkannya alih-alih menulisnya lagi untuk setiap huruf. Kemudian saya menulis loop for yang melewati setiap huruf dari teks dan menulisnya, Di dalamnya, saya menulis pernyataan if untuk setiap huruf tetapi Anda dapat menulisnya dalam pernyataan switch jika Anda mau. Tentu saja Anda dapat menambahkan kode untuk mengaktifkan program membaca angka. Ketika semua kabel sudah siap, cukup salin dan tempel kode ke IDE Anda. Jangan lupa untuk menginstal perpustakaan stepper, servo, dan string. Setelah itu, Anda baik untuk pergi.
Bagaimana itu bekerja
Ketika Arduino memulai program melihat huruf pertama dari teks, dan tergantung pada yang mana, ia memanggil fungsi yang menulisnya dalam kode Morse. Misalnya, ketika fungsi titik dipanggil, motor servo diatur ke 160 yang menggerakkan pena ke bawah, kemudian diatur kembali ke 90 yang memungkinkan pegas naik kembali dengan menggerakkan pena. Dan jika fungsi dasbor dipanggil, servo menggerakkan pena ke bawah, kemudian motor stepper memutar roda yang menarik kertas membuat pena menulis tanda hubung. Dan jika salah satu fungsi spasi disebut motor stepper berputar tetapi dengan pena ke atas sehingga menarik kertas membuat spasi antara huruf atau kata. Setelah selesai, ia pergi ke huruf berikutnya dan mengulangi proses yang sama. Saya harap Anda menyukainya;)
Kode
#termasuk
#include #include #include const int langkahPerRevolution = 150; // Ini adalah variabel untuk motor stepper String kalimat = "*hello"; //Ubah variabel ini untuk menulis kata yang berbeda tetapi hanya tulis dalam huruf kecil dan awali kata Anda dengan "*" Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11); Servo myServo; // Ini adalah metode yang membuat robot menulis sebuah titik void dot() { Serial.println("dot start"); myServo.write(160); penundaan (1000); myServo.write(90); penundaan (1000); myStepper.step(stepsPerRevolution); penundaan (1000); Serial.println("titik selesai"); } // Ini adalah metode yang membuat robot menulis tanda hubung void dash() { Serial.println("dash start"); myServo.write(160); penundaan (1000); myStepper.step(stepsPerRevolution); penundaan (1000); myServo.write(90); penundaan (1000); myStepper.step(stepsPerRevolution); penundaan (1000); Serial.println("tanda hubung selesai"); } // Ini adalah metode yang membuat robot meninggalkan spasi di antara setiap huruf void spasi() { Serial.println("spasi start"); myServo.write(90); penundaan (1000); langkahku.langkah(200); penundaan (1000); Serial.println("spasi selesai"); } // Ini adalah metode yang membuat robot meninggalkan ruang yang lebih besar di antara setiap kata void bigSpace() { myServo.write(90); langkahku.langkah(250); penundaan (1000); } void setup() { // letakkan kode setup Anda di sini, untuk dijalankan sekali: Serial.begin(9600); myStepper.setSpeed(100); myServo.attach(5); int pertama = kalimat.indexOf('*'); // loop for ini melewati setiap huruf dari string dan kemudian memanggil metode yang tepat untuk menuliskannya (int i = 0; i < kalimat.length(); i++) { if (sentence.charAt(first + i) == 'a') { Serial.print(".- "); dot(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'b') { Serial.print("-… "); berlari(); dot(); dot(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'c') { Serial.print("-.-. "); berlari(); dot(); berlari(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'd') { Serial.print("-.. "); berlari(); dot(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'e') { Serial.print(". "); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'f') { Serial.print("..-. "); dot(); dot(); berlari(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'g') { Serial.print("--. "); berlari(); berlari(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'h') { Serial.print("… "); dot(); dot(); dot(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'i') { Serial.print(".. "); dot(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'j') { Serial.print(".--- "); dot(); berlari(); berlari(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'k') { Serial.print("-.- "); berlari(); dot(); berlari(); ruang angkasa(); } else if (sentence.charAt(first + i) == 'l') { Serial.print(".-.. "); dot(); berlari(); dot(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'm') { Serial.print("-- "); berlari(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'n') { Serial.print("-. "); berlari(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'o') { Serial.print("--- "); berlari(); berlari(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'p') { Serial.print(".--. "); dot(); berlari(); berlari(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'q') { Serial.print("--.- "); berlari(); berlari(); dot(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'r') { Serial.print(".-. "); dot(); berlari(); dot(); ruang angkasa(); } else if (sentence.charAt(first + i) == 's') { Serial.print("… "); dot(); dot(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 't') { Serial.print("- "); berlari(); ruang angkasa(); } else if (kalimat.charAt(first + i) == 'u') { Serial.print("..- "); dot(); dot(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'v') { Serial.print("…- "); dot(); dot(); dot(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'w') { Serial.print(".-- "); dot(); berlari(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'x') { Serial.print("-..- "); berlari(); dot(); dot(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'y') { Serial.print("-.-- "); berlari(); dot(); berlari(); berlari(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == 'z') { Serial.print("--.. "); berlari(); berlari(); dot(); dot(); ruang angkasa(); } else if (kalimat.charAt(pertama + i) == ' ') { Serial.print("/ "); ruang besar(); } } } void loop() { //Jangan menulis apapun disini }
Langkah 7: Pemecahan Masalah
Roda tidak bergerak
Mungkin ada terlalu banyak gesekan antara roda dan kertas, coba naikkan roda sedikit atau ganti.
Roda menarik kertas tetapi terus berputar tanpa menarik kertas
Pastikan Anda menempelkan roda di tengah motor stepper
Titik dan garis terhubung
Periksa apakah fungsi titik, tanda hubung, dan spasi ditulis dengan benar, seharusnya seperti ini:
// Ini adalah metode yang membuat robot menulis dotvoid dot() { Serial.println("dot start"); myServo.write(160); penundaan (1000); myServo.write(90); penundaan (1000); myStepper.step(stepsPerRevolution); penundaan (1000); Serial.println("titik selesai"); }
// Ini adalah metode yang membuat robot menulis tanda hubung
void dasbor() { Serial.println("tanda hubung mulai"); myServo.write(160); penundaan (1000); myStepper.step(stepsPerRevolution); penundaan (1000); myServo.write(90); penundaan (1000); myStepper.step(stepsPerRevolution); penundaan (1000); Serial.println("tanda hubung selesai"); }
// Ini adalah metode yang membuat robot meninggalkan spasi di antara setiap huruf
void spasi() { Serial.println("spasi mulai"); myServo.write(90); penundaan (1000); langkahku.langkah(200); penundaan (1000); Serial.println("spasi selesai"); }
Direkomendasikan:
2 Huruf Word Learner Dengan Kode Morse: 5 Langkah
Pembelajar Kata 2 Huruf Dengan Kode Morse: Saya telah mencoba mempelajari kata-kata Scrabble (tm) 2 huruf untuk sementara waktu tanpa hasil. Saya juga telah mencoba mempelajari kode Morse lagi dengan sedikit keberhasilan. Saya memutuskan untuk mencoba beberapa pembelajaran bawah sadar dengan membangun sebuah kotak yang terus menunjukkan
ScanUp NFC Pembaca/penulis dan Perekam Audio untuk Tunanetra, Tunanetra dan Orang Lain: 4 Langkah (dengan Gambar)
ScanUp NFC Pembaca/penulis dan Perekam Audio untuk Tunanetra, Tunanetra dan Semua Orang Lain: Saya belajar desain industri dan proyek ini adalah pekerjaan semester saya. Tujuannya adalah untuk mendukung tunanetra dan tunanetra dengan perangkat, yang memungkinkan untuk merekam audio dalam format .WAV pada kartu SD dan memanggil informasi itu dengan tag NFC. Jadi di
Cara Membuat Penerjemah Kode Morse Dengan Arduino: 10 Langkah
Cara Membuat Penerjemah Kode Morse Dengan Arduino: Gambaran UmumBerkomunikasi secara berkode, selain begitu mempesona, memiliki banyak aplikasi di berbagai bidang. Salah satu metode komunikasi kode yang paling umum adalah kode Morse. Dalam tutorial ini, Anda akan belajar cara membuat juru bahasa untuk mengirim dan
Penulis Braille Sederhana (Ucapan ke Braille): 8 Langkah (dengan Gambar)
Simple Braille Writer (Speech to Braille): Halo semuanya,Semua ini dimulai dengan membuat plotter XY sederhana setelah menyelesaikannya dengan sukses, saya berpikir untuk mengembangkan konverter teks pidato ke braille sederhana.Saya mulai mencarinya secara online dan tiba-tiba harganya terlalu tinggi , yang menguatkan saya
Kode Morse Touch Keyer/Autocoder: 12 Langkah (dengan Gambar)
Kode Morse Touch Keyer/Autocoder: Saya sebenarnya membuat proyek ini beberapa waktu lalu, tetapi saya pikir seseorang mungkin dapat menggunakan ide tersebut. Saya seorang pria radio ham dan masuk ke dalamnya sedikit terlambat dalam hidup ketika saya pensiun dan punya waktu. Saya memiliki lisensi umum saya sekarang dan menggunakan telepon (vo