PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bei RN-Speak Adressierung nicht möglich



Kämmi
08.10.2004, 11:15
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 :-s
Bitte um Hilfe
Danke
Kämmi

Frank
08.10.2004, 18:17
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

Kämmi
11.10.2004, 08:42
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

Frank
12.10.2004, 10:07
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.




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

Kämmi
11.11.2004, 09:31
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:

' 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

Frank
11.11.2004, 10:07
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:



Sollten 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!

Zudem ist zu beachten das es in Bascom Version 1.11.7.4
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