Sonntag, 6. Mai 2012

UART WiFi Server Client Module (TLG10UA03)

image
Kabel, USB UART, Antenne und das WiFI Modul(TLG10UA03)

Letzte Woche habe ich das Modul UART WiFi Server Client Module aus China erhalten. Es war zwar relativ günstig, dafür muss man allerdings ca. 3 – 4  Wochen warten. Der Versand ist kostenfrei.

In Ebay bin ich nach zahlreichen Suchen von Modulen auf diese WLAN Lösung gestoßen, und dachte mir, das ist genau das Richtige: Dinge über Funk zu steuern. Die Beschreibung des Artikels zeigte die technischen Daten und einige Inhalte aus der Konfiguration Oberfläche. Aufgeregt nahm ich das Paket mit den chinesischen Schriftzeichen auseinander. Eine Anleitung hat man sich aus Gewichtsgründen gespart (denke ich). Gut verpackt mit Luftpolstern und antistatischen Tüten entnahm ich schließlich das Modul.

Wie jeder, so wollte auch ich zunächst die Funktionalität prüfen. Also erst mal zurück auf die Webseite und nach der Anleitung sehen. Dies war nötig, um festzustellen, wo die Kabel eigentlich verbunden werden. An dem USB UART sind die Pins alle gekennzeichnet. Auf das WiFi Modul traf dies leider nicht zu, wobei der Platz für einen Aufdruck recht gering ist.

Alles verbunden, lud ich das Programm UART WiFi herunter. Ich dürfte wohl nicht der Einzige sein, der behauptet, dass dieses Programm einige Verbesserungen vertragen könnte. Dennoch sollte das für die Konfiguration keinen Abbruch tun. Als ich soweit war, versuchte ich die Verbindung herzustellen, aber ohne Erfolg.

image image
Unter Windows XP Unter Windows 7

Ich prüfte die Steckverbindung, nahm ein anderes USB UART Modul, stellte Diagnosen mit einem Serial Monitor an. Kein Hinweis, nur dass keine Antwort kam. Der Tipp mit dem Arduino Tool und dem Serial Monitor, um “+++” zu senden funktionierte auch nicht.

Enttäuscht schrieb ich dem Support des Händlers. Hier ein Lob, sehr schnelle Antwortzeiten selbst an einem Sonntag und hilfsbereit. Leider haben die Tipps nicht geholfen. Ich wollte das Modul schon zurück senden, um es austauschen zu lassen, doch ich konnte nicht glauben, dass das Modul nicht in Ordnung sein sollte. Nach dem “try and error” - Prinzip versuchte ich jede serielle Einstellung und hatte damit auch Erfolg. Ich erhielt mit einmal eine Antwort vom Modul, als ich die richtige Bautrate fand. Nach der Anleitung wird die Baudrate 115200 vorgeschlagen. Anscheinend wurde nach dem Test des Moduls die letzte eingestellte Bautrate nicht auf den Standard Wert gesetzt. In meinem Fall war es 9600 Baut.

image
Wenn die richtig Einstellung gesetzt ist, dürfte nach dem klicken des “Exit”-Buttons dieses Popup erscheinen.

Die Verbindung konnte nun mit dem UART WiFi Tool hergestellt werden und die Optionen wurden frei gegeben. Jetzt konnte es los gehen. Da ich zu diesem Zeitpunkt unterwegs war, hatte ich keinen kompatiblen WLAN Access Point da, um auf die Weboberfläche des Moduls zu zugreifen. Selbst die Internetfreigabe auf dem Smart Phone bietet leider nicht die gewünschte Unterstützung an.

image
Die Meldung erscheint nach dem klicken des Search-Buttons, wenn die Verbindung zum Modul hergestellt wurde.

