Daftar Isi:
- Langkah 1: Bahan yang Digunakan
- Langkah 2: Pengaturan dan Penggunaan
- Langkah 3: Kode
- Langkah 4: Outlook dan Komentar
Video: Semaphore Pola Tipe Braille yang Dikendalikan Suara: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
"Lord Vetinari berdiri di jendelanya mengamati menara semaphore di seberang sungai. Kedelapan daun jendela besar yang menghadapnya berkedip-kedip dengan ganas - hitam, putih, hitam, putih, hitam, putih… Informasi beterbangan ke udara. Dua puluh mil di belakangnya, di menara lain di Sto Lat, seseorang melihat melalui teleskop dan meneriakkan angka-angka. Seberapa cepat masa depan menghampiri kita, pikirnya." T. Pratchett, Gajah Kelima
Setelah membangun jumping jack yang dikontrol suara berdasarkan kit suara AIY, saya memiliki ide untuk membangun semaphore yang dikontrol suara, menyatukan teknologi TI terbaru dengan awal telekomunikasi dan transfer data.
Pada awalnya saya memiliki ide untuk mereplikasi sistem semaphore Prancis oleh Chappe, yang merupakan sistem pertama yang dikenal untuk telekomunikasi nasional yang menggunakan sistem semaphore. Tapi ternyata agak terlalu rumit untuk direalisasikan menggunakan servo standar dalam sehari. Target saya berikutnya adalah sesuatu yang mirip dengan sistem clacks yang dijelaskan oleh Terry Pratchett, mis. dalam "Going Postal", sebagai sistem semafor rana 2x4 (bukan sebagai matriks 4x4 yang digambarkan dalam film). Sayangnya saya tidak dapat menemukan terlalu banyak detail teknis yang tersedia pada sistem ini. Jadi saya berakhir dengan sistem semaphore matriks 2x3 yang dikembangkan oleh Lord Murray, yang telah digunakan oleh Angkatan Laut Inggris untuk sementara waktu. Selain itu, sistem enam rana/bit sangat cocok dengan enam konektor servo yang tersedia di AIY voice HAT. Namun, karena saya tidak memiliki enam servos selama bertahun-tahun, saya akhirnya memutuskan untuk membuat simulator yang terbuat dari LED terlebih dahulu.
Mengenai kode yang ditampilkan, seseorang dapat menggunakan sistem Murray, tetapi sekali lagi informasi yang saya miliki tentangnya agak terbatas, tidak memungkinkan untuk menampilkan angka dan simbol apa pun. Jadi saya sampai pada titik untuk menggunakan sistem Braille sebagai gantinya, yang juga menggunakan matriks 2x3 untuk menampilkan huruf, angka, dan tanda lainnya. Sistem Braille adalah standar internasional untuk mencetak teks yang dapat dibaca oleh tunanetra. Ini juga merupakan bahasa markup, yang menggunakan indikator angka untuk menentukan angka yang akan ditampilkan berikutnya, dan indikator untuk menentukan satu, atau banyak, huruf berikut ditulis sebagai huruf kapital. Oleh karena itu saya memutuskan untuk membuat sistem yang sedikit disederhanakan, dengan angka dan beberapa tanda yang ditentukan oleh ekstensi Nemeth dari sistem Braille, dan hanya menggunakan huruf besar, setidaknya untuk permulaan. Hal ini memungkinkan untuk memiliki pola unik untuk setiap huruf, angka atau tanda untuk ditampilkan dalam aplikasi khusus saya, dan untuk menghilangkan analisis teks yang diperlukan untuk Braille asli.
Perangkat terakhir memungkinkan untuk mengucapkan kata atau kalimat ke dalam sistem pengenalan suara AIY, kemudian data pola suara dikirim melalui WLAN dan internet ke beberapa server Google di AS, diterjemahkan di sana, dan, setidaknya dalam kasus saya, ditafsirkan data dikirim kembali ke Eropa, di mana akhirnya saya mendapatkan kalimat yang dikenali ditampilkan sebagai string teks. String teks ini kemudian dipecah oleh skrip Python menjadi huruf-huruf individual, dan sekarang, dibandingkan dengan kamus yang mendefinisikan pola yang sesuai, informasi pola diambil dan pola ditampilkan pada matriks LED 2x3. Silakan lihat di video terlampir.
Saya telah mengatur kecepatan tampilan ke satu karakter per detik, yang seharusnya cukup lama bagi orang yang terlatih untuk mengidentifikasi dan menerjemahkan polanya. Langkah selanjutnya yang mungkin adalah menggunakan perangkat pengenalan pola seperti AIY vision HAT (sejauh ini tidak tersedia di Eropa) untuk membaca dan menafsirkan pola secara otomatis, sehingga menutup lingkaran.
Konsep lebih lanjut untuk perbaikan, beberapa dengan lebih relevansi dunia nyata, dibahas di bagian 'pandangan' dari instruksi ini.
Langkah 1: Bahan yang Digunakan
Raspberry Pi 3
Suara AIY HAT
Delapan LED putih, diameter 5 mm. Ini berjalan pada 3V, sehingga diperlukan resistor.
Resistor 100kOhm. Mungkin bukan solusi sempurna, tapi sudah dekat.
Kabel jumper
Sepotong kawat pendek
Papan tempat memotong roti, opsional untuk menguji pengaturan.
Kotak plastik untuk kartu nama.
Dua buah busa plastik 4 mm, beberapa sisa sampah.
Beberapa bagian dari membran plastik, sebagai diffuser, seperti di atas.
Besi solder dan solder, pisau.
Langkah 2: Pengaturan dan Penggunaan
Atur Raspberry Pi dan AIY HAT seperti yang ditunjukkan dalam manual AIY voice HAT. Saya akan merekomendasikan untuk menyolder header setidaknya ke port servo sebelum Anda merakit Pi dan HAT, karena ini memungkinkan Anda dengan mudah menghubungkan servos, papan tempat memotong roti atau LED.
Kotak pajangan telah dibuat dari tutup kotak plastik untuk kartu nama, dua potong busa yang dipasang ke dalam kotak dan sepotong membran kemasan berukuran serupa sebagai diffuser. Di salah satu bagian busa, enam lubang didorong dan LED ditempatkan di dalamnya. Kaki yang lebih pendek (sisi ground) dari LED dihubungkan satu sama lain dengan sepotong kabel, kemudian resistor ditambahkan dan kabel jumper disolder ke yang terakhir. Ke kaki lain (sisi plus) kabel jumper LED disolder.
Ini kemudian dihubungkan ke port servo pada HAT suara AIY melalui kabel elongasi, sisi positif ke pin (luar) "P in", konektor negatif ke salah satu pin ground/minus (dalam). Silakan lihat skema terlampir.
Saya akan sangat menyarankan untuk menguji pengaturan pada papan tempat memotong roti sebelum menyolder.
Sekarang membran, pelat LED dan lapisan penyegelan ditempatkan di dalam kotak plastik.
Tempatkan skrip Braille_LED_1.py di folder src. Dalam hal ini, Anda mungkin harus membuat skrip dapat dieksekusi terlebih dahulu.
Sekarang menggunakan terminal Dev (!) program Braille_LED_1.py dimulai. Masukkan 'src/Braille_LED_1.py' dan tekan 'Enter'.
Anda sekarang akan diminta untuk menekan tombol kotak AIY dan mengucapkan kata atau kalimat Anda. Dengan beberapa penundaan, sistem akan mengulangi apa yang telah dipahami, dan menampilkannya di layar serta, huruf demi huruf, pada enam tampilan LED.
Jika Anda memberikan kata kunci "Selamat tinggal" alih-alih kalimat, sistem akan memberi tahu Anda Selamat tinggal, dan program akan ditutup.
Langkah 3: Kode
Di bawah ini Anda menemukan kode yang memungkinkan Anda berbicara dengan perangkat suara AIY dan menampilkan kalimat yang dikenali huruf demi huruf pada 'semaphore' 2x3-LED kecil atau matriks tipe Braille.
Kode ini merupakan turunan dari skrip yang saya gunakan untuk proyek sebelumnya menggunakan HAT suara AIY, menjadi turunan dari contoh servo_demo.py yang dijelaskan dalam manual HAT suara AIY.
Anda juga dapat menemukan kamus dengan bagian dari kode Murray yang saya temukan di internet, sebagai file teks. Itu tidak mengandung angka dan menghilangkan beberapa huruf, yang akan memberikan masalah di sini.
Salah satu batasan program dalam keadaan saat ini adalah bahwa jika tanda tidak termasuk dalam kamus, itu akan membuat program macet. Selain itu bukan merupakan representasi dari Kode Braille lengkap sebagai bahasa Markup. Seperti yang Anda lihat dalam skrip di bawah, kode Nemeth untuk angka berlebihan dengan beberapa tanda dalam Braille standar, tetapi itu tidak akan menjadi masalah untuk aplikasi khusus kami.
#!/usr/bin/env python3
# Skrip ini merupakan adaptasi dari skrip servo_demo.py untuk HAT suara AIY, # dioptimalkan untuk tampilan simbol tipe Baille berbasis AIY impor aiy.audio impor aiy.cloudspeech impor aiy.voicehat dari gpiozero impor LED #dari gpiozero Impor Tombol dari time import sleep # Dictionary: alfabet Braille yang dimodifikasi secara artifisial, # angka dan beberapa simbol yang diambil dari ekstensi Nemeth dari Braille Braille_6A = { " ": "123456", # spasi "A": "1", "B": "12 ", "C": "14", "D": "145", "E": "15", "F": "124", "G": "1245", "H": "125", "I": "24", "J": "245", "K": "13", "L": "123", "M": "134", "N": "1345", "O ": "135", "P": "1234", "Q": "12345", "R": "1235", "S": "234", "T": "2345", "U": "136", "V": "1236", "X": "1346", "Y": "13456", "Z": "1356", "W": "2456", "#": "3456 ", # Awalan Angka, yaitu tanda selanjutnya adalah angka ", ": "2", ".": "256", # Tanda titik, akhir kalimat (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Cap": "6", # Huruf berikutnya dalam Kapital; Nomor-Berhenti? "": "", # Kode Braille Nemeth adalah ekspansi matematis untuk Braille 6 Titik # lihat: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Kode Nemeth '1', Braille 'koma' "2": "23", "3": "25", "4": "256", "5": "26", "6": "235", # Nemeth '6', Braille '!' "7": "2356", "8": "236", # Nemeth '8', Braille '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ": "23456", "*": "1346" # '*' adalah simbol dua pola di Nemeth, di sini diganti dengan 'x' untuk menghilangkan crash } """ untuk alasan kesederhanaan, pola angka Braille standar diberikan di bawah ini digantikan oleh Kode Nemeth yang sesuai "1": "1", "2": "12", "3": "14", "4": "145", "5": "15", " 6": "124", "8": "1245", "9": "24", "0": "245", """ #Teks = "rbhTZkl 9t64+34#!" # Sampletext, untuk keperluan debugging def main(): recognitionr = aiy.cloudspeech.get_recognizer() recognitionr.expect_phrase('goodbye') # kata kunci, mengakhiri program button = aiy.voicehat.get_button() # AIY Button status led = aiy.voicehat.get_led() # Status AIY Tombol-LED aiy.audio.get_recorder().start() led_1 = LED(26) # 1 konektor, servo0, GPIO 26 # kiri atas led_2 = LED (6) # konektor 2, servo1, GPIO 06 # led kiri tengah_3 = LED(13) # konektor 3, servo2, GPIO 13 # led kiri bawah_4 = LED(5) # konektor ke-4, servo3, GPIO 05 # led kanan atas_5 = LED(12) konektor # 5, servo4, GPIO 12 # kanan tengah led_6 = LED(24) # konektor 4, servo3, GPIO 13 # kanan bawah #jarak= Tombol (5) # sensor jarak terhubung ke servo3/GPIO 05, tidak digunakan di sini aiy.audio.say ("Halo!",) aiy.audio.say("Untuk memulai, tekan tombol",) aiy.audio.say("Jika Anda memberi tahu saya Selamat tinggal, saya akan mengakhiri program",) while True: # dimulai loop led.set_state(aiy.voicehat. LED. BLINK) print("Untuk mengaktifkan pengenalan suara n, tekan tombol biru, lalu bicara") print() button.wait_for_press() print('Listening…') aiy.audio.say("Saya mendengarkan",) led.set_state(aiy.voicehat. LED. BLINK_3) text = recognitionr.recognize() # string teks dari kalimat yang dikenali led.set_state(aiy.voicehat. LED. OFF) jika teksnya Tidak Ada: aiy.audio.say('Maaf, saya tidak mendengar Anda.',) elif 'selamat tinggal' dalam teks: aiy.audio.say("Selamat tinggal",) aiy.audio.say('Arrivederci',) aiy.audio.say('Auf Wiedersehen',) sleep (3) print('bye! ') break # menghentikan loop dan mengakhiri program lain: print('Anda mengatakan "', teks, '"') # Memungkinkan Anda memeriksa interpretasi sistem, termasuk kapitalisasi aiy.audio.say('Saya kira Anda mengatakan',) aiy.audio.say(text,) # verifikasi acustic Text_up = text.upper() # mentransfer semua ke cetak huruf besar (Text_up) Text_Len = len(Text_up) print (Text_Len) untuk i dalam jangkauan (Text_Len): Lett = Text_up # Memilih satu huruf, dimulai dengan yang pertama, yaitu [0] print ("Letter=", Lett) Lett_B = Braille_6A[Lett] # Memilih kode yang sesuai dari kamus. Tanda yang hilang akan merusak kode! print (Lett_B) if ("1" pada Lett_B): print ("LED 1") led_1.on() # mengaktifkan LED pada servo0" if "2" pada Lett_B: print ("LED 2") led_2.on() jika "3" di Lett_B: print ("LED 3") led_3.on() jika "4" di Lett_B: print ("LED 4") led_4.on() jika "5" di Lett_B: print ("LED 5 ") led_5.on() if "6" di Lett_B: print ("LED 6") led_6.on() sleep (1) # pola tampilan untuk cetakan kedua() led_1.off() # nonaktifkan semua LED pada servos0 -5n led_2.off() led_3.off() led_4.off() led_5.off() led_6.off() sleep(0.3) # istirahat gelap singkat, untuk menunjukkan akhir huruf jika _name_ == '_main_ ': utama()
Langkah 4: Outlook dan Komentar
Jadi apa yang bisa terjadi selanjutnya?
Selain meta-lelucon TI dengan kit video AIY atau sistem pengenalan gambar otomatis lainnya yang disebutkan dalam pendahuluan, mungkin ada opsi lain untuk memperluas konsep yang dijelaskan dalam instruksi ini. Beberapa dari mereka bahkan mungkin berguna di dunia nyata. Ini bisa berupa:
- pemrograman yang ditingkatkan, sehingga teks ditransfer ke kode Braille standar, dengan semua markup dan kompresi. Itu seharusnya tidak terlalu banyak upaya untuk programmer python yang terampil. Yang bukan saya, jadi bantuan apa pun akan diterima.
- Perluas sistem menjadi matriks 2x4. Seharusnya mungkin juga, dan akan membantu menggunakan kode Braille 8 titik yang sesuai, seperti yang digunakan oleh tampilan Braille elektronik. Di atas ini, itu akan sedikit lebih dekat ke sistem klak Dearheart.
- buat tampilan Braille 2x3 atau 2x4 nyata. Seharusnya dimungkinkan menggunakan array servos atau array solenoida mini 5V. Tantangan utamanya adalah bahwa jarak standar antara titik taktil adalah 2,45 mm, atau 1/10 inci, pada layar elektronik, sehingga beberapa roda gigi dan mekanik mungkin diperlukan. Tantangan lainnya adalah mengatur panjang dorong dengan tepat.
Solusi sederhana dan murah seperti itu mungkin menarik bagi masyarakat luas, karena tampilan Braille komersial cukup mahal. Mungkin ada manfaat bagi pelajar Braille menggunakan sistem yang dikendalikan suara seperti itu. Karena mereka mungkin secara lisan memasukkan kalimat (bahasa Inggris) pilihan mereka, dan mendapatkan teks, huruf dan tanda, ditampilkan di ujung jari mereka.
- buat sistem rana mekanis yang menyerupai sistem Murray atau Dearheart. Menggunakan servos, yang seharusnya tidak terlalu rumit dan mungkin dijelaskan dalam instruksi lain. Atau bisa jadi proyek sekolah yang bagus. Ada yang tertarik?
–――――
Beberapa komentar dan link yang menarik:
- Ada instruksi yang menjelaskan "lentera semaphore DIY", matriks LED 2x4, berdasarkan beberapa papan demo Propeller. Saya suka tata letaknya, tetapi pemrogramannya terlihat agak rumit bagi saya. Silahkan lihat sendiri.
- Saya sekarang menemukan program python untuk menghasilkan Braille Kontrak Penuh (Kelas 2). Sayangnya ini terbatas pada python 2 dan versi bahasa Inggris Amerika 2002:
- program yang lebih lengkap tampaknya liblouis, https://github.com/liblouis/liblouis, tapi saya tidak tahu bagaimana mengintegrasikan ini ke dalam solusi ini.
- solusi python yang menarik tampaknya berasal dari Yunani, https://github.com/ant0nisk/pybrl dapat mengintegrasikan beberapa bahasa dan menghasilkan kelas 2 Braille.
- Saya bukan seorang programmer, atau seorang ahli elektronik, saya juga tidak memiliki banyak pengetahuan tentang Braille beberapa hari yang lalu.
Jadi jika Anda melihat kesalahan, kelalaian, atau Anda memiliki beberapa ide untuk proyek ini, beri tahu saya.
- Jika Anda menyukai instruksi ini, silakan pilih!
Direkomendasikan:
Tangan Robot yang Dikendalikan Suara: 8 Langkah (dengan Gambar)
Tangan Robot yang Dikendalikan Suara: a.articles {ukuran font: 110,0%; font-berat: tebal; gaya font: miring; dekorasi teks: tidak ada; background-color: red;} a.articles:hover {background-color: black;} Instruksi ini menjelaskan cara membuat tangan robot yang dikendalikan suara menggunakan
Pola LED (Pola Cahaya Berbeda): 3 Langkah
Pola LED (Pola Cahaya Berbeda): Ide: Proyek saya adalah pola warna LED. Proyek ini berisi 6 LED yang semuanya ditenagai dan berkomunikasi dengan Arduino. Ada 4 pola berbeda yang akan berputar dan akan dimainkan dalam satu lingkaran. Ketika satu pola berakhir, pola lainnya
Cahaya Suasana Hati Android yang Dikendalikan Suara: 11 Langkah (dengan Gambar)
Cahaya Suasana Hati Android Terkendali Suara: Saya perlu membuat kelas untuk Grup Pembuat lokal kami. Sesuatu yang menjamin bahkan pengunjung pertama kali mendapatkan kemenangan yang pasti dan hadiah besar tanpa kerumitan, tanpa keributan, dan tanpa alat atau bahan khusus. Para siswa perlu membawa pulang sesuatu yang
Tricopter Cetak 3D yang Dikendalikan Suara: 23 Langkah (dengan Gambar)
Tricopter Cetak 3D yang Dikendalikan Suara: Ini adalah drone Tricopter yang dicetak sepenuhnya 3D yang dapat diterbangkan dan dikendalikan dengan kontrol suara menggunakan Alexa Amazon melalui stasiun bumi yang dikendalikan oleh Raspberry Pi. Tricopter yang Dikendalikan Suara ini juga dikenal sebagai Oliver the Tri.A Tricopter
Led RGB yang Dikendalikan Suara: 5 Langkah (dengan Gambar)
Led RGB Terkendali Suara: Halo Guys1Hari ini saya akan menunjukkan kepada Anda cara membuat led RGB yang dikontrol suara menggunakan arduino/Ebot8