Tartalomjegyzék:
- 1. lépés: Használt anyagok
- 2. lépés: Beállítás és használat
- 3. lépés: A kód
- 4. lépés: Kilátások és megjegyzések
Videó: Hangvezérelt, Braille-típusú minta szemafor: 4 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Lord Vetinari az ablakánál állt, és a folyó túlsó partján lévő szemafor tornyot figyelte. Mind a nyolc, vele szemben álló nagy redőny vadul pislogott - fekete, fehér, fekete, fehér, fekete, fehér… Az információ a levegőbe repült. Húsz mérfölddel mögötte, a Sto Lat másik tornyában valaki távcsövön keresztül nézett, és számokat kiabált. Milyen gyorsan jön ránk a jövő, gondolta. T. Pratchett, Az ötödik elefánt
Miután az AIY hangkészletre építettem egy hangvezérelt ugráló aljzatot, eszembe jutott egy hangvezérelt szemafor építése, amely egyesíti a legújabb informatikai technológiát a távközlés és az adatátvitel kezdeteivel.
Eleinte az volt az ötletem, hogy megismétlem Chappe francia szemaforrendszerét, amely az első ismert szemafor rendszert használó országos távközlési rendszer volt. De kiderült, hogy egy kicsit túl bonyolult ahhoz, hogy egy napon belül szabványos szervókat használjon. A következő célpontom valami hasonló volt a Terry Pratchett által leírt clacks rendszerhez, pl. a "Going Postal" -ban, 2x4 redőnyös szemaforrendszerként (nem úgy, mint a filmben ábrázolt 4x4 -es mátrix). Sajnos nem találtam túl sok technikai információt ezen a rendszeren. Így végül a Lord Murray által kifejlesztett 2x3 mátrixú szemaforrendszerrel végeztem, amelyet a brit haditengerészet már egy ideje használt. Ezenkívül egy hat redőny/bit rendszer jól illeszkedik az AIY Voice HAT hat szervocsatlakozójához. De mivel az évek között nem volt kéznél hat szervó, végül úgy döntöttem, hogy először LED -ekből álló szimulátort építek.
Ami a megjelenített kódot illeti, használhatnánk a Murray rendszert, de a rendelkezésemre álló információk ismét meglehetősen korlátozottak voltak, és nem tették lehetővé számok és szimbólumok megjelenítését. Eljutottam tehát a lényegig, hogy inkább a Braille -rendszert használjam, amely szintén 2x3 -as mátrixot használ betűk, számok és egyéb jelek megjelenítésére. A Braille -rendszer a vakok számára olvasható szövegek nemzetközi szabványa. Ez egy jelölőnyelv is, amely számjelzővel határozza meg, hogy a következő számok jelenjenek meg, és jelzők, amelyek meghatározzák, hogy az alábbi betűk közül egy vagy több nagybetűvel van -e írva. Ezért úgy döntöttem, hogy egy kissé leegyszerűsített rendszert állítok fel, helyette a Braille -rendszer Nemeth -kiterjesztése határozza meg a számokat és néhány jelet, és csak nagybetűket használok, legalábbis az elején. Ez lehetővé teszi, hogy egyedi betűk, számok vagy jelek egyedi mintái megjelenjenek a speciális alkalmazásomban, és kihagyható a valódi Braille -íráshoz szükséges szövegelemzés.
A végső eszköz lehetővé teszi egy szó vagy mondat beszédét az AIY hangfelismerő rendszerbe, majd a hangminta adatait WLAN -on és interneten keresztül elküldi az Egyesült Államokban található Google szervernek, ott dekódolja, és legalábbis az én esetemben az értelmezett az adatokat visszaküldi Európába, ahol végül a felismert mondatot szöveges karakterláncként jelenítem meg. Ezt a szöveges karakterláncot ezután a Python -szkript az egyes betűkre bontja, és most, a megfelelő mintákat definiáló szótárral összehasonlítva, a mintainformációk visszakereshetők, és a minták 2x3 LED -es mátrixon jelennek meg. Kérjük, nézze meg a mellékelt videót.
A megjelenítési sebességet másodpercenként egy karakterre állítottam be, ami elég hosszú ahhoz, hogy egy képzett személy azonosítsa és lefordítsa a mintát. A következő lehetséges lépés egy mintafelismerő eszköz, például az AIY vision HAT (eddig Európában nem elérhető) használata a minták automatikus olvasásához és értelmezéséhez, így a kör bezárásához.
A további fejlesztési koncepciókat, amelyek közül néhány valós jelentőséggel bír, ezen oktatható fejezet „kitekintési” részében tárgyalunk.
1. lépés: Használt anyagok
Raspberry Pi 3
AIY hang kalap
Nyolc fehér LED, 5 mm átmérőjű. Ezek 3V -on működnek, ezért ellenállás szükséges.
100 kOhm ellenállás. Talán nem a tökéletes megoldás, de kéznél volt.
Jumper kábelek
Rövid huzaldarab
Kenyeretábla, opcionális a beállítás teszteléséhez.
Műanyag doboz névjegykártyákhoz.
Két darab 4 mm -es műanyag hab, némelyik szemetet hagyott.
Néhány darab műanyag membrán, diffúzorként, mint fent.
Forrasztópáka és forrasztópáka, kés.
2. lépés: Beállítás és használat
Állítsa be a Raspberry Pi -t és az AIY HAT -ot az AIY voice HAT kézikönyvben leírtak szerint. Azt javaslom, hogy a Pi és a HAT összeszerelése előtt legalább a szervóportokhoz forrasztja a fejléceket, mivel ez lehetővé teszi a szervók, a kenyérsütő lap vagy a LED -ek egyszerű csatlakoztatását.
A kijelző dobozt egy névjegykártyák műanyag dobozának fedeléből, két darab habot a dobozba illesztették, és egy hasonló méretű csomagoló membránt, mint a diffúzort. Az egyik habrészben hat lyukat nyomtak, és a LED -eket beléjük helyezték. A LED -ek rövidebb lábát (földoldal) egy darab kábel kötötte össze egymással, majd ellenállást adtak hozzá, és az áthidaló kábelt forrasztották az utóbbira. A LED -ek másik lábához (plusz oldal) az áthidaló kábeleket forrasztották.
Ezeket aztán az AIY hangszóró szervo portjaihoz hosszabbító kábelekkel kötötték össze, a pozitív oldalt a (külső) "P in" csapokhoz, a negatív csatlakozót az egyik (belső) földelő/mínusz csaphoz. Kérjük, nézze meg a mellékelt sémát.
Erősen javaslom, hogy forrasztás előtt tesztelje a beállítást kenyérlapon.
Most a membránt, a LED -lemezt és a tömítő réteget a műanyag dobozba helyezték.
Helyezze a Braille_LED_1.py szkriptet az src mappába. Ebben az esetben előfordulhat, hogy először futtathatóvá kell tennie a szkriptet.
Most a Dev terminál (!) Használatával elindult a Braille_LED_1.py program. Írja be az „src/Braille_LED_1.py” szót, majd nyomja meg az „Enter” gombot.
Most felkérik, hogy nyomja meg az AIY mező gombját, és mondja ki a szavát vagy mondatát. A rendszer némi késleltetéssel megismétli, amit megértett, és megjeleníti azt a képernyőn, valamint betűről betűre a hat LED kijelzőn.
Ha egy mondat helyett a "Goodbye" kulcsszót adja meg, akkor a rendszer elköszön, és a program bezárul.
3. lépés: A kód
Az alábbiakban megtalálja a kódot, amely lehetővé teszi, hogy beszéljen az AIY hangberendezéssel, és a felismert mondatot betűről betűre jelenítse meg egy kis 2x3 LED-es „szemafor” vagy Braille-típusú mátrixon.
A kód az AIY Voice HAT segítségével egy korábbi projekthez használt szkript származéka, amely az AIY voice HAT kézikönyvben leírt servo_demo.py példa származéka.
Találhat egy szótárat is a Murray -kód azon részével, amelyet az interneten találtam, szövegfájlként. Nem tartalmaz számokat, és kihagy néhány betűt, ami itt problémát okozna.
A program egyik korlátozása jelenlegi állapotában az, hogy ha egy jel nem szerepel a szótárban, akkor összeomlik a program. Ezenkívül nem a teljes Braille -kód, mint jelölőnyelv. Amint az alábbi szkriptben látható, a Németh -kód a számok számára felesleges, néhány jelzéssel a szabványos Braille -írásban, de ez nem okozhat problémát a konkrét alkalmazásunk számára.
#!/usr/bin/env python3
# Ez a szkript a szervo_demo.py szkript adaptációja az AIY Voice HAT számára, # az AIY alapú Baille típusú szimbólum megjelenítésre optimalizálva import aiy.audio import aiy.cloudspeech import aiy.voicehat a gpiozero import LED -től #from gpiozero import Button from időimport alvás # Szótár: mesterségesen módosított Braille -ábécé, # számok és néhány szimbólum, amelyek a Braille Braille Braille -i Nemet kiterjesztéséből származnak_6A = {"": "123456", # szóköz "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 ", # Szám előtag, azaz a következő jelek a számok", ":" 2 ",". ": "256", # Pont, mondat vége (GB) "?": "236", "!": "235", "" ":" 3 ","-":" 24 ","; ": "23", "Cap": "6", # A következő levél nagybetűs; Számmegállás? "": "", # Németh Braille kód a 6 pontos Braille matematikai bővítése # lásd: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Németh-kód '1', Braille "vessző" "2": "23", "3": "25", "4": "256", "5": "26", "6": "235", # Németh '6', Braille '!' "7": "2356", "8": "236", # Németh '8', Braille '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 ","*":" 1346 " # '*' kétmintás szimbólum Németh -ban, itt az" x "helyébe az összeomlások kihagyhatók." "" Az egyszerűség kedvéért a megadott Braille -számminták az alábbiakban a megfelelő Németh-kódok "1": "1", "2": "12", "3": "14", "4": "145", "5": "15", " 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Mintaszöveg, hibakeresési célokra def main (): tunnista = aiy.cloudspeech.get_recognizer () felismerő.expect_phrase ('viszlát') # kulcsszó, befejezi a programgombot = aiy.voicehat.get_button () # AIY Gombállapot led = aiy.voicehat.get_led () # AIY Gomb-LED állapot aiy.audio.get_recorder (). start () led_1 = LED (26) # 1. csatlakozó, szervo0, GPIO 26 # bal felső LED_2 = LED (6) # 2. csatlakozó, servo1, GPIO 06 # bal középső led_3 = LED (13) # 3. csatlakozó, szervo2, GPIO 13 # bal alsó led_4 = LED (5) # 4. csatlakozó, szervo3, GPIO 05 # jobb felső LED_5 = LED (12) # 5. csatlakozó, servo4, GPIO 12 # jobb középső led_6 = LED (24) # 4. csatlakozó, szervo3, GPIO 13 # jobb alsó # távolság = Gomb (5) # szervo3/GPIO 05 -hez csatlakoztatott távolságérzékelő, itt nem használatos aiy.audio.say ("Hello!",) Aiy.audio.say ("Kezdéshez, kérjük, nyomja meg a gombot",) aiy.audio.say ("Ha búcsút mondok, befejezem a programot"), míg True: # indul loop led.set_state (aiy.voicehat. LED. BLINK) print ("A hangfelismerés aktiválása n, nyomja meg a kék gombot, majd beszéljen ") print () button.wait_for_press () print ('Listening …') aiy.audio.say (" Hallgatok ",) led.set_state (aiy.voicehat. LED. BLINK_3) text = felismerő.recognize () # felismerhető mondat szöveges karakterlánca led.set_state (aiy.voicehat. LED. OFF), ha a szöveg nincs: aiy.audio.say ('Sajnálom, nem hallottalak.',) elif 'viszlát' szövegben: aiy.audio.say ("Goodbye",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) sleep (3) print ('bye! ') a break # megállítja a ciklust és befejezi a programot: print (' Azt mondtad "', szöveg," "') # Lehetővé teszi a rendszer értelmezésének ellenőrzését, beleértve a lebilincselést aiy.audio.say ('Azt hiszem, te mondtad',) aiy.audio.say (szöveg,) # akusztikus ellenőrzés Text_up = text.upper () # az összeset nagybetűsre helyezi át (Text_up) Text_Len = len (Text_up) print (Text_Len) az i tartományban (Text_Len): Lett = Text_up # egyetlen betűt választ, az elsővel kezdődik, azaz [0] print ("Letter =", Lett) Lett_B = Braille_6A [Lett] # Kiválasztja a megfelelő kódot a szótár. Hiányzó jel megtöri a kódot! print (Lett_B) if ("1" in Lett_B): print ("LED 1") led_1.on () # aktiválja a LED -et a szervo0 "-nál, ha" 2 "a Lett_B -n: print (" LED 2 ") led_2.on () ha "3" a Lett_B -ben: print ("LED 3") led_3.on () ha "4" a Lett_B -ben: print ("LED 4") led_4.on () ha "5" a Lett_B -ben: print ("LED 5" ") led_5.on () if" 6 "in Lett_B: print (" LED 6 ") led_6.on () sleep (1) # display pattern for a second print () led_1.off () # inaktiválja az összes LED -et a szervókon0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () alvás (0.3) # rövid sötét szünet, a levél végének jelzésére, ha _name_ == '_main_ ': main ()
4. lépés: Kilátások és megjegyzések
Tehát mi lehet ezután?
A bevezetőben említett, az AIY videokészlettel vagy más automatizált képfelismerő rendszerrel folytatott informatikai meta-vicc mellett az opcióban leírt koncepció kibővítésére más lehetőségek is lehetnek. Némelyikük akár a valós világban is hasznos lehet. Ezek lehetnek:
- továbbfejlesztett programozás, így a szöveg átkerül a szabványos Braille -kódba, minden jelöléssel és tömörítéssel együtt. Ez nem lehet sok erőfeszítés egy képzett python programozó számára. Ami nem vagyok, ezért minden segítséget szívesen fogadunk.
- bővítse ki a rendszert 2x4 mátrixra. Ez is lehetséges, és segítene a megfelelő 8 pontos Braille-kódok használatában, ahogy az elektronikus Braille-kijelzők használják. E fölött egy kicsit közelebb lenne a Dearheart clacks rendszerhez.
- készítsen valódi 2x3 vagy 2x4 Braille kijelzőt. Lehetségesnek kell lennie egy szervo vagy 5 V mini mágnesszelep tömb használatával. Az elsődleges kihívás az lenne, hogy a tapintható pontok közötti szabványos távolság 2,45 mm, azaz 1/10 hüvelyk, elektronikus kijelzőn, ezért szükség lehet bizonyos fokozatokra és mechanikára. A másik kihívás a tolás hosszának pontos szabályozása lehet.
Egy ilyen egyszerű és olcsó megoldás a szélesebb nyilvánosság számára is érdekes lehet, mivel a kereskedelmi Braille -kijelzők meglehetősen drágák. Előnyös lehet az ilyen hangvezérelt rendszert használó Braille-tanulók számára. Lehet, hogy szóban beírnak egy választott (angol) mondatot, és a szöveg, betűk és jelek megjelennek az ujjuk hegyén.
- a Murray vagy a Dearheart rendszerekhez hasonló mechanikus redőnyrendszert építeni. A szervók használatával ez nem lehet túl bonyolult, és egy másik utasításban leírható. Vagy lehet egy szép iskolai projekt. Érdekel valakit?
–――――
Néhány megjegyzés és érdekes link:
- Van egy utasítás, amely leírja a "DIY szemafor lámpást", egy 2x4 LED -es mátrixot, valami Propeller demo tábla alapján. Tetszik az elrendezés, de a programozás kicsit bonyolultnak tűnik számomra. Kérlek nézd meg magad.
- Most találtam egy python programot a teljes mértékben szerződéses (2. fokozat) Braille -írás létrehozására. Sajnos a python 2-re és a 2002-es amerikai angol verzióra korlátozódik:
- úgy tűnik, hogy egy teljesebb program a liblouis, https://github.com/liblouis/liblouis, de fogalmam sincs, hogyan integrálhatom ezt ebbe a megoldásba.
- egy érdekes python megoldás Görögországból származik, a https://github.com/ant0nisk/pybrl több nyelvet is integrálhat, és 2. osztályú Braille -írást hozhat létre.
- Nem vagyok sem programozó, sem elektronikai fickó, és néhány napja nem sok ismeretem volt a Braille -írásról.
Tehát ha bármilyen hibát, hiányosságot lát, vagy ötletei vannak a projekthez, kérjük, tudassa velem.
- Ha tetszik ez az oktatható, kérem, szavazzon rá!
Ajánlott:
ESP8266 Sugárzási minta: 7 lépés
ESP8266 Sugárzási minta: Az ESP8266 népszerű mikrokontroller modul, mivel a fedélzeti WiFi -n keresztül csatlakoztatható az internethez. Ez sok lehetőséget nyit a hobbisták számára, hogy távirányítású modulokat és IoT -eszközöket készítsenek minimális extra hardverrel
1024 minta FFT spektrumanalizátor Atmega1284 használatával: 9 lépés
1024 minta FFT spektrumanalizátor Atmega1284 használatával: Ez a viszonylag egyszerű oktatóanyag (figyelembe véve a téma összetettségét) megmutatja, hogyan készíthet egy nagyon egyszerű 1024 mintaspektrum -elemzőt egy Arduino típusú tábla (1284 Narrow) és a soros plotter segítségével. Bármilyen Arduino összehasonlító
A Singleton tervezési minta végrehajtása C ++ nyelven: 9 lépés
Hogyan készítsük el a Singleton tervezési mintát C ++ nyelven: Bevezetés: Ennek az útmutatónak az a célja, hogy megtanítsa a felhasználót arra, hogyan kell megvalósítani az egyedülálló tervezési mintát a C ++ programjában. Ennek során ez az utasításkészlet azt is elmagyarázza az olvasónak, hogy miért egy szingulett elemei az út
Egyszerű Braille -író (beszéd Braille -írásba): 8 lépés (képekkel)
Egyszerű Braille -író (beszéd Braille -írásba): Üdv mindenkinek! Mindez azzal kezdődött, hogy egy sikeres XY -plottert csináltam, miután sikeresen befejeztem. Úgy gondoltam, hogy kidolgozok egy egyszerű beszédet a Braille szövegkonverterre. Elkezdtem keresni az interneten, és váratlanul az árak túl magasak voltak , ez felpezsdített
Microdot - Csuklóóra LED minta időmérő: 7 lépés (képekkel)
Microdot - Wrist Watch LED Pattern Timepiece: Újabb RGB Sunset Productions produkció! Ez a projekt egy áramköri kártya a minidot órám karóra méretű verziójának elkészítéséhez: https: //www.instructables.com/id/EEGLXQCSKIEP2876EE/ néhány mással hordozható eszközökre jobban alkalmazható funkciók. A