Endlich zuhause, konnte ich die Konfiguration fortsetzen. Da zeigte sich mir, welche Verschlüsselungsarten wirklich funktionierten. Zwar hat das Modul WPA2, allerdings nur mit TKIP und nicht AES. Dafür hat mein WLAN WPA(1) mit TKIP. Ein kleiner Rückschritt, der allerdings zu verschmerzen ist. Wer sich mit der WLAN Verschlüsselung auskennt, weiss, wie wahrscheinlich jemand die WLAN Verbindung entschlüsseln könnte. Ich gab alle erforderlichen Daten ein und speicherte dies auf dem Modul. Anschließend nochmal in das UART WiFi Tool, um die Verbindung zum WLAN herzustellen. Dies geschieht auf dem zweiten Karteireiter, in dem man auf den Button für “Connect” klickt. Dies klappe allerdings nicht auf Anhieb, und es war im nachhinein nicht wirklich nachvollziehbar, warum man auf dem einen USB Port gerade keine Verbindung bekam, auf dem anderen widerum schon.

image
Verbindung zum WLAN herstellen

Der nächste Schritt bestand darin, auf die Weboberfläche zu zugreifen und den Rest einzustellen. Um dort hin zu gelangen, müssen die Verbindungen für TX und RX getrennt werden. Von meinem Router erfuhr ich die IP Adresse, die dem Modul zugewiesen wurde. Geht auch mit dem Befehl “AT+LKSTT” im UART WiFi Tool.

image
Webseite des Moduls.

Als dies auch so weit war, war nun mein Arduino an der Reihe; schnell “Copy and Paste” ich den Beispielcode vom Artikel und stellte die Kabelverbindungen her. Hierbei muss der Arduino vom USB getrennt werden, damit keine serielle Verbindung zum PC besteht.

image image image
WiFi Modul USB UART Modul Arduino Nano
Rot – 3,3V (Pin 5)
Braun – TX (Pin 6)
Weiß – RX (Pin 7)
Schwarz – GND (Pin 8)
Rot – VDD
Schwarz – GND
Braun – TX (Pin TX1)
Weiß – RX (Pin RX0)

Zusammengesteckt, nochmal auf Reset, um den Code auf dem Arduino neu zu starten und im Browser staunen. Mit dem Staunen musste ich mich allerdings noch zurück halten, da mein Browser nur das Ladesymbol am Tab zeigte. Es blieb bei einer weissen Seite, oder wie jemand anderer dies beschrieb: “Ein Überbelichtetes Foto in einem Schneesturm.”

Irgendwas haute nicht hin, und es hätte jetzt eigentlich funktionieren müssen. Ich ging nochmal alles durch. WLAN Verbindung Check, Kabelverbindung Check, auszuführenden Quellcode, den ich auf den Arduino übertrug, che… , erst jetzt sah ich, dass der Code nicht funktionieren konnte. Wahrscheinlich hat der Händler nicht gewusst, wie man im HTML bestimmte Zeichen eingibt. In der “If” Bedingungen war das “Char” für Zeilenumbruch ‘n’ geschrieben, was allerdings so ‘\n’ geschrieben wird. Naja, und ich ging weiter im Code und reduzierte den für den Test auf 2 Zeilen in der Schleife bzw. die “void loop()” Methode, mit Serial.println(“Hello World!!!”) und delay(1000).

image image
Vorher Nachher
Einige Zeichen fehlen im Code, was durch das Copy n paste entstand. Für einen Test absolut ausreichend.

Erneut den Arduino beschrieben und anschließend wieder die Kabelverbindungen hergestellt. Dann Browser aufgerufen und die Adresse des Moduls eingeben, und siehe da, es steht “Hello World!!!”.

image
Durch den loop wieder holt sich der Text Hello World immer hinzufügend.


Kurzfassung zur Konfiguration:
  1. UART Modul den Jumper für 3,3 Volt setzen.
  2. Kabel Verbindung herstellen von UART auf das WiFi Modul. (*1)
  3. USB Verbindung zum PC herstellen
  4. Prüfen welche COM Verbindung (*2)
  5. Das Tool UART-WiFi starten und COM Verbindung auswählen.
  6. COM Set Einstellungen prüfen (*3)
  7. Suchen Button klicken und auf das Popup warten.
  8. WLAN Einstellungen vor nehmen. (*4)
  9. Modify Button Klicken. Ein Popup erscheint mit dem Hinweis dass das Modul neu gestartet wird.
  10. Verbindung zum Modul wieder herstellen. (Punkt 4 und 5)
  11. Zweiten Tab Reiter und Connect Button klicken. Warten bis die Verbindung hergestellt wurde.
  12. IP Adresse auslesen, durch den Befehl “AT+LKSTT”
  13. RX und TX Kabel Verbindung trennen.
  14. IP Adresse in die Adresszeile des Browsers eingeben und warten bis die Anmeldung erscheint. (Benutzername: Admin; Passwort: 000000)
  15. Aktuelle IP Adresse oder andere IP Adresse festlegen und speichern.
  16. Auto Workmode Einschalten und Save Button klicken. (ProtocolType:TCP, C/S Mode: Server, Port:8090)
  17. Arduino mit dem Test Code beschreiben. (*5)
  18. Arduino von der USB Verbindung trennen und an eine externe Stromversorgung anschließen.
  19. Kabel Verbindungen zwischen Arduino und dem WLAN Modul herstellen.

(*1) Kabel Verbindung image
(*2) Kann über den Geräte Manager ermittelt werden image
(*3)
11520 BAUT
Data 8
Parity None
Stop 1
Es kann sein, das diese ab Werk auch eine andere Einstellung hat, wie zum Beispiel war bei mir die Baut Rate von 9600 erforderlich, zudem war auch der Transparenz Modus akiv, so das ich über die Serielle Verbindung “+++” senden musste um dies zu beenden
(*4)
SSID
Verschlüsselungsalgorithmus
Schlüssel
IP Adresse Automatisch beziehen (kann später geändert werden)
(Erweitere Einstellungen “Advance” kann in der Regel belassen werden, ggf. siehe weitere Beschreibung dazu)
(*5) void setup()
{
   Serial.begin(115200);
}

void loop()
{
    Serial.print("<h1>Hello World!!</h1>");
    delay(1000);
}

Donnerstag, 22. Dezember 2011

Altes erstes 3D Video von mir

Nachdem ich etwas aufgeräumt habe, fand ich noch einige CD Sicherungen die Tatsächlich nach Jahren noch funktionieren. Darauf habe ich dieses alte 3D Animations Video wieder gefunden, an dem ich neben der Schulzeit herum gewerkelt habe. Entschulidgt die kleine Auflösung. Mein Power Rechner eines 486iger mit 66MHz und 20MB RAM konnte Zeitgemäß nicht in einer größeren Auflösung rendern. 320 mal 160 war noch von den Berechnungszeiten annehmbar, größere Auflösungen wie wir sie heute kennen, hätte mein damaliger 486 noch heute daran gerechnet. Erstellt wurden die Video Animationen und 3D Objekte mit dem 3D Programm Monzoom Pro. Die Musik ist auch von mir. Keine Ahnung wie ich das ausgehalten habe mit den Midi Tönen.


Mittwoch, 10. August 2011

Schwierigkeiten mit dem GMax Plugin MiddleMan v1.3beta

Nach einer langen Suche einer aktuellen Version vom Plugin zu finden blieb bisher erfolgslos. Dabei ist es gar nicht mal so schlecht, wenn da nicht dieser Bug ist. Offenbar habe ich diesen auch erst seit ich das auf Windows 7, GMax und das Plugin nutze. Nun es kommt der Fehler, wenn ich mein Model exportiere, um es als .X Format zu speichern, dann sind die Checkboxen für .X ausgeschaltet. Das ist aber dann nicht, wenn es zum ersten mal genutzt wird. Irgendwann stellte ich fest, das der Fehler dann erzeugt wird, wenn im Plugins Ordner, die Einstellungen speichert. Die Datei “mman.sys” lässt den Fehler erscheinen. Offensichtlich, wenn die Einstellungen aus der Datei geladen wird, wird beim laden, die eine oder andere Auswahl deaktiviert.

Lösung ist, die Datei “mman.sys” nach jedem Export zu löschen.

