-
Die
Erfindung betrifft ein mikroprozessor-gesteuertes Spielbauelement
mit einem Mikroprozessor, der Befehle in der Form eines Programms
ausführen
kann, das in einem Speicher gespeichert ist, wobei besagter Speicher
Unterprogramme umfasst, die einzeln durch Angabe einer Liste von
Unterprogrammaufrufen aufgerufen werden können; Verbindungsmitteln zur
Verbinden mit Bauelementen, die durch Betätigungsmittel bewegt werden
können,
wobei besagte Betätigungsmittel
als Antwort auf die Befehle steuerbar sind.
-
Im
Zusammenhang mit der Entwicklung von kleinen, anspruchsvollen und
vergleichsweise preisgünstigen
Mikroprozessoren ist es attraktiv geworden, diese in vielen verschiedenen
Konsumgütern, einschließlich Spielzeugen
einzusetzen. Im Allgemeinen ist die Entwicklung von Spielzeugen
von einfachen Funktionen, wie etwa dem Abspielen von Tönen in Puppen,
Ausführen
von einfachen Bewegungsmustern in Robotern und dergleichen, zur
Entwicklung von Spielzeugen mit anspruchsvollen Aktionsmustern und
eine Art von Verhaltensmustern fortgeschritten.
-
Solche
Spielbauelemente können
verschiedene physische Aktionen ausführen, teilweise durch Programmierung
des Spielbauelements und teilweise durch den Aufbau einer Struktur,
die aus miteinander verbunden Spielbauelementen verschiedener Typen
besteht. Demgemäß bestehen
zahlreiche Kombinationsmöglichkeiten,
um Strukturen zu erzeugen und ihnen verschiedene Funktionen zu verleihen.
Die physischen Aktionen können
unbedingt sein und einfache oder komplexe Bewegungen umfassen, die von
einem elektrischen Motor gesteuert werden, oder auch das Aussenden
von Licht- oder Schallsignalen. Die physischen Aktionen können auch
durch die Interaktion des Spielzeugs mit seiner Umgebung bedingt
sein, und das Spielzeug kann dann so programmiert sein, dass es
auf einen physischen Kontakt mit einem Objekt reagiert, oder auf
Licht und optional auf Geräusche,
und dass es sein Verhalten auf der Grundlage einer solchen Interaktion ändert.
-
Derartige
programmierbare Spielzeuge sind z. B. durch das Produkt ROBOTICS
INVENTION SYSTEM <(Marke)> von LEGO MINDSTORMS <(Marke)> bekannt, bei dem es
sich um ein Spielzeug handelt, das mit einem Computer programmiert werden
kann, um unbedingte wie auch bedingte Aktionen auszuführen.
-
Die
CA 2,225,060 betrifft interaktive
Spielelemente; ein erstes Spielelement, das von einem Benutzer betätigt wird,
kann ein zweites Spielelement betätigen, welches seinerseits
das erste Spielelement oder ein drittes Spielelement betätigen kann. Die
Spielelemente können
in der Form von Puppen, Tieren oder einem Auto ausgebildet sein,
das Tätigkeiten
ausführen
kann.
-
Ein
Nachteil dieses Spielzeugs besteht jedoch darin, dass das Spielzeug
einen externen Computer benötigt,
um die benutzerdefinierten Programme zu einem derartigen mikroprozessor-gesteuerten Spielelement
zu übertragen.
Im Stand der Technik bestand das Vorurteil, dass der Austausch von
Programmen zwischen Spielelementen nur zwischen identischen Spielelementen
von Bedeutung ist, da im anderen Fall die Interaktion zwischen einem
Programm und einer mechanischen Struktur die Möglichkeit von Fehlern beinhaltet.
-
Die
WO 90/02983 beschreibt ein mikroprozessor-gesteuertes Spielbauelement
wie im Oberbegriff des Anspruchs 1 angegeben.
-
Eine
typische Situation auf dem Gebiet von Spielbaukästen besteht darin, dass Strukturen
wiederholt aufgebaut und verändert
werden. Da dies ein Teil des Spieles ist, besteht daher ein Bedarf
für die Fähigkeit,
ein neues Programm, das auf die spezielle Struktur angepasst ist,
in Betrieb zu setzen.
-
Dementsprechend
besteht eine Aufgabe der Erfindung darin, ein mikroprozessor-gesteuertes Spielbauelement
mit flexibleren Programmierfunktionen bereitzustellen.
-
Dies
wird erreicht, wenn das eingangs genannte mikroprozessor-gesteuerte
Spielbauelement dadurch gekennzeichnet ist, dass es Kommunikationsmittel
umfasst, die besagten Funktionsaufruf an ein zweites Spielbauelement übertragen
können,
um es zu programmieren.
-
Dadurch
kann ein erstes mikroprozessor-gesteuertes Spielbauelement eine
Liste von Funktionsaufrufen an ein zweites mikroprozessor-gesteuertes Spielbauelement übertragen.
Wenn das zweite Spielbauelement Unterprogramme gespeichert hat,
die dem ersten Spielbauelement bekannt sind, können Programme rasch zwischen
zwei Spielbauelementen ausgetauscht werden. Dadurch kann das Potential von
Spielbaukästen,
die auf der Funktionalität
zwischen einer Mehrzahl von Standardbauelementen in einer Struktur
und einer Mehrzahl von Standardprogrammschritten beruhen, in einer
effektiven Art und Weise genutzt werden.
-
Ein
bevorzugtes Ausführungsbeispiel
der Erfindung wird nachfolgend mit Bezug auf die Zeichnungen beschrieben,
in denen
-
1 ein
Blockdiagramm eines programmierbaren Spielelements zeigt;
-
2 eine
Anzeige auf einem Spielelement zeigt;
-
3a ein
erstes Diagramm einer Zustandsmaschine zur visuellen Programmierung
eines Spielelements zeigt;
-
3b ein
zweites Diagramm einer Zustandsmaschine zur visuellen Programmierung
eines Spielelements zeigt;
-
3c ein
drittes Diagramm zur Unterbrechung einer Zustandsmaschine zeigt;
-
3d ein
viertes Diagramm zum Starten einer Zustandsmaschine zeigt;
-
4 parallele
und sequentielle Ausführung von
Programmen zeigt;
-
5 erste
und zweite Spielelemente zeigt, wobei das erste Spielelement Daten
an das zweite Spielelement übertragen
kann;
-
6 ein
Flussdiagramm zur Speicherung von Programmschritten zeigt;
-
7 ein
Flussdiagramm zeigt für
ein Programm zur Auswahl einer Untermenge von Programmschritten
aus einem Satz von Programmschritten als Antwort auf die Auswahl
einer Operation; und
-
8 eine
Spielstruktur zeigt mit einem mikroprozessor-gesteuerten Spielbauelement
nach der Erfindung, verbunden mit allgemein bekannten Spielbauelementen.
-
1 zeigt
ein Blockdiagramm eines programmierbaren Spielelementes. Das Spielelement 101 umfasst
eine Mehrzahl elektronischer Mittel zum Programmieren des Spielelements
so dass es elektronische Einheiten (z. B. Motoren) als Antwort auf
Signale, die von verschiedenen elektronischen Sensoren (z. B. elektrischen
Schaltern) aufgenommen werden, beeinflussen kann.
-
Das
Spielelement kann dadurch veranlasst werden, anspruchsvolle Operationen
auszuführen, wie
etwa eine aktionsgesteuerte Bewegung, vorausgesetzt, dass das Spielelement
mit den elektrischen Einheiten/Sensoren in einer geeigneten Weise
kombiniert ist.
-
Das
Spielelement 101 umfasst einen Mikroprozessor 102,
der über
einen Kommunikationsbus 103 mit einer Mehrzahl von Einheiten
verbunden ist. Der Mikroprozessor 102 kann über den
Kommunikationsbus 103 Daten von zwei A/D-Wandlern „A/D Eingang
#1" 105 und „A/D Eingang
#2" 106 empfangen. Die
A/D Wandler können
diskrete Signale mit mehreren Bit oder einfache binäre Signale
aufnehmen. Darüber
hinaus sind die A/D Wandler geeignet, passende Werte, wie z. B.
einen ohmschen Widerstand zu erfassen.
-
Der
Mikroprozessor 102 kann elektronische Einheiten, wie z.
B. einen elektrischen Motor (nicht gezeigt) über eine Reihe von Anschlusspunkten „PWM Ausgang
#1" 107 und „PWM Ausgang
#2" 108 steuern.
In einem bevorzugten Ausführungsbeispiel der
Erfindung werden die elektronischen Einheiten durch ein Signal mit
Pulsbreiten-Modulation gesteuert.
-
Darüber hinaus
kann das Spielelement akustische Signale oder Tonfolgen ausgeben,
indem ein Tonerzeuger 109, z. B. ein Lautsprecher oder
eine piezoelektrische Einheit angesteuert wird.
-
Das
Spielelement kann Lichtsignale über
die Lichtquelle „VL
Ausgang" 110 ausgeben.
Diese Lichtsignale können
mittels Lumineszenzdioden ausgegeben werden. Die Lumineszenzdioden
können
z. B. ausgelegt so sein, dass sie verschiedene Zustände des
Spielelements und der elektronischen Einheiten/Sensoren anzeigen.
Die Lichtsignale können
darüber
hinaus als Kommunikationssignale für andere Spielelemente eines
entsprechenden Typs benutzt werden. Die Lichtsignale können z.
B. benutzt werden, um Daten über
einen Lichtleiter zu einem zweiten Spielelement zu übertragen.
-
Das
Spielelement kann Lichtsignale über den
Lichtdetektor „VL
Eingang" 111 empfangen.
Diese Lichtsignale können
unter anderem dazu benutzt werden, um die Intensität des Lichts
in dem Raum zu erfassen, in dem sich das Spielelement befindet.
Die Lichtsignale können
alternativ über
einen Lichtleiter empfangen werden und Daten von einem zweiten Spielelement
oder einem Personalcomputer darstellen. Der gleiche Lichtdetektor
kann demgemäß die Funktion
haben, über
einen Lichtleiter zu kommunizieren, und als Lichtsensor zur Erfassung
der Intensität
des Lichts in dem Raum zu erfassen, in dem sich das Spielelement
befindet.
-
In
einem bevorzugten Ausführungsbeispiel ist
der „VL
Eingang" 111 so
ausgelegt, dass er selektiv entweder über einen Lichtleiter kommuniziert
oder alternativ die Intensität
des Lichts in dem Raum erfasst, in dem sich das Spielelement befindet.
-
Über den
Infrarot-Detektor „IR
Eingang/Ausgang" 112 kann
das Spielelement Daten entweder zu anderen Spielelementen übertragen
oder Daten von anderen Spielelementen oder z. B. einem Personalcomputer
empfangen.
-
Der
Mikroprozessor 102 benutzt ein Kommunikationsprotokoll
zum Empfangen und Übertragen von
Daten. Die Übertragung
von Daten kann durch Betätigen
einer besonderen Tastenkombination erfolgen.
-
Die
Anzeige 104 und die Tasten „Shift" (Umschalten) 113, „Run" (Ablaufstart) 114, „Select" (Auswahl) 115 und „Start/Interrupt" (Start/Unterbrechen) 116 stellen
eine Benutzerschnittstelle zur Bedienung/Programmierung des Spielelements
dar. In einem bevorzugten Ausführungsbeispiel
ist die Anzeige eine LCD Anzeige, die eine Mehrzahl bestimmter Icons
oder Symbole darstellen kann. Das Aussehen der Symbole auf der Anzeige
kann einzeln gesteuert werden, z. B. kann ein Icon sichtbar sein,
unsichtbar sein oder man kann es blinken lassen.
-
Durch
Betätigen
der Tasten kann das Spielelement programmiert werden wobei die Anzeige
dem Benutzer gleichzeitig eine Rückmeldung über das Programm,
das erzeugt oder ausgeführt
wird, liefert. Dies wird in größerer Ausführlichkeit
weiter unten beschrieben. Da die Benutzerschnittstelle eine begrenzte
Anzahl an Elementen (das heißt,
eine begrenze Anzahl an Icons und Tasten) umfasst, ist sichergestellt,
dass ein Kind, das mit dem Spielzeug spielen will, schnell lernt,
es zu bedienen.
-
Das
Spielelement umfasst auch einen Speicher 117 in Form von
RAM oder ROM. Der Speicher enthält
ein Betriebssystem „OS" 118 zur
Steuerung der grundlegenden Funktionen des Mikroprozessors, eine
Programmsteuerung „PS" 119, die
in der Lage ist, die Ausführung
vom Benutzer festgelegter Programme zu steuern, einer Mehrzahl von
Regeln 120, wobei jede Regel aus einer Mehrzahl spezifischer Anweisungen
für den
Mikroprozessor besteht, und ein Programm 121 im RAM, das
die spezifischen Regeln einsetzt.
-
Die
Regeln können
als Unterprogramme ausgeführt
sein, die über
einen Funktionsaufruf aufgerufen werden können. Dieses Vorgehen wir auch „Scripting" genannt. Ein Programm
(z. B. ein vom Benutzer festgelegtes Programm) kann demgemäß als eine
Kombination von Funktionsaufrufen angelegt sein. Wenn ein Programm
zu einem anderen, mikroprozessor-gesteuerten Spielelement übertragen wird,
können
lediglich die Funktionsaufrufe übertragen
werden, wenn die Unterprogramme dem Spielelement, das das Programm
empfangen soll, bekannt sind. Die Übertragung eines Programms
kann durch Betätigung
einer Tastenkombination gestartet werden oder durch Aktivierung
eines speziellen Icons auf der Anzeige 201.
-
In
einem bevorzugten Ausführungsbeispiel basiert
das Spielelement auf einem sogenannten Ein-Chip-Prozessor, der eine
Mehrzahl von Eingängen
und Ausgängen,
einen Speicher und einen Mikroprozessor in einem einzigen integrierten
Schaltkreis umfasst.
-
In
einem bevorzugten Ausführungsbeispiel umfasst
das Spielelement Lumineszenzdioden, die die Richtung der Drehung
der verbundenen Motoren anzeigen können.
-
2 zeigt
eine Anzeige auf einem Spielelement. Die Anzeige 201 ist
ausgelegt um eine Mehrzahl von spezifischen Icons zu zeigen und
ist in einem Zustand gezeigt, in dem alle Icons sichtbar gemacht
wurden. Die Icons werden durch horizontale und vertikale Balken 202 bzw. 203 entsprechend
ihrer Funktion in eine Mehrzahl von Gruppen 204, 205, 206, 207 und 208 unterteilt.
-
Die
Icons können
z. B. so ausbildet sein, dass sie mögliche Bewegungsmuster für ein Fahrzeug
illustrieren. Ein Fahrzeug kann z. B. konstruiert werden, indem
das Spielelement mit zwei Motoren kombiniert wird, die eine Rädergruppe
auf der rechten Seite bzw. der linken Seite eines Fahrzeugs antreiben.
Das Fahrzeug kann dadurch so gesteuert werden, dass es vorwärts, rückwärts, zur
linken Seite und zur rechten Seite fährt. Darüber hinaus kann das Fahrzeug
druckempfindliche Schalter zum Erfassen einer Kollision und lichtempfindliche
Sensoren aufweisen.
-
Die
Gruppe 204 enthält
Icons für
ein gerades und nach vorne gerichtetes Bewegungsmuster, ein nach
vorne gerichtetes Zickzack-Bewegungsmuster, eine kreisförmige Bewegung
und eine Bewegung, die ein vorgegebenes Muster wiederholt. Diese
Bewegungsmuster werden nicht durch die Aktion von Sensoren bedingt
und sind daher unbedingt.
-
Die
Gruppe 205 enthält
ein erstes Icon für
ein Bewegungsmuster, das umgekehrt wird, wenn ein Hindernis erfasst
wird. Ein zweites Icon zeigt ein gerades und nach vorne gerichtetes
Bewegungsmuster, bei dem die nach vorne gerichtete Bewegung lediglich
durch die Erfassung eines Hindernisses korrigiert wird. Ein drittes
Icon bedingt die Einleitung eines Bewegungsmusters. Ein viertes
Icon beendet ein ablaufendes Bewegungsmuster, wenn ein Drucksensor aktiviert
wird. Die Icons in der Gruppe 205 stellen daher Bewegungsmuster
dar, die durch druckempfindliche Sensoren bedingt sind.
-
Die
Gruppe 206 enthält
Icons zum Starten eines Bewegungsmusters, das sich auf die stärkste Lichtintensität hin bewegt
bzw. eines Bewegungsmusters, das sich auf die schwächste Lichtintensität hin bewegt.
Die Lichtintensität
wird mittels lichtempfindlicher Sensoren erfasst. Die Icons in der
Gruppe 205 stellen daher Bewegungsmuster dar, die durch lichtempfindliche
Sensoren bedingt sind.
-
Die
Gruppe 207 enthält
drei identische Icons, die in Kombination anzeigt werden können, um
die Zeitkonstante anzugeben, mit der die erwähnten Bewegungsmuster ausgeführt werden
sollen. Zum Beispiel kann das Zickzack-Muster abgewandelt werden,
indem schrittweise die Zeitdauer geändert wird, die verstreichen
muss, bevor die Richtung geändert wird.
Die Zeitkonstante kann z. B. 2 Sekunden, 4 Sekunden oder 7 Sekunden
sein.
-
Die
Gruppe 208 umfasst Icons, die eine Mehrzahl von besonderen
Effekten darstellen. Diese Effekte können z. B. die Ausgabe von
verschiedenen Ton- und Lichtsignalen umfassen, optional verbunden
mit einer beliebigen Aktivierung der erwähnten Bewegungsmuster.
-
Da
das Spielelement der Erfindung ein Bauelement enthält, das
mit anderen Bauelementen verbunden werden kann, ist es besonders
einfach, die Funktionen zu realisieren, die auf den Icons gesehen werden
können,
indem eine Struktur mit einer Mehrzahl von Standardelementen aufgebaut
wird.
-
Es
sollte beachtet werden, dass die Anzeige vom LCD Typ, LED Typ oder
einem anderen Typ sein kann. Die Anzeige kann darüber hinaus
ausgelegt sein um verschiedene Arten von Textmitteilungen anzuzeigen.
Die Icons können
auch aus einem Text bestehen.
-
3a zeigt
ein erstes Diagramm einer Zustandsmaschine zur visuellen Programmierung
eines Spielelements. Die Zustandsmaschine ist als ein Programm implementiert,
das von dem Mikroprozessor 102 ausgeführt werden kann. Wenn die Zustandsmaschine
nicht ein vom Benutzer angegebenes Programm ausführt und wenn das Spielelement
angeschaltet worden ist, richtet die Betätigung der Taste „Select" den Fokus von einer
Gruppe von Icons auf eine andere Gruppe von Icons. Dass eine Gruppe von
Icons im Fokus liegt, kann durch das Blinken eines Icons in einer
Gruppe oder von allen Icons in einer Gruppe angezeigt werden. Die
gezeigte Zustandsmaschine umfasst drei Zustände 301, 302 und 303,
die dem Umschalten des Fokus zwischen drei verschiedenen Gruppen
von Icons entsprechen.
-
Die
Zustandsmaschine wechselt den Zustand, wenn die Tasten „Select" oder „Shift" betätigt werden.
Wenn die Taste „Select" betätigt wird,
findet das Umschalten zwischen den Zuständen 301, 302 und 303 statt.
Wenn die Taste „Shift" betätigt wird, fährt die
Zustandsmaschine in einer anderen Menge von Zuständen fort, wie in 3b gezeigt.
-
Es
sollte beachtet werden, dass in diesem Programm nur drei Zustände gezeigt
werden, entsprechend drei Gruppen von Icons auf der Anzeige 201.
Dies wurde gewählt,
um das Diagramm leicht verständlich
zu machen. In der Praxis muss eine Anzahl an Zuständen vorgesehen
sein, die der Anzahl der Gruppen von Icons auf dem Display entspricht. Darüber hinaus
kann ein Zustand für
die Übertragung von
Programmen vorgesehen sein.
-
3b zeigt
ein zweites Diagramm einer Zustandsmaschine zur visuellen Programmierung
eines Spielelements. Die Zustandsmaschine wird veranlasst, diese
Zustände
anzunehmen, wenn die Taste „Shift" betätigt wird.
Es wird angenommen, dass eine Gruppe von Icons in den Fokus genommen
wurde. Wenn „Shift" betätigt wird,
nimmt die Zustandsmaschine den Zustand 304 an, in dem das
erste Icon in der Gruppe, die in den Fokus genommen wurde, aktiviert
ist – die
anderen Icons derselben Gruppe werden nicht angezeigt.
-
Wenn
die Taste „Select" betätigt wird,
nimmt die Zustandsmaschine den Zustand 305 an, in dem „Regel
#1" ausgewählt wird. „Regel
#1" entspricht einem
Satz von Anweisungen für
den Mikroprozessor 102, die ein Bewegungsmuster ausführen können, wie
es auf dem Icon „Icon
#1" gezeigt ist.
Dann nimmt die Zustandsmaschine den Zustand 306 an, in
dem der Fokus von der gegenwärtigen
Gruppe von Icons auf eine andere Gruppe von Icons zur Auswahl eines Icons
aus dieser Gruppe verschoben wird.
-
Alternativ
nimmt die Zustandsmaschine, wenn im Zustand 304 die Taste „Shift" gewählt wird, den
Zustand 307 an, in dem das „Icon #2" auf dem Display angezeigt wird – die anderen
Icons derselben Gruppe werden nicht angezeigt. Wie in dem Zustand 304 ist
es in dem Zustand 307 möglich,
eine Regel auszuwählen,
die dem Icon entspricht. Dies erfolgt durch Betätigen der Taste „Select". Die Zustandsmaschine
nimmt dann den Zustand 308 zur Auswahl der Regel „Regel
#2" an. Nachfolgend
wird im Zustand 309 der Fokus zu der nächsten Gruppe von Icons verschoben.
-
Entsprechend
kann „Icon
#3" in einem Zustand 310 durch
Betätigung
von „Shift" angezeigt werden. „Regel
#3" kann durch Betätigung von „Select" ausgewählt werden.
Nachfolgend wird der Fokus auf eine andere Gruppe verschoben.
-
Eine
weitere Betätigung
von „Shift" im Zustand 310 führt dazu,
dass alle Icons in der Gruppe angezeigt werden. Dann werden die
Icons in der Gruppe einzeln gezeigt, wie oben beschrieben.
-
In
den Zuständen 306, 309 und 312 führt die Betätigung der
Taste „Shift" dazu, dass die Zustandsmaschine
einen der jeweiligen Zustände 302 oder 303 oder 301 annimmt.
-
Es
sollte beachtet werden, dass es auch möglich ist, in einer oder mehreren
Gruppen keine Regel auszuwählen.
In alternativen Ausführungsbeispielen
kann es darüber
hinaus möglich
gemacht werden, mehrere Regeln in derselben Gruppe auszuwählen.
-
Weiter
sollte beachtet werden, dass dieses Diagramm einer Anzeige mit nur
drei Icons in jeder Gruppe entspricht. Dies wurde gewählt, um
das Diagramm leicht verständlich
zu machen. In der Praxis muss eine Anzahl an Zuständen vorgesehen
sein, die der Anzahl von Icons in einer bestimmten Gruppe entspricht.
Im Allgemeinen führt
die Betätigung
der Taste „Run" 114 dazu,
dass die Zustandsmaschine einen Zustand annimmt, in dem ein Programm
ausgeführt
wird – unabhängig von
der Anzahl der ausgewählten
Regeln. Es ist daher nicht notwendig, den Benutzer zu fragen, ob
das Programm fertig ist oder nicht.
-
Es
ist möglich,
zu einer gewünschten
Gruppe von Icons zu springen, um nur eine Regel in einem vom Benutzer
festgelegtes Programm, das aus mehreren Regeln besteht, zu ändern.
-
In
einem ausgewählten
Zustand der Zustandsmaschine kann ein angegebenes Programm übertragen
werden.
-
3c zeigt
ein drittes Programm für
die Unterbrechung einer Zustandsmaschine. Dieses Programm zeigt,
wie die Zustandsmaschine im Zustand 314, nach Betätigung von „Interrupt", eine Darstellung
des Zustands T speichert, in dem sich der Mikroprozessor/die Zustandsmaschine
befindet. Es ist dadurch möglich,
einen plötzlich
unterbrochenen Programmierungsvorgang wieder aufzunehmen, ohne von
vorne beginnen zu müssen.
Im Zustand 315 wird das Spielelement ausgeschaltet.
-
3d zeigt
ein viertes Diagramm zum Starten einer Zustandsmaschine. Das Programm
zeigt, wie die Zustandsmaschine nach Betätigung von „Start" im Zustand 316 das Spielelement
einschaltet. Dann wird im Zustand 317 eine zuvor gespeicherte Zustandsdarstellung
T zurückgeholt.
Im Zustand 318 werden die Icons, die den Zustand T darstellen,
angezeigt. Im Zustand 319 erhalten die Icons der Gruppe 1 den
Fokus und dann ist die Zustandsmaschine für den Betrieb bereit, wie er
im Zusammenhang mit den 3a, 3b und 3c beschrieben
wurde.
-
Wie
aus der obigen Beschreibung der 3a, 3b, 3c und 3d ersichtlich
wird, kann der Benutzer das Spielelement in einfacher Weise programmieren,
um Programme auszuführen, die
komplizierte Funktionen enthalten. Die Programme werden durch Kombinieren
einer Anzahl von spezifischen Regeln erzeugt.
-
Die
oben beschriebene Zustandsmaschine kann in einer sehr kompakten
Weise implementiert werden. Dadurch wird sichergestellt, dass anspruchsvolle
und vom Benutzer festgelegte Funktionen als Antwort auf einen einfachen
Dialog mit dem Benutzer ausgeführt
werden können.
-
In
den Zuständen,
in denen eine Regel auswählt
wird, das heißt
in den Zuständen 305, 308 und 311,
führt das
Programmsystem 119 eine Anzahl von Operationen aus und
erzeugt dadurch ein vom Benutzer festgelegtes Programm, das von
dem Mikroprozessor 102 ausgeführt werden kann.
-
Das
vom Benutzer festgelegte Programm kann erzeugt werden, indem eine
Referenz (das heißt
ein Zeiger) in dem Speicher 121 gespeichert wird, die auf
eine Regel in dem Speicher 120 verweist. Wenn mehrere Regeln
ausgewählt
werden, um in dasselbe vom Benutzer festgelegte Programm aufgenommen
zu werden, wird eine Liste von Referenzen auf Regeln des Speichers 120 in
dem Speicher 121 abgelegt. Ein vom Benutzer festgelegtes Programm
kann daher eine oder mehrere Regeln umfassen.
-
Alternativ
kann das vom Benutzer festgelegte Programm dadurch programmiert
werden, dass eine Kopie von jeder der ausgewählten Regeln in dem Speicher 120 gemacht
wird, und die Kopien in den Speicher 121 eingefügt werden;
der Speicher 121 enthält
auf diese Weise das vollständige
Programm. Weiter kann das vom Benutzer festgelegte Programm als
eine Kombination von Referenzen auf Regeln und von Anweisungen an
den Mikroprozessor 102 erzeugt werden.
-
Es
sollte beachtet werden, dass jede Regel typischerweise einen Satz
von Anweisungen umfasst, die als ein Unterprogramm, eine Funktion
oder eine Prozedur angesehen werden können. Aber eine Regel kann
auch nur eine Änderung
eines Parameters enthalten, z. B. eines Parameters, der die Geschwindigkeit
eines verbundenen Motors oder eine Zeitkonstante angibt.
-
In
einer zweckmäßigen Ausgestaltung
der Erfindung kann eine vorbestimmte Aktion ausgeführt werden,
wenn die Zustandsmaschine von einem ersten Zustand in einen zweiten
Zustand wechselt. Die Aktion kann z. B. ein Signalisieren an den
Benutzer mit Ton und/oder Licht umfassen um den Zustand oder die
Art des Zustands anzuzeigen, den das Spielelement angenommen hat.
-
4 zeigt
die parallele und sequentielle Ausführung von Programmen. Wenn
ein vom Benutzer festgelegtes Programm erzeugt ist, können die Regeln
als sequentielle Abfolge von Regeln, parallel oder in einer Kombination
aus sequentieller und paralleler Programmausführung ausgeführt werden.
-
Ein
Beispiel für
zwei Regeln, die zeitlich parallel ausgeführt werden sollen, kann eine
erste Regel sein, nach der ein Fahrzeug nach Licht suchen soll, und
eine zweite Regel, nach der das Fahrzeug seine Richtung ändern soll,
wenn es Hindernisse entdeckt.
-
Ein
Beispiel für
zwei Regeln, die zeitlich nacheinander ausgeführt werden sollen, kann eine erste
Regel sein, nach der das Fahrzeug gerade nach vorne fahren soll,
und eine zweite Regel, nach der das Fahrzeug in einer kreisförmigen Bewegung fahren
soll.
-
Die
Regeln R1 401, R2 402, R3 406, R4 405, R5 403 und
R6 404 liefen ein Beispiel für eine Kombination von sequentieller
und paralleler Programmausführung.
-
Wenn
Regeln als Unterprogramme ausgeführt
werden, die zeitlich parallel laufen, oder in einer Form der Zeitaufteilung
zwischen den Unterprogrammen, muss es möglich sein, mit Situationen
umzugehen, in denen mehrere Regeln auf eine Ressource, beispielsweise
in Gestalt eines Motors, zugreifen wollen. In einer bevorzugten
Ausführungsform
wird eine derartige Situation behandelt, indem jeder der Regeln,
die ausgewählt
werden können,
eine Prioritätszahl
zugewiesen ist. Zum Beispiel können
Regeln innerhalb derselben Gruppe von Icons auf der Anzeige dieselbe
Prioritätszahl
erhalten. Wenn das Betriebssystem 118 erfasst, dass zwei
Regeln oder Unterprogramme innerhalb eines Zeitintervalls beide Zugang
zu einer Ressource haben wollen, wird die Regel mit der niedrigsten
Prioritätszahl
unterbrochen oder angehalten. Der Regel mit der höchsten Prioritätszahl wird
dann erlaubt, die Ressource zu benutzen. Wenn nur eine einzige Regel
aus derselben Gruppe von Icons ausgewählt werden kann, wird demgemäß eine eindeutige
und vorhersagbare Programmausführung
der vom Benutzer festgelegten Programme erreicht.
-
5 zeigt
ein erstes und zweites Spielelement, wobei das erste Spielelement
Programme zu dem zweiten Spielelement übertragen kann. Das erste Spielelement 501 umfasst
einen Mikroprozessor 507, ein I/O Modul 510, einen
Speicher 509 und eine Benutzerschnittstelle 508.
Das Spielelement 501 umfasst darüber hinaus eine Zweiweg-Kommunikationseinheit
zur Kommunikation über
einen Infrarot-Sender/-Empfänger 505 oder
zur Kommunikation mittels einer Einheit Lichtquelle/Lichtdetektor 504,
die sichtbares Licht aussenden und erfassen kann.
-
Entsprechend
umfasst das zweite Spielelement 502 einen Mikroprozessor 514,
ein I/O Modul 515 und einen Speicher 516. Das
Spielelement 502 umfasst darüber hinaus eine Kommunikationseinheit 513 zur
Kommunikation über
einen Infrarot-Sender/Empfänger 512 oder
zur Kommunikation mittels einer Einheit Lichtquelle/Lichtdetektor 511,
die sichtbares Licht aussenden und erfassen kann.
-
In
einem bevorzugten Ausführungsbeispiel der
Erfindung kann das erste Spielelement Daten sowohl übertragen
als auch empfangen, während
das zweite Spielelement Daten nur empfangen kann.
-
Daten
können
als sichtbares Licht über
einen Lichtleiter 503 übertragen
werden. Alternativ können Daten
als infrarotes Licht 517 und 518 übertragen werden.
Die Daten können
in der Form von Codes vorliegen, die eine bestimmte Anweisung und
zugehörige
Parameter darstellen, die von den Mikroprozessoren 507 und/oder 514 interpretiert
werden können.
Alternativ können
die Daten in der Form von Codes vorliegen, die sich auf ein Unterprogramm
oder eine Regel beziehen, das oder die in dem Speicher 516 gespeichert
ist.
-
Die
I/O Module 510 und 515 können mit elektrischen Einheiten
(z. B. Motoren) zur Steuerung derselben verbunden sein. Die I/O
Module 510 und 515 können auch mit elektrischen
Sensoren verbunden sein, so dass die Einheiten als Antwort auf erfasste Signale
gesteuert werden können.
-
In
einem bevorzugten Ausführungsbeispiel ist
die Faser 503 so ausgelegt, dass ein Teil des sichtbaren
Lichts, das von ihr übertragen
wird, aus der Faser entweicht. Es ist für den Benutzer daher möglich, die Übertragung – direkt – zu beobachten. Der
Benutzer kann z. B. sehen, wann die Kommunikation beginnt und endet.
-
Das
Licht durch die Faser kann Daten mit einer vorgegebenen Datenübertragungsfrequenz
als Änderungen
in dem Lichtpegel in der Faser übertragen.
Daten können
so übertragen
werden, dass es für
den Benutzer möglich
ist, jeweilige Änderungen des
Lichtpegels während
einer Übertragung
zu beobachten (das ist der Fall bei einer geeignet niedrigen Datenübertragungsfrequenz),
oder nur zu sehen, ob die Übertragung
andauert (das ist der Fall bei einer geeignet hohen Datenübertragungsfrequenz).
-
Im
Allgemeinen ist es nicht erwünscht,
dass ein Teil des durch die Faser zu übertragenden Lichts aus der
Faser entweicht. In Zusammenhang mit der Kommunikation zwischen
zwei Spielelementen ist es jedoch ein erwünschter Effekt, da es dann
möglich ist,
die Kommunikation einer sehr intuitiven Art und Weise zu beobachten.
-
Es
ist dem Fachmann bekannt, wie sichergestellt werden kann, dass ein
Teil des Lichts aus der Faser entweicht. Dies kann z. B dadurch
bewerkstelligt werden, dass in den Mantel der Faser Störstellen eingebracht
werden, oder indem mechanisch Kerben oder Muster in der Faser erzeugt
werden. Der Anteil des Lichts der aus der Faser entweichen soll,
kann auch dadurch eingestellt werden, dass das Verhältnis des
Brechungsindex eines Kerns zu dem eines Mantels des Lichtleiters
eingestellt wird.
-
Nachfolgend
wird beschrieben, wie ein Programm in dem Spielelement 502 empfangen
werden kann, wenn es in sich in einem Zustand R = P befindet.
-
6 zeigt
ein Flussdiagramm für
die Speicherung von Programmschritten. Das Flussdiagramm zeigt,
wie ein Benutzer eigene Regeln speichern kann, die von einer externen
Einheit übertragen
wurden, beispielsweise von einem zweiten Spielelement, wie oben
erwähnt,
oder von einem Personalcomputer. In einer Ausführungsform werden nur die Referenzen
auf die Regeln, die in dem Spielelement gespeichert sind, übertragen.
Dies verringert die erforderliche Bandbreite für die Kommunikation zwischen
den Spielelementen. In Schritt 602 wird geprüft, ob Download-Signale von externen
Einheiten empfangen werden. Wenn dies der Fall ist, wird in Schritt 603 geprüft, ob die
Download-Signale
gültig sind.
Wen die Signale nicht gültig
sind (Nein), wird in Schritt 604 ein Tonsignal abgespielt,
das einen Fehler anzeigt. Sind die Signale gültig (Ja), wird geprüft, ob die
Signale als Befehle zu interpretieren sind, die sofort auszuführen sind
(Ausführen),
oder ob die Signale als Befehle zu interpretieren sind, die in Hinblick auf
eine nachfolgende Ausführung
zu speichern sind (Speichern). Wenn die Befehle sofort auszuführen sind,
wird dies in Schritt 606 durchgeführt und das Programm kehrt
dann zum Schritt 602 zurück. Wenn die Befehle zu speichern
sind, wird in Schritt 607 ein Erkennungstonsignal abgespielt
und der Befehl wird in Schritt 608 als ein Programmschritt
in dem Speicher 609 gespeichert.
-
Ein
Beispiel für
einen Befehl, der sofort auszuführen
ist, kann sein, dass die Befehle in dem Speicher 609 auszuführen sind.
-
In
einem anderen Ausführungsbeispiel
können
eigene Regeln des Benutzers durch Erzeugen einer Kombination existierender
Regeln gebildet werden, ohne eine externe Einheit zu benutzen.
-
Beispiele
möglicher
Funktionen einer Reihe von regelbasierten Programmen R1–R7 sind
nachfolgend angegeben (Regel 1, Regel 2, Regel 3, Regel 4, Regel
5, Regel 6 und Regel 7).
- Regel 1:
- 1) Eine Pause von 1 Sekunde.
- 2) Eine Tonfolge (Start-Tonsignal) wird abgespielt.
- 3) Eine Pause von 0,5 Sekunden.
- 4) Eine Tonfolge (Rückwärts-Tonsignal)
wird abgespielt.
- 5) Der Motor läuft
für 5 Sekunden
rückwärts.
- 6) Der Motor hält
an.
- 7) Punkte 3–6
werden zweimal wiederholt (3 mal insgesamt).
- 8) Die Regel wird angehalten.
- Regel 2:
- 9) Eine Pause von 1 Sekunde.
- 10) Eine Tonfolge (Start-Tonsignal) wird abgespielt.
- 11) Eine Pause von 0,5 Sekunden.
- 12) Eine Tonfolge (Rückwärts-Tonsignal)
wird abgespielt.
- 13) Der Motor läuft
für 5 Sekunden
rückwärts.
- 14) Der Motor stoppt.
- 15) Eine Pause von 0,5 Sekunden.
- 16) Eine Tonfolge (Vorwärts-Tonsignal)
wird abgespielt.
- 17) Der Motor läuft
für 5 Sekunden
vorwärts.
- 18) Der Motor hält
an.
- 19) Punkte 3–10
werden zweimal wiederholt (3 mal insgesamt).
- 20) Die Regel wird angehalten.
- Regel 3:
- 1) Eine Pause von 1 Sekunde.
- 2) Eine Tonfolge (Einstell-Tonsignal) wird abgespielt.
- 3) Eine Tonfolge (Start-Tonsignal) wird abgespielt.
- 4) Eine Tonfolge (Rückwärts-Tonsignal)
wird abgespielt.
- 5) Der Motor läuft
für höchstens
7 Sekunden rückwärts.
- 6) Wenn Licht erfasst wird, bevor die 7 Sekunden (Punkt 5) verstrichen
sind:
– Der
Motor stoppt.
– Vorwärts-Tonsignal
wird abgespielt.
– Der
Motor läuft
vorwärts,
solange Licht erfasst wird.
Wenn das Licht verschwindet:
i.
Der Motor stoppt nach 0.5 Sekunden.
ii. Wenn das Licht innerhalb
von 2 Sekunden zurückkommt,
startet der Motor erneut.
iii. Wenn das Licht für 2 Sekunden
aus ist, bleibt der Motor abgeschaltet.
- 7) Punkte 4–6
werden wiederholt, solange Licht innerhalb der 7 Sekunden erfasst
wird und 3 Versuche ohne Licht gemacht wurden.
- 8) Der Motor hält
an.
- 9) Die Regel hält
an.
-
Ein
Beispiel für
die Erfahrung des Benutzers: Ein Modell wird aufgebaut, so dass
wenn das Modell rückwärts fährt, das
Modell sich dreht und wenn es vorwärts fährt, fährt es geradeaus. Die Regel
stellt daher eine Lichtsuchfunktion bereit – wenn der Benutzer Licht auf
das Modell wirft, fährt
das Modell vorwärts
auf den Benutzer zu.
-
7 zeigt
ein Programm zum Auswählen einer
Untermenge von Programmschritten aus einem Satz von Programmschritten
als Antwort auf die Auswahl einer Operation. Die Auswahl einer Operation kann
z. B. durch das Betätigen
des Schalters 111 ausgeführt werden. Das Flussdiagramm
beginnt in Schritt 700. Dann wird eine Untermenge von Programmschritten
ausgewählt.
-
Eine
Untermenge von Programmschritten wird auch eine Regel genannt. In 701 wird
eine Regel R aus einer Sammlung vorbestimmter Regeln R1–R7 in der
Form von regelbasierten Programmen, die in dem Speicher 110 gespeichert
sind, ausgewählt.
Im Schritt 702 wird entschieden, ob die auswählte Regel R
= R1 ist. Wenn dies der Fall ist (Ja), wird das regelbasierte Programm
R1 im Schritt 703 ausgeführt. Alternativ (Nein), wird
geprüft,
ob die Regel R = R2 ausgewählt
wurde. Entsprechend wird in den Schritten 704, 706 und 708 entschieden,
ob die ausgewählte Regel
die Regel 2, 3 oder 7 ist, und entsprechende regelbasierte Programme
werden in den Schritten 705, 707 oder 709 ausgeführt. Es
ist demgemäß möglich, eine
von mehreren vorbestimmten Regeln auszuwählen. Diese Regeln können z.
B. von dem Hersteller des Spielelements festgelegt werden.
-
Wie
oben beschrieben ist es möglich,
vom Benutzer durch Kombinieren der vorbestimmten Regeln festgelegte
Regeln zu speichern.
-
8 zeigt
eine Spielstruktur mit einem von einem Mikroprozessor gesteuerten
Spielbauelement nach der Erfindung, verbunden mit allgemein bekannten
Spielbauelementen. Das von einem Mikroprozessor gesteuerte Spielbauelement 801 ist
auf eine Struktur 805 von Bauelementen und zwei Motoren (nicht
gezeigt) oben aufgesetzt. Die Motoren treiben ein Rad auf jeder
Seite des Fahrzeugs an, wobei nur das Rad 802 auf einer
Seite der Spielstruktur sichtbar ist. Die Räder werden von einer Welle 804 angetrieben,
die mit dem Motor über
Getrieberäder 803 verbunden
ist. Die Motoren sind mit Drähten 815 elektrisch
mit dem Spielbauelement 801 verbunden.
-
Die
Spielstruktur umfasst darüber
hinaus zwei bewegliche Arme 806, die um ein Lager 807 schwenkbar
sind, so dass die Arme, wenn sie geschwenkt werden, eine Gruppe
von Schaltern 808 beeinflussen können. Die Schalter 808 sind über Drähte 809 elektrisch
mit dem Spielelement 801 verbunden.
-
Das
Spielelement kann über
die Tasten 813 bedient werden. Die Anzeige 812 kann
Information anzeigen, wie oben in Zusammenhang mit 2 beschrieben.
Das Spielelement 801 hat einen Satz von elektrischen Kontaktflächen 810 und 811,
mit denen die Drähte 809 und 815 zum
Empfangen von Signalen bzw. zum Ausgeben von Signalen verbunden werden
können.
-
Durch
geeignete Programmierung des Spielelements 801 kann das
Fahrzeug veranlasst werden, um Hindernisse, die die Arme 806 beeinflussen
können,
herumzufahren.