| |

Scratch – Übersetzer programmieren

Dies ist eine Aufgabe aus dem Bereich der fortgeschrittenen Scratch-Programmierung. Du lernst einen Deutsch-Englisch Scratch-Übersetzer zu programmieren. Dabei verwendest du Scratch-Erweiterungen, den Eingabeblock, Nachrichten und arbeitest mit eigenen Blöcken kennen.

Ich gehe in diesem Blogbeitrag davon aus, dass du bereits einige Kenntnisse im Umgang mit Scratch hast und werde einige Punkte weniger ausführlich erklären. Falls du noch keine Scratch-Kenntnisse hast oder deine Kenntnisse erst etwas auffrischen möchtest, empfehle ich dir zunächst meinen Scratch-Einstiegskurs zu bearbeiten.

Ausprobieren

Bevor du mit dem Programmieren deines eigenen Übersetzers beginnst, kannst du zunächst das von mir entwickelte Programm ausprobieren. Ich habe einen Babelfish programmiert, der vom Deutschen ins Englische übersetzt. Du kannst im Eingabefeld beliebige Wörter oder ganze Sätze eintragen. Schalte den Sound an deinem Rechner an, damit du meinen Babelfish auch sprechen hören kannst.

Kurzanleitung

Zur vollständigen Anleitung wechseln

Mit der Kurzanleitung stelle ich dir einen schnellen Einstieg in die Programmierung deines Übersetzers zur Verfügung. Sie eignet sich besonders, wenn du dich bereits gut mit der Programmierung von Scratch auskennst. Falls du eine detailliertere Anleitung bzw. genauere Informationen zu den einzelnen Schritten benötigst, dann nutze doch die vollständige Anleitung weiter unten in diesem Blogbeitrag.

Öffne nun den Programmcode meines Beispielprogrammes. Nutze dafür einfach den folgenden Link: https://scratch.mit.edu/projects/638089110/editor/.

Schau dir meinen Übersetzer genau an. Das Programm besteht lediglich aus einem Bühnenbild (Unterwasserwelt) und einer Figur (Babelfish). Besonders in diesem Programm ist, dass ich für die Figur in der Blockauswahl die beiden Erweiterungen „Text-zu-Sprache“ und „Übersetzung“ aktiviert habe. Diese werden im Programm verwendet, um die Figur sprechen zu lassen und um die eingegebenen Texte zu übersetzen.

Nun bist du dran: Suche dir ein eigenes Hintergrundbild und eine eigene Figur aus.

Screenshot Blockerweiterungen

Aktiviere anschließend den Erweiterungsblock „Text zu Sprache“ über die Blockauswahl ganz unten links.

Übernimm dann die Programmsequenzen aus dem Beispielprogramm in deines eigenes Programm. Alle Sequenzen habe ich in Scratch mit Kommentaren versehen, die dir die Funktionsweise der einzelnen Abschnitte genauer erklären. Neu in diesem Programm ist, die Arbeit mit eigenen Blöcken und Nachrichten. Lies dir die Kommentare gut durch, sie erklären dir genauer wie die jeweiligen Programmsequenzen funktionieren.

Wenn du alle Code-Blöcke in dein eigenes Programm übernommen hast, dann kannst du dieses über das kleine grüne Flaggen-Symbol starten.

Teste nun deinen Übersetzer und probiere aus, ob alles funktioniert wie geplant. Spricht deine Figur die eingegebenen Texte laut aus? Kannst du selbst eigene Wörter und Texte zum Übersetzen eingeben? Wird auch richtig übersetzt? Wenn alles funktioniert wie erwartet, dann zeige deinen Übersetzer deiner Familie oder deinen Freund:innen und lass‘ ihn durch diese testen. Falls dein Übersetzer noch nicht richtig funktioniert, dann schau doch mal, ob du mit Hilfe der vollständigen Anleitung weiter unten in diesem Blogbeitrag deine Probleme beheben kannst.

Gut gemacht! Du hast in Scratch deinen eigenen Übersetzer programmiert und dabei Scratch-Erweiterungen genutzt. Außerdem weißt du nun, wie du die Nutzer:innen deines Scratch-Programmes dazu auffordern kannst, Texteingaben zu machen und wie du die eingegebenen Texte im Scratch-Programm weiterverarbeitest.