Leider reicht das nicht. Denn offensichtlich scheint das Plugin sich nicht selbst zu finden, nachdem es den Export durch geführt hat. Zwar wird die Exportierte Datei des 3D Modells erzeugt, wird aber nach dem Schließen des Plugins wieder entfernt. Ähhh… Sagt ich mir. Solange das Plugin offen ist, geht es ja. Die erzeugte .X Datei ist auch entsprechend beschrieben. Also was kann man hier machen.

Die Datei kopieren, bevor das Plugin geschlossen wird.

Eigentlich nicht so schön, wenn man vielleicht mehrere Modelle exportieren möchte, und im Grunde ist es auch lästig, diese Vorgänge durch zu führen.

Also habe ich kurz mal ein Programm geschrieben, dass genau diese Vorgänge durch führt. Es ist sehr Simpel auf gebaut. Kopiert das Programm .exe wohin ihr wollt, startet es, weist entsprechend die Ordner zu. Fertig.

Wenn die x.Datei erstellt wurde, also dann wenn ihr auf den Button Go geklickt habt, dann wird ein im Meshes Odner ein Unterordner erzeugt und dort die Sicherung mit dem selben Namen gespeichert.

Also wenn ihr GMax startet, dann startet dieses kleine Programm, dass ich GMaxPluginCleaner genannt habe.

Download GMaxPluginCleaner

Samstag, 6. August 2011

GMax Model nach .X Format Exportieren

Passend zu meinen vorigen Post, kommt die kleine Beschreibung, wie ich eine Model in ein .X Format speichere.

Was brauche ich dazu?

  • Flight Simulator SDK
  • Middleman
  • MDL Commander

Und da die Suche relativ lange dauert, bis man alle notwendigen Dateien gefunden hat. Gebe ich hier einen link zu einer ZIP Datei in dem alles vorhanden ist.

Download Link: Export GMax to X

 

Was mache ich mit den Datei?

Wenn ihr euch entschieden habt, die ZIP Datei herunter zu laden, dann ist es zunächst erforderlich, diese auszupacken. Dort findet ihr zahlreiche Dateien. Als erstes installiert ihr den fs2004_sdk_gmax_setup.exe. Ihr findet unter dem Verzeichnis (Wenn ihr in das GMax Verzeichnis installiert habt) ../GMax/gamepacks/fs2004/plugins/ die 3 Dateien  “FSModelExp.dle”, “makemdl.exe” und “makemdl.parts.xml”. Diese verschiebt ihr in den Ordner ../GMax/plugins/. Die Datei mkmdl.exe und mkemdl.parts.xml schreibt ihr um in mkmdl.exe und mkmdl.parts.xml.

Als nächstes kopiert ihr den mdlcommander.exe ebenfalls in den Plugin Ordner von Gmax, kopiert ihr aus dem Ordner Middleman13beta3 die Datei makemdl.exe.

*EDIT*

Die Datei mdlcommander muss ebenfalls umbenannt werden in makem.exe

Nun könnt ihr GMax starten und euer Model über export als .X Speichern. Ihr werdet feststellen, dass es keine Auswahl für das Format erscheint. Es ist daher erforderlich den “Flightsim Aircraft Object (*.MDL)” auszuwählen. Ihr gibt hier den entsprechenden Namen ein, vom 3D Model und klickt auf Speichern. Es öffnet sich anschließend ein Fenster, in denen ihr einige Einstellungen festlegen könnt. Hier braucht ihr unter den Karteireiter “Options” nur an 3 Punkten den Haken setzen.

mman

Anschließend klickt ihr dann auf “GO!!” und das Model ist im .X Format gespeichert.

Fertig. Nun könnt ihr, euer exportiertes Model für ein XNA Projekt hinzufügen.

Mittwoch, 3. August 2011

3D Model einbinden mit C# und XNA

