Show Posts
Pages: 1 ... 3 4 [5] 6 7 ... 28
61  International / Deutsch / Re: Grafische Projektier-Oberfläche für GLCDs on: February 22, 2014, 11:29:53 am
Ja stimmt.
An ein Grafikprogramm hab ich auch schon gedacht. Aber da ist es schwierig bis unmöglich einmal gezeichnete Objekte wieder zu verschieben, da diese mit dem Hintergrund verschmelzen.

Vllt. irgendein 2D-CAD-Programm..... Mal suchen
62  International / Deutsch / Grafische Projektier-Oberfläche für GLCDs on: February 22, 2014, 11:21:13 am
Hi,

ich bin gerade am Überlegen, ob es so was wie eine Projektier-Oberfläche für GLCDs gibt.
Also wo ich meine GLCD-Größe (z.B. 800x480 pixel) als Arbeitsbereich definieren kann. Dann in der Arbeitsfläche meine Objekte zeichne und die dann platziere.
Es würde dann ja schon reichen, wenn ich die zu definierenden Eckpunkte mit den Koordinaten ablesen kann. Eine automatische Codegenerierung ist absolut nicht notwendig.
Ich hab schon an Excel gedacht. Die Zeilen und Spalten entsprechend klein gewählt, damit alles auf den Monitor passt. Bei den Zeilen wäre ja schon eine Nummerierung von oben nach unten vorhanden (Wenn auch von 1 beginnend). Aber die Spalten sind mit A,B,C bezeichnet. Da ist das Umsetzen auf Koordinaten doof.

Hat da von euch schon mal jemand ähnliches versucht?

Gruß/hk007
63  International / Deutsch / Re: GLCD: Zyklusbelastung für Arduino on: February 22, 2014, 07:33:51 am
Guck dir mal die Nucleo Boards von ST an. Die Dinger kosten so wenig, wie ein China-Arduinoclone, hat aber genügend Bums unter der Haube  smiley
Und hab ne komplett andere Entwicklungsebene :-(
Dann nehm ich lieder eine DUE. Da brauch ich nix an der Software ändern, sondern nur ein paar Level-Shifter für meine Peripherie einbauen.
64  International / Deutsch / Re: GLCD: Zyklusbelastung für Arduino on: February 22, 2014, 06:11:33 am
Quote
Wenn wir also von Typ B) Displays reden, dann steigt der Zeitaufwand für das Linien-Zeichnen linear mit der Länge der Linie.
Ich denke wir reden von dem Typ.  smiley-cool
--> Das Zeichnen einer Liniengrafik auf einem 3,2" Display dauert genauso lange wie auf einem 7" Display, wenn man die Größe der Grafik nicht verändert!

Entscheident ist natürlich die Dimension des Displays in Pixel. Wenn dein 4.3" Display 320x240 groß ist, aber das 7" Display 800x600 hat, dann könnte es schon passieren, dass Du mehr zeichnen musst. Da dann vielleicht auch das DPI (Verhältnis Pixel zur Display-Diagonalen) größer wird, möchtest Du vielleicht größere Fonts verwenden, die dann ebenfalls mehr Zeit zum Zeichnen brauchen.
Genau darauf wollte ich mit meiner "Idee" der Teilbildschirme aus dem ersten Post raus.
Wenn man es geschickt anstellt, dann kann man so die Information von 2 oder mehr Seiten eines kleineren Displays auf einem großen darstellen, ohne dass man mehr Ressourcen beim Arduino verschwendet, aber doch alles auf einmal sieht, und nicht immer lästig zwischen den Bildern umschalten muss.
Alles unter der der Regel: Nicht größer zeichen, sondern mehr darstellen.

Quote
Aber Achtung: Displays zwischen 128x128 bis 240x320 werden oft verkauft und werden prima unterstützt. Wenn es größenmäßig  darüberhinaus geht, sollte man vor dem Kauf nach einer geeigneten Library suchen.
Ich hab gerade nachgeschaut.
Die UTFT von Henning Karlsen unterstützt auf alle Fälle 5,0" mit 800x480 pixel. (SSD1963-Controller) Das 7.0 Zoll hat die gleiche Auflösung/Controller. Sollte also kein Problem sein, sogar ein 7 Zoll zu nehmen. DIe Augen werden ja auch nicht besser  smiley-eek-blue
65  International / Deutsch / Re: GLCD: Zyklusbelastung für Arduino on: February 22, 2014, 06:04:07 am
Quote
Nicht die Größe sondern die Auflösung ( pixel) ist ausschlaggebend.
Ist mir klar, kam wohl nicht so rüber  smiley-wink

