Hallo zusammen,
ich habe den Spracherkennungssensor von DFRobot auch mit dem Calliope v3 und MicroBlocks auszuprobiert. Die Beiträge von Lutz und Michael hier im Calliope-Forum Erweiterungen zur Spracherkennung konnten ein großes Interesse bei mir wecken. Der Beitrag von Mahesh Yadav Getting started with the DFRobot Voice Recognition Sensor bei Hackster.io hat mir dann in mehreren Videos und Beispielprogrammen wichtige Nutzungsdetails aufgezeigt. Der Sensor ist preiswert und macht Spaß! Ja, es ist total einfach und eindrucksvoll, den Calliope mit gesprochenen Befehlen zu steuern … und nebenbei übt der Sensor die klare Aussprache der Befehle.
MicroBlocks verfügt bereits über eine Library für diesen Voice Recognition Sensor, programmiert von José García Yeste. Mir habe es mir nicht nehmen lassen, die Library zu überarbeiten und die Programmierung zu vereinfachen. In der ursprünglichen Version musste man nämlich bei der Nutzung vorhandener Befehle ständig ins Datenblatt schauen. Der Sensor wandelt erkannte Texte in Befehlsnummern um und diese Begehlsnummern müssen bei der Programmierung in der Entscheidungskette mit if … then … else eingetragen werden. Ich habe die vorhandenen Befehle und deren Nummern in einem Block verfügbar gemacht, so dass der Programmcode wirklich lesbar wird. Ich gehe davon aus, dass die Library in der verbesserten Form bald fest in MicroBlocks eingebaut sein wird. Bis es soweit ist, könnt ihr die hier anhängende Datei in MicroBlocks nachladen … der Menüpunkt heißt „füge Modul hinzu“ und dort lässt sich auch eine Datei von der eigenen Festplatte nachladen.
Der Sensor wird über I2C mit dem Calliope verbunden. Hierbei ist zu beachten, dass DFRobot die Kontakte leider anders angeordnet hat als sie am Calliope-Grove-Adapter A0 anliegen. Ich habe das dem Sensor beiliegende Kabel verwendet und über ein Grove-Kabel mit vier Dupont-Steckern (male) die Kontakte richtig sortiert. rot–rot (3.3V), schwarz–schwarz (GND), grün–gelb (SDA), blau–weiß (SCL).
Viel Erfolg bei euren Experimenten!
Herzliche Grüße
Ralf
