-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: M256 WIFI Modul

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    22.10.2011
    Beiträge
    30

    M256 WIFI Modul

    Anzeige

    Hallo,

    ich würde mir gern das M256 WIFI Modul kaufen und wollte sicherheitshalber fragen, ob ich dieses Modul mit meinem Laptop und einem ganz normalen WLAN-Router verwenden kann? also der Laptop besitzt ein Internes WLAN-Modem. Würde eben gerne den RP6 fernsteuern.

    Danke für eure Antworten.

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Man kann das m256 entweder über einen WLAN-Router in das lokale Netzwerk einbinden und von jedem anderen Teilnehmer im Netz erreichen oder man verbindet es mit einer ADHOC-Verbindung mit einen einzelnen PC mit Netzwerkkarte/Stick. Dabei ist es aber möglich, dass der Router alle Verbindungen im Netz mit der Geschwindigkeit des m256 versorgt und deshalb das Netz recht lahm wird.

    Meine Lösung ist ein AP mit einem WLAN-Stick am PC an dem ich mich mit dem m256 verbinde. An diesem AP kann ich mich dann auch mit dem Mobiltelefon oder meinem Android-Spielzeug anmelden und mit dem m256 kommunizieren. Bei Bedarf öffne ich eine Brigde zu meinem Hausnetz und ermöglich so den AP-Teilnehmern den Zugang zum Internet. Die AP-Funktion haben Windows ab Vista und Linux in den Bordmitteln:

    https://www.google.de/search?q=ap+mit+wlan-stick
    http://www.roboternetz.de/community/...l=1#post555000
    http://www.roboternetz.de/community/...l=1#post555052
    http://www.roboternetz.de/community/...l=1#post555485

    btw sehe ich in einer Weboberfläche die wahre Berufung des m256, weil es dann mit allem was 'nen Browser hat kommunizieren kann. Aber leider kommen ich zur Zeit überhaupt nicht dazu, ein paar Codezeilen zu schreiben. Schade.

    Gruß

    mic
    Geändert von radbruch (25.10.2012 um 13:14 Uhr)

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    22.10.2011
    Beiträge
    30
    Hat auch jemand erfahrung damit eine PC-Software zu erstellen und den RP6 per Wlan zu steuern? das wäre nämlich mein Ziel. Die PC-Software mit Visual Studio dürfte kein problem sein, nur ich weis noch nicht wie ich die Kommandos übers Wlan an den RP6 bekommen. müsste ja irgendwie mein modem ansprechen können. Hat jemand erfahrung?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.01.2010
    Alter
    27
    Beiträge
    106
    Ja, da gibt es zwei fertige Projekte: Das bekannte Remotrol, dann das Fernsteuerprojekt mit LabView.

    Ich selbst arbeite derzeit auch an solch einer Software.

    Das Senden per WLan ist ganz einfach: Öffne ein Socket mit richtiger IP und richtigem Port und sende Deine Daten so an den RP6.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    22.10.2011
    Beiträge
    30
    die Remotrol Software ist doch nir für WLAN sondern fürs kabel oder?
    ich hätte auch interesse eine app zu schreiben mit der ich den RP6 per WLAN von meinem smartphone steuern kann, aber hab damit noch keine erfahrung mit apps. Weis jemand ob das prinzipiell geht?

  6. #6
    Neuer Benutzer Öfters hier Avatar von Jumptime
    Registriert seit
    02.11.2012
    Ort
    mitten in Sachsen
    Beiträge
    26

    Fernsteuern? -gerne!

    Hallo,
    dieser Thread ist zwar schon eine Weile her, aber leider nicht weitergeführt. Ich hatte mich gerade mit dem gleichen Problem befasst. Nun benutze ich Delphi 6 und nicht Visual Studio, aber das ist ja egal. Ich kann eine Verbindung über das WLAN zum RP6 WiFi Modul herstellen. Auch empfängt es meine Befehlsstrings (das Modul quittiert mit einem blinken der LED WL2. Aber der String ist nicht richtig zusammengestellt, so dass nicht viel passiert.

    Sende ich zum Beispiel dass hier:

    Client.Socket.SendText('reeboot\LF');
    Client.Socket.SendText(CHR(13));

    wird das Programm im Bot gestartet, aber alle anderen Varianten bringen nichts?

    Client.Socket.SendText('start_program\r');
    Client.Socket.SendText('CR');

    Client.Socket.SendText('cmd\r\n');

    Wie habt ihr ggf. den String zusammengestellt, bzw. was ist hier falsch?


    mfg. Kai
    mein Bot: RP6v2, M256 WiFi Erweiterungsmodul, Liniensensor und Roboterarm mit Ansteuerung

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Hallo,

    ich versteh nicht so ganz was Du machen willst.
    "reeboot" wäre wenn dann "reboot" aber egal ohne in den Kommandomodus zu wechseln funktioniert
    das sowieso nicht und danach müsstest Du auch die Verbindung neu aufbauen...

    Ich glaube auch nicht das \LF oder 'CR' funktionieren.
    i.d.R. ist das \r und \n. Falls nicht ist Delphi wohl eine seltsame Angelegenheit


    Das macht so irgendwie keinen Sinn also erklär mal genau was Du machen willst.
    Wie sieht Dein Programm für die M256 aus?

    MfG,
    SlyD

  8. #8
    Neuer Benutzer Öfters hier Avatar von Jumptime
    Registriert seit
    02.11.2012
    Ort
    mitten in Sachsen
    Beiträge
    26
    Hallo SlyD,

    also mein Programm für die M256 ist nichts anderes als das Beispielprogramm 12 WIFI_Remonte_2 mit einigen Erweiterungen für meinen Roboterarm, die aber nichts an der Funktion ändern. Das sieht so aus:
    Code:
    		//**** Roboterarm fernsteuern ******************************************	
    		
    			// Arm rechtsdrehen
    				else if (strcmp(receiveBuffer_WIFI,"ar")==0)
    				{
    					writeString_P_WIFI("\nArm rechts drehen!\n");	
    					ARM_DREHEN_RE();
    				}
    			// Arm links drehen
    				else if(strcmp(receiveBuffer_WIFI, "al")==0)
    				{
    					writeString_P_WIFI("\nArm links drehen!\n");
    					ARM_DREHEN_LI();
    				}
    			// Arm in Mittelstellung drehen
    				else if(strcmp(receiveBuffer_WIFI, "a0")==0)
    				{
    					writeString_P_WIFI("\nArm in Mittelstellung drehen!\n");
    					ARM_DREHEN_OO();
    				}
    			// Arm vor ---------------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "av")==0)
    				{
    					writeString_P_WIFI("\nArm vor!\n");
    					ARM_VOR();
    				}
    			// Arm zurück ---------------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "az")==0)
    				{
    					writeString_P_WIFI("\nArm zurück!\n");
    					ARM_ZURUECK();
    				}
    			// Arm heben ---------------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "ah")==0)
    				{
    					writeString_P_WIFI("\nArm senken!\n");
    					ARM_HEBEN();
    				}
    			// Arm senken ---------------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "as")==0)
    				{
    					writeString_P_WIFI("\nArm heben!\n");
    					ARM_SENKEN();
    				}
    			// Hand heben ---------------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "hh")==0)
    				{
    					writeString_P_WIFI("\nHand heben!\n");
    					HAND_HEBEN();
    				}
    			// Hand senken ---------------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "hs")==0)
    				{
    					writeString_P_WIFI("\nHand senken!\n");
    					HAND_SENKEN();
    				}
    				
    			// Zange schießen -----------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "zz")==0)
    				{
    					writeString_P_WIFI("\nZange zu!\n");
    					ZANGE_ZU();
    				}
    			// Zange öffnen -------------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "za")==0)
    				{
    					writeString_P_WIFI("\nZange auf!\n");
    					ZANGE_AUF();
    				}
    			
    			// Arm stoppen --------------------------------------------------
    				else if(strcmp(receiveBuffer_WIFI, "i")==0)
    				{
    					ARM_STOP();
    				}
    				
    			// Licht an der Zange -------------------------------------------				
    				else if(strcmp(receiveBuffer_WIFI, "zlo")==0)
    				{
    					ZLED_ON();
    				} 
    				else if(strcmp(receiveBuffer_WIFI, "zlf")==0)
    				{
    					ZLED_OFF();
    Das Ganze funktioniert vom Terminal des RobotLoader recht gut. Die Unterprogrgramme sind in einer extra Datei (Lib).
    Jetzt wollte ich ein kleines Programm in Delphi schreiben mit dem ich unabhängig vom RobotLoader den Bot steuern kann.
    Netzwerk Verbindung herstellen - klappt,
    Programm im Bot starten - start_program\r\n ?
    Modus wählen - cmd\r\n ?
    und so weiter, das heißt für jede Funktion dann eine Schaltfläche. Gleichzeitig Empfang der Meldungen vom Bot und Auswerten, der Empfang der Meldungen und Daten auf dem PC im Delphi funktioniert übrigens.
    Das M256 Modul empfängt den jeweiligen Kommandostring (LED WL1 binkt) , führt ihn aber nicht aus. Deshalb wollte ich wissen, wie der Kommandostring zusammengesetzt sein muss. Da ich das nicht hinbekam und nichts fand was mir weiterhalf, habe dazu auch bereits das Handbuch zum WIFI-Modul bemüht. In den command mode mit $$$ ohne carriage return, komme ich, aber nicht weiter. Es ist das einzige Kommando was tatsächlich ausgeführt wird.
    Nun habe ich Delphi im verdacht, und mich bei denen umgeschaut. Noch bin ich mir nicht sicher, aber ich habe offenbar das Trennzeichen zum String so hinzugefügt, so dass es nicht erkannt wird.
    Daher bin ich mit meiner Frage wohl auch am falschen Platz.
    Bei der ganzen Spielerei habe ich jetzt auch irgendetwas verstellt, so dass ich mich nicht mehr mit dem Bot verbinden kann. Mit Ping erreiche ich den Bot, bekomme aber vom RobotLoader ein Time out. Also ersmal Fehleranalyse und Grundproblem lösen.

    Aber trotzdem vielen Dank
    Kai
    mein Bot: RP6v2, M256 WiFi Erweiterungsmodul, Liniensensor und Roboterarm mit Ansteuerung

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Hallo,

    Nur falls das nicht klar ist: \r\n = Zeilenumbruch = Neue Zeile = Enter drücken.
    Ohne das erkennen die Programme nicht das alles fertig übertragen wurde und nun interpretiert werden soll - wäre ja
    möglich das noch mehr kommt.

    Alle Programme auf dem Mikrocontroller (auch der Bootloader) sind so geschrieben dass es egal ist ob \n, \r\n oder \r ankommt.
    Hauptsache mindestens eins davon kommt an!
    Das WLAN Modul erwartet entweder \r oder \r\n sonst wird der Befehl nicht ausgeführt.
    \n alleine funktioniert nicht!

    MfG,
    SlyD

  10. #10
    Neuer Benutzer Öfters hier Avatar von Jumptime
    Registriert seit
    02.11.2012
    Ort
    mitten in Sachsen
    Beiträge
    26
    Hallo,

    mir ist schon klar, dass \r\n = Zeilenumbruch = Neue Zeile an den jeweiligen Befehl drann muss. Vom Terminal aus mit Enter übergeben. Das klappte aber nicht. Daher hatte ich erst vermutet, dass ich das falsch zusammengestellt hatte. Und so war es ja auch, nur suchte ich an der falschen Stelle.
    Und so klappt die Sache jetzt aus Delphi heraus:
    Text:= 'cmd';
    Client.Socket.SendText((Text)+ CHR(13)); // CHR(13) ist der Zeilenumbruch = \r

    Nochmal vielen Dank
    Kai
    mein Bot: RP6v2, M256 WiFi Erweiterungsmodul, Liniensensor und Roboterarm mit Ansteuerung

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Diskussion zum RP6 M256 WIFI Modul
    Von SlyD im Forum Robby RP6
    Antworten: 181
    Letzter Beitrag: 15.10.2012, 20:45
  2. RP6 M256 WIFI: DCF77 Library
    Von Dirk im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 11.08.2012, 11:21
  3. RP6 M256 WIFI: Clock Library
    Von Dirk im Forum Robby RP6
    Antworten: 0
    Letzter Beitrag: 31.07.2012, 22:55
  4. Antworten: 3
    Letzter Beitrag: 28.07.2012, 19:43
  5. RP6v2 M256 WiFi !?
    Von Dirk im Forum Robby RP6
    Antworten: 20
    Letzter Beitrag: 11.05.2012, 20:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •