Neue Funktionen in HTML5
Mit HTML5 wurden viele neue Funktionen eingeführt. Der Großteil dreht sich um Multimedia-Funktionen wie Video und Audio. Es gibt aber auch Funktionen, die sich sehr gut eignen um damit Roboter zu steuern. Eine davon sind Websockets, auf die ich in einem anderen Artikel noch genauer eingehen werde. Eine andere Funktion ist das Auslesen von Sensoren per JavaScript.
Beschleunigungssensor per JavaScript
In Smartphones und Tablets sind mehrere Sensoren verbaut, die sich mit modernen Browsern auslesen lassen, wie z. B. GPS, Beschleunigungssensor und Gyroskop. Ich werde hier den Beschleunigungssensor auslesen und zur Steuerung des Roboters verwenden.
Dazu muss eine html-Seite mit Javascript erstellt werden, in der ein Eventlistener für “devicemotion” erstellt wird. Dieses Event liefert dann mehrmals in der Sekunde die Werte für die Beschleunigung in x-, y-, und z-Richtung. Wenn das Tablet in Ruhe ist, wirkt auf den Sensor nur die Erdanziehung. Das heißt, wenn das Tablet ruhig am Tisch liegt, sollte der Wert für die z-Achse bei etwa 9,8 liegen, der für die x- und y-Achse bei 0. Ob dein Tablet diese Funktionen unterstützt, kannst du auf dieser Website ausprobieren: http://jsfiddle.net/jdias/SrxtE/ Auf dieser Website findest du auch Code-Beispiele.
Ich verwende folgenden Code:
window.addEventListener("devicemotion", acceleration, false);
function acceleration(event) {
acc_x = event.accelerationIncludingGravity.x;
acc_y = event.accelerationIncludingGravity.y;
}
In den Variablen acc_x und acc_y werden dann die Werte für die Beschleunigung gespeichert. Diese können dann im weiteren Programmverlauf ausgewertet werden.
Steuerung des Roboters
Ich verwende acc_y um die Geschwindigkeit des Roboters zu steuern. Der Roboter fährt dann schneller wenn man das Tablet nach vorne kippt. acc_x wird für die Lenkung verwendet. Wenn man das Tablet nach links kippt, fährt der Roboter nach links und umgekehrt. Diese Daten werden per Websocket an einen Webserver auf den Roboter geschickt, der dann die Motoren entsprechend ansteuert.
Im Folgenden noch ein Video mit der Steuerung
Kommentare
Kommentarfunktion für diesen Artikel geschlossen.