Herausforderungen

Möchtest du dein Programm noch etwas weiter erweitern, dann versuch dich doch selbstständig an einer dieser Herausforderungen:

  • Ermögliche die Übersetzung in unterschiedliche Sprachen. Du könntest dafür beim Programmstart eine Auswahl der verfügbaren Sprachen anbieten.
  • Nutze unterschiedliche Figuren, um in die unterschiedlichen Sprachen zu übersetzen. Du kannst dafür mit verschiedenen Kostümen oder mit mehreren Figuren arbeiten.
  • Ergänze deine Figur mit einer umfangreichen Animation, jedes Mal wenn diese übersetzt. Du könntest die Figur zum Beispiel zu einer Kiste mit Büchern gehen und die Übersetzung in einem Buch heraussuchen lassen.

Vollständige Anleitung

Schritt 1: Bühnenbild und Figur auswählen

Öffne zunächst die Scratch Entwicklungsumgebung und erstelle eine neues Programmierprojekt. Du kannst dafür den nachfolgenden Link nutzen:

Wähle dir nun ein Bühnenbild und eine Figur in Scratch aus oder zeichne diese selbst. Wie das geht, hast du bereits in meinen Scratch-Einstiegskurs gelernt.

Schritt 2: Erweiterungsblöcke einschalten

Für diese Aufgabe wirst du das erste Mal mit Erweiterungen in Scratch arbeiten. Erweiterungen sind neue Blöcke, die dir noch mehr Funktionalitäten zur Verfügung stellen, um dein Scratch-Programm zu gestalten. Wenn du ein neues Scratch-Projekt erstellst, werden die verschiedenen Erweiterungsblöcke noch nicht angezeigt. Die Blockübersicht beschränkt sich auf die wichtigsten Blöcke, die du benötigst, um deine Figuren zu bewegen, deren Aussehen zu verändern und so weiter. Wenn du eine Erweiterung nutzen möchtest, dann musst du die Erweiterung zunächst aktivieren. Das machst du über die folgende Schaltfläche, die du in Scratch in der Blockübersicht ganz unten links findest:

Scratch Schaltfläche zum Aktivieren einer Erweiterung

Klicke die Schaltfläche an. Es öffnet sich eine Übersicht, die dir alle verfügbaren Erweiterungen zur Auswahl stellt.

Screenshot Scratch Erweiterungen Auswahl

Wähle hier nun die Erweiterung „Text zu Sprache“ aus, indem du diese einfach anklickst. Du gelangst nun automatisch wieder in die Programmübersicht deiner Figur und siehst die Erweiterung nun in der Blockübersicht links unterhalb des Bereichs „Meine Blöcke“.

Screenshot Blockübersicht mit "Text zu Sprache" Erweiterung

Wiederhole nun die Schritte zum aktivieren einer Erweiterung und ergänze noch die Erweiterung „Übersetzen“. Nachdem du auch diese Erweiterung hinzugefügt hast, wird dir diese ebenfalls in der Blockübersicht angezeigt. Jetzt bist du bereit, um mit der Programmierung deiner Figur zu beginnen.

Screenshot Blockübersicht mit Erweiterung "Übersetzung"

Schritt 3: Eigenen Block zum Sprechen programmieren

Nun beginnst du mit der Programmierung deiner Figur. Achte darauf, dass du dich nicht in der Programmieroberfläche des Bühnenbildes befindest, sondern deine Figur durch Anklicken in der Figurenauswahl aktiviert hast.

In dieser Aufgabe werden wir das erste Mal mit eigenen Blöcken arbeiten. Lies dir zunächst die grundlegende Erklärung zu eigenen Blöcken im nachfolgendem Kasten durch.

Erklärung: Eigene Blöcke