Wer bereits Erfahrungen mit C# und Visual Studio hat, und schon immer ein kleines Programm schreiben wollte, in dem sein eigenes 3D Model sich dreht, der dürfte mit XNA 4.0, schnell zu einem Erfolg kommen. Mein Artikel beschreibt eine in Kurzfassung, was ich brauche und die Codezeilen. Warum, es gibt leider relative wenige Seiten die dieses beschreiben oder ich habe vielleicht nach den falschen Begriffen gesucht.
Eine lange Fassung findet ihr für gewöhnlich auf der MSDN oder AppHub Seite, in denen auch die einzelnen Schritten genauer erklärt werden, anhand von Tutorials.

Also, was benötige ich:

  • Visual Studio 2010 C# Express
  • XNA 4.0 SDK


Wir beginnen mit Visual Studio C# Express und legen ein neues Projekt an:
XNA_und_CSharp_01

Nach dem Erstellen, dürfte euch gleich die Hauptseite geöffnet vorliegen. Standard mäßig ist das hier die Game1.cs:

XNA_und_CSharp_02

Als erstes tragen wir die erforderlichen Members ein:

XNA_und_CSharp_03

Nun zum Constructor “Game1()”. Da benötigen wir nur den TimerSpan einrichten.
XNA_und_CSharp_04

In unseren LoadContent() wird unser Model im .X Format geladen und wir legen das Seitenverhältnis fest.

XNA_und_CSharp_05

Über “Update(GameTime gameTime)” können wir Veränderungen eingeben, die zur Laufzeit gerendert werden soll. Hier verändern wir die Rotation des Objektes.

XNA_und_CSharp_06

So, letzte Methode ist “Draw(GameTime gameTime)”. Mit der foreach Schleife werden die Parameter festgelegt, die später gerendert wird pro Durchgang.

XNA_und_CSharp_07

Zu guter Letzt, darf das Model nicht fehlen. Einfach in den WindowsGame1Content hinzufügen.

XNA_und_CSharp_08

Fertig. Drücke dann F5 und wir können uns freuen.

XNA_und_CSharp_09


So, dazu muss ich noch hinzufügen, dass leider mein Model nicht ganz richtig dargestellt wird. Ein Teil des Rumpfes wird von der Innenseite gerendert. Aber vielleicht erkennt es der eine oder andere ja, aus welchen Spiel ich das Model nach gebaut habe als Low Polygone Model Zwinkerndes Smiley.

Montag, 15. November 2010

Monitor Reparatur

Letztens durfte ich einen defekten Monitor mitnehmen, dessen Beleuchtung nicht mehr funktionierte. Das Bild hingegen wurde ausgegeben, aber ohne die Leuchtröhre sieht es so ziemlich düster aus. Für mich war klar, es musste wohl am Inverter liegen. Also öffnete ich den Monitor und stellte fest, dass der Inverter fest mit den anderen Schaltkreisen auf einer Platine ist. Gut dass ich den defekt sehen konnte und glücklicher weise hatte ich bei der Bestellung für Kondensatoren noch welche übrig.

Das Öffnen war etwas unschön. Da der Fuß des Monitors nur schwer abschreiben lies.

Monitor Reparatur

In den roten Kreisen sind die defekten Kondensatoren zu sehen

Monitor Reparatur_02 

Und hier nochmal von der Seite. Hier ist dann deutlich zu sehen das die leicht auf geplatzt sind. Es dürften sich hier um günstig hergestellt Kondensatoren handeln.

Monitor Reparatur_03

Die neuen Kondensatoren sind offensichtlich größer, trotz der selben Werte. Hier ist es nicht zwingend notwendig ESR Kondensatoren zu verwenden, da wir hier keine Hochfrequenzen haben wie auf einem Mainboard.

Monitor Reparatur_04

Und siehe da. Nach dem einlöten der neuen Kondensatoren habe ich zu dem Bild wieder auch eine Hintergrundbeleuchtung.

Monitor Reparatur_05

Dienstag, 24. Juni 2008

Mc Donald Anlegestelle
Sowas habe ich bisher noch nicht gesehen. Was es nicht alles gibt.

Ameisen Simulation und andere Dinge

Wer lange sich schon mit C# beschäftig, hat sicherlich schon mal was von AntMe gelesen oder gehört. Diese Idee hatte ich aufgegriffen und mi...