Hallo !
Ich habe an meinem Roby ein Spracherkennungsmodul (VD 364 ) angebaut,
das Programm habe ich von dem Projekt Lallus (WDR Computerclub).
Verbunden habe ich das Spracherkennungsmodul mit Port 9 – 12 über 4 Pull Up
Widerständen mit dem Roby.Mit dem Programm und der Seriellen Schnittstelle
kann ich im Hyper Terminal Worte b.z.w Befehle speichern und erkennen lassen.
Wen das Spracherkennungsmodul Worte die ich vorher gespeichert habe (bis zu 60 Worte)
Erkennt dann gibt er über das Terminal z.b die Kennung 255 3 0 1 4 aus.
Die Kennung setz sich wie folgt zusammen - Synchronbyte 255, Längenbyte 3, 0 = kein Fehler,1 ist die Zeigerposition, Checksum 4.
So jetzt meine Frage an euch wie kann ich die Antwort umsetzten so das ich damit dem Roby steuern kann b.z.w das er auf die Befehle eine Funktion durchführt????
Vielen Dank schon mal im voraus!!!!!
Hier das Programm
Code:define reset port[9] define shs port[10] define data port[12] define mhs port[11] define wert byte define anzahl byte define check byte define i byte define j byte define offset byte define taste byte define segment byte define wort byte define manda byte define erkannt bit[192] define speek bit[191] define sagen bit[190] #init deact shs : reset =off : reset =on pause 30 #anzeige print print "Namen erkennen <A> [B] Pointer lesen" print "Namen trainieren <C> <D> Kommunikation ??" print "Get Entry status <E> <F> Version abfragen" print "Wort sagen <G> <H> Directory lesen" print "Startbeep ein [I] <J> Startbeep aus" print "Increment pointer<K> <L> Decrement pointer" print "Clear current p. <M> <N> Swap curr. pointer" print "Restore curr. p. <O> Delete curr. entry" print "Delete all words <Q> <R> Power down !RESET!" print "NEAR <S> <T> FAR" print "QUIET <U> <V> AUTOMOTIVE" print "Speech (PWM) aus <W> <X> Speech (PWM) ein" print "Automatik ein <Y> <Z> Automatik aus" print "Menüanzeige <Leertaste>" print #main taste=0 if not rxd then goto main get taste if taste=32 then goto anzeige if taste <65 then goto main if taste >96 then taste = taste-32 offset = (taste-65)*5 if offset = 120 then goto automatik if offset=30 then sagen =on if sagen=on then goto sprechen else goto ausführen #sprechen print "Mandatory prompt list <0> " print "Optional prompt list <1> " input manda if manda>1 then goto sprechen if manda = 0 then print "Das gewünschte Wort (1 -208) eingeben." if manda = 1 then print "Das gewünschte Wort (1 -240) eingeben." input wort #ausführen print "Kommando" looktab command,offset,anzahl wert=255 : gosub schreiben wert = anzahl + 1 : gosub schreiben check = wert for j = 1 to anzahl looktab command,j+offset,wert if sagen=on and j=2 then wert=wort if sagen=on and j=3 then wert=manda check = check + wert gosub schreiben next j sagen=off manda=0 wert=check : gosub schreiben print #antwort print "Antwort" gosub lesen : gosub lesen anzahl=wert for j = 1 to anzahl gosub lesen next j print goto main #lesen wert=0 deact data for i = 7 to 0 step -1 wait not shs if data then wert = wert + (1 shl i) mhs = off : wait shs : mhs = on next i print wert;" "; return #schreiben for i = 7 to 0 step - 1 if wert and 1 shl i then data =on else data = off wait shs mhs = off wait not shs mhs = on wait shs next i print wert; " "; return #automatik offset = 0 if rxd then get taste if taste=90 or taste=122 then goto anzeige if taste >96 then taste=taste-32 if taste =91 then goto anzeige print "Kommando" looktab command,offset,anzahl wert=255 : gosub schreiben wert = anzahl + 1 : gosub schreiben check = wert for j = 1 to anzahl looktab command,j+offset,wert check = check + wert gosub schreiben next j wert=check : gosub schreiben print print "Antwort" gosub lesen : gosub lesen anzahl=wert for j = 1 to anzahl gosub lesen if j=1 and wert=0 then erkannt=on next j print if erkannt=on then goto erkannt goto automatik #erkannt erkannt=off print "Erkennung" wert=255 : gosub schreiben wert=2 : gosub schreiben wert=38 : gosub schreiben wert=40 : gosub schreiben print print "Antwort" gosub lesen : gosub lesen anzahl=wert for j = 1 to anzahl gosub lesen if j=2 then segment=wert+1 next j print print "Erkennung" wert=255 : gosub schreiben wert=5 : gosub schreiben wert=48 : gosub schreiben wert=90+segment:gosub schreiben wert=1 : gosub schreiben wert=1 : gosub schreiben wert=5+48+90+segment+1+1: gosub schreiben print print "Antwort" gosub lesen : gosub lesen anzahl=wert for j = 1 to anzahl gosub lesen next j print goto automatik table command 4 16 121 0 1 ' recognize word 1 38 0 0 0 ' return pointer 4 2 121 0 1 ' train a name 1 0 0 0 0 ' no operation 1 42 0 0 0 ' get entry status 1 1 0 0 0 ' get version 3 48 7 0 0 ' say a prompt 1 43 0 0 0 ' query directory 3 65 8 1 0 ' beep ein 3 65 8 0 0 ' beep aus 1 33 0 0 0 ' increment pointer 1 34 0 0 0 ' decrement pointer 1 32 0 0 0 ' clear current pointer 1 37 0 0 0 ' swap current pointer 1 36 0 0 0 ' restore current pointer 1 39 0 0 0 ' delete current entry 2 40 85 0 0 ' delete all stored words 1 64 0 0 0 ' power down 3 65 0 254 0 ' environment near 3 65 0 255 0 ' environment far 3 65 0 243 0 ' environment quiet 3 65 0 12 0 ' environment automotive 3 65 7 1 0 ' speech pwm aus 3 65 7 2 0 ' speech pwm ein







Zitieren

Lesezeichen