Eigene Blöcke helfen dir deinen Programmcode zu vereinfachen und übersichtlicher zu gestalten. Anstatt den selben Code an mehreren Stellen identisch zu programmieren, schreibst du ihn nur einmal in einem eigenen Block. Diesen eigenen Block kannst du dann an verschiedenen Stellen einbinden. Du kannst den eigenen Block beim Einbinden auch beliebige Werte übergeben, die du vorher festlegst. Diese Werte werden „Parameter“ genannt. Parameter sind wie Variablen. Der Unterschied ist jedoch, dass du mit den Parametern nur in deinem eigenen Block arbeiten kannst. Mit Variablen arbeitest du im ganzen Scratch-Programm. Du kannst dir noch immer nicht so richtig vorstellen, was ein eigener Block ist? Dann schau dir folgendes Beispiel an. In diesem Beispiel möchtest du, dass deine Figur jedes Mal einen Ton von sich gibt, bevor sie geht. Dafür wird ein neuer eigener Block gehen (x) (y) angelegt. In diesem wird ein Klang abgespielt und anschließend der vorhandene Block gehe zu x: (x) y: (y) genutzt. Im Programm kannst du nun immer den neuen Block nutzen, indem du die gewünschten x- und y-Positionen ergänzt (gehen (10) (20)).

Screenshot Beispiel für eigene Blöcke

Neuen Block anlegen

Für unser Übersetzungsprogramm werden wir einen eigenen Block definieren, in dem das Sprechen unserer Figur programmiert wird. Als Parameter werden wir dem Block den Text, der gesprochen wird, sowie die Sprache, in der gesprochen wird, übergeben. Wechsle nun zunächst in den Blockabschnitt „Meine Blöcke“.

Screenshot Blockabschnitt Meine Blöcke

Zum Anlegen eines neuen eigenen Blockes musst du die Schaltfläche „Neuer Block“ anklicken.

Screenshot Schaltfläche Neuer Block

Es öffnet sich ein Eingabefenster, in dem du deinen eigenen Block anlegen kannst.

Screenshot Eingabemaske Neuer Block

Als erstes wirst du nun den Namen für deinen Block ändern. Ersetze dafür die Bezeichnung „Blockname“ durch den Text „Spreche den Text:“.

Screenshot Blockname erster Teil

Als nächstes fügst du den ersten Parameter ein. Nutze dafür diese Schaltfläche:

Screenshot Eingabefeld im Block ergänzen

Nenne den Parameter um, indem du einfach in das Feld in der Blockanzeige klickst. Vergebe den Namen „Text“.

Screenshot erster Blockparameter

Nun fügen wir einen weiteren Textteil in unserem Blocknamen ein. Nutze dafür diese Schaltfläche:

Screenshot Beschriftung in Blocknamen ergänzen

Passe die neue Beschriftung mit dem Text „in Sprache:“ an.

Screenshot Blockname zweiter Teil

Im letzten Schritt ergänzt du nun einen zweiten Parameter (Eingabefeld vom Typ „Text oder Zahl“), den du als „Sprache“ bezeichnest.

Screenshot Block mit zweitem Parameter

Nun hast du deinen eigenen Block fertig erstellt und musst diesen noch über die Schaltfläche „OK“ speichern.

Screenshot Anlegen neuer Block bestätigen

Dein neuer Block wird nun automatisch angelegt und er steht dir in der Blockauswahl zur Verfügung.

Screenshot Neuer Block ist angelegt

Eigenen Block definieren

Nachdem du deinen eigenen Block angelegt hast, musst du nun noch programmieren, was dieser Block tun soll. Für unseren Übersetzer sieht der Programmcode wie folgt aus:

Screenshot Programmsequenz eigener Block "Sprechen"

In dieser Programmsequenz passieren nun einige Dinge, die für dich neu sind.

Nachricht verschicken

Als erstes wird eine Nachricht versendet. Lies dir zunächst die nachfolgende, allgemeine Erklärung zu Nachrichten gut durch, bevor du mit dem Programmieren deines Übersetzers fortfährst.

Erklärung: Nachrichten