Quote
Kauf auf alle Fälle ein Display das explizit für Arduino geeignet beschrieben wird und wo der Verkäufer eine Bibliothek und Beispiele zur Ansteuerung mit Arduino bereitstellt.
Ich verwende Displays mit SSD1289 und SSD1963 Controller. Dazu die UTFT...LIB von Henning Karlsen.

Ich geh davon aus, dass es so abläuft:
- Der Arduino hat einen Befehl: Zeichne Linie von P1[X=0;Y=0] nach P2[X=0;Y=19] in Weiss. Linienstärke 1 Pixel.
- Die LIB wandelt das so um, dass folgendes herauskommt: Es sind 20 Pixel in Weiss zu zeichnen. Diese Information wird dann über den Datenbus an den Displaycontroller übergeben.
- Der Displaycontroller schreibt dann die 20 neuen Pixel in seine Bildschirmspeicher und refresht den Bildschirm.

So ähnlich sehe ich es auch in meiner aktuellen Software. Ich stelle so ca. 30-40 Linien/Rechtecke sowie Texte dar.
Sonst läuft auf dem MEGA noch ein kleiner Webserver, und etwas Steuerungssoftware. Freier RAM sind noch ~5k.
Allerdings dauert ein Zyklus ca 1 sec. Davon braucht die Grafikausgabe  ~0,4 sec.

Anders wäre es ja nicht machbar.
Bei einem 5" Display mit 800x480 Pixel bräuchte man dann 384.000 Byte Speicher. Dann könnte man alle Pixel mit 256 verschiedenen Farben im Arduino halten.
Etwas viel für den MEGA. Selbst für den DUE  smiley-razz smiley-razz

66  International / Deutsch / GLCD: Zyklusbelastung für Arduino on: February 22, 2014, 02:58:06 am
Hi,

da die GLCDs immer billiger werden, schiele ich immer mehr nach einem größerem Display.
Aktuell hab ich ein 4,3" in meiner Steuerung. Ist ja schon nicht schlecht, aber 7" wär natürlich was anderes :-)
Allerdings denk ich auch etwas an die "Arbeit" für meinen Arduino.
Da würd ich gern etwas Basics mit euch diskutieren,
Ich stell jetzt mal ein paar Thesen auf.
1.) Für den Arduino ist es ein Befehl eine Linie zu zeichnen. Die "zeitliche Belastung" dafür ist unabhängig von der Größe des Displays und unabhängig von der Länge der Linie. Beim zweiten Teil bin ich mir nicht sicher. Da wäre es interessant zu wissen, ob die Umsetzung von Start-und Endpunkt in Pixel am Arduino, oder im Chip des Displays passiert.
2.) Wenn ich den Bildschirm gedanklich in zwei Hälften teile, und diese geschickt mit Informationen bespiele, dann ist es für den Arduino auch nicht mehr "Arbeit", als wenn ich auf einem kleineren Display zwei Seiten projektiere und die immer umschalte.  Ich seh halt bei einem größeren GLCD mehr Informationen auf einmal.
67  International / Deutsch / Re: Ethernet Shield - Datei von SD über Ethernet holen on: February 19, 2014, 01:15:56 pm
Schau mal hier:

http://www.ladyada.net/learn/arduino/ethfiles.html
oder hier
https://github.com/adafruit/SDWebBrowse

Hab das mal vor einiger Zeit gemacht. Glaube, das waren die Quellen dafür.
68  International / Deutsch / Re: GLCD: Flackern, bei übereinanderliegenden Objekten. on: February 09, 2014, 08:32:57 am
Hi Serenifly,

Du bist wie es aussieht, momentan mein persönlicher Telefon-Joker    smiley
Ja, wenn man genauer beobachtet, sieht es aus wie ein Geschwindigkeitsproblem.
Auch wenn die beiden Schreibbefehle direkt hintereinander rausgehen, sieht man, dass erst die Flache komplett gezeichnet wird, und dann noch einmal der Text drüber gelegt wird. Und das ist dann das Flackern.

Hab jetzt noch einige Zeitmessungen durchgeführt:
Aktuell braucht mein GLCD-Programmteil ca. 130ms. Male so 10 Rechtecke und gebe ~20 Werte/Texte aus. Schätze, dass ich so 20-25% der Flache (320x240) beschreibe. Wird aber wohl doppelt so viel werden.
Und der ganze andere Code braucht auch noch mal 700ms :-(
Muss ich mal etwas entzerren. Manche Sachen müssen nicht alle Sekunden aufgerufen werden.

Will das ganze später auf einem 4,3" mit 420x272 laufen lassen.  Mal schauen, wie es dann aussieht.
TFT ist noch auf dem Weg von Hongkong. Dazu hab ich mir jetzt noch das Screw-TFT-Shield von Aqualedsource aus Portugal bestellt. Das mit den fehlenden Anschlussklemmen hat mich eh immer genervt. Und so schlag ich zwei Fliegen mit einer Klappe.
Ach ja: DS1307 ist auch noch drauf. Kann man für eine Heizungssteuerung immer brauchen
Auf einen DUE kann ich immer noch umsteigen. Brauch dann nur einige Levelshifter für die Peripherie.

Gruß/hk007
69  International / Deutsch / GLCD: Flackern, bei übereinanderliegenden Objekten. on: February 09, 2014, 06:50:43 am
Hi,
ich programmiere gerade ein 3,2" Touch LCD mit der UTFT Bibliothek von Henning Karlsen.
Dazu noch einmal eine Frage:

Aktuell habe ich zwei Elemente übereinander platziert. Jetzt flackert das zweite.
Ich habe zum Beispiel ein gefülltes Rechteck. darin schreibe ich dann noch einen Zahlenwert drüber. Das GLCD wird momentan alle 1 Sekunde geschrieben. Man sieht dann ganz deutlich, wie der Bereich an dem die Zahl angezeigt wird, im Sekundentakt flackert.
Schreibe ich die Zahl neben das Rechteck in einen unbenutzen Bereich, dann ist die Ausgabe flackerfrei.

Ist das normal, oder mache ich einen Fehler?

70  International / Deutsch / GLCD: Nullpunkt ändern. on: February 08, 2014, 01:12:09 pm
Hi,
ich programmiere gerade ein 3,2" Touch LCD mit der UTFT Bibliothek von Henning Karlsen.
Dazu mal eine Frage:

Der Nullpunkt ist beim LCD links oben. Gibts da eine Möglichkeit den Nullpunkt nach links unten zu verschieben. Also so, dass man das LCD wie im positiven Quadranten eines Koordinatensystems ansprechen kann? "X+" nach rechts und "Y+" nach oben
Bei der X-Koordinate ist es eh "richtig".
Aber bei der Y-Koordinate verbiegts mir jedesmal das Hirn, wenn ich rückwärts rechnen muss.
71  International / Deutsch / Re: F() -Funktion für Ausgabe über Ethernet on: February 05, 2014, 05:10:58 pm
OK, danke für die Info.
Muss schon sagen, dass du ein fundiertes Hintergrundwissen hast.

Danke nochmal.
Bis zum nächsten Problem  smiley-razz
72  International / Deutsch / Re: F() -Funktion für Ausgabe über Ethernet on: February 05, 2014, 04:00:24 pm
Ja, client.print() verwende ich auch bei der Ethernet-Ausgabe.

Und du hast recht, man könnte die Zeilen auch trennen:
Code:
//client.println("objGradient.addColorStop(0,   'rgb" + temp1 + "'); ");                        
-->
client.print("objGradient.addColorStop(0,   'rgb");
client.print(temp1);
client.println("'); ");
Ist das selbe Ergebnis:
Und dann die erste und die letzte mit dem F() versehen.
Aber da geht mir etwas an Lesbarkeit des HTML-Textes verloren.

Ich hab jetzt alle "normalen" Zeilen der Webseite ins Flash verbannt, und bin dadurch von 1288 auf 4678 Byte freies RAM gekommen.  smiley smiley smiley
Das ist m.E. mit wenig Aufwand ein super Ergebnis.

Noch eine Frage:
Bei der detaillierten Ausgabe des Compilers bekomme ich für jede Zeile mit dem F() Makro eine Warnung:
Code:
warning: only initialized variables can be placed into program memory area

Muss ich mir da Gedanken machen? Ich hab ja keine Variablen, sondern nur Text.
73  International / Deutsch / F() -Funktion für Ausgabe über Ethernet on: February 05, 2014, 02:39:06 pm
Hi,
arbeite zwar momentan mit einem Mega als Webserver, aber da ist der Speicher auch nicht unbegrenzt.
Da ich eine HTML-Seite über Ethernet sende, und nur noch ca. 1000Byte RAM übrig sind,  hab ich angeregt von Serenifly über Auslagerung ins Flash nachgedacht.
Für die F()-Funktion hab ich zwar nur Beispiele für Serial.println gefunden, aber ich dachte mir ich probiers auch mal mit client.println.
Allein der Header der HTML-Seite hat mir schon 60Byte an SRAM gebracht. smiley Aber 106 Byte an Flash gekostet?? Na ja, davon hab ich noch genug.
Code:
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/html"));
client.println(F("Connnection: close"));
client.println();
Würdet ihr das auch so machen, oder gibts noch bessere Ideen?

Allerdings klappt es nicht immer. Ich hab auch dynamische Zeilen, bei denen ich Werte in den HTML-Code integriere.
Code:
client.println(F("objGradient.addColorStop(1,   'rgb" + temp6 + "');"));
Hier ist temp6 ein C-String. Da klappt es leider nicht. Fehlermeldung:
initializer fails to determine size of '__c'
Oder auch hier, selbe Fehlermeldung:
Code:
sprintf (timestring, "%02d:%02d:%02d", hour, minute, second) ;
client.println(F("<tr><td colspan='3'>Aktuelle Uhrzeit: " + String(timestring) + " Uhr</td></tr>"));

Gibts da auch eine Lösung?

Gruß/hk007
74  International / Deutsch / Re: UTFT: String als Farbe vorgeben on: February 04, 2014, 06:10:50 pm
P.S. deine Funktion gibt den RGB Wert nicht zurück! Du musst die Parameter schon als Referenzen deklarieren. Sonst arbeitest du lediglich mit lokalen Kopien:
Hehe, du bist echt gut. Und ich ne richtige C-Pfeife smiley-cry

Hab mir gerade den Arsch abgesucht, wieso ich immer "0" zurückbekomme.
Ich mach einfach zu wenig mit C. Und wenn ich wieder mal rumprogrammiere, dann fall ich über die einfachsten Sachen.

Danke dir für deine Hilfe!
75  International / Deutsch / Re: UTFT: String als Farbe vorgeben on: February 04, 2014, 05:39:25 pm
Ja mit den Strings steh ich voll auf Kriegsfuss.  smiley-cry
Ich könnte die Funktion ja für beide Ausgabearten schreiben: Dann brauch ich nichts im HTML-Code ändern.
Code:
  void color (float tempin, String &stringout, byte red, byte green, byte blue) {
      if  (tempin >= 90.0 && tempin < 100.0) {
//        stringout = "(175,0,0)";
        red = 175; green = 0; blue = 0;
      }
      else if  ((tempin >= 75.0) && (tempin < 90.0)) {
.....
 stringout = "(" + red + "," + green + "," + blue +")";  
  }

Allerdings ärgert mich da wieder die letzte Zeile. Anscheinend kann ich nur immer 2 Teilstrings zusammenführen.
Ich wollte mir halt sparen die Zuweisung für stringout in jeder if-Anweisung zu schreiben, sondern die nur einmal am Ende der Funtion "berechnen"
Der Befehl sprintf() ist ja nur für die Ausgabe gedacht. Oder kann ich den hier auch verwenden?
Pages: 1 ... 3 4 [5] 6 7 ... 28