İçindekiler:

Ses Kontrollü, Braille Tipi Bir Model Semaforu: 4 Adım (Resimlerle)
Ses Kontrollü, Braille Tipi Bir Model Semaforu: 4 Adım (Resimlerle)

Video: Ses Kontrollü, Braille Tipi Bir Model Semaforu: 4 Adım (Resimlerle)

Video: Ses Kontrollü, Braille Tipi Bir Model Semaforu: 4 Adım (Resimlerle)
Video: ,BRAİLLE, KLAVYE EĞİTİMİMİZE ,4 OCAKTA, BAŞLIYORUZ! 2024, Kasım
Anonim
Ses Kontrollü, Braille Tipi Bir Model Semaforu
Ses Kontrollü, Braille Tipi Bir Model Semaforu
Ses Kontrollü, Braille Tipi Bir Model Semaforu
Ses Kontrollü, Braille Tipi Bir Model Semaforu
Ses Kontrollü, Braille Tipi Bir Model Semaforu
Ses Kontrollü, Braille Tipi Bir Model Semaforu
Ses Kontrollü, Braille Tipi Bir Model Semaforu
Ses Kontrollü, Braille Tipi Bir Model Semaforu

Lord Vetinari penceresinde durmuş nehrin diğer tarafındaki semafor kulesini seyrediyordu. Karşısındaki sekiz büyük kepenk de öfkeyle yanıp sönüyordu - siyah, beyaz, siyah, beyaz, siyah, beyaz… Bilgiler havada uçuşuyordu. Yirmi mil arkasında, Sto Lat'taki başka bir kulede, biri teleskopla bakıyor ve sayıları haykırıyordu. Gelecek ne kadar çabuk geliyor, diye düşündü. T. Pratchett, Beşinci Fil

AIY ses kitini temel alan ses kontrollü bir atlama jakı oluşturduktan sonra, en son BT teknolojisini telekomünikasyon ve veri aktarımının başlangıcıyla bir araya getiren ses kontrollü bir semafor oluşturma fikrine sahip oldum.

İlk başta, bir semafor sistemi kullanan ülke çapında telekomünikasyon için bilinen ilk sistem olan Chappe tarafından Fransız semafor sistemini kopyalama fikri vardı. Ancak bir gün içinde standart servolar kullanılarak gerçekleştirilemeyecek kadar karmaşık olduğu ortaya çıktı. Bir sonraki hedefim, Terry Pratchett tarafından tanımlanan clacks sistemine benzer bir şeydi, ör. "Going Postal"da, 2x4 deklanşör semafor sistemi olarak (filmde gösterilen 4x4 matris gibi değil). Maalesef bu sistemde çok fazla teknik detay bulamadım. Böylece Lord Murray tarafından geliştirilen ve bir süredir İngiliz Donanması tarafından kullanılan 2x3 matris semafor sistemi elde ettim. Ayrıca, altı deklanşör/bit sistemi, AIY sesli HAT'ta bulunan altı servo konektöre iyi uyum sağlar. Ancak yıllar arasında elimde altı servo olmadığı için sonunda önce LED'lerden oluşan bir simülatör yapmaya karar verdim.

Görüntülenen kodla ilgili olarak, Murray sistemi kullanılabilir, ancak yine de üzerinde sahip olduğum bilgiler oldukça sınırlıydı ve herhangi bir sayı ve simgenin görüntülenmesine izin vermiyordu. Bunun yerine, harfleri, sayıları ve diğer işaretleri görüntülemek için 2x3 matris kullanan Braille sistemini kullanma noktasına geldim. Braille sistemi, körlerin okuyabileceği metinleri yazdırmak için uluslararası standarttır. Aynı zamanda, sayıların daha sonra görüntüleneceğini tanımlamak için bir sayı göstergesi kullanan ve aşağıdaki harflerden birinin veya daha fazlasının büyük harflerle yazıldığını tanımlayan göstergeler kullanan bir biçimlendirme dilidir. Bu nedenle, Braille sisteminin Nemeth uzantısı tarafından tanımlanan sayılar ve bazı işaretlerle biraz basitleştirilmiş bir sistem kurmaya ve en azından başlangıç için sadece büyük harfleri kullanmaya karar verdim. Bu, özel uygulamamda görüntülenecek her harf, sayı veya işaret için benzersiz desenlere sahip olmamı ve gerçek Braille için gereken metin analizini çıkarmama izin veriyor.