In Scratch kannst du Nachrichten verwenden, wenn ein Ereignis eintritt, über das du die verschiedenen Skripte deines Programmes informieren willst. An einigen Stellen nutzt Scratch diese Nachrichten intern, ohne das du etwas davon mitbekommst. Wenn du beispielsweise die kleine grüne Flagge anklickst, dann wird automatisch die Nachricht „Programm gestartet“ verschickt. Dein Programmcode kann dann auf dieses Ereignis reagieren, indem du den Ereignisblock Wenn (grüne Flagge) angeklickt wird nutzt. Du kannst beliebige eigene Nachrichten erstellen und verschicken. Du findest die passenden Blöcke in der Blockübersicht im Bereich „Ereignisse“. Nutze den Block sende (Nachricht1) an alle, um eine eigene Nachricht zu verschicken. Mit dem Block Wenn ich [Nachricht1] empfange kannst du dann an anderer Stelle auf dein Ereignis reagieren.

Screenshot Nachrichten Blöcke

Für unseren Übersetzer wollen wir nun eine Nachricht versenden, die das Programm darüber informiert, dass die Figur gerade spricht. Nutze zum Versenden der Nachricht den Block sende (Nachricht1) an alle aus dem Blockbereich „Ereignisse“. Klicke anschließend auf den Text „Nachricht1“ des Blockes. Es öffnet sich eine kleine Auswahl. Klicke hier „Neue Nachricht“ an.

Screenshot neue Nachricht anlegen

Vergib nun einen neuen Namen für deine Nachricht. Ich habe den Namen „Figur spricht jetzt“ angegeben.

Screenshot Nachrichtennamen angeben

Sprachausgabe

Im nächsten Schritt ergänzen wir nun die Sprachausgabe in deinem eigenen Block. Du nutzt dafür die Blöcke aus der Erweiterung „Übersetzung“. Die Sprachausgabe erfolgt in zwei Schritten.

Screenshot Sprachausgabe

Als erstes musst du deiner Figur sagen, in welcher Sprache diese sprechen soll. Nutze dafür den Block setze Sprache auf (Deutsch). Statt der voreingestellten Sprache „Deutsch“ musst du die Sprache aus deinem Parameter „Sprache“ verwenden. Sie dir im nachfolgenden Bild an, wie das geht: Klicke mit deiner linken Maustaste im Block Definiere [Spreche ...] auf den Parameter. Halte dann die linke Maustaste gedrückt und ziehe den Parameterblock nach unten. Wenn sich dein Mauszeiger über dem Auswahlfeld „Deutsch“ im Block setze Sprache auf (Deutsch) ist, dann lässt du die linke Maustaste los.

Animierter Screenshot Parameter nutzen

Als zweites ergänzt du nun noch den Erweiterungsblock sage (Hallo) und ersetzt den Wert (Hallo) durch den Parameter „Text“.

Abschluss Sprachausgabe

Nachdem deine Figur den gewünschten Text gesprochen hat, müssen wir die Sprachausgabe noch ordentlich beenden. Später werden wir in einem zweiten Skript programmieren, dass deine Figur während des Sprechens eine Animation ausführt. Wenn die Sprachausgabe beendet ist, wollen wir diese Animation stoppen. Dafür ändern wir das Kostüm unserer Figur auf das Ausgangskostüm zurück (wechsle zu Kostüm (...)), stoppen das andere Animationsskript (stoppe [andere Skripte der Figur]) und warten einen kurzen Moment (warte (1) Sekunden).

Screenshot Abschluss Sprachausgabe

Schritt 4: Animation beim Sprechen programmieren

Benötigte Kostüme erstellen

Wie im letzten Schritt bereits angekündigt, programmieren wir als nächstes eine Animation für unsere Figur. Dafür benötigt deine Figur mehrere Kostüme. Ein Kostüm mit geschlossenem Mund und ein Kostüm mit offenem Mund. Da mein Fisch noch kein Kostüm mit offenem Mund besaß, habe ich einfach ein eigenes Kostüm erstellt. Ich habe dafür das erste Kostüm (pufferfish-a) per Rechtsklick in der Kostümübersicht dupliziert und anschließend im neuen Kostüm (pufferfish-a2) den offenen Mund selbst gezeichnet.

Screenshoot alle Kostüme
Screenshot Kostüm pufferfish-a
Screenshot pufferfish-a2

