Quels sont les petits écrans à encre électronique bon marché? [fermé]

11

Je recherche un écran à encre électronique (basé sur les pixels) qui soit aussi bon marché qu'humainement possible, et minuscule, mais toujours un écran entièrement basé sur les pixels qui peut se rafraîchir en une centaine de millisecondes.

Les produits "affichage personnalisé" d'Aveso sont presque ce à quoi je fais référence. Mais ce sont des affichages immuables, c'est-à-dire non basés sur des pixels.

Les écrans doivent être très petits - 1 cm, et idéalement, ils devraient fonctionner avec un contrôleur multi-têtes.

roberto tomás
la source
5
Bizarre - quand j'ai juste essayé d'aller sur avesodisplays.com, Chrome a lancé une alerte de malware.
Toybuilder
6
Même chose ici, avec Firefox.
Leon Heller
Opera ne l'est pas pour une raison quelconque.
un sandwhich
@aSandwich, il semble que vous puissiez avoir un virus pour l'accompagner.
Kortuk
@roberto, j'ai supprimé le lien en raison de logiciels malveillants.
Daniel Grillo

Réponses:

6

J'avais, pendant une brève période de temps, envisagé l'idée de bricoler avec les écrans eink; et suivi avec e-Ink Corporation. Ce sont les gens qui détiennent l'eInk IP. Ils m'ont référé à PrimeView, qui est une entreprise de fabrication d'écran LCD bien établie. (Et comme j'ai cherché sur Google pour vérifier les faits, il s'avère que PVI a maintenant acquis EInk.)

J'ai pu me frayer un chemin dans certaines fiches techniques et données de tarification. Je crains que cela ne semble pas bon pour le bricoleur moyen. Ils citaient 200,00 $ par pièce pour l'affichage. et 4,50 par pièce pour le contrôleur (en quantités d'échantillons). Les panneaux ont été cotés à 60,00 / pc pour les volumes de production. Bien sûr, cette dernière citation dépendrait du volume - et je soupçonne qu'Amazon obtient des prix bien meilleurs! (BTW, c'était pour le panneau 6 ", cité vers décembre 2007)

Si vous êtes vraiment sérieux à ce sujet, ils ont offert leur kit de développement pour environ 3000 $.

Étant donné que la technologie est encore relativement nouvelle et qu'une grande partie de la technologie clé (par opposition à la technologie habilitante) est sous une grande protection par brevet, il faudra un certain temps avant de voir des affichages à encre électronique de base (génériques).

Constructeur de jouets
la source
quelle taille d'affichage était la citation?
Kortuk
C'était pour un 6 ", vers décembre 2007. Je suis sûr que les prix ont considérablement baissé à partir de là, mais pas des niveaux" bon marché ". J'ai mis à jour le texte principal de ma réponse pour refléter cela. Merci.
Toybuilder
5

Voici mon expérience de l'E-Ink de SeeedStudio.

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

L'encre électronique Seeedstudio est un blindage compatible Arduino. (Cependant, il n'est pas entièrement compatible avec Arduino!. Voir Forum Seeedstudio: http://www.seeedstudio.com/forum/viewtopic.php?p=16432#p16432 )

Voici le code PICAXE:

    #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

Il n'y a vraiment que deux puces actives sur le Shield, une ROM de caractères et le pilote E-ink.

Le code lit la ROM pour obtenir les modèles de bits, réorganise les bits, puis les envoie au pilote E-ink.

Je n'ai trouvé aucun nom de fabricant sur l'écran E-ink lui-même, à moins que le fabricant ne s'appelle «Good Display»!. (Ce sont les seuls mots au dos, et un numéro de pièce GDE021A1) (EDIT: Je viens de googler à nouveau le numéro de pièce, et cette fois, il a trouvé le fabricant. Il est bon affichage!)

Je pense que c'est parfait pour la bonne application, j'ai juste besoin de trouver cette application.

Buzby
la source
Il est encouragé de publier des réponses avec au moins certains détails inclus dans la réponse, donc si le lien devient un jour mort, la réponse est toujours utile. Le téléchargement du schéma ou du code à partir de ce site semble également nécessiter une inscription, peut-être pourriez-vous inclure un peu de code dans la réponse et un lien vers le schéma quelque part accessible au public.
PeterJ
1
Salut Peter, désolé pour la mauvaise étiquette, je suis nouveau sur ce site. Je vais modifier la réponse avec plus de détails. Buzby
Buzby
Je viens de découvrir que Good Display propose également un écran légèrement plus petit, le GDE0210C1 . Sans câble, les dimensions extérieures sont de 59,5 × 26,6 mm. Je viens de leur envoyer un message, leur demandant comment obtenir l'affichage et s'il est possible de connecter le câble dans la direction opposée (en miroir).
feklee
5

L'affichage du papier électronique PervasiveDisplays de 1,44 "est de 13,87 USD (8,8 USD pour 100pc.) 128 x 96 pixels, 111 dpi, dimension extérieure en mm: 40,512 x 28,80 x 1,00. Http://www.pervasivedisplays.com/products/144

Mais: ce n'est pas aussi petit que 10x10 mm, et bien sûr ce n'est pas aussi rapide que nécessaire. Mais au moins, les prix sont nettement inférieurs maintenant.

wintifrosch
la source
2

Seeed Studio propose un écran Arduino E-Ink Display Shield pour 49,90 USD à partir du 2013-04-16 WEST. La résolution d'affichage est de 172 × 72 pixels. L'empreinte du PCB est de 68 × 63 mm. À en juger par les images, le composant d'affichage a moins de la moitié de l'empreinte du PCB.

feklee
la source
0

Désolé si je suis un peu en retard, essayez les écrans SHARP basse énergie, ils sont basés sur les pixels et offrent de petites tailles. Adafruit les porte et ils fonctionnent exactement comme les écrans à encre électronique. Ceux-ci se trouvent dans les montres intelligentes d'origine et avec un logiciel approprié, ils fonctionnent incroyablement.

Jeff
la source