From dc98fd122d90a1d8e2a4ac6319e38fb8a8782c5b Mon Sep 17 00:00:00 2001 From: ztimson Date: Sat, 27 Jul 2024 21:05:48 +0000 Subject: [PATCH] Got display working --- install.sh | 3 +++ lib/{waveshare_epd => }/100x100.bmp | Bin lib/{waveshare_epd => }/2in13.bmp | Bin lib/{waveshare_epd => }/Font.ttc | Bin lib/waveshare_epd/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 138 bytes .../__pycache__/epd2in13_V4.cpython-312.pyc | Bin 0 -> 12266 bytes .../__pycache__/epdconfig.cpython-312.pyc | Bin 0 -> 14722 bytes lib/waveshare_epd/epd2in13_V4.py | 1 + {bin => src}/display.py | 21 ++++++++++-------- 10 files changed, 16 insertions(+), 9 deletions(-) rename lib/{waveshare_epd => }/100x100.bmp (100%) rename lib/{waveshare_epd => }/2in13.bmp (100%) rename lib/{waveshare_epd => }/Font.ttc (100%) create mode 100644 lib/waveshare_epd/__init__.py create mode 100644 lib/waveshare_epd/__pycache__/__init__.cpython-312.pyc create mode 100644 lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-312.pyc create mode 100644 lib/waveshare_epd/__pycache__/epdconfig.cpython-312.pyc rename {bin => src}/display.py (90%) diff --git a/install.sh b/install.sh index c10aefe..2a6a7e6 100755 --- a/install.sh +++ b/install.sh @@ -25,6 +25,9 @@ if [ "$?" != "0" ]; then exit fi +echo "Running updates, this might take a few minutes..." +pikvm-update + # Fix banner echo "" echo "Updating the banner..." diff --git a/lib/waveshare_epd/100x100.bmp b/lib/100x100.bmp similarity index 100% rename from lib/waveshare_epd/100x100.bmp rename to lib/100x100.bmp diff --git a/lib/waveshare_epd/2in13.bmp b/lib/2in13.bmp similarity index 100% rename from lib/waveshare_epd/2in13.bmp rename to lib/2in13.bmp diff --git a/lib/waveshare_epd/Font.ttc b/lib/Font.ttc similarity index 100% rename from lib/waveshare_epd/Font.ttc rename to lib/Font.ttc diff --git a/lib/waveshare_epd/__init__.py b/lib/waveshare_epd/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/waveshare_epd/__pycache__/__init__.cpython-312.pyc b/lib/waveshare_epd/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..281beffd3424f023149ad308fd019b4ab963304c GIT binary patch literal 138 zcmX@j%ge<81V5vfrh(|kAOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdrKw+(pI@RMkm()f ztDlpZq+gy`mRg*VSdg LjEsy$%s>_Z>4YD2 literal 0 HcmV?d00001 diff --git a/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-312.pyc b/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..36a8fe980f8988197c0506ac4bcdddc42ab95eb1 GIT binary patch literal 12266 zcmdrSTWl29b!K;GclK#}{aV|A*FXtt^C%8U2mxBa5TL0;zyx9l+r=~3YwTTnW?bW~ zX{f}9T@hhdl~`9%S*ljpC2Gi5`q`J7kN&XsT1HzcA(fx~sVp2RZGO^o?(B?bW@r5X zBGF!H&OP_ubI*O8bI(2Z-uau?>!Kh`o&U|nk3tmnPfRGmmPZ!O0CJP!D30!-+9}S$ zS$pVSOS^@pI9t1wW7=&Nil@2>C#A9+^Y**6jI}!~)SDD%zeaJ6yOw+&J4A=r941rxB9g{+&R1H;zs7CB8cGxK0Hs=AL+LZ+$tt;$U%{Zh%2le;OkT5SZGBZU6gmnP*P;xcswL}+Te3Z4OHVZ>&`YLO!0F6Y01$9matJ~; zSvkF2v@9L zW9!pwead#nciVT5&allSuQturCYv+tx}_<0WZ1P!Q#6CV2)O(@RJ#EQRbS>I@m%#q z+Y0c;FidruX_2{XRQn>=CH3h}jn!CIH%yod7>W#!W5l0ye%JTJye2fd{OA@6hW^K+vAQf8y=%wwx?Vfxm z!*16~uQ0DV<;<{+1vInl_7_v8nt9g9>6?+MMt_E=DUd0ySXr+ z%>vmxwM)&VO0GHK(}}M66v{5Y(Q1rp;gYi5(d7lxY%o=kVK)_*oGKk?0(A_(1&_SZ z0xE}Y%ryk9vm-G|p_wrR6KS$YlzHbYmtfX}T^b&$!=-SAZP}{O!v_BBt{+5yo1FiTT0JOHg8=g_m*!c{*@u9DJ&bKk`+n8#* z^ZxDkXM8W;>!0@Rdg!T~^Q=pI)+L3EXZ;sesw7ZAHsjm%Smt!UvT2sxA{$;)o%kuV zdlR=iZ7Jko(CPwEn9Zlgtt!GpBVnLWWh}RV@NOO@&b6&Iw;s~DFA)R*Oj(6Z5D85P zb|Ns&s<&-Gh`k+aiHd#T%_Pcjjp?$YP;23309UC8tY?m`NwYP{jTyEcQa5~~zA-7o zt|=_>j(R^V`Cpnj0iCqm=Qu~Z5WJ4SI9q<*)PxU5L@7~KFl8iP#QJX_AikJZK~NR& zTX^BrN1lYQvDd{Xp-eXk$0LH2s4SQR%)Wwr7N-Iic42FX4s~@{YWy&{s}hKlCIvIVM9P^VqykU72`jK z9b2j5NbQ*LOxn`bTQclc#SRT5rSV~~{0b4HHa5#P$%{~HgH;XuD|GnjZ8*_Dqwbk$ zlireRdjjoa7`A|R8abKM*@!k7sL76;LyuM#`P+ycM(`$pkX4p7eK|`HiO5zb&w~Sk z7#CD|%E?~>m3RU`5qXaFCwGot&agpqsVSw3K!H~goH`0K9xfe)8IR>>+pXha)`~|*Vb+SC$CA1Ux8+{>0web|gdE<( z%FgzG0L$U^h0uc79t5}yat#QsB0vita>=f?yEo1a^zh`~Qa}>fCsa2C0gqDxN=K+f zfNQ_N2eRRxQ(aVaBr|)j#do{GhxNO}}f@b=`vqIEB|s zz#JG%Jjphu9QY@fz3`x~BcfhGg5V_KEgMdg9#V&QIQ$dgEUI)ZPsHy0U2i z1-P$Eax!#Q~_SVu4Ge|tY0OW!vPG7MM zTe>0B7|ucY73&q-uoe6REr&cIxif1Rwn3@QSeK$msUJ9-X{M_GS1hsL5&p$EG!y>C zTHgTtP1Z2Joqudo{F`Na&?|vAC5LV^Ka7#^nv4YVnNU_DKBaSZgt{6gW7F19aCql; zbkY*~7bKXs#jy#nd`cbjxle#og5OC>Qhh&|DReRnfm7{_!tn|-%$$Tp+?u6#nYG*G4yD)bNtf@v@7epyR*8^lz zBxBzP8N#q}&~Q&r?uf%=6C|&m+MMbY4CoW{2J<%9X+)n)kKXVY?-v#-9G=d&M1-J|hKmpt(H+GNi9*d0bN$!|- zuXz}#OSarPHgPP~Kk?Q~AT)aPu_0%2e>$*r zx_30aY46PXed)ly4Er4*m}7Nnqg_4f`uqiS>*?30cJ(d&ON90sOhaiRTAiTai5>5_ z$+biDJ}5gpq7lh7VXh595I|PBYUM9SrGhI|M(pAFK3O0HJ&gjvOANCWsoXd|#=l(1 zZ-P7F&4v8EvNp}Gon`BZxoZv4%1qA1xzuY0~nOL zm@V@G1~89<*_>zJz?97&rb*=>pa*EufR8Dk4-(AEteuCJp?NE_ex4;*CDSm!jbL^t zErrSptP`**f-#J|&5%KboLL9{+k%J1yc+m%z!dhFBef z8USChdt_nl6Mha!&4ZysWrs;)!6kYNUsv6c^dDT@X9QCfc9yx1As^^@wX=iP6 V*Nk)HRr{AV$wmjCPzVX*{{mCby`}&F literal 0 HcmV?d00001 diff --git a/lib/waveshare_epd/__pycache__/epdconfig.cpython-312.pyc b/lib/waveshare_epd/__pycache__/epdconfig.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..33b18ecb14c6e6c0a0b349963441e70e5a0811e0 GIT binary patch literal 14722 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�*dG?UfSd`La& zI-VI=773Y%=c(6f!`9O?IMuN>(yXkF_o-ubyz)ME{G32aZ1wFty*@F# zl#$k*Pqf!E5{#mboEbhOI&vAwkLO-S;!LU6g5dHCrFXgBqpcqfuY2gw_Gq6ULUf4M zLiwklyEBh*EQB)v;6s|}Os}`+<#?yUC8T>9!4(9VRxRp`a6wXIrTC-YK#{l=_AjU_ zd(PP5(Zdn?*C*md#c(O02_sxhqfJZfmMFU=!cF_8eA9hXeKEFLE2)UG6?eDC*qsRs zM(iUE(=Agi_p0u@=iK-A%htf-%r<(8O-!GmkzQ1K|OAN#Lq@P6F=a)X8^0}#V z_v-E+o;!U1*xWJb7cUGD3Cf}@+$5X6I(7Bl>oIoE6U)Z$4CLiM%FAD?yHR_R(|H@r z>i-}Al{2QAim*nrfX|HN&(1(V7HaBff();5FBN=6V%q>GO5$R>iHEgXi{#KwO{VCU7ittD^Iw_jRn_e9%M+}7L;yRBsOP@`|)7D1-(`d8Qt!3_LF{4V+& z-!*P$hZ|N*W^?6=BjLbSX$~y8L$GDVl4mYh-Ib*|u%v?tpc~%S<&|8u{X(#-wyS@@ z7w8VU23Iu{ATew51(HxqQt??bMW9kg~q~f0l+-d%>4s;?jya<=n zF0}bl{73wrE8F1KUyE`TrW^9gx<%WPxcX$wWEQ)Et21z8tve{2+muUpZB1>bWvfct z-WBZY8wmJ7dR~dhM3B6NsNzfqf)sr*N_l9A0zwvwo=BywoMRyAz-!E~Oc+v&eh z-|T?kFGeFFDGi4)~y4 z|Hr!d%biP?d!m!*Hl}1_@igy1idwTr!2d{s9?5ktn7#H_9{Po*^Vo$>d zF#0S#-0-c*K2kr{JlY&#&Zn6(?1za G0RIOmDyFmm literal 0 HcmV?d00001 diff --git a/lib/waveshare_epd/epd2in13_V4.py b/lib/waveshare_epd/epd2in13_V4.py index 84d6646..a28f640 100644 --- a/lib/waveshare_epd/epd2in13_V4.py +++ b/lib/waveshare_epd/epd2in13_V4.py @@ -45,6 +45,7 @@ class EPD: self.cs_pin = epdconfig.CS_PIN self.width = EPD_WIDTH self.height = EPD_HEIGHT + print('init complete') ''' function :Hardware reset diff --git a/bin/display.py b/src/display.py similarity index 90% rename from bin/display.py rename to src/display.py index 2ca78ae..e56c8e0 100755 --- a/bin/display.py +++ b/src/display.py @@ -1,9 +1,10 @@ #!/usr/bin/python + # -*- coding:utf-8 -*- import sys import os -picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') + if os.path.exists(libdir): sys.path.append(libdir) @@ -21,12 +22,14 @@ try: epd = epd2in13_V4.EPD() logging.info("init and Clear") epd.init() + epd.Clear(0xFF) # Drawing on the image - font15 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 15) - font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24) - + print(os.path.join(libdir, 'Font.ttc')) + font15 = ImageFont.truetype(os.path.join(libdir, 'Font.ttc'), 15) + font24 = ImageFont.truetype(os.path.join(libdir, 'Font.ttc'), 24) + print('fonts done') if 1: logging.info("E-paper refresh") epd.init() @@ -51,7 +54,7 @@ try: # read bmp file logging.info("2.read bmp file...") - image = Image.open(os.path.join(picdir, '2in13.bmp')) + image = Image.open(os.path.join(libdir, '2in13.bmp')) epd.display(epd.getbuffer(image)) time.sleep(2) @@ -59,7 +62,7 @@ try: logging.info("3.read bmp file on window...") # epd.Clear(0xFF) image1 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open(os.path.join(picdir, '100x100.bmp')) + bmp = Image.open(os.path.join(libdir, '100x100.bmp')) image1.paste(bmp, (2,2)) epd.display(epd.getbuffer(image1)) time.sleep(2) @@ -89,7 +92,7 @@ try: # read bmp file logging.info("2.read bmp file...") - image = Image.open(os.path.join(picdir, '2in13.bmp')) + image = Image.open(os.path.join(libdir, '2in13.bmp')) epd.display_fast(epd.getbuffer(image)) time.sleep(2) @@ -97,7 +100,7 @@ try: logging.info("3.read bmp file on window...") # epd.Clear(0xFF) image1 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open(os.path.join(picdir, '100x100.bmp')) + bmp = Image.open(os.path.join(libdir, '100x100.bmp')) image1.paste(bmp, (2,2)) epd.display_fast(epd.getbuffer(image1)) time.sleep(2) @@ -130,4 +133,4 @@ except IOError as e: except KeyboardInterrupt: logging.info("ctrl + c:") epd2in13_V4.epdconfig.module_exit(cleanup=True) - exit() \ No newline at end of file + exit()