(Zum Vergrößern anklicken)

Animation programmieren

Sobald du die beiden benötigten Kostüme für deine Figur erstellt hast, kannst du die Animation programmieren.

Screenshot Programmsequenz Animation

Die Programmierung ist eigentlich ganz einfach. Du startest die Animation sobald dein eigener Block aus Schritt 3 die Nachricht „Figur spricht jetzt“ versendet hat (Wenn ich [Figur spricht jetzt] empfange). Von diesem Zeitpunkt an wirst du fortlaufend (wiederhole fortlaufend) zwischen den beiden Kostümen für den offenen und den geschlossenen Mund wechseln (wechsle zu Kostüm (...)). Zwischen den Wechseln baust du noch eine kleine Pause ein (warte (0.2) Sekunden), damit jedes Kostüm auch für einen kurzen Moment sichtbar ist. Probiere selbst aus, welche Pausenzeit du passend findest. Ich habe mich für eine Länge von 0.2 Sekunden entschieden. Wenn du etwas mehr Abwechselung einbauen willst, kannst du statt mit einer festen Länge auch mit dem Zufallszahlen-Operator arbeiten.

Screenshot Zufallszahlen

Schritt 5: Übersetzer programmieren

Im letzten Schritt programmieren wir nun den eigentlicher Übersetzer. Das passiert in drei Schritten: der Programmierung eines Intros, der Abfrage des Textes der übersetzt werden soll und zum Schluss der Übersetzung und Ausgabe des Textes.

Screenshot Programmsequenz Übersetzer.

Intro programmieren

Zum Start des Programmes spricht die Figur zunächst ein paar einleitende, erklärende Sätze. Dafür wird als erstes mit Hilfe des Erweiterungsblockes ändere die Stimme zu (Tenor) festgelegt, wie die Sprachausgabe klingen soll. Du kannst hier ebenso wie ich „Tenor“ für eine tiefe, männliche Stimme wählen oder du wählst eine beliebige andere Stimmfarbe aus. Anschließend benutzen wir unseren eigenen Block, denn wir in Schritt 3 erstellt haben (spreche den Text: (...) in Sprache: (Deutsch)), um eine Begrüßung auszusprechen und die Nutzer:innen aufzufordern, einen Text einzugeben. Als Ausgabesprache verwenden wir dabei den festen Wert „Deutsch“.

Screenshot Intro

Eingabeaufforderung für Text

Der Code, der auf das Intro folgt, wird in einer fortlaufenden Schleife abgeprüft (wiederhole fortlaufend). Damit die Nutzer:innen einen eigenen Text eingeben können, musst du den Block frage (...) und warte aus dem Blockbereich „Fühlen“ verwenden. Ergänze im Block deine Eingabeaufforderung („Schreib mir….“).

Screenshot frage-Block

Beim Ausführen deines Übersetzers sieht das dann später wie in dem nachfolgenden Bild aus. In das Eingabefeld am unteren Bildschirmrand kann mit der Tastatur ein Text eingegeben werden.

Screenshot Eingabeaufforderunge

Übersetzen

Im letzten Schritt muss noch der von den Nutzer:innen eingegebene Text übersetzt werden. Die Übersetzung befindet sich in der fortlaufenden Schleife direkt nach dem Frage-Block. Für die Übersetzung nutzen wir den Erweiterungsblock (übersetze (Antwort) nach (Englisch)). Die Variable „Antwort“ findest du im Bereich „Fühlen“. Sie enthält den Text, den die Nutzer:innen im Übersetzer eingegeben haben. Für die Sprachausgabe nutzen wir wieder unseren eigenen Block zum Sprechen. Als Text-Parameter übergeben wir dem Block die übersetzte Antwort und als Sprache-Parameter übergeben wir den festen Wert „Englisch“.

Screenshot übersetzen

Geschafft!

Du hast es nun geschafft und deinen eigenen Übersetzer geschrieben. Zeit ihn auszutesten! Wenn du dein Programm im Anschluss noch etwas erweitern möchtest, dann schau‘ dir doch noch die Herausforderungen dieser Aufgabe am Ende der Kurzanleitung an.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert