3 Möglichkeiten, den Arduino-Projekten Sprachsteuerung hinzuzufügen
Ich fange an, mein Arduino in letzter Zeit wirklich zu lieben; Nachdem ich die grundlegenden Tutorials durchgearbeitet und sogar einen LED-Würfel gemacht hatte, war ich bereit, etwas weitaus komplexeres anzugehen. Glücklicherweise ist die Sprachsteuerung eines Arduino-Projekts nicht so komplex, wie ich gedacht hatte - daher gibt es drei verschiedene Ansätze, die Sie ergreifen können.
Verwendung von OSX Automator und Speakable Items
Eine Möglichkeit, dies zu erreichen, ist die Verwendung der in OSX integrierten Sprachbefehls-Dienstprogramme. Das Einrichten benutzerdefinierter Befehle zum Auslösen von Automator-Aktionen ist einfach. (Wenn Sie mit Automator nicht vertraut sind, laden Sie unseren kostenlosen PDF-Leitfaden zur Automatisierung Ihres Mac herunter!)
Auf der Seite des Arduino-Codes verwenden wir einen String-Puffer, der in diesem Arduino-Forenthread ausführlich beschrieben ist. Dies ermöglichte uns die Suche nach exakten Wörtern in der seriellen Kommunikation. Ohne dies habe ich die Typumwandlungen gefunden Zahlen, Bytes, und Streicher problematisch sein. Hier ist der vollständige Arduino-Code zum Abhören serieller Befehle. Sie müssen jedoch eigene Befehle und Hardware hinzufügen, um die Geräte tatsächlich zu steuern, da dies nicht Gegenstand dieses Arduino-Projekt-Lernprogramms ist. Wenn Sie Relais verwenden, denken Sie daran, dass sie damit umgehen können 120-240vAC. Wenn Sie das alles noch nicht kennen, sollten Sie zuerst unseren Arduino-Führer für Anfänger lesen.
Laden Sie als Nächstes dieses serielle Arduino-Dienstprogramm herunter, mit dem Sie über die Befehlszeile oder das Shell-Skript direkt mit dem Arduino kommunizieren können. Fügen Sie dies in das Stammverzeichnis Ihres Benutzerverzeichnisses ein, öffnen Sie eine Terminalsitzung und geben Sie Folgendes ein:
mache arduino-seriell
um das Paket für Ihr System zu kompilieren.
Die Verwendung dieses Dienstprogramms ist ziemlich einfach, aber beginnen Sie mit der Eingabe
ls /dev/tty.*
um herauszufinden, an welchem Port sich Ihr Arduino befindet (der USB-Port). Dann, um einen Befehl zu senden, verwenden Sie:
./ arduino-serial -b 9600 -p /dev/tty.usbmodemfd13411 -s lightsOn
Ersetzen /dev/tty.usb~ mit dem genauen Namen, den Sie für Ihren mit dem Arduino verbundenen USB-Port gefunden haben. Auf der Originalseite finden Sie weitere Verwendungsbeispiele, einschließlich des Abrufs eines Rückgabewerts. Dies ist jedoch vorläufig der Fall.
Eine Sache, die ich gefunden habe, ist, dass ich musste “Kickstart” das Arduino durch Senden eines Befehls mit der Arduino Serial Monitor Erst funktionierte alles gut. Wenn jemand weiß, warum dies der Fall ist, würde ich gerne hören.
Als nächstes öffnen Automator und ein neues erstellen Anwendung. Finden Sie das Führen Sie ein Shell-Skript aus Aktion, fügen Sie es hinzu und fügen Sie den seriellen Befehl ein, um die Lichter einzuschalten.
Speichern Sie das auf Bibliothek / Sprache / sprechbare Elemente Ordner mit den Wörtern, die Sie die Aktion auslösen möchten - in meinem Fall “Lichter an”.
Aktivieren Sie dann die sprechbaren Befehle von der Zugänglichkeit Voreinstellungsfenster.
Dieses Tutorial von 2009 So verwenden Sie Sprachbefehle auf Ihrem Mac So verwenden Sie Sprachbefehle auf Ihrem Mac Mehr lesen ist immer noch relevant, aber im Grunde möchten Sie die Globale sprechbare Elemente.
Hier ist eine Demo von allem, das funktioniert.
Easy VR Shield (Hardware)
EasyVR ist ein Add-On-Hardwareschild, das zuerst die vorab aufgezeichneten Sprachproben codiert und dann eine hardwarebasierte Lösung für das Pattern-Matching verwendet. Das Setup ist etwas kompliziert und jeder Befehl reagiert nur auf einen einzelnen Voice-Eindruck. Dies ist jedoch die umfassendste Wahl, wenn das Projekt computerunabhängig sein soll. Das EasyVR Shield kostet £ 35 von CoolComponents in Großbritannien oder $ 50 von SparkFun in den USA. Hier ist eine Demo des Schilds in Aktion zusammen mit dem Kodierungsprozess:
SiriProxy über Ruby
Wenn Sie ein Siri-fähiges iPhone mit Jailbreak haben, ist Siri Proxy eine großartige Möglichkeit, die Spracherkennungsfunktionen Ihres Telefons zu nutzen. SiriProxy ist eine Ruby-App, die die erkannten Befehle überprüft und an die Server von Apple sendet. auf eine Weise hinzufügen, um mit Arduino zu kommunizieren, und Sie haben SiriProxy-Arduino. Der einzige Nachteil ist, dass Sie eine spezielle Skizze in das Arduino hochladen müssen, die eine Ruby-API implementiert. Sie müssen diese entweder anpassen oder alles in Ruby auf der Computerseite programmieren.
Dort haben Sie es - 3 einzigartige Möglichkeiten, jedes Arduino-Projekt allein mit Ihrer Stimme zu steuern. Versuchst du eine Stimme, die deine Lichter steuert? Glauben Sie, Sie könnten diese Ideen in einem anderen Projekt nutzen? Lass es uns in den Kommentaren wissen!
Erfahren Sie mehr über: Arduino, Spracherkennung.