1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Oscar

Beiträge von Oscar

  • AutoIt und Arduino

    • Oscar
    • 10. Juni 2016 um 16:17

    Ich habe mir das ESP-Basic auch mal angesehen, aber jetzt wieder alles umzudenken, ist mir zu aufwendig.
    Und wie bindet man da zusätzliche Fonts für die Anzeige auf dem TFT ein? Ich habe da nichts gefunden.

    Aber auch sonst ist die Dokumentation zum ESP nicht wirklich gut! Ich habe gestern ca. 5 Stunden damit verbracht, herauszufinden was es mit einem "wdt reset" auf sich hat.
    Ich wollte meine Wetterstation erweitern. Der Luftdrucksensor ließ sich noch problemlos einfügen (per I2C), aber als ich dann die beiden DHT-Feuchte-Sensoren angeschlossen hatte, gab's per serieller Ausgabe immer einen "wdt.reset". Ok, das ist der "Watchdog", aber warum wird der ausgelöst? Und warum liefert die RTC (DS3231) plötzlich nur noch Datenschrott?

    Bis ich dann nach Stunden der Suche einen Hinweis fand, dass ich die Feuchte-Sensoren nicht hätte an GPIO9 und GPIO10 anschließen dürfen. Wobei GPIO10 noch funktioniert, aber GPIO9 führt direkt zum "wdt.reset".
    Hier (ESP-12-schematic) habe ich dann mal etwas brauchbares gefunden. Wenn man mit so was: ESP-12-Pinout arbeitet und naiv denkt, dass man die GPIOs alle nutzen kann, dann kommt sowas (oben) dabei raus.

    Die Arduinos sind dagegen viel Einsteiger-freundlicher. Mit dem UNO oder meinen 5 NANOs (China-Clones) hatte ich nicht solche Probleme. Gerade weil dort die Dokumentation viel besser ist.
    Naja, jetzt werde ich mich also mal im ESP-Forum einlesen.

  • AutoIt und Arduino

    • Oscar
    • 5. Juni 2016 um 19:43
    Zitat von Alizame

    So schlimm ist C jetzt auch nicht

    Wenn man in meinem Alter erst damit anfängt, schon! :rolleyes:
    C geht ja auch noch, aber C++ ist dann schon "hirnwindungsverdrehender". :/

  • AutoIt und Arduino

    • Oscar
    • 5. Juni 2016 um 13:33

    Interessanter Erfahrungsbericht!
    Ich benutze allerdings "nur" die Arduino-IDE zum programmieren/hochladen. Bisher lief das ganz gut und nach anfänglichen Schwierigkeiten mit C/C++ bin ich mittlerweile schon etwas geübter damit.
    Was ich bei den ganzen ESP8266-Teilen nervig finde, ist, dass es zu viele verschiedene (LUA, Basic, C/C++, AT-Befehle) Programmiersprachen gibt und man bei der Suche im Netz stets ein Beispiel mit der "falschen" Programmiersprache findet.
    Auch beim programmieren mit der Arduino-IDE gibt es einige Probleme, weil einige Libraries den ESP8266 nicht unterstützen.
    Insgesamt verbringt man viel Zeit damit, sich etwas passendes im Netz zu suchen oder die Libraries entsprechend anzupassen (was mit meinen bescheidenen C/C++ Kenntnissen nicht immer gelingt).
    Meine kleine Wetterstation will ich eigentlich auf dem ESP laufen lassen, aber nachdem ich jetzt das 2.2" TFT zum laufen bekommen habe, gab es Probleme mit der RTC (DS3231). Zum Glück reichte eine kleine Anpassung in der Library und jetzt funktioniert die RTC. Mal sehen, wie das mit den Sensoren aussieht...
    BTW: Kennt jemand einen 7-Segment-Font (12er bis 24er Größe) der mit der Adafruit_GFX_Library (die TFT_ILI9341-Library funktioniert leider nicht auf dem ESP) läuft?

  • Mehrere Funktionen gleichzeitig Ausführen

    • Oscar
    • 2. Juni 2016 um 09:21

    Das Wesentliche ist gesagt: gleichzeitig geht nicht!
    Und auch wenn das hier grenzwertig ist, wird es sehr wahrscheinlich gegen die AGB des Spiele-Betreibers verstoßen (Script-Verbot steht dort meistens drin).
    Deshalb: [closed]

  • AutoIt und Arduino

    • Oscar
    • 1. Juni 2016 um 10:25

    Mein Erkenntnisgewinn sieht etwas anders aus:
    Die Stromversorgung über USB reicht (Normalverbrauch: 70mA), wenn man die Peaks entsprechend abfängt.
    Ich denke, die meisten Probleme (von denen im Netz berichtet wird) entstehen, weil eben keinerlei Stabilisierung benutzt wird.
    Mein Testaufbau entstand übrigens auf einem Steckbrett und gemessen habe ich nahe an den Anschlüssen des ESP.
    Und ich habe bewusst nur mit der USB-Stromversorgung getestet, weil das (bei mir zumindest) die instabilste Variante ist.
    Mit externem 3.3V Spannungsregler (plus Kondensatoren) hatte ich noch nie Probleme. Das lief bisher immer stabil.

  • AutoIt und Arduino

    • Oscar
    • 31. Mai 2016 um 19:51

    Da ich ja wieder zuhause bin, habe ich mal einige Tests mit dem ESP8266-01 gemacht.
    Angeschlossen per USB-Seriell-Adapter (auf 3.3V eingestellt) und mit der Arduino-IDE programmiert.
    Test-Sketch ist der "WiFiScan".
    Ich habe jetzt mal auf eine externe Spannungsquelle verzichtet und ihn nur über den USB-Seriell-Adapter versorgt.
    Beim hochladen musste ich aber einen Elko (3300uF) parallel zur Versorgungsspannung schalten, weil der Spannungseinbruch sonst zu groß ist und das hochladen nicht klappt.
    Der eigentliche WiFiScan funktioniert dann aber auch ohne Elko.
    Hier mal ein paar Screenshots vom Oszi:

    Ohne Elko:
    esp8266_ohne.png

    Mit 470uF:
    esp8266_mit_470uF.png

    Mit 3300uF:
    esp8266_mit_3300uF.png

    Wie man sieht ist der Spannungseinbruch ohne Elko sehr groß (> 1Volt) und führt u.U. bei länger andauernden Sende-/Empfangsfunktionen zum Absturz des ESP.
    Aber bereits ein 470uF-Elko verringert den Spannungseinbruch auf unter 400mV. Und der 3300uF-Elko glättet die Peaks schon recht gut weg (<160mV).
    Wobei ich aber dazusagen muss, dass der 3300uF-Elko bereits größer (Baugröße) als der ESP8266-01 ist. :D

    Edit: Noch ein Nachtrag! Der Strom während des WiFiScan beträgt rund 70mA (gemessen mit einem Multimeter). Strom-Peaks geht nicht, weil ich keinen Shunt für das Oszi hier habe.

  • AutoIt und Arduino

    • Oscar
    • 26. Mai 2016 um 21:36
    Zitat von Andy

    Hat jemand Infos zum "Stromsparmodus" des ESP8266? Einige 100mA saugen mir in einigen Stunden/Tagen meine LiPo-Akkus leer...

    Einige 100mA zieht der ESP nur selten. Im Normalbetrieb ist das weniger. Ich bin aber derzeit nicht zuhause (im Urlaub). Wenn Du den Stromverbrauch genauer brauchst, sag Bescheid, dann teste ich das nächste Woche mal, wenn ich wieder daheim bin.

  • Dynamische Schleife

    • Oscar
    • 23. Mai 2016 um 07:48

    Doch, meine Lösung funktioniert ohne die AutoIt-Exe!
    Du musst nur unbedingt die erste Zeile angeben: #pragma compile(AutoItExecuteAllowed, true)
    Dann kann man AutoIt-Scripte auch mit der compilierten Exe ausführen.

  • Dynamische Schleife

    • Oscar
    • 22. Mai 2016 um 21:42

    Ich würde das in etwa so machen:
    Den Text ähnlich wie HTML mit Start-/End-TAGs versehen:

    Code
    Lorem ipsum dolor sit amet, consetetnonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
    <autoit>
    For $i = 0 To 10
    	ToolTip($i)
    	Sleep(100)
    Next
    </autoit>
    Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Deros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
    <autoit>
    For $i = 0 To 10
    	For $n = 0 To 10
    		ToolTip($i & '   ' & $n)
    		Sleep(100)
    	Next
    Next
    </autoit>
    Alles anzeigen


    Und dann im AutoIt-Code:

    AutoIt
    #pragma compile(AutoItExecuteAllowed, true)
    
    
    If $CmdLine[0] > 0 Then
    	MsgBox(0, 'Start Script', $CmdLine[1])
    	RunWait(@AutoItExe & ' /AutoIt3ExecuteScript "' & $CmdLine[1] & '"')
    	Exit
    EndIf
    
    
    #include <Array.au3>
    $sTempCode = @ScriptDir & '\TempCode.au3'
    $sText = FileRead(@ScriptDir & '\test.txt')
    
    
    $aAutoItCode = StringRegExp($sText, '(?s)<autoit>(.+?)</autoit>', 3)
    _ArrayDisplay($aAutoItCode)
    
    
    For $sAutoItCode In $aAutoItCode
    	$hFile = FileOpen($sTempCode, 2)
    	If $hFile <> -1 Then
    		FileWrite($hFile, $sAutoItCode)
    		FileClose($hFile)
    		ShellExecuteWait(@AutoItExe, $sTempCode)
    	EndIf
    Next
    Alles anzeigen
  • PATH variabel aufbauen und abfragen

    • Oscar
    • 26. April 2016 um 07:32

    Du musst den ausgelesenen Inhalt auch Deiner Variablen "$sFilePath" zuweisen und zwar erst dann, wenn Du das brauchst (im $ok-Case).
    Außerdem ist es einfacher das erste Element des $Drive-Arrays per _ArrayDelete zu löschen, statt hinterher per StringRegExpReplace.
    Und die Prüfung (FileExists) auf das existieren der Datei gehört ebenso in den $ok-Case und nicht außerhalb des Switch.
    Hier mal die korrigierte Version:

    AutoIt
    #include <MsgBoxConstants.au3>
    #include <array.au3>
    
    
    $Drive = DriveGetDrive("Fixed")
    _ArrayDelete($Drive, 0) ; Entfernt "$Drive[0]" , da dieses Element die Anzahl der Laufwerke angibt
    $String = _ArrayToString($Drive, "|") ;macht aus Array einen String wobei die Einträge mit "|" getrennt werden
    GUICreate("Laufwerk", 260, 50)
    $Combo = GUICtrlCreateCombo("C:", 10, 10, 200, 20)
    GUICtrlSetData(-1, $String, $Drive[0]) ; Setz den Inhalt der Combo und setzt das 1. gefundene Laufwerk als default
    $Ok = GUICtrlCreateButton("OK", 220, 10, 30, 22)
    $sFilePath2 = "\Cloud-Dienste\MEGA\Keepass\Firefox_Keepass.kdbx"
    GUISetState()
    
    
    While 1
    	Switch GUIGetMsg()
    		Case -3
    			Exit
    		Case $Ok
    			$sFilePath = GUICtrlRead($Combo)
    			MsgBox(0, "Laufwerk", $sFilePath)
    			If FileExists($sFilePath & $sFilePath2) Then
    				MsgBox($MB_SYSTEMMODAL, "MSGt2", "-Datei gefunden. Weiter mit ...", 3)
    				Exit
    			Else
    				MsgBox($MB_SYSTEMMODAL, "MSGt3", "Datei nicht gefunden überprüfen Sie Ihre Laufwerke", 3)
    				Exit
    			EndIf
    	EndSwitch
    WEnd
    Alles anzeigen
  • Treeview - Un/Check eines Item mit allen SubItem (rekursiv)

    • Oscar
    • 25. April 2016 um 19:01

    Benutze mal diese "WM_NOTIFY":

    AutoIt
    Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
        #forceref $hWnd, $iMsg, $wParam
        Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTreeview = $hTreeview, $fCheck, $hParent
        $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
        $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
        $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
        $iCode = DllStructGetData($tNMHDR, "Code")
        Switch $hWndFrom
            Case $hWndTreeview
                Switch $iCode
    				Case $TVN_ITEMEXPANDEDA, $TVN_ITEMEXPANDEDW
    					Local $tNMTREEVIEW = DllStructCreate($tagNMTREEVIEW, $lParam)
    					Local $hItem = DllStructGetData($tNMTREEVIEW, 'NewhItem')
    					Switch DllStructGetData($tNMTREEVIEW, 'Action')
    						Case $TVE_EXPAND
    							ConsoleWrite("!> EXPAND: " & _GUICtrlTreeView_GetText($hWndTreeview, $hItem) & @LF)
    						Case $TVE_COLLAPSE
    							ConsoleWrite("!> COLLAPSE: " & _GUICtrlTreeView_GetText($hWndTreeview, $hItem) & @LF)
    					EndSwitch
    				Case $TVN_SELCHANGEDA, $TVN_SELCHANGEDW
    					Local $tNMTREEVIEW = DllStructCreate($tagNMTREEVIEW, $lParam)
    					Local $hNewItem = DllStructGetData($tNMTREEVIEW, 'NewhItem')
    					If $hNewItem = 0 Then Return 1
    					Local $fChecked = BitAND(DllStructGetData($tNMTREEVIEW, 'NewState'), 8192) = 0
    					ConsoleWrite("!> SELCHANGED Handle: " & $hNewItem & @LF)
    					ConsoleWrite("!> SELCHANGED Checkbox: " & $fChecked & @LF)
    					ConsoleWrite("!> SELCHANGED Text: " & _GUICtrlTreeView_GetText($hWndTreeview, $hNewItem) & @LF)
                EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>WM_NOTIFY
    Alles anzeigen
  • 24-Bit Farbe in 16-Bit-Farbe umwandeln

    • Oscar
    • 24. April 2016 um 12:28

    Ich besitze auch solch ein 2.2" TFT-Display.
    Und das mit den 3.3V kann ich bestätigen. Meins habe ich über entsprechende Pegelwandler angeschlossen.
    Die Library von Adafruit ist tatsächlich relativ langsam. Es gibt aber eine deutlich schnellere Variante: TFT_ILI9341.

  • Firefox Startseite

    • Oscar
    • 18. April 2016 um 20:10

    Nicht böse gemeint, aber bevor Du im Firefox-Profil Änderungen vornimmst, solltest Du erstmal die AutoIt-Grundlagen beherrschen.
    Das Profil von Firefox lässt sich per Registry herausfinden, aber dazu solltest Du erstmal die Registry-Befehle von AutoIt beherrschen.
    Deine bisherigen Fragen hier im Forum lassen darauf schliessen, dass es da noch so diverse Lücken zu füllen gibt. ^^

  • Hosts Datei

    • Oscar
    • 16. April 2016 um 15:54

    Mal abgesehen davon, dass Du Dir nochmal genau durchlesen solltest, was FileFlush eigentlich macht, funktioniert FileFlush nur mit dem FileHandle (Rückgabe von FileOpen) und nicht mit dem Dateinamen.

  • Maus sperren (nicht Tastatur)

    • Oscar
    • 15. April 2016 um 17:42
    Zitat von mirko2002

    Mein Programm trägt Bestellungen von Kunden in einem unserer Programme ein.

    Und warum gibt Dein Programm nicht gleich die Bestellung an euch weiter?
    Wozu ein Script, was Eintragungen in ein eigenes Programm macht? Noch dazu per Mausmove/-click.

  • Arduino als Fernbedienungsersatz

    • Oscar
    • 5. April 2016 um 18:19

    Wenn Du noch gar keine Erfahrung mit den Microcontrollern hast, dann solltest Du erstmal mit den Grundlagen anfangen.
    Aber Elektronik-Grundlagen sind vorhanden?

    Wie sieht es denn mit Löt-Erfahrung aus? Weißt Du an welchem Ende der Lötkolben heiß wird? :D
    Nein, im Ernst, man kann zwar vieles auf einem Steckbrett "verkabeln", aber oft muss man auch löten.

    Was brauchst Du?
    Ich stelle mal eine Liste mit Teilen auf, die zum Erfahrung sammeln nützlich/erforderlich sind:
    - Lötkolben mit kleiner Spitze (keine Lötpistole und auch kein Dachdecker-Brateisen). Ich habe mir neulich diesen hier gekauft: Lötkolben
    - Lötdraht (der bleihaltige ist zwar nicht so umweltfreundlich, aber schmilzt bereits bei ca. 180 Grad, bleifreier Lötdraht schmilzt erst bei über 210 Grad): Lötdraht
    - Eine "dritte Hand". Das ist sowas: dritte Hand
    - Ein oder mehrere Steckbrett(er)
    - Ein paar "kleine" Arduinos. Ich finde die China-Nanos ganz gut (passen gut auf's Steckbrett, haben einen USB-Anschluss und kosten im 5er Pack ca. 17 €, man muss aber meist die Stiftleisten selbst anlöten).
    - Einige fertige Drahtbrücken zum "verkabeln" auf dem Steckbrett.
    - So ein Starter-Set mit diversen Widerständen, Tastern, LEDs, Potis und Steckleisten kann ganz nützlich sein.
    - Es gibt auch umfangreichere Starter-Sets, wo dann auch eine Anleitung dabei ist.

    Naja, und wenn Du erstmal die Grundlagen beherrschst, dann kannst Du Dich mit Deinem obigen Projekt beschäftigen.
    Mit TFTs habe ich bisher erst wenig Erfahrung. Bis auf das oben erwähnte 1.8" TFT.
    Ich benutze die Arduino-IDE und programmiere in C (naja, ich versuche es). :rolleyes:

  • Arduino als Fernbedienungsersatz

    • Oscar
    • 4. April 2016 um 19:52

    Da ich zur Zeit selbst viel mit mehreren Arduinos (einen UNO und 5 Nanos) mache, kann ich Dir schonmal sagen, dass die kleinen Arduinos für einen Touchscreen nicht genügend Ressourcen (RAM) besitzen.
    Ich habe hier gerade einen "Arduino Nano v3" und betreibe an dem ein 1.8" TFT (ohne Touch) und dazu eine RTC DS3231 (Echtzeituhr), ein DHT22 (Luftfeuchte-Sensor) und ein BMP085 (Luftdruck-Sensor).
    Damit ist dann das Maximum schon fast erreicht. Für den externen Temperatur-Sensor DS18B20 reichte es gerade noch.
    Bei einem Touchscreen wird immer zum "Arduino Mega 2560" geraten. Der hat mehr Anschlüsse, mehr SRAM und mehr FlashRAM, ist allerdings auch größer.

    Als Alternative würde sich der "ESP8266" anbieten. Der hat deutlich mehr Power und lässt sich auch über die Arduino-IDE programmieren (finde ich persönlich sehr praktisch).

    Wie viel Erfahrung hast Du denn schon mit der Programmierung der Mikrocontroller und vor allem mit der Elektronik?
    Was Du da vorhast ist nämlich schon etwas größeres, bei dem man einiges an Grundlagen beherrschen sollte.

    Ansonsten gibt es da auch noch das deutsche Arduino-Forum.

  • Timer mit Progressbar der läuft während ein Programm läuft

    • Oscar
    • 15. März 2016 um 17:04

    Zitat aus der Hilfe zu FileOpenDialog:

    Zitat von FileOpenDialog

    @WorkingDir is changed on successful return.

    Und da Du einen relativen Pfad bei IniWriteSection verwendest, wird die Ini im "falschen" (WorkingDir) Verzeichnis erstellt.

  • Compare - Zwei Strings - Prozentuale übereinstimmung - Levenshtein-Distanz

    • Oscar
    • 3. März 2016 um 17:08

    Das Stichwort lautet: Levenshtein-Distanz.

    Hier findest Du das Script von bernd670: Strings vergleichen
    Beim Forenumzug sind einige Anhänge verloren gegangen. Die DLL fehlt dort. Deshalb hier im Anhang die DLL, die ich damals von bern670 bekommen habe.

    Dateien

    LevenshteinDistance.zip 145,94 kB – 304 Downloads
  • CPU effektiver bei Script Ausführung einsetzten

    • Oscar
    • 1. März 2016 um 18:51

    Oh sh*t! 54ms! ^^
    DER Befehl in der Crypt-UDF ist mir völlig entgangen.
    Danke für den Hinweis! Ich optimiere mir hier den Wolf und dann so einfach!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™