Was sind spottbillige, kleine E-Ink-Displays? [geschlossen]

11

Ich suche ein E-Ink-Display (pixelbasiert), das so billig wie möglich ist, und winzig, aber dennoch ein vollständig pixelbasiertes Display, das innerhalb von hundert Millisekunden aktualisiert werden kann.

Die "Custom Display" -Produkte von Aveso sind fast das, worauf ich mich beziehe. Sie sind jedoch unveränderliche Anzeigen, dh nicht pixelbasiert.

Die Displays müssen sehr klein sein - 1 cm, und im Idealfall funktionieren sie mit einem Multi-Head-Controller.

roberto tomás
quelle
5
Seltsam - Als ich gerade versuchte, zu avesodisplays.com zu gehen, hat Chrome einen Malware-Alarm ausgelöst.
Toybuilder
6
Gleiches gilt hier für Firefox.
Leon Heller
Opera aus irgendeinem Grund nicht.
ein Sandwich, das
@aSandwich, anscheinend können Sie einen Virus dazu haben.
Kortuk
@ Roberto, ich habe den Link wegen Malware entfernt.
Daniel Grillo

Antworten:

6

Ich hatte für kurze Zeit überlegt, an den Eink-Displays zu basteln. und folgte mit e-Ink Corporation. Sie sind die Leute, die die eInk IP besitzen. Sie verwiesen mich auf PrimeView, ein etabliertes LCD-Unternehmen. (Und als ich gegoogelt habe, um Fakten zu überprüfen, stellte sich heraus, dass PVI jetzt EInk erworben hat.)

Ich konnte mich in einige Datenblätter und Preisdaten einarbeiten. Ich fürchte, es sieht für einen durchschnittlichen Bastler nicht gut aus. Sie gaben $ 200.00 pro Stück für das Display an. und 4,50 pro Stück für die Steuerung (in Probenmengen). Die Platten wurden für Produktionsmengen mit 60,00 / Stk. Angeboten. Natürlich würde das letztere Zitat vom Volumen abhängen - und ich vermute, Amazon bekommt viel bessere Preise! (Übrigens war dies für das 6 "-Panel, zitiert um Dezember 2007)

Wenn Sie es wirklich ernst meinen, haben sie ihr Entwicklungskit für rund 3.000 US-Dollar angeboten.

Angesichts der Tatsache, dass die Technologie noch relativ neu ist und ein Großteil der Schlüsseltechnologie (im Vergleich zur Aktivierungstechnologie) unter großem Patentschutz steht, wird es eine Weile dauern, bis wir (generische) Standard-E-Ink-Displays sehen.

Spielzeugbauer
quelle
Für welche Größenanzeige war das Angebot?
Kortuk
Das war für eine 6 ", ungefähr im Dezember 2007. Ich bin sicher, dass die Preise von dort deutlich gefallen sind, aber nicht" spottbillig ". Ich habe den Haupttext meiner Antwort aktualisiert, um dies widerzuspiegeln. Danke.
Toybuilder
5

Hier ist meine Erfahrung mit dem SeeedStudio E-Ink.

http://www.picaxeforum.co.uk/showthread.php?23583-E-ink-on-PICAXE-see-it-now- !

Die Seeedstudio E-Ink ist ein Arduino-kompatibles Schild. (Es ist jedoch nicht ganz Arduino-kompatibel! Siehe Seeedstudio-Forum: http://www.seeedstudio.com/forum/viewtopic.php?p=16432#p16432 )

Hier ist der PICAXE-Code:

    #PICAXE 28X2


    Eeprom %00001111, ( %00000000 ) ' %00000000
    Eeprom %00011111, ( %11000000 ) ' %11000000
    Eeprom %00101111, ( %00110000 ) ' %00110000
    Eeprom %00111111, ( %11110000 ) ' %11110000
    Eeprom %01001111, ( %00001100 ) ' %00001100
    Eeprom %01011111, ( %11001100 ) ' %11001100
    Eeprom %01101111, ( %00111100 ) ' %00111100
    Eeprom %01111111, ( %11111100 ) ' %11111100
    Eeprom %10001111, ( %00000011 ) ' %00000011
    Eeprom %10011111, ( %11000011 ) ' %11000011
    Eeprom %10101111, ( %00110011 ) ' %00110011
    Eeprom %10111111, ( %11110011 ) ' %11110011
    Eeprom %11001111, ( %00001111 ) ' %00001111
    Eeprom %11011111, ( %11001111 ) ' %11001111
    Eeprom %11101111, ( %00111111 ) ' %00111111
    Eeprom %11110000, ( %00000000 ) ' %00000000
    Eeprom %11110001, ( %11000000 ) ' %11000000
    Eeprom %11110010, ( %00110000 ) ' %00110000
    Eeprom %11110011, ( %11110000 ) ' %11110000
    Eeprom %11110100, ( %00001100 ) ' %00001100
    Eeprom %11110101, ( %11001100 ) ' %11001100
    Eeprom %11110110, ( %00111100 ) ' %00111100
    Eeprom %11110111, ( %11111100 ) ' %11111100
    Eeprom %11111000, ( %00000011 ) ' %00000011
    Eeprom %11111001, ( %11000011 ) ' %11000011
    Eeprom %11111010, ( %00110011 ) ' %00110011
    Eeprom %11111011, ( %11110011 ) ' %11110011
    Eeprom %11111100, ( %00001111 ) ' %00001111
    Eeprom %11111101, ( %11001111 ) ' %11001111
    Eeprom %11111110, ( %00111111 ) ' %00111111
    Eeprom %11111111, ( %11111111 ) ' %11111111

    pause 5000

    sertxd ("Eink_8",cr,lf)

    setfreq m16

    Symbol Eink_CS1 = S.6           ' Chip select for Eink driver
    Symbol Eink_DC  = S.5           ' Data/Command control for Eink driver
    Symbol GT_CS2   = S.4           ' Chip select for character ROM


    Symbol i           = w4
    Symbol Xs          = b10
    Symbol Xe          = b11
    Symbol Ys          = b12
    Symbol Ye          = b13
    Symbol Char        = b14
    Symbol Char16      = w8
    Symbol Char16Lo    = b16
    Symbol Char16Hi    = b17
    Symbol CommandByte = b18
    Symbol DataByte    = b19 
    Symbol t           = b20


    HIGH Eink_CS1
    HIGH Eink_DC
    HIGH GT_CS2


    hspisetup spimode00e, spimedium
    sertxd ("hspisetup done",cr,lf)

    Gosub initEink
    sertxd ("init done",cr,lf)

    Gosub clearScreen
    sertxd ("clear done",cr,lf)

    Ys = 170

    Xs = 2 : Ys = 179
    for t = 0 to 13
    lookup t, ( "PICAXE RULES !" ),Char
    Ys = Ys - 8 : Gosub displayChar
    next 
    sertxd ("line 1 done",cr,lf)




    Xs = 7 : Ys = 179
    for t = 0 to 20
    lookup t, ( "Eink from Seeedstudio" ),Char
    Ys = Ys - 8 : Gosub displayChar
    next
    sertxd ("line 2 done",cr,lf)



    Xs = 12 : Ys = 179
    for t = 0 to 18
    lookup t, ( "Cheers, from Buzby." ),Char
    Ys = Ys - 8 : Gosub displayChar
    next 
    sertxd ("line 3 done",cr,lf)



    Gosub refreshScreen
    sertxd ("refreshScreen done",cr,lf)
    sertxd ( "Done",cr,lf )

    End



    ' =================================================================

    writeComm:
        LOW  Eink_DC
        LOW  Eink_CS1
        hspiout ( CommandByte )
        HIGH Eink_CS1
    return

    ' =================================================================

    writeData:
        HIGH Eink_DC
        LOW  Eink_CS1
        hspiout ( DataByte )
        HIGH Eink_CS1
    return

    ' =================================================================

    clearScreen: 

        CommandByte = 0x24 : Gosub writeComm

        HIGH Eink_DC
        LOW  Eink_CS1

        For i = 0 to 3095
            hspiout (0xFF)
        Next i

        HIGH Eink_CS1   

        Pause 1000
    return

    ' =================================================================


    initEink:
         CommandByte = 0x10 : Gosub writeComm ' exit deep sleep mode
         DataByte    = 0x00 : Gosub writeData 
         CommandByte = 0x11 : Gosub writeComm ' data enter mode
         DataByte    = 0x03 : Gosub writeData 

         CommandByte = 0x44 : Gosub writeComm ' set RAM x address start/end, in page 36
         DataByte    = 0x00 : Gosub writeData ' RAM x address start at 00h;
         DataByte    = 0x11 : Gosub writeData ' RAM x address end at 11h(17)->72: [because 1F(31)->128 and 12(18)->76] 
         CommandByte = 0x45 : Gosub writeComm ' set RAM y address start/end, in page 37
         DataByte    = 0x00 : Gosub writeData ' RAM y address start at 00h;
         DataByte    = 0xAB : Gosub writeData ' RAM y address start at ABh(171)->172: [because B3(179)->180]
         CommandByte = 0x4E : Gosub writeComm ' set RAM x address count to 0
         DataByte    = 0x00 : Gosub writeData 
         CommandByte = 0x4F : Gosub writeComm ' set RAM y address count to 0
         DataByte    = 0x00 : Gosub writeData 

         CommandByte = 0xF0 : Gosub writeComm ' booster feedback used, in page 37
         DataByte    = 0x1F : Gosub writeData 
         CommandByte = 0x22 : Gosub writeComm ' display updata sequence option ,in page 33
         Databyte    = 0xC0 : Gosub writeData ' enable sequence: clk -> CP

         Gosub configureLUTRegister

         CommandByte = 0x2C : Gosub writeComm ' vcom
         DataByte    = 0xA0 : Gosub writeData 
         CommandByte = 0x3C : Gosub writeComm ' board
         DataByte    = 0x63 : Gosub writeData 
         CommandByte = 0x22 : Gosub writeComm ' display updata sequence option ,in page 33
         DataByte    = 0xC4 : Gosub writeData ' enable sequence: clk -> CP -> LUT -> initial display -> pattern display

    return

    ' =================================================================

    configureLUTRegister:

        CommandByte = 0x32 : Gosub writeComm ' write data to LUT register

        HIGH Eink_DC
        LOW  Eink_CS1

        hspiout ( 0x00,0x00,0x00,0x55,0x00,0x00,0x55,0x55,0x00,0x55, _
                 0x55,0x55,0xAA,0xAA,0xAA,0xAA,0x15,0x15,0x15,0x15, _
                   0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x00,0x00, _
                   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, _
                   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, _
                   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, _
                   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, _
                   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, _
                     0x22,0xFB,0x22,0x1B,0x00,0x00,0x00,0x00,0x00,0x00 )

        HIGH Eink_CS1   

    return


    ' =================================================================

    refreshScreen:
        CommandByte = 0x20 : Gosub writeComm
        Gosub closeBump
        Pause 2000
    return

    ' =================================================================

    closeBump:
        CommandByte = 0x22 : Gosub writeComm    
        DataByte    = 0x03 : Gosub writeData 
        CommandByte = 0x20 : Gosub writeComm 
    return


    ' =================================================================
    #rem
    Xs --> X start  address   0~17
    Xe --> X end    address   0~17
    Ys --> Y start  address   0~171
    Ye --> Y end    address   0~171

    #endrem  

    setPositionXY:

        LOW  Eink_CS1

        LOW  Eink_DC    
        hspiout ( 0x44 )' set RAM x address start/end  command
        HIGH  Eink_DC
        hspiout ( Xs , Xe )

        LOW  Eink_DC
        hspiout ( 0x45 )' set RAM y address start/end  command
        HIGH  Eink_DC
        hspiout ( Ys , Ye )

        LOW  Eink_DC
        hspiout ( 0x4E )' set RAM x address count to Xs
        HIGH  Eink_DC
        hspiout ( Xs )  

        LOW  Eink_DC
        hspiout ( 0x4F )' set RAM y address count to Ys
        HIGH  Eink_DC
        hspiout ( Ys )  

        HIGH  Eink_CS1

    return

    ' =================================================================
    #rem
    display character in the Eink screen:
    x:the X start address,X value can be 0 to 14;
    y:the Y start  address, Y vlue can  be 171 to 7;
    the charater diplay erea is from x to x+3 in X position and from y to y-7 in Y position
    unicode_char:the character machine code
    */
    void E_ink::displayChar(INT8U x,INT8U y,INT16U unicode_Char)
    {
      INT16U i;
      getCharMatrixData(unicode_Char);
      converCharMatrixData();
      setPositionXY(x,x+3,y,y-7);
      writeComm(0x11);     /*data enter mode command */
      writeData(0x05);     /*set Y-mode:X address is increment and y address decrement */                       
      writeComm(0x24);
      for(i=0;i<32;i++)
      {
          writeData(matrixdata_conver[i]);
       }
    }
    #endrem

    displayChar:


       ' Make address of character in ROM
        Char16 = Char - 0x20 * 16 

        ' Reset scratchpad pointer
        ptr = 0

        ' Get 16 bytes character data from ROM into scratchpad
        LOW GT_CS2
        hspiout (0x03,0,Char16Hi,Char16Lo)
        hspiin  (@ptrinc, @ptrinc, @ptrinc, @ptrinc,@ptrinc, @ptrinc, @ptrinc, @ptrinc, _
                    @ptrinc, @ptrinc, @ptrinc, @ptrinc,@ptrinc, @ptrinc, @ptrinc, @ptrinc )
       HIGH GT_CS2

    #rem

       sertxd ("chardata",cr,lf)
       ptr = 0
        sertxd  (Char, " ", #@ptrinc,",", #@ptrinc,",", #@ptrinc,",", #@ptrinc,",",#@ptrinc,",", #@ptrinc,",", #@ptrinc,",", #@ptrinc,",", _
                    #@ptrinc,",", #@ptrinc,",", #@ptrinc,",", #@ptrinc,",",#@ptrinc,",", #@ptrinc,",", #@ptrinc,",", #@ptrinc, cr, lf )

       for ptr = 0 to 15
           b0 = @ptr
           sertxd (#bit7,#bit6,#bit5,#bit4,#bit3,#bit2,#bit1,#bit0,cr,lf)
       next

    #endrem


       ' Convert data bytes into twos

          for i = 0 to 7

           ptr = i              ' Get single byte
           b0 = @ptr

            ' original in b0, result in w0 - Thanks to hippy !

            b1 = b0 | $0F : Read b1, b1
            b0 = b0 | $F0 : Read b0, b0

           ptr = i + 16 : @ptr = inv b0
           ptr = i + 24 : @ptr = inv b1

        next i


          for i = 8 to 15

           ptr = i              ' Get single byte
           b0 = @ptr

            ' original in b0, result in w0 - Thanks to hippy !

            b1 = b0 | $0F : Read b1, b1
            b0 = b0 | $F0 : Read b0, b0

           ptr = i + 24 : @ptr = inv b0
           ptr = i + 32 : @ptr = inv b1

        next i

        Xe = Xs + 3
        Ye = Ys - 7

        Gosub setPositionXY 

        CommandByte = 0x11 : Gosub writeComm ' /*data enter mode command */
        DataByte    = 0x05 : Gosub writeData ' /*set Y-mode:X address is increment and y address decrement */                       
        CommandByte = 0x24 : Gosub writeComm 

        HIGH Eink_DC
        LOW  Eink_CS1

       for ptr = 16 to 47

           hspiout (@ptr) 

        next

        HIGH Eink_CS1

    return

Es gibt wirklich nur zwei aktive Chips auf dem Shield, ein Zeichen-ROM und den E-Ink-Treiber.

Der Code liest das ROM, um die Bitmuster zu erhalten, ordnet die Bits neu an und sendet sie dann an den E-Ink-Treiber.

Ich konnte keinen Herstellernamen auf dem E-Ink-Display selbst finden, es sei denn, der Hersteller heißt "Good Display"! (Dies sind die einzigen Wörter auf der Rückseite und eine Teilenummer GDE021A1) (BEARBEITEN: Ich habe gerade die Teilenummer erneut gegoogelt und diesmal den Hersteller gefunden. Es ist eine gute Anzeige!)

Meine Gedanken sind, dass dies perfekt für die richtige Anwendung ist, ich muss nur diese Anwendung finden.

Buzby
quelle
Es wird empfohlen, Antworten mit mindestens einigen Details zu veröffentlichen, die in der Antwort enthalten sind. Sollte der Link jemals tot sein, ist die Antwort dennoch nützlich. Das Herunterladen des Schaltplans oder Codes von dieser Site scheint ebenfalls eine Anmeldung zu erfordern. Vielleicht können Sie ein bisschen Code in die Antwort und einen Link zum Schaltplan an einer öffentlich zugänglichen Stelle einfügen.
PeterJ
1
Hallo Peter, entschuldige die schlechte Etikette, ich bin neu auf dieser Seite. Ich werde die Antwort mit weiteren Details bearbeiten. Buzby
Buzby
Ich habe gerade festgestellt, dass Good Display auch ein etwas kleineres Display bietet, das GDE0210C1 . Ohne Kabel betragen die Außenmaße 59,5 × 26,6 mm. Ich habe ihnen gerade eine Nachricht gesendet und gefragt, wie man das Display erhält und ob es möglich ist, das Kabel in die entgegengesetzte Richtung (gespiegelt) anzuschließen.
Feklee
5

PervasiveDisplays 1,44 "E-Paper-Display ist 13,87 USD (8,8 USD für 100 Stück) 128 x 96 Pixel, 111 dpi, Außenmaß in mm: 40,512 x 28,80 x 1,00. Http://www.pervasivedisplays.com/products/144

Aber: Es ist nicht so klein wie 10 x 10 mm und ziemlich sicher, dass es nicht so schnell ist wie erforderlich. Aber zumindest sind die Preise jetzt deutlich niedriger.

wintifrosch
quelle
2

Seeed Studio bietet ab dem 16.04.2013 einen Arduino E-Ink Display Shield für 49,90 USD an. Die Bildschirmauflösung beträgt 172 × 72 Pixel. Die Grundfläche der Leiterplatte beträgt 68 × 63 mm. Nach Bildern zu urteilen, hat die Anzeigekomponente weniger als die Hälfte der Grundfläche der Leiterplatte.

Feklee
quelle
0

Es tut mir leid, wenn ich etwas spät dran bin. Probieren Sie SHARP Low Energy Displays aus. Sie basieren auf Pixeln und bieten kleine Größen. Adafruit trägt diese und sie funktionieren genau wie E-Ink-Displays. Diese sind in den originalen Kiesel-Smartwatches enthalten und funktionieren mit der richtigen Software erstaunlich gut.

Jeff
quelle