Son cihaz, AIY ses tanıma sistemine bir kelime veya cümle söylemeye izin verir, ardından ses modeli verileri WLAN ve internet aracılığıyla ABD'deki bazı Google sunucularına gönderilir, orada kodu çözülür ve en azından benim durumumda yorumlanır. veriler Avrupa'ya geri gönderilir ve sonunda tanınan cümleyi bir metin dizisi olarak gösteririm. Bu metin dizisi daha sonra Python betiği tarafından ayrı harflere bölünür ve şimdi, karşılık gelen kalıpları tanımlayan bir sözlükle karşılaştırılarak, kalıp bilgileri alınır ve modeller 2x3 LED matrisinde görüntülenir. Lütfen ekteki videoya bir göz atın.

Görüntüleme hızını saniyede bir karaktere ayarladım, bu da eğitimli bir kişinin kalıbı tanımlaması ve çevirmesi için yeterince uzun olmalıdır. Bir sonraki olası adım, daireyi kapatmak için kalıpları otomatik olarak okumak ve yorumlamak için AIY Vision HAT (şu ana kadar Avrupa'da mevcut değildir) gibi bir kalıp tanıma cihazı kullanmak olacaktır.

Bazıları daha gerçek dünyayla ilgili olan iyileştirmeler için daha fazla konsept, bu talimatın 'görünüm' bölümünde tartışılmaktadır.

Adım 1: Kullanılan Malzemeler

Kullanılan malzemeler
Kullanılan malzemeler
Kullanılan malzemeler
Kullanılan malzemeler

Ahududu Pi 3

AIY ses ŞAPKA

Sekiz beyaz LED, 5 mm çap. Bunlar 3V ile çalışır, bu nedenle bir direnç gereklidir.

100kOhm Direnç. Belki mükemmel bir çözüm değildi, ama el altındaydı.

Atlama kabloları

Kısa bir tel parçası

Breadboard, kurulumu test etmek için isteğe bağlı.

Kartvizitler için plastik bir kutu.

İki parça 4 mm plastik köpük, bazıları çöp.

Yukarıdaki gibi difüzör olarak bir miktar plastik membran parçası.

Havya ve lehim, bir bıçak.

2. Adım: Kurulum ve Kullanım

Kurulum ve Kullanım
Kurulum ve Kullanım
Kurulum ve Kullanım
Kurulum ve Kullanım
Kurulum ve Kullanım
Kurulum ve Kullanım

Ahududu Pi ve AIY HAT'ı AIY sesli HAT kılavuzunda belirtildiği gibi ayarlayın. Pi ve HAT'ı monte etmeden önce başlıkları en azından servo portlarına lehimlemenizi tavsiye ederim, çünkü bu servoları, bir breadboard'u veya LED'leri kolayca bağlamanıza izin verir.

Teşhir kutusu, kartvizitler için plastik bir kutunun kapağından, kutuya oturan iki parça köpükten ve difüzör olarak benzer boyutta bir ambalaj membranından yapılmıştır. Köpük parçalardan birine altı delik itilmiş ve içlerine LED'ler yerleştirilmiştir. LED'lerin daha kısa olan ayakları (toprak tarafı) bir kablo ile birbirine bağlandı, ardından bir direnç eklendi ve ikincisine bir jumper kablosu lehimlendi. LED'lerin diğer ayaklarına (artı tarafa) jumper kabloları lehimlenmiştir.

Bunlar daha sonra AIY ses HAT üzerindeki servo portlarına uzatma kabloları, pozitif taraf (dış) "P giriş" pinlerine, negatif konektör (iç) toprak/eksi pinlerden birine bağlandı. Lütfen ekteki şemaya bir göz atın.

Lehimlemeden önce kurulumu bir breadboard üzerinde test etmenizi şiddetle tavsiye ederim.

Şimdi membran, LED plaka ve sızdırmazlık katmanı plastik kutuya yerleştirildi.

Braille_LED_1.py komut dosyasını src klasörüne yerleştirin. Bu durumda, önce betiği çalıştırılabilir hale getirmeniz gerekebilir.

Şimdi Dev terminali (!) kullanılarak Braille_LED_1.py programı başlatılır. 'src/Braille_LED_1.py' girin ve 'Enter' tuşuna basın.

Şimdi AIY kutusunun düğmesine basmanız ve kelimenizi veya cümlenizi söylemeniz istenecek. Biraz gecikmeyle, sistem anlaşılan şeyi tekrar edecek ve altı LED ekranda olduğu gibi ekranda da harf harf gösterecektir.

Cümle yerine "Hoşçakal" anahtar kelimesini verirseniz, sistem size Hoşçakal der ve program kapanır.

Adım 3: Kod

kod
kod

Aşağıda, AIY ses cihazıyla konuşmanıza ve tanınan cümlenin küçük bir 2x3-LED 'semafor' veya Braille tipi matris üzerinde harf harf gösterilmesini sağlayan kodu bulabilirsiniz.

Kod, AIY sesli HAT kılavuzunda açıklanan servo_demo.py örneğinin bir türevi olan AIY sesli HAT kullanan önceki bir proje için kullandığım komut dosyasının bir türevidir.

İnternette bulduğum Murray kodunun bir kısmını metin dosyası olarak da bulabilirsiniz. Ne sayı içermekte ne de bazı harfleri atlamaktadır, bu da burada sorun yaratacaktır.

Programın mevcut durumundaki sınırlamalardan biri, sözlükte yer almayan bir işaretin programı çökertmesidir. Ayrıca, Braille Kodunun tamamının bir İşaretleme dili olarak temsili değildir. Aşağıdaki komut dosyasında görebileceğiniz gibi, sayılar için Nemeth kodu standart Braille'de bazı işaretlerle gereksizdir, ancak bu bizim özel uygulamamız için bir sorun oluşturmamalıdır.

#!/usr/bin/env python3

# Bu komut dosyası, AIY ses HAT için servo_demo.py komut dosyasının bir uyarlamasıdır, # AIY tabanlı Baille tipi sembol görüntüleme için optimize edilmiştir içe aktarma aiy.audio içe aktarma aiy.cloudspeech içe aktarma aiy.voicehat gpiozero'dan içe aktarma LED'inden #gpiozero içe aktarma Düğmesinden time import sleep # Sözlük: yapay olarak değiştirilmiş bir Braille alfabesi, # sayılar ve Braille'in Nemeth uzantısından alınan bazı semboller Braille_6A = { " ": "123456", # boşluk "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 ", # Sayı Öneki, yani sonraki işaretler sayılardır ", ": "2", ".": "256", # Nokta, cümle sonu (TR) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Büyük": "6", # Sonraki harf Büyük; Numara Durdurma? "": "", # Nemeth Braille kodu 6 Noktalı Braille için matematiksel bir açılımdır # bkz: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code '1', Braille 'virgül' "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" # '*' Nemeth'te iki kalıplı bir semboldür, burada çökmeleri önlemek için bir 'x' ile değiştirilir } """ Basitlik nedeniyle, standart Braille sayı kalıpları verilmiştir aşağıdaki karşılık gelen Nemeth-Kodları "1": "1", "2": "12", "3": "14", "4": "145", "5": "15", " 6": "124", "8": "1245", "9": "24", "0": "245", """ #Text = "rbhTZkl 9t64+34#!" # Örnek metin, hata ayıklama amacıyla def main(): tanıyıcı = aiy.cloudspeech.get_recognizer() tanıyıcı.expect_phrase('güle güle') # anahtar sözcüğü, programı sonlandırır button = aiy.voicehat.get_button() # AIY Düğme durum ışığı = aiy.voicehat.get_led() # AIY Düğme-LED durumu aiy.audio.get_recorder().start() led_1 = LED(26) # 1. konektör, servo0, GPIO 26 # sol üst led_2 = LED(6) # 2. konektör, servo1, GPIO 06 # orta sol led_3 = LED(13) # 3. konektör, servo2, GPIO 13 # sol alt led_4 = LED(5) # 4. konektör, servo3, GPIO 05 # sağ üst led_5 = LED(12) # 5. konektör, servo4, GPIO 12 # orta sağ led_6 = LED(24) # 4. konektör, servo3, GPIO 13 # sağ alt #mesafe= Düğme(5) # servo3/GPIO 05'e bağlı mesafe sensörü, burada kullanılmaz aiy.audio.say ("Merhaba!",) aiy.audio.say("Başlamak için lütfen düğmeye basın",) aiy.audio.say("Bana Hoşçakal derseniz programı bitiririm",) True: # başlar loop led.set_state(aiy.voicehat. LED. BLINK) print("Ses tanımayı etkinleştirmek için n, mavi düğmeye basın, ardından konuşun") print() button.wait_for_press() print('Dinliyor…') aiy.audio.say("Dinliyorum",) led.set_state(aiy.voicehat. LED. BLINK_3) metin = tanıyıcı.recognize() tanınan cümlenin # metin dizesi led.set_state(aiy.voicehat. LED. OFF) eğer metin Yok ise: aiy.audio.say('Üzgünüm, sizi duymadım.',) metinde elif 'elveda': aiy.audio.say("Hoşçakal",) aiy.audio.say('Arrivederci',) aiy.audio.say('Auf Wiedersehen',) uyku (3) print('güle güle! ') break # döngüyü durdurur ve else programını bitirir: print('", text, ""' demiştiniz) # Büyük harf kullanımı da dahil olmak üzere sistem yorumunu kontrol etmenizi sağlar aiy.audio.say('Sanırım dediniz,) aiy.audio.say(text,) # akustik doğrulama Text_up = text.upper() # hepsini büyük harfe aktarır print (Text_up) Text_Len = len(Text_up) print (Text_Len) for i aralığında (Text_Len): Lett = Text_up # İlkinden başlayarak tek bir harf seçer, yani [0] print ("Letter=", Lett) Lett_B = Braille_6A[Lett] # sözlük. Eksik bir işaret kodu kırar! print (Lett_B) if (Lett_B'de "1"): print ("LED 1") led_1.on() # LED'i servo0'da etkinleştirir, eğer Lett_B'de "2" ise: print ("LED 2") led_2.on() Lett_B'de "3" ise: Lett_B'de "4" ise led_3.on() yazdır ("LED 3"): yazdır ("LED 4") led_4.on() Lett_B'de "5" ise: yazdır ("LED 5" ") led_5.on() Lett_B'de "6" ise: print ("LED 6") led_6.on() uyku (1) # ikinci bir print() için ekran deseni print() led_1.off() # servos0 üzerindeki tüm LED'leri devre dışı bırakın -5n led_2.off() led_3.off() led_4.off() led_5.off() led_6.off() sleep(0.3) # eğer _name_ == '_main_ ise harfin sonunu belirtmek için kısa bir karanlık ara ': ana()

4. Adım: Görünüm ve Açıklamalar

Peki sırada ne olabilir?

AIY video kiti veya girişte bahsedilen başka bir otomatik görüntü tanıma sistemi ile BT meta şakasının yanı sıra, bu talimatta açıklanan konsepti genişletmek için başka seçenekler olabilir. Hatta bazıları gerçek dünya kullanımında bile olabilir. Bunlar şunlar olabilir:

- geliştirilmiş programlama, böylece metin, tüm işaretlemeler ve sıkıştırmalarla birlikte standart Braille koduna aktarılır. Bu, yetenekli bir python programcısı için çok fazla çaba göstermemelidir. Ki değilim, bu yüzden herhangi bir yardım memnuniyetle karşılanacaktır.

- sistemi 2x4 matrise genişletin. Aynı zamanda mümkün olmalıdır ve elektronik Braille ekranlarında kullanıldığı gibi karşılık gelen 8 noktalı Braille kodlarının kullanılmasına yardımcı olacaktır. Bunun üzerinde, Dearheart clacks sistemine biraz daha yakın olurdu.

- gerçek bir 2x3 veya 2x4 Braille ekranı oluşturun. Bir dizi servo veya bir dizi 5V mini solenoid kullanılarak mümkün olmalıdır. Birincil zorluk, elektronik ekranlarda dokunma noktaları arasındaki standart mesafenin 2,45 mm veya 1/10 inç olmasıdır, bu nedenle bazı dişliler ve mekanikler gerekebilir. Diğer zorluk, itme uzunluğunu tam olarak düzenlemek olabilir.

Ticari Braille ekranları oldukça pahalı olduğundan, bu kadar basit ve ucuz bir çözüm daha geniş bir halk için ilgi çekici olabilir. Böyle bir sesle kontrol edilen sistemi kullanan Braille öğrenenler için bir fayda olabilir. Seçtikleri bir (İngilizce) cümleyi sözlü olarak girebilecekleri ve parmak uçlarında görüntülenen metni, harfleri ve işaretleri alabilecekleri için.

- Murray veya Dearheart sistemlerine benzeyen mekanik bir kepenk sistemi inşa edin. Servoları kullanmak, çok karmaşık olmamalı ve başka bir talimatta açıklanabilir. Ya da güzel bir okul projesi olabilir. İlgilenen var mı?

–――――

Bazı açıklamalar ve ilgi çekici bağlantılar:

- "Kendin Yap semafor fenerini", 2x4 LED matrisini, bazı Pervane demo panosuna dayalı olarak açıklayan bir talimat var. Düzeni beğendim, ancak programlama bana biraz karmaşık görünüyor. Lütfen kendinize bakın.

- Şimdi Tam Sözleşmeli (Sınıf 2) Braille oluşturmak için bir python programı buldum. Maalesef python 2 ve 2002 Amerikan İngilizcesi versiyonuyla sınırlıdır: https://github.com/jpaugh/braille-converter.

- daha eksiksiz bir program liblouis gibi görünüyor, https://github.com/liblouis/liblouis, ancak bunu bu çözüme nasıl entegre edeceğime dair hiçbir fikrim yok.

- Yunanistan'dan ilginç bir python çözümü geliyor gibi görünüyor, https://github.com/ant0nisk/pybrl birkaç dili entegre edebilir ve 2. derece Braille üretebilir.

- Ne programcıyım, ne elektronikçiyim, ne de birkaç gün önce Braille hakkında fazla bilgim yoktu.

Bu nedenle, herhangi bir hata, eksiklik görürseniz veya proje için bazı fikirleriniz varsa, lütfen bana bildirin.

- Bu talimatı beğendiyseniz, lütfen oy verin!

Önerilen: