저는 사람이 가능한 한 저렴하고 100 밀리 초 이내에 새로 고칠 수있는 완전한 픽셀 기반 디스플레이 인 전자 잉크 디스플레이 (픽셀 기반)를 찾고 있습니다.
Aveso의 "맞춤형 디스플레이"제품은 거의 내가 언급 한 내용입니다. 그러나 이들은 불변의 디스플레이, 즉 픽셀 기반이 아닙니다 .
디스플레이는 1cm의 매우 작아야하며 이상적으로는 멀티 헤드 컨트롤러와 함께 작동합니다.
저는 사람이 가능한 한 저렴하고 100 밀리 초 이내에 새로 고칠 수있는 완전한 픽셀 기반 디스플레이 인 전자 잉크 디스플레이 (픽셀 기반)를 찾고 있습니다.
Aveso의 "맞춤형 디스플레이"제품은 거의 내가 언급 한 내용입니다. 그러나 이들은 불변의 디스플레이, 즉 픽셀 기반이 아닙니다 .
디스플레이는 1cm의 매우 작아야하며 이상적으로는 멀티 헤드 컨트롤러와 함께 작동합니다.
답변:
나는 짧은 시간 동안 eink 디스플레이를 어설프게하는 아이디어를 생각했다. 그리고 e-Ink Corporation이 뒤를이었습니다. 그들은 eInk IP를 소유 한 사람들입니다. 그들은 저를 잘 설립 된 LCD 제조 회사 인 PrimeView를 소개했습니다. (그리고 사실 확인을 위해 구글에서 PVI가 EInk를 인수 한 것으로 나타났습니다.)
데이터 시트 및 가격 데이터에 대해 이야기 할 수있었습니다. 평균 땜장이에게는 좋지 않은 것 같습니다. 그들은 전시를 위해 조각 당 $ 200.00를 인용했다. 및 컨트롤러의 개당 4.50 개 (샘플 수량). 패널은 생산량에 대해 60.00 / pc로 견적되었습니다. 물론, 그 후자의 인용은 볼륨에 달려 있으며 아마존이 훨씬 더 나은 가격을 얻는다고 생각합니다! (BTW, 이것은 6 인치 패널 용이며 2007 년 12 월경에 인용)
정말로 진지한 경우, 약 3,000 달러에 개발 키트를 제공했습니다.
이 기술은 여전히 비교적 새로운 기술이며 많은 핵심 기술 (활성화 기술과 비교)이 많은 특허 보호를 받고 있다는 점을 감안할 때, 상품 (일반) e- 잉크 디스플레이가 표시되기까지는 시간이 걸릴 것입니다.
SeeedStudio E-Ink에 대한 나의 경험은 다음과 같습니다.
http://www.picaxeforum.co.uk/showthread.php?23583-E-ink-on-PICAXE-see-it-now- !
Seeedstudio E-ink는 Arduino 호환 방패입니다. (그러나 Arduino와 완벽하게 호환되지는 않습니다! Seeedstudio 포럼 : http://www.seeedstudio.com/forum/viewtopic.php?p=16432#p16432 )
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
실드에는 문자 ROM과 E- 잉크 드라이버라는 두 개의 활성 칩만 있습니다.
코드는 비트 패턴을 얻기 위해 ROM을 읽고 비트를 다시 정렬 한 다음 E-ink 드라이버로 보냅니다.
제조업체가 'Good Display'라고 불리지 않으면 E-ink 디스플레이 자체에서 제조업체 이름을 찾을 수 없습니다. (이것은 뒷면의 유일한 단어이며 부품 번호는 GDE021A1입니다.) (편집 : 부품 번호를 다시 검색 한 후 이번에는 제조업체를 찾았습니다. 좋은 표시입니다!)
내 생각은 이것이 올바른 응용 프로그램에 완벽하다는 것입니다. 그 응용 프로그램을 찾아야합니다.
PervasiveDisplays 1.44 "전자 종이 디스플레이는 13.87 USD (100pc의 경우 8.8 USD) 128 x 96 픽셀, 111dpi, 외부 치수 (mm) : 40.512 x 28.80 x 1.00. http://www.pervasivedisplays.com/products/144
그러나 10x10mm만큼 작지 않으며 필요한만큼 빠르지 않습니다. 그러나 적어도 가격은 현재 상당히 낮습니다.
Seeed Studio 는 2013-04-16 WEST 기준으로 49.90 USD 의 Arduino E-Ink Display Shield 를 제공합니다 . 디스플레이 해상도는 172 × 72 픽셀입니다. PCB의 설치 면적은 68 × 63 mm입니다. 그림으로 볼 때 디스플레이 구성 요소는 PCB 면적의 절반 미만입니다.