Beiträge von Tobias195

    Ah ja, danke, das konnte ich beheben.


    Soo das könnte eine meiner letzten Fragen sein, mein Projekt ist fast so, wie ich es mir vorgestellt habe.
    Ich habe jetzt an meinen Roboter eine Kamera für einen Livestream auf der Website angeschlossen.
    Das klappt auch schon gut. Ich habe den Stream im HTML-Code einfach unter das Bedienfeld eingefügt.
    Die Darstellung auf dem Smartphone gefällt mir auch schon gut, da wird der Livestream schön unter dem Bedienfeld dargestellt. Ein Bild habe ich angehängt! Nur bei Bedienung über PC gefällt mir das noch nicht so ganz. Bzw. Das hngt natürlich auch alles von der Bildschirmgröße ab.. bei meinem Ultrabook ist die Darstellung leider nicht schön, da wäre natürlich schöner Bedienfeld und Livestream nebeneinander zu haben. Ein Bild ist auch angehängt.


    Hat jemand einen Tipp, wie ich das Ganze für die meisten Bildschirme einigermaßen schön darstellen kann?


    Den Livestream habe ich folgendermaßen eingefüht:


    HTML
    <iframe src="http://192.168.2.1/RPi_Cam_Web_Interface/?action=stream" height="640" width="480" frameborder="0"></iframe>


    Im Folgenden werde ich nochmal den kompletten Code der Website einfügen:



    Ich würde mich freuen, wenn ihr mir nochmal helfen könnten..


    Gruß Tobias

    Danke erstmal für deine Bemühungen!


    Ohne das jetzt per Smartphone aufgerufen zu haben (ich kann also leider noch nicht sagen, ob es jetzt wie gewünscht klappt), habe ich nach der Änderung beim Öffnen per PC feststellen müssen, dass die Umlaute (ä,ö,ü) z.B. in "Rückwärts" usw. nicht mehr korrekt dargestellt werden, sonder nur als "?" . Natürlich könnte ich jetzt einfach alle Umlaute durch ae, ue etc. ersetzen, anders find ich das aber eigentlich schon schöner. Woran liegt das?


    Heute nachmittag werde ich weiter an meinem Projekt arbeiten und dann hier berichten, ob die Darstellung per Smartphone funktioniert.


    Gruß Tobias

    OK, habe die Datei jetzt da. Bin auf die Seite, die du verlinkt hast und habe es links eingefügt. Das auf der rechten Seite kopieren und in eine Datei einfügen..ich denke mal du meinst einfach, den code hier einfügen? Wenn du es anders gemeint hast, schreib bitte nochmal. Hier ist er:



    Danke schonmal!!


    Gruß Tobias

    Soo da bin ich wieder..


    Erstmal noch ein großes Dankeschön für eure bisherige Hilfe. Mein Projekt kommt gut voran.


    Was mich allerdings noch stört ist die Website über Smartphone aufzurufen. Also am PC klappt die Darstellung mit iExplorer, Firefox und Chrome sehr gut. Am Handy allerdings machen es die Standard-Browser nicht mit, also der Browser von Android und auch Safari auf iOS. Die Buttons zum steuern werden hier alle übereinandergelegt, was eine Steuerung natürlich unmöglich macht. Man muss sich zum steuern also immer einen weiteren Browser wie Chrome oder Firefox laden. Warum ist das denn so?


    Muss ich diese Einschränkung hinnehmen oder gibt es vielleicht eine einfache Lösung für dieses Problem?


    Mit freundlichen Grüßen


    Tobias

    Es lag tatsächlich an dem /ws. Es funktionierte jetzt sofort per PC und auch per Smartphone. Vielen Vielen Dank! Die Darstellung der Seite auf dem normalen Android-Browser ist zwar eine Katastrophe, aber mit dem Firefox funktioniert es super! Woran könnte das liegen, dass der normale Andorid-Browser die Seite so verhunzt?


    Nochmal vielen Dank an alle, die sich beteiligt haben!!

    Ja es kann durchaus sein, dass das Skript Mist ist. Wie gesagt, ich habe es nur kopiert. Javascript habe ich selbst leider nie gemacht, deswegen war ich eigentlich froh, ein solches Skript zu finden. Ich werde mir dein Skript jetzt mal anschauen und ausprobieren.
    Also ich habe dein Skrip ausprobiert, bekomme aber beim Klick auf "clickme" folgenden Fehler: error: unknown disonnected! [#1006]
    Ich werde es mirjetzt mal genauer anschauen, und versuchen es zu verstehen, bzw. das Problem zu finden, aber ich glaub da jetzt nicht dran, dass ich das hinkriege.
    Hat sonst jemand eine Idee?


    Vielen Dank bis hierher für eure Unterstützug..


    Tobias

    Danke für eure Antworten.


    Ich geh jetzt die einzelnen Schritte mal alle durch und schreibe hier nebenbei einen "Live-Erfahrungsbericht".


    Zum ersten Punkt: Natürlich bin ich mit dem Handy im WLAN-Netz des Raspberry, aber auch danke für den Hinweis :D


    Ok dann probiere ich das jetzt mal mit dem Ping, hätte ich auch selbst drauf kommen können, mal schnell googeln wie das am Smartphone geht. Ach nee halt mal, hab ich ja auch vergessen zu erwähnen, ich greife auf die HTML-Seite vom jeweiligen Gerät per Webserver zu, der auf dem Raspi läuft. Von daher klappt die Übertragung ja, das kann es nicht sein, also lass ich das gleich mal mit dem Ping. (Kurz zur Erläuterung, ich habe die Datei "Browser_Client_Code.html" in den /var/WWW (Webserver) kopiert und in index.html umbenannt. Greife dann im Browser über die IP des Raspi darauf zu. Das funktioniert vom PC aus, von daher, ist bis dahin alles ok.




    So zum nächsten: Jetzt habe ich das Stück QUellcode von Cotton eingefügt, ich weiß zwar noch nicht genau, wie im Falle auf einen Fehler hingewiesen werden, aber ich probiere es jetzt einfach mal. Ok alles gestartet, vom PC mit dem Internet Explorer probiert -> geht nicht (damit geht es irgendwie nicht immer, wieso auch immer). Chrome gestartet -> geht. Ok, dann greif ich nun mal zum Smartphone. WLAN verbindet sich sofort. Test mit dem Standard-Android-Browser: Seite öffnet sich, bei Klick passiert nichts. Nächster Versuch: Firefox: Genau das selbe. Chrome: Auch nicht. Fehler wurde mir übrigens keiner offensichtlich angezeigt, oder wo müsste dieser erscheinen?


    So was war der nächste und leider schon letzte Tipp? Ob was in der Konsole geloggt wurde. Hmm Google ist heute irgendwie nicht mein Freund, ich finde leider nicht, wie ich die Konsole am Smartphone öffnen kann..




    Was nun? Hoffe dass ihr weiter so toll versucht mir zu helfen, Danke!




    Gruß Tobias

    Guten Tag zusammen,


    ich realisiere gerade ein Projekt mit einem Raspberry Pi. Ich möchte diesen per WLAN fernsteuern können.


    WLAN-AccessPoint habe ich eingerichtet, funktioniert alles. Vom Online-Projekt "BrickPi" gibt es eine Anleitung, den Raspi per HTML-Website fernzusteuern.


    Dies funktionert vom Computer aus auch wirklich wunderbar.


    Nur vom Smartphone aus funktioniert es leider nicht (ausprobiert mit 3 verschiedenen Browsern)


    Ich kenne mich in dieser HTML-Seitenur mäßig aus, wie gesagt, sie kommt aus einer Anleitung. Meine Frage ist nun, was der Grund dafür sein könnte, dass sie auf dem Computer einwandfrei läuft und auf dem Smartphone nicht? Also dargestellt wird sie auch auf dem Smartphone einwandfrei. Sobald ich aber die IP-Adresse des Raspberry eingebe und auf den dafür vorgesehenen Bestätigungs-Button klicke, passiert nichts. Wenn ich das ganze am PC mache, bekomme ich auf meinem Raspi in der Konsole die entsprechenden Ausgaben.


    Worin unterscheiden sich evtl. die Browser auf dem Computer zu denen auf dem Smartphone? Da kenne ich mich leider nicht aus.


    Wie könnte ich dieses Problem evtl. beheben? Den Code der HTML Seite füge ich nachfolgend ein: Falls das nicht funktionieren sollte, ist er auch hier einzusehen:


    https://github.com/DexterInd/B…/Browser_Client_Code.html




    Die Anleitung selbst: http://www.dexterindustries.com/BrickPi/projects/browserbot/




    Ich hoffe mir kann hier jemand helfen..




    Mit freundlichen Grüßen




    Tobias


    HTML
    <!-- ######################################################################## # Program Name: Browser_Client_Coder.html # ================================ # This code is for controlling a robot by a web browser using web sockets # http://www.dexterindustries.com/ # History # ------------------------------------------------ # Author Comments # Joshwa Initial Authoring # # These files have been made available online through a Creative Commons Attribution-ShareAlike 3.0 license. # (http://creativecommons.org/licenses/by-sa/3.0/) # ######################################################################## --> <!-- This code implements the web socket connection between client(web page on a Computer) and a server(raspberry pi) --> <!-- It sends data from web page using buttons and Keyboard presses to control the BrickPi robot --> <!DOCTYPE html> <html> <head> <title>WebSockets Client</title> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> </head> <body> </br></br> </br> <p> <!-- Creating press buttons on the webpage--> <input id="touch" style="height: 100px; width: 100px; position: absolute; left: 550px; top: 100px" type="button" value="Accelerate" onclick="accelerate(); " /> </p> <p> <input id="touch" style="height: 100px; width: 100px; position: absolute; left: 450px; top: 200px" type="button" value="Steer Left" onclick="steer_left(); " /> </p> <p> <input id="touch" style="height: 100px; width: 100px; position: absolute; left: 550px; top: 200px" type="button" value="Stop" onclick="stop(); " /> </p> <p> <input id="touch" style="height: 100px; width: 100px; position: absolute; left: 650px; top: 200px" type="button" value="Steer Right" onclick="steer_right(); " /> </p> <p> <input id="touch" style="height: 100px; width: 100px; position: absolute; left: 550px; top: 300px" type="button" value="Reverse" onclick="reverse(); " /> </p> </br></br></br></br> <div id="send"> </br></br></br></br></br></br></br></br></br></br></br></br> <p> Enter the hostname/ip address to make the websocket connection </p> <input type="text" id="data" size="100"/><br> <input id="clickMe" type="button" value="clickme" onclick="setup2()" /> </br></br> <p><span style="font-weight:bold">Instructions for keyboard controls:</span></p> <p>Press Up arrow key - Acceleraate </p> <p>Press Down arrow key - Reverse </p> <p>Press Right arrow key - Steer Right</p> <p>Press Left arrow key - Steer Left</p> <p>Press cltr/shift key to Stop</p> </div> </div> <div id="output"></div> <script> var up; var down; var left; var right; var brakes; // defines a variable that controls the forward movement function accelerate() { up = "u"; // when up == "u" the bot moves forward down = "aaa";left = "aaa";right = "aaa";brakes = "aaa"; // When up button is pressed other buttons(variables) should be turned off. setup2(); // Goes to websocket connection function } // defines a variable that controls the backward movement function reverse() { down = "d"; up = "aaa";left = "aaa";right = "aaa";brakes = "aaa"; setup2(); } // defines a variable that controls the left movement function steer_left() { left = "l"; up = "aaa";down = "aaa";right = "aaa";brakes = "aaa"; setup2(); } // defines a variable that controls the right movement function steer_right() { right = "r"; up = "aaa";down = "aaa";left = "aaa";brakes = "aaa"; setup2(); } // defines a variable that stops the robot function stop() { up = "aaa";down = "aaa";left = "aaa";right = "aaa";brakes = "b"; setup2(); } // Creates the websockets connection function setup2() { var $txt = $("#data"); // assigns the data(hostname/ip address) entered in the text box name = $txt.val(); // Variable name contains the string(hostname/ip address) entered in the text box var host = "ws://"+name+":9093/ws"; // combines the three string and creates a new string var socket = new WebSocket(host); var $txt = $("#data"); var $btnSend = $("#sendtext"); $txt.focus(); // event handlers for UI $btnSend.on('click',function() { var text = $txt.val(); if(text == "") { return; } $txt.val(""); }); $txt .keypress(function(evt) { if(evt.which == 13) { $btnSend.click(); } }); // event handlers for websocket if(socket) { var count =1; socket.onopen = function() { count = 0; arrows(); // function for detecting keyboard presses buttons(); // function for detecting the button press on webpage } //Send the button pressed backed to the Raspberry Pi function buttons() { if(up== "u") { socket.send("u"); } if(down== "d") { socket.send("d"); } if(left== "l") { socket.send("l"); } if(right== "r") { socket.send("r"); } if(brakes == "b") { socket.send("b"); } } function arrows() { document.onkeyup = KeyCheck; function KeyCheck() { var KeyID = event.keyCode; switch(KeyID) { case 16: socket.send("b"); break; case 17: socket.send("b"); break; case 37: socket.send("l"); break; case 38: socket.send("u"); break; case 39: socket.send("r"); break; case 40: socket.send("d"); break; } } } socket.onmessage = function(msg) { showServerResponse(msg.data); } socket.onclose = function() { //alert("connection closed...."); showServerResponse("The connection has been closed."); } } else { console.log("invalid socket"); } function showServerResponse(txt) { var p = document.createElement('p'); p.innerHTML = txt; document.getElementById('output').appendChild(p); } } </script> </body> </html> <script> jQuery(function($) { if (!("WebSocket" in window)) { alert("Your browser does not support web sockets"); } }); </script>