Isi kandungan:
- Bekalan
- Langkah 1: Membina Pangkalan
- Langkah 2: Potongan Servo
- Langkah 3: Menambah Motor Servo dan Gulungan Kertas ke Pangkalan
- Langkah 4: Membina Stepper Motor Frame
- Langkah 5: Menyentuh Sentuhan
- Langkah 6: Elektronik
- Langkah 7: Penyelesaian masalah
Video: Penulis Kod Arduino Morse: 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Saya membuat robot yang dapat mengubah teks yang diberikan menjadi kod Morse dan kemudian menulisnya !! Ia terbuat dari kadbod dan Lego dan untuk elektronik saya menggunakan Arduino dan hanya dua motor.
Bekalan
Arduino Uno board Stepper motor Micro servo SG90ULN2003 stepper motor driver module Power supply modul Breadboard4 × Jumper wire6 × Female-to-Male dupont wires9V1A AdapterUSB cable Cardboard 2 × Dowels kayu 2 × Springs Straw White paperLegoSuper lem Hot glue gun Pita elastik (untuk membuat a pemegang pen) Pemotong Gunting
Langkah 1: Membina Pangkalan
Mulakan dengan membina pangkalan. Tambang selebar 4 kancing dan panjang 20 kancing, setelah membina satu lapisan dengan panjang itu, saya membina papan selebar satu pejalan di sekelilingnya meninggalkan jurang di satu sisi untuk meninggalkan ruang untuk motor stepper, kemudian saya menambah kepingan jubin ke bahagian tengah di mana jalur kertas akan berada. Menggunakan Lego menjadikannya sangat kukuh dan mudah diubah suai. Untuk membuat gulungan kertas, saya memotong helai kertas A4 selebar 1.2cm (saya memilih lebar ini kerana lebarnya sama dengan roda Lego yang saya gunakan, anda boleh menjadikannya lebih besar atau lebih kecil bergantung pada roda anda) dan saya menempelkan hujungnya bersama-sama untuk membentuk satu jalur yang sangat panjang, kemudian saya melilitnya pada roda.
Langkah 2: Potongan Servo
Untuk langkah ini, anda memerlukan:
- dua dowel kayu sepanjang 4cm
- dua mata air sepanjang 2cm
- satu jerami dipotong menjadi dua keping masing-masing 2cm
- satu kepingan kadbod 12cm x 4cm
- dua keping kadbod 4cm x 1.5cm
- satu keping kadbod 4cm x 2cm
Pertama, tempelkan dowel ke salah satu dari 4 dengan 1.5 keping, kemudian masukkan mata air dan jerami di dowel, kemudian tempelkan kepingan kadbod yang lain di sisi lain untuk menahan semuanya di tempatnya.
Kedua, lekatkan kepingan 4cm dengan 2cm di atas jerami.
Ketiga, balikkan keseluruhan bahagian dan tempelkan dowel kecil ke belakangnya, bukan di tengah tetapi sedikit ke kiri. (Saya terlupa menambah dowel kecil pada gambar pertama)
Akhirnya, potong lubang pada kepingan besar dari kadbod bersaiz depan motor servo dan tempelkan motor ke dalamnya, kemudian tempelkan potongan yang baru kita buat dengan dowel ke bahagian besar sehingga ketika servo bergerak, ia mendorong dowel kecil ke bawah yang seterusnya mendorong mata air ke bawah juga.
Saya akhirnya memotong kira-kira 3cm dari bahagian bawah kepingan 12cm x 4cm dan menempelkan dua keping lagi 4cm dengan 1.5cm, kemudian menutupnya dengan sekeping kadbod 5.5cm x 4cm. Dan untuk memegang penanda saya membuat kecil gelung jalur elastik dan lekatkan pada sekeping kadbod kecil kemudian saya lekatkan pada kepingan 4cm dengan 2cm yang akan bergerak ke bawah ketika servo bermula. Penambahan ini menghentikan penanda bergerak dari sisi ke sisi ketika mata air kembali naik.
Langkah 3: Menambah Motor Servo dan Gulungan Kertas ke Pangkalan
Saya menambah dua batu bata ke satu sisi pangkalan untuk menyokong bahagian servo dan saya melekatkannya di tempat. Kemudian saya menambah roda ke hujung pangkalan.
Langkah 4: Membina Stepper Motor Frame
Langkah ini agak mencabar, kerana motornya tidak dibuat sesuai dengan Lego dengan sempurna. Namun, saya berjaya melakukannya dengan menggunakan dua lubang pada motor untuk menahannya di tempatnya. Seterusnya, saya menempelkan roda Lego ke hujung motor dan kemudian meletakkannya tepat di sebelah pangkal di sebelah kiri yang saya tinggalkan pada langkah 1.
Langkah 5: Menyentuh Sentuhan
Saya menambah dua kepingan busur untuk menutupi roda untuk memperbaiki kertas di tempatnya. Dan saya menambah dua kepingan busur yang lebih kecil satu untuk memegang wayar motor stepper dan satu lagi untuk memegang kertas. Terakhir, saya menukar roda motor stepper menjadi roda yang sedikit lebih besar yang menggerakkan kertas lebih baik daripada roda lama.
Langkah 6: Elektronik
Akhirnya, anda perlu menyambungkan motor ke Arduino dan memuat naik kodnya.
Kita akan mulakan dengan motor servo, sambungkan wayar coklat (wayar tanah) ke pin GND, kemudian wayar merah (wayar kuasa) ke pin 5V, dan wayar oren (wayar isyarat) ke Dig # 5 sematkan. Seterusnya, motor stepper, sambungkan 1N1 ke Dig # 11, 1N2 ke Dig # 10, 1N3 ke Dig # 9, 1N4 hingga Dig # 8, 5V ke sisi positif papan roti dan pin ground ke sisi negatif papan roti. Dan jangan lupa untuk menyambungkan modul bekalan kuasa ke papan roti memastikan sisi positif dan negatifnya sejajar dengan sisi yang sesuai di papan roti. Sekiranya anda terlupa, anda akan mengembalikan kuasa ke projek anda, dan anda tidak mahu melakukannya.
Untuk kodnya, saya menulis empat kaedah, satu untuk menulis titik, satu untuk menulis tanda hubung, dan dua untuk meninggalkan ruang antara setiap huruf dan setiap perkataan. Dengan cara itu, saya hanya dapat memanggil kaedah ini apabila saya memerlukannya dan bukannya menulisnya lagi untuk setiap huruf. Kemudian saya menulis untuk gelung untuk setiap huruf teks dan menulisnya, Di dalamnya, saya menulis pernyataan if untuk setiap huruf tetapi anda boleh menulisnya dalam pernyataan beralih jika anda mahu. Sudah tentu anda boleh menambah kod untuk membolehkan program membaca nombor. Apabila semua pendawaian sudah siap, salin dan tampal kod ke IDE anda. Jangan lupa untuk memasang perpustakaan stepper, servo, dan string. Selepas itu, anda boleh pergi.
Bagaimana ia berfungsi
Semasa Arduino memulakan program melihat huruf pertama teks., Dan bergantung pada yang mana satu, ia memanggil fungsi yang menulisnya dalam kod Morse. Sebagai contoh, apabila fungsi titik dipanggil, motor servo diatur ke 160 yang menggerakkan pen ke bawah, kemudian diatur kembali ke 90 yang membolehkan mata air kembali bergerak menggerakkan pen dengan mereka. Dan jika fungsi dash dipanggil, servo menggerakkan pen ke bawah, maka motor stepper memutar roda yang menarik kertas menjadikan pen menulis tanda sempang. Dan jika salah satu fungsi ruang disebut motor stepper berputar tetapi dengan pena ke atas sehingga menarik kertas membuat ruang antara huruf atau kata-kata. Setelah selesai, ia pergi ke huruf seterusnya dan mengulangi proses yang sama. Saya harap awak sukakannya;)
Kodnya
#sertakan
#include #include #include const int stepsPerRevolution = 150; // Ini adalah pemboleh ubah untuk ayat String motor stepper = "* hello"; // Tukar pemboleh ubah ini untuk menulis perkataan yang berbeza tetapi hanya menulis dengan huruf kecil dan mulakan perkataan anda dengan "*" Stepper myStepper (stepPerRevolution, 8, 10, 9, 11); Servo myServo; // Ini adalah kaedah yang membuat robot menulis dot void dot () {Serial.println ("dot start"); myServo.write (160); kelewatan (1000); myServo.write (90); kelewatan (1000); myStepper.step (stepPerRevolution); kelewatan (1000); Serial.println ("dot selesai"); } // Ini adalah kaedah yang membuat robot menulis dash void dash () {Serial.println ("dash start"); myServo.write (160); kelewatan (1000); myStepper.step (stepPerRevolution); kelewatan (1000); myServo.write (90); kelewatan (1000); myStepper.step (stepPerRevolution); kelewatan (1000); Serial.println ("sengkang selesai"); } // Ini adalah kaedah yang membuat robot meninggalkan ruang di antara setiap huruf kosong ruang () {Serial.println ("space start"); myServo.write (90); kelewatan (1000); myStepper.step (200); kelewatan (1000); Serial.println ("ruang selesai"); } // Ini adalah kaedah yang membuat robot meninggalkan ruang yang lebih besar di antara setiap perkataan batal bigSpace () {myServo.write (90); myStepper.step (250); kelewatan (1000); } batalkan persediaan () {// letakkan kod persediaan anda di sini, untuk dijalankan sekali: Serial.begin (9600); myStepper.setSpeed (100); myServo.attach (5); int pertama = ayat.indexOf ('*'); // ini untuk gelung melalui setiap huruf rentetan dan kemudian memanggil kaedah yang tepat untuk menuliskannya untuk (int i = 0; i <ayat.length (); i ++) {if (ayat.charAt (pertama + i) == 'a') {Serial.print (".-"); titik (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'b') {Serial.print ("-…"); tanda sempang (); titik (); titik (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'c') {Serial.print ("-.-."); tanda sempang (); titik (); tanda sempang (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'd') {Serial.print ("-.."); tanda sempang (); titik (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'e') {Serial.print ("."); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'f') {Serial.print ("..-."); titik (); titik (); tanda sempang (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'g') {Serial.print ("-."); tanda sempang (); tanda sempang (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'h') {Serial.print ("…."); titik (); titik (); titik (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'i') {Serial.print (".."); titik (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'j') {Serial.print (".---"); titik (); tanda sempang (); tanda sempang (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'k') {Serial.print ("-.-"); tanda sempang (); titik (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'l') {Serial.print (".-.."); titik (); tanda sempang (); titik (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'm') {Serial.print ("-"); tanda sempang (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'n') {Serial.print ("-."); tanda sempang (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'o') {Serial.print ("---"); tanda sempang (); tanda sempang (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'p') {Serial.print (".--."); titik (); tanda sempang (); tanda sempang (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'q') {Serial.print ("--.-"); tanda sempang (); tanda sempang (); titik (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'r') {Serial.print (".-."); titik (); tanda sempang (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 's') {Serial.print ("…"); titik (); titik (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == 't') {Serial.print ("-"); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'u') {Serial.print ("..-"); titik (); titik (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'v') {Serial.print ("… -"); titik (); titik (); titik (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'w') {Serial.print (".--"); titik (); tanda sempang (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'x') {Serial.print ("-..-"); tanda sempang (); titik (); titik (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'y') {Serial.print ("-.--"); tanda sempang (); titik (); tanda sempang (); tanda sempang (); ruang (); } lain jika (ayat.charAt (pertama + i) == 'z') {Serial.print ("-.."); tanda sempang (); tanda sempang (); titik (); titik (); ruang (); } lain jika (ayat.charAt (pertama + i) == '') {Serial.print ("/"); bigSpace (); }}} gelung kosong () {// Jangan tulis apa-apa di sini}
Langkah 7: Penyelesaian masalah
Roda tidak bergerak
Mungkin terdapat terlalu banyak geseran antara roda dan kertas, cuba angkat roda sedikit atau ubah.
Roda menarik kertas tetapi kemudian ia terus berputar tanpa menarik kertas
Pastikan anda menempelkan roda di tengah motor stepper
Titik dan tanda hubung dihubungkan
Periksa sama ada fungsi titik, tanda hubung dan ruang ditulis dengan betul, fungsi seperti ini:
// Ini adalah kaedah yang membuat robot menulis titik dotvoid () {Serial.println ("dot start"); myServo.write (160); kelewatan (1000); myServo.write (90); kelewatan (1000); myStepper.step (stepPerRevolution); kelewatan (1000); Serial.println ("dot selesai"); }
// Ini adalah kaedah yang membuat robot menulis sedikit
tanda kosong () {Serial.println ("dash start"); myServo.write (160); kelewatan (1000); myStepper.step (stepPerRevolution); kelewatan (1000); myServo.write (90); kelewatan (1000); myStepper.step (stepPerRevolution); kelewatan (1000); Serial.println ("sengkang selesai"); }
// Ini adalah kaedah yang membuat robot meninggalkan ruang antara setiap huruf
ruang kosong () {Serial.println ("ruang permulaan"); myServo.write (90); kelewatan (1000); myStepper.step (200); kelewatan (1000); Serial.println ("ruang selesai"); }
Disyorkan:
Kod Kod USB Arduino Morse: 6 Langkah
Kunci Kod USB Arduino Morse: Pernah mahu menaip komputer dengan kunci kod morse atau belajar / mengajar kod morse? Anda berada di halaman yang betul! Untuk projek saya yang lain, lihat laman web saya calvin.sh
Satu Penulis Utama: 4 Langkah
One Key Writer: Adakah anda ingat Stephen Hawking? Dia adalah profesor Cambridge dan ahli matematik terkenal di kerusi roda dengan suara yang dihasilkan komputer. Dia menderita Penyakit Neurone Motor dan menjelang akhir hayatnya, setelah dia kehilangan ucapan, dia dapat
Pembaca / penulis NFC ScanUp dan Perakam Audio untuk Orang Buta, Gangguan Penglihatan dan Semua Orang Lain: 4 Langkah (dengan Gambar)
Pembaca / penulis ScanUp NFC dan Perakam Audio untuk Orang Buta, Gangguan Penglihatan dan Semua Orang Lain: Saya belajar reka bentuk perindustrian dan projeknya adalah hasil kerja semester saya. Tujuannya adalah untuk menyokong orang yang cacat penglihatan dan buta dengan peranti, yang memungkinkan untuk merakam audio dalam format.WAV pada kad SD dan memanggil maklumat tersebut dengan tag NFC. Jadi dalam
Mesin Penulis Format Huruf: 5 Langkah
Mesin Penulis Format Huruf: Mesin Penulis Format Huruf ini dapat membantu semua orang, terutama pelajar, menyelesaikan masalah mereka mengenai ketidakfahaman format e-mel. Dengan mesin ini, pengguna dapat " menaip " keluar dari format e-mel, yang harus mereka lakukan hanyalah mengisi
Penulis Braille Mudah (Ucapan ke Braille): 8 Langkah (dengan Gambar)
Penulis Braille Sederhana (Ucapan kepada Braille): Halo semua, Semua ini bermula dengan melakukan plotter XY yang sederhana setelah berjaya menyelesaikannya, saya terfikir untuk mengembangkan ucapan ringkas kepada penukar teks braille. Saya mula mencarinya dalam talian dan tanpa disangka harganya terlalu tinggi , yang mendorong saya