Forum: Mikrocontroller und Digitale Elektronik Farb-Touchdiplay Mikromedia / Arduino


von Samuel M. (hdd_)


Lesenswert?

Halli Hallo,

ich hätte heute ein parr dringende Frage bezüglich dem Display 
ConnectEVE von Mikromedia 
(http://www.mikroe.com/add-on-boards/display/connecteve/)

Leider bin ich aus dem Programmers Guide im Moment noch nicht schlauer 
geworden und kann mir im Moment noch nicht richtig erklären wie das 
Display funktioniert.


Ich verwende einen Arduino Mega 2560 und habe das Display bereits, 
weshalb es für einen Umstieg zu spät ist ..

Hatt irgend jemand schon Erfahrung mit dem Display gemacht oder weiß 
jemand ein anständiges Tutorial?
Selbst nach ausgiebigen Recherchen habe ich keine Librarys gefunden wenn 
man nicht die Entwicklungsumgebung von mikroe verwenden will, deshalb 
meine Frage ob jemand glücklicher Besitzer solcher Librarys ist?

Grüße,

SM

von Erwin R. (er-tronik)


Lesenswert?

Ich war sicher einer der Ersten, die sich dieses Display zugelegt hat, 
weil ich die Entwicklung des Controllers schon von Anfang an verfolgt 
habe. Anfangs konnte ich auch gar nichts damit anfangen, weil das 
Programmers Guide noch fehlte. Aber seitdem dies sowie einige Beispiele 
von FTDI veröffentlicht wurden, habe ich dem Display ein Leben 
eingehaucht, auch ohne teure Libraries.

Zugegeben, das Ganze ist etwas kompliziert mit den Display-Lists, aber 
wenn man das erstmal raus hat, kann man schon eine Menge mit dem Display 
machen. Schau dir mal intensiv die Beispiele an, die ja sogar teilweise 
für Arduino existieren (sind schlecht formatiert und wenig 
dokumentiert). Ich selber habe das Display an einem LPC1766 (ARM-Cortex 
M3) angeschlossen und die Beispiele nur als Vorlage für eigene Routinen 
benutzt.

Leider hat MicroElektronika ein sehr schlechtes Display eingebaut, das 
wirklich nur senkrecht betrachtet werden will. Sobald man etwas schräg 
draufschaut ändert sich der Kontrast derart stark, dass es keine Freude 
mehr macht. Ich plane, in nächster Zeit mal ein eigenes Display mit dem 
FT800 und besserem Panel zu entwickeln. Die Controller sind ja 
inzwischen gut erhältlich. Vielleicht hat ja jemand Lust mitzumachen, 
bitte meldet Euch bei mir.

Grüße aus der Hauptstadt,
Erwin

von David (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich will das Display auch mit einem Arduino ansteuern. Und die Beispiele 
die man runterladen kann enthalten auch Code der auf einem Arduino 
ausgeführt werden kann.

Funktioniert auch auf einem UNO.

Leider sind die Beispiel wirklich schlecht strukturiert und 
dokumentiret.

Daraus die Initialisierung des Displays und weitere Befehle abzuleiten 
ist echt schwer. Kann da leider auch nicht weiterhelfen.

In der Datei ist ein Programm das ich schon auf die Dimensionen des 
Displays angepasst habe. Weiter bin ich noch nicht.

Grüße aus Östereich.
David

von Erwin R. (er-tronik)


Lesenswert?

David schrieb:

> In der Datei ist ein Programm das ich schon auf die Dimensionen des
> Displays angepasst habe. Weiter bin ich noch nicht.

Es ist gar nicht notwendig, die Dimensionen und Parameter einzustellen, 
da die Default-Werte des FT800 genau dem verwendeten Display 
entsprechen.

von David (Gast)


Lesenswert?

Bei mir leider nicht.

Es war immer nur ein kleiner Auschnit zusehen... also so 320x240 statt 
der 480x272 Pixel die das display schafft.

Wie initialisierst du den FT800? Also wie setzt du das um was im 
Programmersguide unter 2.2.5 Initialization Sequence erklärt ist.

Das wäre dann der erste Schritt wie man das Display für den Arduino 
verfügbar macht.

von Erwin R. (er-tronik)


Angehängte Dateien:

Lesenswert?

Ich hab mich mal drangesetzt und die Header-Datei aufgeräumt. Der 
Programmierer für FTDI hat wohl noch nie was von Hexzahlen gehört, 
geschweige denn von einem übersichtlich formatiertem Sourcecode.
In dem angehängten Archiv befinden sich meine Dateien eve.c und eve.h. 
Nicht enthalten ist die SPI-Routine, da diese für fast jeden Controller 
unterschiedlich ist.
1
uint8_t SPIO(uint8_t)

In der Main-Routine muß nach der Initialisierung des SPI-Ports nur 
einmal
1
EVE_Init();
aufrufen werden.

Wenn danach folgende Sequenz aufgerufen wird, sollte das Display 
komplett in Rot erstrahlen.
1
cmd(CMD_DLSTART);
2
cmd(CLEAR(1,1,1));
3
cmd(COLOR_RGB(255, 0, 0));
4
cmd(DISPLAY());
5
cmd(CMD_SWAP);

Die Routinen setzen voraus, dass ein Display mit 480x272 Pixeln benutzt 
wird. Für andere Formate müssen zusätzlich die Größen- und 
Timingparameter geändert werden.

Viel Spaß beim experimentieren

von Erwin R. (er-tronik)


Lesenswert?

Kleiner Fehler. Leicht zu verwechseln "COLOR_RGB" und "CLEAR_COLOR_RGB"

So ist es richtig:
1
cmd(CMD_DLSTART);
2
cmd(CLEAR(1,1,1));
3
cmd(CLEAR_COLOR_RGB(255, 0, 0));
4
cmd(DISPLAY());
5
cmd(CMD_SWAP);

von Samuel M. (hdd_)


Lesenswert?

Danke zuerst mal für die vielen Antworten! :D

Erwin Reuss schrieb:
> Ich hab mich mal drangesetzt und die Header-Datei aufgeräumt. Der
> Programmierer für FTDI hat wohl noch nie was von Hexzahlen gehört,
> geschweige denn von einem übersichtlich formatiertem Sourcecode.
> In dem angehängten Archiv befinden sich meine Dateien eve.c und eve.h.
> Nicht enthalten ist die SPI-Routine, da diese für fast jeden Controller
> unterschiedlich ist.
>
1
uint8_t SPIO(uint8_t)

Was ich noch nicht ganz verstehe ist, wie und wo ich die I/O Ports für 
die SPI definiere?

Zudem bekomme ich ganz viele Fehlermelungen, ich glaube jedoch dass es 
an dieser Zeile liegt:
1
const uint32_t bootup[] = {
2
  CLEAR_COLOR_RGB(0,0,0),
3
  CLEAR(1,1,1),
4
  DISPLAY()
5
};

Der Kompiler meint: ../eve.c:24: error: called object '1' is not a 
function
Damit ist wohl die Zeile
1
DISPLAY()
 gemeint.

Danke im Vorraus für die Hilfe!

von David (Gast)


Lesenswert?

Hallo Erwin,


danke für deine kleine Anführung.

Kannst du uns vielleicht einen kleinen Beispiel-Sketch bereitstellen?

Ich bekomm es bei mir auch nicht zum laufen.

Habe folgendes probiert:

1
/*
2
connectEVE mit einem ArduinoUno
3
SPI:
4
13 - SCK
5
12 - MiSo
6
11 - MoSi
7
10 - SS(CS)
8
*/
9
10
#include <stdio.h>
11
#include <Arduino.h>
12
#include <SPI.h>
13
14
#include <eve.h>
15
16
//uint8_t SPIO(unit8_t);
17
18
void setup(){
19
  EVE_Init();
20
    
21
  cmd(CMD_DLSTART);
22
  cmd(CLEAR(1,1,1));
23
  cmd(CLEAR_COLOR_RGB(255, 0, 0));
24
  cmd(DISPLAY());
25
  cmd(CMD_SWAP);
26
}
27
28
void loop(){}

Jetzt gibt es noch die Probleme mit dem SPI.

Was habe ich Falsch gemacht???

von Samuel M. (hdd_)


Lesenswert?

Hallo David,

ich habe es inzwischen zum Laufen gebracht, eigentlich nur halb so 
schwer.

Die eve.h und eve.c kannst du erstmal ganz vergessen.
Ich würde die richtigen Librarys von FT800 verwenden.

Machst du es auch mit einem Arudino? Könnte dir meine Initialisierung 
und Testfunktionen geben.

Grüße Sam

von David (Gast)


Lesenswert?

Das wäre nett wenn du die mir bereitstellen könntest.

Bin gespannt wie du es gelöst hast.

Hast du auch schon das Touchpad mit einbezogen?

vielen Dank für die schnelle Antwort!
David

von David (Gast)


Lesenswert?

Ich versuche es mit einem ArdinoUno.

Als alternative hab ich auch einen Mega da. Bei dem kenne ich aber noch 
nicht genau die SPI Pins.

von Frank (Gast)


Lesenswert?

der ft800 ist schon recht interessant, wohl auch deshalb weil bei FTDI 
voraussichtlich nicht so ein sich ständig änderndes Protokollwirrwar mit 
jeder neuen Version entsteht wie bei den vergleichbaren 
Konkurrenzprodukten.

Die Ansteuerung erinnert mich ein wenig an OpenGL. Die Versuche waren 
schon durchaus brauchbar, aber eine fertige Bibliothek ist hilfreicher. 
Eine reine C-Bibliothek war nicht zu finden, also die Arduino-Sourcen 
etwas anpassen. Für "luna" wirds wohl scheinbar auch bald was geben: 
http://www.youtube.com/watch?v=7xUxovlC5Pc

von David (Gast)


Lesenswert?

Hi Sam,

kannst du bitte deinen Code bereitstellen?

ich warte schon sehnsüchtig darauf :)

Danke dir.

Gruß
David

von Samuel M. (hdd_)


Angehängte Dateien:

Lesenswert?

Anbei die Initialisierung in Form einer Klasse

Grüße

von Rs232 (Gast)


Lesenswert?

Hab auch son Teil über Mouser bestellt.
Liegt schon auf der Arbeit bereit.

Noch keine Idee wie ich da dran gehe.

Mmbasic mit nem PIC ( UBW32 ) scheint ein interessanter Ansatz, zumal 
das in den Interpreter einfliessen soll.

LUNAAVR ist auch wohl bald möglich.

Ansonsten versuche ich es halt zu Fuß, mit Bascom oder C.


Schaumermal.

von Dirk B. (freaxx)


Lesenswert?

habt ihr euch das schon mal angeschaut ?
--> http://excamera.com/sphinx/gameduino2/

hier wird deutlich, wie leistungsfähig der FT800 ist ...

am interessantesten ist die fertige library GD2.h welche dort verwendet 
wird

von Samuel M. (hdd_)


Lesenswert?

Friedo B. schrieb:
> am interessantesten ist die fertige library GD2.h welche dort verwendet
> wird

Sieht wirklich sehr interessant aus, jedoch kann ich die gd2.h Library 
nirgends zum download finden.

Weiß da jemand bescheid?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

"gd2.h" ist keine Library.

Das ist eine Headerdatei.

Ansonsten gilt wohl das hier geschiebene:

http://www.seeedstudio.com/depot/gameduino-2-p-1676.html

Die Library "gd2" (deren Headerdatei Du suchst) ist zur Zeit noch nicht 
verfügbar.

von Dirk B. (freaxx)


Lesenswert?

Samuel M. schrieb:
> Friedo B. schrieb:
>> am interessantesten ist die fertige library GD2.h welche dort verwendet
>> wird
>
> Sieht wirklich sehr interessant aus, jedoch kann ich die gd2.h Library
> nirgends zum download finden.
>
> Weiß da jemand bescheid?


Ja,
James (der Autor) schrieb mir dazu letzten Samstag:
> You will be able to buy a Gameduino 2 from your
> local distributor in Germany, Watterott,
> in a few days time: http://www.watterott.com/
>
> Yes, I am working on the GD2 library still,
> making sure that it really works well - it
> is almost ready, and will be available
> on excamera.com next week.

von Ro R. (rond_es)


Lesenswert?

Hallo
ich habe das Display auch und probiere es mit einem PIC18F47J13 
anzusteuern, doch das Ding bleibt dunkel. Ist das richtig, dass wenn man 
die Spannung anschliesst, sich erst mal gar nichts tut? Erst wenn über 
SPI die richtigen Befehle kommen, es überhaupt die Beleuchtung 
einschaltet?

von Samuel M. (hdd_)


Lesenswert?

Du musst den PD  - Pin  (Power Down) siehe Datenblatt richtig beschalten 
und ansteuern. Erst dann wird die Hintergrundbeleuchtung eingeschalten.
Erst nachdem du das Display initialisiert hast kannst du Befehle 
schicken.

!Achtung falls dein Controller mit 5V Spannungspegeln arbeitet. Das 
Display arbeitet mit 3,3V!

Sam

von Ro R. (rond_es)


Lesenswert?

Danke Sam.
Im FTDI Datenblatt steht zweimal im Text 47k, in der Skizze sind 4.7k. 
Was hast du genommen? Ich tippe mal 4.7k macht mehr Sinn? Gemäss 
Datenblatt müsste ich auch den INT Pin beschalten (pull-up), richtig?

edit: ich habe jetzt das Display ohne SPI angeschlossen, nur 3.3V sowie 
die beiden pullups auf INT und PD. Es bleibt immer noch dunkel. Langsam 
habe ich das Gefühl das TFT ist defekt...

: Bearbeitet durch User
von David (Gast)


Lesenswert?

Hi,

füt für die Steuerung des connectEVE boards mit einem Arduino nutze ich 
jetzt die Biblithek vom Gameduino2. Der nutzt auch den FT800 Chip von 
FTDI. Die Library bringt auch noch ein paar andere schöne Funktionen und 
Beispiele mit.

Damit hat man eine einfache und fertige Library für den Arduino.

In der Datei GD2.ccp muss nur der Wert:
#define PROTO 1
auf 0 gesetzt werden. Da das Display vom Gameduino seitenverkehrt 
betrieben wird.

von Samuel M. (hdd_)


Lesenswert?

David schrieb:
> In der Datei GD2.ccp muss nur der Wert:
> #define PROTO 1 auf 0 gesetzt werden. Da das Display vom Gameduino
> seitenverkehrt betrieben wird.

Hast du sonst nichts verändert?
Wo hast du den CS und den PD Pin definiert?
Ohne die Definition dieser beiden Pins kann es doch gar nicht 
funktionieren?

S.

von David (Gast)


Lesenswert?

Die Pins in der Library sind vordefiniert:

11 in SPI MOSI
12 out SPI MISO
13 in SPI SCK
8 in GPU SEL
9 in SD SEL
2 out INTERRUPT
A2 out ACCEL_Z
A1 out ACCEL_Y
A0 out ACCEL_X


Die Gameduino2 Lib benutzt den Pin8 für den SPI CS.

Die Beispielprogramme von FTDI nutzen den Pin10. Einfach den das 
CS-Kabel in den Pin 8 stecken. Der Pin 9 ist für den Anschluss CS eines 
SD-Kartenlesers vorgesehen.

Mann kann also mit der Gameduino Library auch ganz einfach eine SD-Karte 
und auch einen Beschleunigungssensor auslesen

Bilder unten auf der Seite:
http://excamera.com/sphinx/gameduino2/

von David (Gast)


Lesenswert?

Ro R. schrieb:
> edit: ich habe jetzt das Display ohne SPI angeschlossen, nur 3.3V sowie
> die beiden pullups auf INT und PD. Es bleibt immer noch dunkel. Langsam
> habe ich das Gefühl das TFT ist defekt...


Das ist normal: Mann muss erst per SPI sagen: schalte die Beleuchtung 
ein...
Also hast du dein Display noch nicht die richtigen befehle benutzt.
Ich benutze die C-Library vom Gameduino2. Die macht es einem echt leicht 
das Display anzusteuern!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.