Die Zahl muß binär übermittelt werden. Übe rein Terminalprogramm ginge das zum Beispiel schlecht.
Wenn Du zum Beispiel die Message 15 abrufen willst, so müsste "RNM" und danach der Basic Befehl CHR(15) benutzt werden.
Dann klappts!
Gruß frank
Hallo,
nach dem Aufbau des RN_Speak Moduls habe ich folgendes Problem:
Das Aufspielen der Sounddaten verlief problemlos.
Die Funktionen über die RS232 Schnitstelle mit den Befehlen RNP (Play) sowie RNQ (Reset) und RNH (Hilfe) konnten angesprochen werden.
Beim Komando RNM (Message) jedoch zeigt das Modul keine Funktion.
Bei der Eingabe von RNM erscheint die Meldung "Message(Zahl)".
Nach Eingabe einer Zahl von 0....253 sollte hier die Ausgabe der dort abgelegten Sounddatei erfolgen. Hier tut sich leider nichts
Bitte um Hilfe
Danke
Kämmi
Die Zahl muß binär übermittelt werden. Übe rein Terminalprogramm ginge das zum Beispiel schlecht.
Wenn Du zum Beispiel die Message 15 abrufen willst, so müsste "RNM" und danach der Basic Befehl CHR(15) benutzt werden.
Dann klappts!
Gruß frank
Hallo Frank,
vielen Dank für die schnelle Antwort. Leider hat es nicht geklappt.
Ich habe jetzt den RN-Speak huckepack auf den RNBFRA V1.2 montiert und am I2C Bus
angeschlossen. Alle mitgelieferten Testprogramme zum RNBFRA V1.2 laufen fehlerfrei.
Evtl. lässt sich der RN-Speak mit Bascom über die I2C Schnittstelle besser ansprechen.
Da ich erst angefangen habe, mich mit Bascom zu beschäftigen, wäre ich für ein kleines
Beispielprogramm zur Ansteuerung des RN_Speak über den RNBFRA V1.2 Controller sehr dankbar.
Gruß
Kämmi
Hi,
also das mit dem RS232 Befehl muß eigentlich auch gehen, vieleicht kannst du bei Gelegenheit mal deinen Code zur Ansteuerung posten.
Was I2C betrifft, so hab ich fertiges Demo auf die schnelle gerade nicht zur Hand. Aber ich poste mal einige Bascom Unterroutinen aus einem meiner Programme. Die könnte man sowohl bei RN-Control oder RNBFRA nehmen.
Am besten ein einfaches Grunddemo nehmen und ergänzen. Wichtig ist eigentlich nur noch das die I2C-Ports und QUarzfrequenz richtig festgelegt wird. Ansonsten kann man sich schnell ein Demo zimmern.
Code:Declare Sub Spreche(byval Message As Byte) Declare Sub Sprechezahl(byval Zahl As Integer) Declare Sub Sprechelongzahl(byval Zahl As Long) Declare Sub Spreche_begruessung Sub Spreche(message As Byte) I2cstart I2cwbyte &H52 I2cwbyte Message I2cstop Waitms 50 End Sub 'Für Temperaturansage nützlich Sub Sprechezahl(zahl As Integer) If Zahl < 0 Then Spreche 32 'Minus End If Zahl = Abs(zahl) If Zahl < 31 Then Me = Zahl + 1 Spreche Me Else S = Str(zahl) Le = Len(s) For I = 1 To Le Zeichen = Mid(s , I , 1) Me = Val(zeichen) Me = Me + 1 Spreche Me Spreche 0 Next End If End Sub 'Selbe wie oben, jedoch mit long Parameter Sub Sprechelongzahl(zahl As Long) If Zahl < 0 Then Spreche 32 'Minus End If Zahl = Abs(zahl) If Zahl < 31 Then Me = Zahl + 1 Spreche Me Else S = Str(zahl) Le = Len(s) For I = 1 To Le Zeichen = Mid(s , I , 1) Me = Val(zeichen) Me = Me + 1 Spreche Me Spreche 0 Next End If End Sub Sub Spreche_begruessung() Zufall = Rnd(4) Select Case Zufall Case 0: Spreche 33 ' Grüss Gott Case 1: Spreche 36 ' Hallo Case 2: Spreche 38 ' Na du, auch mal wieder hier Case 3: Spreche 39 ' Was für eine freude dich hier zu sehen End Select End Sub
Ich gehe mal davon aus das bei dir die Play Taste an RN-Speak funktioniert. Also wenn du diese hintereinander drückst, müssen nacheinander alle Messages ausgesprochen werden. Das ist erst mal Voraussetzung das die Software-Anwahl geht.
Die Tasten gehen nur im RS232 Mode. Für I2C muß man dann zwei Tasten drücken um in den I2C Mode umzuschalten.
Sollten die Tasten nicht funktionieren, dann sind eventuell die Brücken falsch im Board eingelötet. Je nach Version des Betriebsystemes müssen nämlich zwei Brücken eingelötet oder weggelassen werden. Dazu ist ein Readme auf der CD.
Gruß Frank
Hallo,
nach mehreren Versuchen ist es mir noch nicht gelungen den RN-Speak über ein Programm zum Sprechen zu bewegen
Nach dem Aufbau funktioniert die Ansteuerung über Tasten problmlos.
Auch über die RS232 Schnittstelle mit einem Terminalprogramm läuft die Sprachausgabe mit den Komandos RNP (für Play) RNQ (für Reset) ebenfalls. Die Adressierung mit RNM (x) funktioniert jedoch nicht.
Anschliessend habe ich versucht die Ausgabe über den I2C Bus zu programmieren.
Leider spricht RN-Speak hiermit nicht. Was fehlt hier ?
Bitte nochmal um Hilfe
Gruß Kämmi
Hier mein Programm:Code:' RNB-SpeakTest $regfile = "m162def.dat" $crystal = 8000000 ' Quarzfrequenz $baud = 9600 Config Scl = Portc.0 Config Sda = Portc.1 Declare Sub Spreche(byval Meldung As Byte) ' Unterfunktion anmelden Dim Zufallszahl As Byte ' Varialble zufallszahl anmelden I2cinit Sub Spreche(meldung As Byte) ' Unterprogramm IC2 Ausgabe I2cstart I2cwbyte &H52 I2cwbyte Meldung I2cstop Waitms 200 End Sub Zufallszahl = Rnd(4) ' Zufallszahl zwischen 0 und 4 erzeugen Select Case Zufallszahl ' Auswahl Zufallszahl Case 0: Spreche 5 Case 1: Spreche 6 Case 2: Spreche 8 Case 3: Spreche 9 End Select End
Hi Kämmi,
wenn die Tasten und alles andere geht, sollte auch RNM-Befehl gehen. Aber achte darauf das die Zahl X nicht in ASCII Ziffern ausgeschrieben wird, sondern als Binärwert angegeben werden muß. Übe rein Terminalprogramm ist das immer schwierig. Per Befehl würde es in etwas so aussehen:
print "RNM"; chr(x)
Für I2C-fehlt eigentlich nix. Wenn nix geht, könnte das verschiede Ursachen haben, zum Beispiel flasch eingelötete Lötbrücken. Den Readme-Hinweis auf CD beachten:
Zudem ist zu beachten das es in Bascom Version 1.11.7.4Sollten Sie bereits die neuste Firmware von
RN-SPEAk Version 1.3 erhalten haben
(steht auf dem IC Aufkleber)
dann bitte beachten:
Die eingezeichneten Brücken auf der Bestückungsseite
J1,J2 und J3 müssen alle eingelötet werden!
Sollten Sie eine ältere Firmware besitzen, so
dürfen die Brücken J1 und J3 nicht eingelötet sein!
noch einen Bug in einer I2C-Lib gibt. Daher sollte in dieser Version die neuere Lib https://www.roboternetz.de/download/bascomi2clib.zip
ins LIB Verzeichnis kopiert werden
Weiterhin auch die Jumperstellungen auf RN-Speak genau beachten. Ab Version 1.1 sind die Jumperstellungen mit B auf der Platine markiert. Bei dem Vorgängerboard genau die Doku beachten.
Gruß Frank
Lesezeichen