Jump to content

jgmischke

Members
  • Gesamte Inhalte

    212
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von jgmischke

  1. Hallo Uwe,

     

    der Zugriff auf dem Red klappt nur als root. Die libgl kenn ich auch, nutze aber lieber die SDL Libs. ( Da hat wohl jeder seinen Geschmack. Ich mag an SDL die komplette Unterstützung für alles, was man zum Spieleprogrammieren braucht. ) Um ein Programm als normaler Benutzer zu nutzen müssten noch ein paar Dateibits gesetzt werden, aber zum experimentieren habe ich immer als root gearbeitet.

     

    Komischerweise habe ich da keine Probleme mit dem Konsolenbetrieb. Sobald das Programm läuft wird der gesamte Bildschirm von SDL benutzt.

    Was hast du da für einen Monitor dran, vielleicht gibt es da auch noch Unterschiede?

     

    Da ich die Option FULLSCREEN beim Aufruf habe, sollte auch die Größe egal sein, oder wird bei dir das ganze als Fenster dargestellt??

     

     

     

  2. Hi Uwe,

     

    mach das ganze doch über synaptic, da werden auch die anderen sdl1 Pakete mit angezeigt. Natürlich musst du auch die DEV Pakete mit runterladen.

     

    Ich packe mal einen Screenshot vom Synaptic mit drauf.

    [/img]

    Da das ganze Programm im Vollbildmodus arbeitet, hab ich bei mir keinen Cursor, der sollte sich aber auch über SDL ausschalten lassen.

     

    Das man den Framebuffer auch "per Hand" füllen kann ist mir bekannt, ich finde die SDL Routinen sind aber so schnell und wenn du all die Funktionalität noch mal selber programmieren müsstest  ... Gerade die TTF und GFX Routinen liefern einem alles, was man zum grafischen darstellen braucht und das ist sogar sehr schnell, jedenfalls wenn man denkt, was da intern im Red so vor sich hin arbeitet.

     

    Viel Spaß.

    Screenshoot_synaptic.thumb.png.e24dc56f88544595b8ee212d2f2cda26.png

  3. Hi Uwe.

     

    SDL2 nutzt nur noch Hardwarebeschleunigung via Grafikchip und das geht wohl beim Red nicht.

     

    SDL1 funktioniert.

     

    Hier ein kleines Beispiel, hab ich gerade mal aus ein paar Resten zusammengepackt und kurz getestet.

     

    #include <SDL/SDL.h>
    #include <SDL/SDL_ttf.h>
    #include <SDL/SDL_gfxPrimitives.h>
    
    #define _W	1400
    #define _H	460	
    
    SDL_Surface *screen;
    Uint32 Mc[256];
    
    int finish()
    {
    SDL_Quit();
    return 0;
    }
    
    Uint32 convert(int r, int g, int b) 
    {
    Uint32 x=0;
    
    x = (( r * 16777216 ) + ( g * 65536  ) + ( b * 256 ) + 255 );
    // fprintf(stderr," X  = %x %ud %d %d %d \n",x,x,r,g,b);
    return x;
    }
    
    
    void createColor()
    {
    int i,j;
    Uint32 c;
    j = 1;
    
    Mc[0]=0;
    for ( i = 0 ; i <85 ;i++ ) {
    	Mc[j++] = convert(0+i*3,0,255);
    } 
    for ( i = 0 ; i < 85 ;i++ ) {
    	Mc[j++] = convert(255,0,255-i*3);
    } 
    for ( i = 0 ; i < 85;i++ ) {
    	Mc[j++] = convert(255,0+i*3,0);
    } 
    }
    
    int main(int argc, char *argv[])
    {
    SDL_PixelFormat *fmt;
    SDL_Color *color_;
    SDL_Event evt; 
    int i;
    
    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
    	fprintf(stderr,"NOT ");
    	return -1;
    }
    
    TTF_Init();
    screen = SDL_SetVideoMode(0,0, 32, SDL_HWSURFACE | SDL_DOUBLEBUF |SDL_FULLSCREEN);
    if (screen == NULL) {
    	fprintf(stderr,"NOT ");
    	return -1;
    }
    fmt=screen->format;
    fprintf(stderr,"%d Bits pro Pixel\n",fmt->BitsPerPixel);
    
    SDL_LockSurface(screen);
    createColor();
    
    for ( i = 0; i < 256; i++ ) {
    	boxColor (screen, 10+5*i,10,12+5*i,50,Mc[i]);
    } 
    
    SDL_UnlockSurface(screen);
    fprintf(stderr,"GEMALT\n");
    SDL_Flip(screen);
    while(1) {
    	while(SDL_PollEvent(&evt)) {
    		if(evt.type == SDL_QUIT) {
    			finish();
    		}
    		if (evt.type == SDL_MOUSEBUTTONDOWN ) {
    			finish();
    		}
    	}
    }
    return 0;
    }
    
    

     

    Ist jetzt nicht schön, aber mit :

     

    cc f.c -o start.out -I /usr/include/SDL -lSDL -lSDL_gfx  -lSDL_ttf -lpthread && clear && ./start.out

     

    sollte das ganze zu kompilieren sein.

     

    Da ich auch mit SDL2 gespielt habe, musst du ALLES(!) von SDL einmal per synaptic entfernen und danach SDL1 wieder neu aufspielen, sonst gibt es da irgendeinen Nebeneffekt das SDL1 nicht läuft.

    Ich habe die GPU ausgeschaltet, das Programm funktioniert MIT Desktop und OHNE Desktop, da beides über den Framebuffer läuft. ( Das X läuft auch nur auf dem Framebuffer )

     

    Ich habe das Ganze gerade noch mal auf dem Red laufen lassen, auf einem kleinen 7" Display funktioniert es.

     

     

     

     

  4. Hi Uwe,

     

    natürlich kannst du auch direkt nach fb0 schreiben, das hängt dann vom Red ab, ich glaube der macht 32 Bit.

     

    Das mit dem login ist nicht weiter schlimm, sobald du in den Framebuffer schreibst, ist das Teil auch weg. Den Eintrag im /etc müsste ich auch erst suchen, aber mal sehen ob ich das heute Abend schnell rausfinden kann.

     

    SDL funktioniert nur in der "alten" 1er Version, die 2er habe ich so nicht zum laufen bekommen. Auch hier schau ich mal nach, wie ich die Version auf den red bekommen habe. Mit Glück ist SDL schon im Repostory mit drin.

     

    Ich habe bei meinen Versuchen mit SDL festgestellt, das der Red für so einen Winzling annehmbar schnell ist.

     

    Werde dir dann Bescheid geben.

  5. Hi Uwe,

     

    in den Einstellungen des RB gibt es den X-Server, den du als Dienst ausschalten kannst.

     

    Danach gibt es noch ein nichtgrafisches Login, das kann man auch ausschalten, da müsste ich aber selber noch mal nachsehen.

     

    Da kannst ja direkt in den framebuffer /dev/fb0 schreiben. Ist allerdings etwas frickelarbeit, da könntest du auch mit der SDL lib arbeiten, die nimmt dir die Arbeit ab.

  6. Hallo Uwe,

     

    ich habe hier einen kleinen Red OHNE X am laufen, als Schnittstelle zum "zeichnen" dient die alte SDL 1.2 Version, die den Framebuffer nutzt und mit diversen Programmiersprachen aufwarten kann.

     

    Ist eine relativ einfache Bibliothek, die nach ein wenig Einarbeitungszeit nutzbar ist. Über SDL kannst du dir ja dann eine TF ähnliche Funktionalität aufbauen. Läuft auf dem Red wie geschnitten Brot und ist ( da kein X verwendet wird ) sehr schnell.

     

    Gruß Jürgen

  7. Hallo,

     

    bei der HighContrast Darstellung bekommst du ein Array aus 80x60 Werten von 0 bis 255. Diese Werte sind jetzt nicht die tatsächliche Temperatur sondern bieten einen Index für eine Farbtabelle mit 256 Elementen.

    Beispiel für das Element[10] = 128. Wäre jetzt also der Wert für den Farbindex Nummer 128, der wohl im roten Bereich liegen sollte. 0 wäre etwa schwarz und 255 weiss. ( Wobei du auch eine andere Farbtabelle nach deinem Geschmack  benutzen kannst ) 

     

    Im Temperaturmodus bekommt du ein Array mit den tasächlichen Temperaturen ausgegeben, wobei diese Werte als 16 Bit Integer dargestellt werden.

    Beispiel für das Element[10] : 28412 , Temperatur in Kelvin!!!

     

     

  8. Nachdem ich nun sehr gute Erfahrungen mit der Grafikbibliothek SDL gemacht habe, wollte ich auch mal den Nachfolger SDL2 probieren.

     

    Obwohl auf dem Red die GPU aktiviert ist, kriege ich SDL2 aber nicht zum laufen. Ist im Brick kein OpenGL eingebunden?

     

     

  9. Meine Empfehlung wäre ein Raspi, der sollte von der Leistung her passen. Der würde bei einem Stromausfall auch noch etliche Stunden über Akku lauffähig bleiben.

     

    Dann noch ein USB GSM Module / Surfsticks für den Raspi und du kannst bei Stromausfall ne Mail/SMS versenden. Wobei so ein Surfstick wohl auch am RedBrick laufen sollte.

     

     

     

  10. Das heisst aber auch, das man ein IR Bild eines Planeten bekommen kann. Oder seh ich das falsch. Ich weiss allerdings nicht, ob das thermische Rauschen der Atmospähre stört, aber die meisten Teleskope können ja Licht im IR Bereich empfangen.

    War auch nur ne Idee, die ich ganz reizvoll finde, zumal IR Fotografie für Amateure ja noch ganz neu ist. ( So wie vor langer langer Zeit die Digitalfotografie ) Die Vergrößerung eines Planeten über Fokalprojektion dürfte kein Problem sein.

  11. Da lässt sich doch vieles machen. Etwa ein Mischpult mit Potis, welche die Bewegung des Benutzers speichern und exakt wiederholen können. Oder auch ein Mischpult für Licht, gleiche Idee.

     

    Eine Wärmebildkamera für unter 300€? Ein Raspi dran, ein kleiner 5" Monitor und etwas Software und da kannst jedes Haus auf Wärmelecks untersuchen. Oder eine Temperaturüberwachung für grosse Lagerhallen. Und und und.

     

    Und mit der LED Anzeige lässt sich doch auch was nettes anstellen, etwa ein "Stimmungsbarometer" für CPU Lasten, eine Minianzeige für Buchstaben...

     

  12. Das war eigentlich so gedacht das es eine Art Grundstellung gibt ( also etwa als Kugel zusammengerollt. ) in der die Federn die Zugarbeit übernehmen und das Modell "in Form" halten. Natürlich sind die Kräfte der Federn jetzt nicht riesig, die Servos sollen ja nicht zuviel Arbeit verrichten.  Erst beim aktivieren des System stellen die Servos dann gegen die Kraft der Federn das System in die gewünschte Haltung.

     

    Der Vorteil wäre ja, dass die Plätze für Servos alle an einer Stelle sind und wesentlich weniger Gefriemel zu leisten ist.

     

×
×
  • Neu erstellen...