Klingt alles super :) Jetzt muss ich mich nur entscheiden, welcher Controller der Master wird :confused:
Prinzipiell eigentlich ja immer noch die M128 zwecks Debugging....
Hm, schwere Entscheidung :D
Druckbare Version
Klingt alles super :) Jetzt muss ich mich nur entscheiden, welcher Controller der Master wird :confused:
Prinzipiell eigentlich ja immer noch die M128 zwecks Debugging....
Hm, schwere Entscheidung :D
Ich habe gerade solch ein Programm gefunden: Die M32 Slave in der Remotrol wäre für Besitzer der M32 wohl sehr interessant - vielleicht sollte das in die Lib aufgenommen werden?Zitat:
Ein Beispielprogramm, das die M32 ansteuert, wäre insbesondere für Anfänger auch interessant,
allerdings kann man sich so ein Programm auch schnell selbst schreiben.
Ich selbst verwende statt der M32 ein RNControl, mein Code sieht jedoch sehr ähnlich aus.
Hallo,
das RP6Base Slave Programm lässt sich natürlich für die M32 anpassen.
Was man genau braucht ist jedoch stark vom jeweiligen Projekt abhängig - also was für Sensoren/Aktoren genau an der M32 angeschlossen sind.
Je nachdem braucht man andere Register usw.
Bei der RP6Base ist das klarer definiert, da ja viele Standard Sensoren vorhanden sind.
Das Grundgerüst kann aber einfach von der Base übernommen werden. Sieht dann ähnlich aus wie das Remotrol Programm.
Ja prinzipiell könnte man sowas auch direkt mit in die Lib aufnehmen. Mal sehen.
Die Ansteuerung davon ist dann sehr ähnlich - abgesehen davon das man einen anderen Interrupt Pin für die Benachrichtigung des Masters bei Sensoränderungen wählen sollte.
MfG,
SlyD
Also in der Remotrol von Fabian E. ist ein Spitzen-Slave für die M32 drin. Dennoch fände ich es klasse, wenn man für die M32 und nun auch für die M128 Slaves als Beispielprogramme rausbringen könnte, die alle ADCs ins Register eintragen und z.B. eine Lib beinhalten zum schalten von Beeper, LCD und I/Os der beiden Module! Fände ich wirklich eine nette Sache und für die Programmier-Meister aus der Arexx-Schmiede wohl bedeutend leichter und einheitlicher zu bewerkstelligen, als wenn das jeder selbst versucht... Brauchen kann diese Programme ja jeder, der die M32 UND die M 128 oder demnächst noch die M256 besitzt... Viele Grüße, Fabian
Hallo,
die Module sind ja nun unterwegs bzw. treffen so langsam bei den ersten ein.
Die aktuelle Version des RobotLoaders gibt es hier:
http://www.arexx.com/rp6/downloads/R...r_20120717.zip
und die aktuellen Beispielprogramme hier:
http://www.arexx.com/rp6/downloads/R...s_20120716.zip
Zu den WLAN Einstellungen gab es auch direkt eine kleine Rückfrage wegen Passwörtern die Leerzeichen enthalten.
Der Kommandointerpreter im WLAN Modul teilt alle Argumente jeweils an Leerzeichen.
Man muss daher alle Leerzeichen im Passwort durch $ ersetzen.
Sollte das Passwort Leerzeichen und $-Zeichen enthalten, muss man ein anderes Ersatzzeichen wählen.
Das geht über die Kommandozeile des WLAN Moduls mit
set opt replace $
save
reboot
... wobei das $ durch ein anderes Zeichen ersetzt werden muss also z.B. # oder + o.ä.
In der nächsten RobotLoader Version werden Leerzeichen automatisch durch $ Zeichen ersetzt werden.
Nur wenn man gleichzeitig $ und Leerzeichen verwendet, wird man noch manuell eingreifen müssen.
MfG,
SlyD
Hallo,
zwar ist der Paketdienst noch nicht gekommen, allerdings hatte ich ein wenig Zeit, mir die Library einmal genauer anzuschauen - sieht schonmal gut aus!
Allerdings ist mir aufgefallen, dass auch die Libraries der anderen Module verändert wurden - hier ist mir ein Bug in der RP6RobotBaseLib.c aufgefallen:
Die neuste Version bietet drei Varianten des Richtungswechsels an, hier steht in der aktuellen Lib
(Zeile 638 ).Code:#define CHANGE_DIRECTION_FAST
Sollte hier nicht eigentlich das
(Zeile 635) verwendet werden? Schließlich wird der RP6 auch von vielen unerfahrenen Programmierern benutzt, da kann ein unerwünschter Richtungswechsel bei voller Geschwindigkeit schonmal vorkommen.Code:#define CHANGE_DIRECTION_SLOW
Grüße,
Max
So, M256 ist soeben eingetroffen :D
Wie von SlyD angesprochen, hat es optisch winzige (!!!) Mängel, wirklich nicht der Rede wert.
SD-Disk funktioniert auch schon wunderbar, kein haken, kein stecken-bleiben!
Habe es gleich mal montiert, und glücklicherweise passt alles sogar mit meinem Chassis zusammen (hatte Angst, Antenne und Chassis könnten sich kreuzen.
Hier die ersten Fotos:
Anhang 22823 Anhang 22824 Anhang 22825 Anhang 22826
Jetzt geht es an die ersten Beispielprogramme und vor allem ans wlan!
Werde schreiben, wenn alles mal durchprobiert wurde!
Was gleich mal auffällt: Die grüne WLAN-Status-LED ist sowas von HELL :D
Mein Modul ist auch gerade angekommen, die Einrichtung des WLAN (mit WPA2) funktioniert einfach tadellos, der Roboter wird gleich erkannt und der Programmupload funktionier.
Der Selftest und alle Demoprogramme, die ich bisher hochgeladen habe, funktionieren ebenfalls ohne Probleme, mit dem SD-Kartenslot stimmt auch alles.
Störende optische Mängel sind mir jetzt keine aufgefallen, alle Bauteile sind korrekt verlötet - könnte man glatt als Serienmodell durchgehen lassen ;)
- Max
@MaxWeb:
Ah ja so ist das wenn man mal mit der Lib was testet und es dann nicht wieder zurück ändert ;)
Danke für den Hinweis!
> Die grüne WLAN-Status-LED ist sowas von HELL
Das wurde auf dem Serienmodell übrigens auch geändert ;)
MfG,
SlyD
PS:
Noch zur Erläuterung für alle nicht-Tester die die Mail natürlich nicht gesehen haben können:
Auf den Testmodulen ist ein anderer microSD Kartenslot verbaut als auf dem Serienmodell,
der auf dem Serienmodell ist etwas hochwertiger.
@MaxWeb und alle anderen, die helfen können:
Hast du was am Wlan-Router umgestellt? Oder wie hast du den Accesspoint eingestellt?
Ich finde nämlich gar nix. Die gelbe LED blinkt auch nach der Konfiguration weiter...
Hallo,
2.4GHz und nicht 5GHz,
SSID passend einstellen,
kein MAC Filter aktivieren oder passend einrichten,...
Passphrase korrekt?
IP Adresse DHCP oder statisch?
Aktivere mal im Optionsmenü den Passthrough modus und führe den "scan" Befehl aus.
Oder lass das Beispielprogramm 05_WLAN_CMD laufen und schau Dir an ob der Accesspoint irgendwo gefunden wird.
MfG,
SlyD
Hallo,
nein, ich habe nichts am Router umgestellt (Frequenzband ist bei mir 2,4GHz, der a-Standard läuft afaik mit 5GHz, das geht mit dem Modul nicht, Zugangsbeschränkungen ist im Router angepasst), ich habe es einfach wie in der Anleitung beschrieben konfiguriert:
Ich habe einfach das USB-Interface mit dem Modul verbunden, im Robotloader (2.3c, Version 2.3b soll einen Bug haben) Options-> Wifi Serial Config -> Configure Wifi Settings ausgewählt.
Dort habe ich dann einfach die Einstellungen meines WLANs eingegeben (feste IP, SSID des WLANs, Gateway, DNS, Verschlüsselung und Passwort), eine Device ID gewählt und den Configure-Button gedrückt.
Danach ging es problemlos.
Ein Screenshot der Einstellungen wäre hier eventuell hilfreich.
So sieht man wenigstens von Weitem, dass alles in Ordnung ist ;)Zitat:
Die grüne WLAN-Status-LED ist sowas von HELL
Noch ein Edit: Hast Du eventuell Leerzeichen im Kennwort? Das kann auch Fehler verursachen!
- Max
hier mal der der Screenshot.
Anhang 22827
Deine SSID lautet "M256TST" - hier gehört der Name Deines WLans hin!
Watt iss denn datt für eine IP Adresse? ;)
Im lokalen Netz nimmt man i.d.R. was im Bereich 192.168.x.x
Und Deine SSID ist noch die voreingestellte M256TST - Dein Netz heisst wirklich so?
MfG,
SlyD
Hubsi :D
Ne, Netz geändert - JUHUUU! Gelbe LED ist aus, grüne blinkt!
Hat geklappt, danke euch.
Die IP war so, hab ich aber jetzt auf die übliche geändert.
Dennoch finde ich nix im "Discover Wifi...", beim manuellen Verbinden kommt ein Timeout.
Die IP kann so stimmen - für den privaten Gebrauch gibt es drei Addressbereiche, siehe http://de.wikipedia.org/wiki/IP-Adre...re_IP-Adressen. Die SSID stimmt aber definitiv nicht ;)
Edit: Zu langsam...
Das "Discover WIFI devices" dauert manchmal etwas... BTW: Auf welcher Adresse findet hier eigentlich der Broadcast statt? Ist das die ABC.DEF.GHI.255 ?
Hast Du beim manuellen Verbinden auch den Port richtig angegeben (z.B. "192.168.2.42:2000") ?
OK aber 10.x nimmt doch niemand ;)
Naja egal.
> Dennoch finde ich nix im "Discover Wifi...", beim manuellen Verbinden kommt ein Timeout.
Was wird denn in den beiden Terminals und im Log angezeigt?
PS:
@MaxWeb: Ja ist die .255, Port 55555, der darf natürlich nicht durch eine Firewall blockiert werden.
im LOG:
Code:Trying to open port: USB0 | RP6 USB Interface | ART5UP21USB0 | RP6 USB Interface | ART5UP21 open @38400baud
Set Comport...
Baudrate is set to: 38400
OK!
Try to get ID...
Connected to [WIFI] target!
Target ID received:
RP6: Board ID 8, Firmware Version 1.4, Board Rev.: 3
["RP6 M256 WIFI", 8, MEGA2560, 0, 253952, true]
#### Network close all...
#### Network close all done!
#### BEGIN CONNECT TO: 192.168.10.171:2000
Network Connection Timeout ERROR (101) ||| Network Connection attempt timed out!
#### Network close all...
#### Network close all done!
#### DISCONNECTED
So, jetzt wars erstmals im "Discover Wifi...", ich hab geadded, aber bei Auswahl von "Connenct" commt wieder der Timeout.
Probiere mal, das Modul über einen PING zu erreichen.
Wie lauten denn andere Adressen in Deinem Netzwerk?192.168.10.171:2000 könnte z.B. Probleme machen, wenn der normale Adressbereich 192.168.2.XYZ lautet.
Oh leck, hab da keine Ahnung!
Mein PC (der einzig andere Teilnehmer nach dem Internetrouter) hat ne automatische IP-Adresszuteilung. Sie lautet 192.168.1.2
Das sollte doch aber nicht unbedingt das Problem sein, oder?
So, etz hats gefunzt :D
Zuerst ist der Loader abgeschmiert, dann hab ich alles nochmal neu gemacht und nun klappts auch!!!!
Sorry für die umstände :|
EDIT: Jetzt wird auf Teufel komm raus getestet ;)
Hier werden Sie geholfen: http://de.wikipedia.org/wiki/Netzmaske
;-)
Okay, ich der Loader kann sich mit meinem Modul leider auch nicht verbinden.
WiFi klappt ist verbunden und auch der UDP broadcast vom RP6 kommt an (Port 55555).
Der Loader "sieht" den RP6 also auch wenn ich nach ihm suche.
Verbinden via TCP schlägt jedoch immer mit einem TimeOut fehl.
Ich habe in der Firewall mal extra Regel sowohl für die benutzen Ports als auch für den Loader selbst erstellt.
Leider kein Erfolg.
Log des RP6 zeigt ohne Frage, dass er korrekt verbunden ist (sieht man ja auch am UDP)
Keine Ahnung was ich noch versuchen soll :)
Werde dann wohl mal ein paar Test via Kabel machen :D
EDIT: auf mein ping reagiert der RP6 auch nicht. ( sollte er?)
> EDIT: auf mein ping reagiert der RP6 auch nicht. ( sollte er?)
Doch das sollte er!
Wenn schon ein Ping nicht klappt, kanns mit dem RobotLoader auch nicht gehen.
Das Problem liegt also irgendwo in den Netzwerk Einstellungen / Firewall.
Ja, davon gehe ich auch aus. Ich habe manuell Port 2000 freigegeben und auch alles für den RobotLoader erlaubt...
Blödes Windows :)
Hat der RP6 irgendeine "ping" funktionalität mit der ich mal testen kann?
Ja auf der WLAN Kommandozeile einfach ping 192.168.x.x eingeben.
Poste vielleicht auch mal Infos zu Deinen Netzwerk Einstellungen, evtl. fällt mir da ja was auf.
get wlan
get ip
PS:
WLAN Kommandomodus musst Du mit .$$$ aktivieren wenn der Bootloader im Passthrough Modus ist.
Ich nutze DHCP mit fixer Adresszuweisung im Router.Zitat:
# get ip
get ip
IF=UP
DHCP=ON
IP=192.168.0.110:2000
NM=255.255.255.0
GW=192.168.0.1
HOST=0.0.0.0:2000
PROTO=TCP,
MTU=1524
FLAGS=0x6
TCPMODE=0x0
BACKUP=0.0.0.0
<2.32>
# get wlan
get wlan
SSID=Home
Chan=7
ExtAnt=0
Join=1
Auth=MIXED
Mask=0x1fff
Rate=8, 6 Mb
Linkmon=5
Passphrase=******
TxPower=0
<2.32>
# ping 192.168.0.101
ping 192.168.0.101
Ping try 192.168.0.101<2.32>
Mit meinem Laptop klappt es übrigens auch nicht, also wohl eher ein Router Problem.
Wie sieht eigentlich das "Protokoll" aus, mit dem der RobotLoader mit dem Bootloader kommuniziert?
D.h. was kann ich an den Bootloader senden, um Infos wie im Status-Bereich des Roboters zu erhalten (FW-Rev, Board-Name etc) und was muss ich senden, um ein Programm zu starten/stoppen?
- Max
> Mit meinem Laptop klappt es übrigens auch nicht, also wohl eher ein Router Problem.
Jep.
Probier doch mal statische IPs.
> und was muss ich senden, um ein Programm zu starten/stoppen?
Starten geht mit
start_program
Reset auslösen (= Stoppen) geht per WLAN Kommandos.
Der Reset Pin ist mit einem GPIO des WLAN Moduls verbunden.
set sys output 0x0080 0x0080
set sys output 0x0000 0x0080
MfG,
SlyD
Stimmt, alles kompakt und verständlich aufgeführt - interessantes Projekt!Zitat:
Schau dir mal den Quellcode meines FlashWriters an. Da ist das alles drin :)
Auch eine statische IP hilft leider nicht. Wie kann man eigentlich den Port ändern? Wenn ich die default 2000 ändere passiert nichts. Wird auch nicht übertragen zum Wifi Modul.
> Auch eine statische IP hilft leider nicht.
Tja, ist irgendwas anderes im Router aktiviert was probleme bereiten könnte?
(MAC Filter, Firewall, kann man im Router anzeigen was für Geräte damit verbunden sind?)
Kannst Du den Router vom Notebook aus anpingen (also im WLAN an die Adresse des Routers, nicht übers Kabel)?
Geht das auch vom WLAN Modul aus?
Was für ein Router Modell / Hersteller ist es denn?
> Wie kann man eigentlich den Port ändern?
Schau her, die Einstellung ist tatsächlich deaktiviert gewesen (muss man eigentlich so gut wie nie ändern).
Kommt dann in der nächsten Version.
Bis dahin:
set ip localport 2000
save
reboot
Ping klappt überall, Laptop -> Router, Laptop -> Desktop Rechner, nur der RP6 will nicht.
Router ist ein D-LINK DIR 600. MAC Filter ist nicht aktiv.
Wie soll denn ein funktionierender Ping auf dem Wlan Modul aussehen? (die Ausgabe)
Reagiert der RP6 denn überhaupt auf einen normalen Ping, ausgeführt auf der Windows-Kommandozeile oder geht auch das nicht?
ping 192.168.10.2
Ping try 192.168.10.2
<2.32>
64 bytes from 192.168.10.2: seq=1 ttl=60 time=0.80 ms
64 bytes from 192.168.10.2: seq=2 ttl=60 time=0.80 ms
192.168.10.2 ist die Adresse des Test Accesspoints hier.
Notebook hast Du eben noch gesagt würde auch nicht funktionieren mit dem Router, klappt das jetzt?
Was hast Du dazu geändert?
Schau mal im STATUS Menü Deines Routers bei Wireless nach ob das WLAN Modul da aufgelistet wird.
Versuch auch mal andere Sicherheitseinstellung im Router, also WPA2-PSK oder WPA-PSK zu ändern.
PSK verwenden.
Cipher Type auf AUTO stellen, wenn das nicht klappt mal mit TKIP oder AES probieren.
MfG,
SlyD
Laptop ping zum Router oder Rechner klappt die ganze Zeit schon, nur zum RP6 nicht.
Der Router sieht den RP6 als kabellosen Client. Verschlüsselt mit WPA2.
Werde den RP6 mal manuell auf WPA1 setzen, der Router macht aktuell beides.
Ich denke allerdings nicht, dass es an einem Verbindungsproblem liegt. Router und RP6 sagen beide, dass alles korrekt ist, scheint mir mehr ein Routing Problem zu sein.... :/
Welcher OS nutzt ihr? Ich habe Win7 x64. Sind unsere Module richtige Testmodule, auf denen vorher gearbeitet wurde? D.h. können wir ein Hardware Problem fast komplett ausschließen?