From 7a933631d9a27e63e32e1025a804ddcf3286756f Mon Sep 17 00:00:00 2001 From: pepev-nrt Date: Sun, 26 Jan 2025 20:19:37 +0100 Subject: [PATCH] Fonts choosed and prototype created -> 2025-01-26 20:19:12 --- assets/cal-icon2.aseprite | Bin 0 -> 1165 bytes assets/cal-icon2.bmp | Bin 0 -> 1558 bytes assets/cal-icon3.aseprite | Bin 0 -> 1198 bytes assets/cal-icon3.bmp | Bin 0 -> 1862 bytes assets/output.bmp | Bin 3966 -> 3966 bytes assets/prototype.bmp | Bin 0 -> 3966 bytes assets/test-characters-2bold.bmp | Bin 0 -> 3966 bytes assets/test-characters-bold.bmp | Bin 0 -> 3966 bytes assets/test-characters.bmp | Bin 0 -> 3966 bytes raspagenda.py | 8 ++-- test/test_characters.py | 80 +++++++++++++++++++++++++++++++ test/test_weather.py | 0 weather/__init__.py | 0 weather/weather.py | 0 14 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 assets/cal-icon2.aseprite create mode 100644 assets/cal-icon2.bmp create mode 100644 assets/cal-icon3.aseprite create mode 100644 assets/cal-icon3.bmp create mode 100644 assets/prototype.bmp create mode 100644 assets/test-characters-2bold.bmp create mode 100644 assets/test-characters-bold.bmp create mode 100644 assets/test-characters.bmp create mode 100644 test/test_characters.py create mode 100644 test/test_weather.py create mode 100644 weather/__init__.py create mode 100644 weather/weather.py diff --git a/assets/cal-icon2.aseprite b/assets/cal-icon2.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..e28985197b78f2d0d24647f063e008b45c5b5eab GIT binary patch literal 1165 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 literal 0 HcmV?d00001 diff --git a/assets/cal-icon3.aseprite b/assets/cal-icon3.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..7263f40d7921dead8d44cf9862251f210eb2cd61 GIT binary patch literal 1198 zcmZ3-!ocugDIJ)r%+KC*#rWdj;32E^d7Z(>dH#ZLt4=*n- zA0Hn-Kfi#0fS{nDkdTnDu&{`Th^VNjn3$NjxVVIbgruaTl$4aTw6u(jjI6AzoSdAz zyu5;ff}*0Ll9H0Lva*VbimIxrnwpxry1IsjhNh;bmX?;bwziIrj;^k*o}Qk*zP^Eh zfuW(Hk&%(Hv9XDXiK(fnnVFfnxw(afg{7sXm6esXwY80njjgS%ot>S%y}g5jgQKIP zlarIPv$Knfi>s@vo12@vySs;nho`5fmzS5fx3`avkFT$J#$U0q#$eSJeiLt|rOQ&UrOb8|~eOKWRuTU%Ru zdwWMmM`veeS65eecXv-uPj7E;UteE;fB%FD6DCfaIBC+P$&)8fnKEVS)Tz^^O`AS_ z`ivPfX3m^BYu2pUvuDqlGiUDHx%1}Dn?Ha4f&~i}E?l^1(W1qR7cW_|Wa-kS%a$!$ zzI^$L6)RS*T)Ar1s@1DkuUWHZ?b@~L)~#E=e*K0G8#Zp-xM|a-&6_uG*|KHp)~(yN zZQH(m`;HwucJAD{YuB#byLa!|vuE$#z5Dj<+rNMRfddB)9z1yH(4oVJ4<9*l(;H?w{PFMbLZ~eyZ7$hyMO=wg9i^DK79D-(WA$YA3u5W z({T}zkmPv^XKp1zyJRI`~UyH5-DDWfYjsHM4 z7lTt`a&~%AeraBcJXi%V!@vPZ1v`UJVr6QPf}tLe!>Rz0`_BZS8Nk`UV$SdX^&&k@ zfd*V|2Ll)w6f9QF=?ANZWJh$>Z>JpOJD|Yf{PX|(cQ!M8Tl(7GYN*IfP;X^9D|Yz9 znTR`SHupAFv>%L>@BH2K<5IQkjv1?Xqx;Ov?OgLBk9U>7Dv>->dF8qJvoD{^?fv7n p1@E_Z;A9J7H63Cd_nX^>4EY$E#`Q-ASOroyOB>~I%)mi`m literal 0 HcmV?d00001 diff --git a/assets/cal-icon3.bmp b/assets/cal-icon3.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a1836cc207b4086a6af8c823f1c92e50ac92657f GIT binary patch literal 1862 zcmaKs2RM~~6vsbCMu;Ry8Vae<){cZEv?D1=duSj@8cIcJC>ln4Pl|SFsI;{A-lQlR z%J{$UyXml&i8lD``qW+INK{DF-t`-6+C_67zjrW6-i!80kqYmM@Wi5 zVsdhF$ji&4prC-Fq9RqQR6$8e31wwvR8&+@RaK>G)vBnesiCf}j)sN?)v8rPQ&STy zEiI~7ua361HZ^M0Ku1T1nl)>ptE)?`TD8#A)1!9n+UV=+Q>RWH3=9mYTemLt>eZuu z{rWU$&;Ub2LmD=0NTWuLFfua2*w`2o6B8OYZj7m^DNUL*p=r~mG;7ujGcz;H&CRi} zu%LPK=Co+hf|e~?(yCP}TDNXZn>KA|+qNy1mX@?@*N*n>+tZ;#2Re4_NT*Jn=-jz8 zUAlCkYuBz=Sy^FiZB4gs-LSE-p?ml4*xK4+XJ?1Ky*)j8^uWQvfu22k;^^o|uU@@y za&p4i*%=oX7kc;ZO`kq}=-an1{rdHzfB*gr7%+f=0|zo_&>&o0U2$`BWANa?xVyVE zWXKRaJUkdWbST4y4a3vZli|aMA&37{-nr%eZml z7(aeI6DCYx;>3wenluR?A0H-9p3IafQ2nh*c{`~nYSg?T5&`=gGT*#tD zi&(sPF=1h0golT-WXTeiE?r7QLNsC7e{=2JR3G_VB^M(Y}&Mm&6_u~Wy=<}Zr#eZ zZQIzseLFjL>|p24o$T7Ri`~0-vuDp9_U_%wzJ2@Hzkfdm4jka%!Gk0uB#@Yx$e}}r zIDGgpNl8g0Cns~{$PtbnJ<73T$2flcI44e=;N;1ZoH})i)2B~!=FAyVQc^g3_AKYl zo#XuZ^IW)afz;GgE?&IIrAwE%eEBkIX=z-!a)ql`uX63$HLhR3&W#&4NKa4a=FOYj zx^;`&w{LUj&K>UFz019O_qc!mJ`Wx|;NioEJbLtq$B!TL}+y!a`^i7E8o6-BR4mfyu3WVfB(*pA3yl{^C!Q4{USdt1OE3E(xQP#|FM#cQ2h@O0#QkllQ6Nl8p&DRg=cjzRFl-nw7E2G%IG} zJQZ2_U9#N;DvVQNe|Ip$M`W`5N_^S9m9X;W H6mtIo-*|3{ literal 0 HcmV?d00001 diff --git a/assets/output.bmp b/assets/output.bmp index 869e9dee46eda5ee7787a8eab6dc9b45c17d9672..8bde19697f4b1f31c55beaa57ef633b45ab987f3 100644 GIT binary patch literal 3966 zcmdUy-)kdP6vw+N?Sq&>Uqoz@7Yq6qY)eB2eAj=$s*pUnwJ!}?H)AOnd@(FO1#0F` z@Ih>ati6%ImV!7BK4~|5Q&uzhBgsmzB_=b+@40s-nT*pETzv2h=iYnH=bm%!y)&64 zufFz_v7lrF?aR==pzlL(;9|L#T3C4QX{}GdW@RBF)_Ky1Kp7c_!~dSIzA$XiV9!1< zlIyPxhYk&F`+)u(&y9yJ4IHOtCC6`kFdWdpb!;<{duHyJA$>pi&bAZz*sQ%drslAd zbrQM1R@?rT9#-9D@RMTytL;H0wJs=-2IV&1JEuX@tz{+Ei~XZp{hjVvg!4q3o1r8D zUP|Cw%r7MEbN)HJUhImk1a5OY^4E*MCe~+6g!LQl>L1NYYSmH>H1X%7FQ|`eA`|X$ zJP|k=Xdn|_(meEsJ-9eyi}{ z@_XsT_;UHelV4EJ?-cK-N$AZq_lwgX;P zJ@`bJ!_KlpauX93Z&BNVU&a`l%*RjxmC!(tQVVllj0_YV%M2f3f`k*_Z{^H7-8U=g zi}cupN9SkGcN84wLv_3*FS_cEYwm^Isqc6r@KX0M%6*@NiZ9nc8ox+)P3DpOl#!O^ z`xo91Bsl(e5?o$CU*cG=5Ba-4s``iB-3Ygi)oiS{TOyMFB>@ZDfI!vh~7|LtpdX)Zrq5tg2iod0yCF_$CuvH0mrpN8@J zpU`Z(2)-G(Q0gCo{U_C*%+uUpJG#Fq=lXtOE-w|_RAFhU(X<`Ia9xup9~kZYyXZN8 zsj!&O=L?Oh?dJ<2C%2Qg0-n#8G^b9Kb5$RED=p?1^M$3x$Ig`3EVr{cjYqiK*mJ33 zw0|}cMz(pb^AE{Ja#jD%0P&qo=Duy~`m{s0{K8VoSTY*bp#%Pw;#tRSKf**hq<7Tz zT>{7YI|b&n?6}+!-CKB@`1rt^dt?}Gz5iNPeGlNTOycvcLRE7e$NGcGiT7ukDEa5Xa|4MYvum({O8Lzq*vDuVX)RYex70dVBKRK;iYtm{Qb18V;rke0$a85 zQ)-Mo*A4Oh=zjQo=zjQo=zjQo=zjQo=zjQo=zjQo=zi=yAF2M@WIdlHNVc`*9u6db z3q~YgKt=Kd8j{b06Os@0Cyx^b0yxR45|4{oA)2#Kt?*BrLTW_cDIX^T^wYvDw^H~C&pG6cg zoW7H_zoGnAQPlOSZ>xWZZ#Vb#9~xKxgLaW|9&>2=_irvl9_D3vVK#2YDd%!b@)}Bt vKMn9$@zu9;{gZ;D$d=d({17Iy@f?70{_xrpT`U%Af@w08ENo*vRap0ST` diff --git a/assets/prototype.bmp b/assets/prototype.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8bde19697f4b1f31c55beaa57ef633b45ab987f3 GIT binary patch literal 3966 zcmdUy-)kdP6vw+N?Sq&>Uqoz@7Yq6qY)eB2eAj=$s*pUnwJ!}?H)AOnd@(FO1#0F` z@Ih>ati6%ImV!7BK4~|5Q&uzhBgsmzB_=b+@40s-nT*pETzv2h=iYnH=bm%!y)&64 zufFz_v7lrF?aR==pzlL(;9|L#T3C4QX{}GdW@RBF)_Ky1Kp7c_!~dSIzA$XiV9!1< zlIyPxhYk&F`+)u(&y9yJ4IHOtCC6`kFdWdpb!;<{duHyJA$>pi&bAZz*sQ%drslAd zbrQM1R@?rT9#-9D@RMTytL;H0wJs=-2IV&1JEuX@tz{+Ei~XZp{hjVvg!4q3o1r8D zUP|Cw%r7MEbN)HJUhImk1a5OY^4E*MCe~+6g!LQl>L1NYYSmH>H1X%7FQ|`eA`|X$ zJP|k=Xdn|_(meEsJ-9eyi}{ z@_XsT_;UHelV4EJ?-cK-N$AZq_lwgX;P zJ@`bJ!_KlpauX93Z&BNVU&a`l%*RjxmC!(tQVVllj0_YV%M2f3f`k*_Z{^H7-8U=g zi}cupN9SkGcN84wLv_3*FS_cEYwm^Isqc6r@KX0M%6*@NiZ9nc8ox+)P3DpOl#!O^ z`xo91Bsl(e5?o$CU*cG=5Ba-4s``iB-3Ygi)oiS{TOyMFB>@ZDfI!vh~7|LtpdX)Zrq5tg2iod0yCF_$CuvH0mrpN8@J zpU`Z(2)-G(Q0gCo{U_C*%+uUpJG#Fq=lXtOE-w|_RAFhU(X<`Ia9xup9~kZYyXZN8 zsj!&O=L?Oh?dJ<2C%2Qg0-n#8G^b9Kb5$RED=p?1^M$3x$Ig`3EVr{cjYqiK*mJ33 zw0|}cMz(pb^AE{Ja#jD%0P&qo=Duy~`m{s0{K8VoSTY*bp#%Pw;#tRSKf**hq<7Tz zT>{7YI|b&n?6}+!-CKB@`1rt^dt?}Gz5iNPeGlNTOycvcLRE7e$NGcGiT7ukDEa^j_QWI)d&(kbZ`={^lBCxkzC=6XPLt5(o2 z%Cn@!-2}D#wEVajXwQd>9mJNOmLC@bJAXbhz~gRZf^ahnN&@x}#^DliaIC0SYjKS(ak#rfoMIgUfAb1kd4Le!UOP>h#bsgl(C1rhEBV{{il)ev_AC(sh($ literal 0 HcmV?d00001 diff --git a/assets/test-characters-bold.bmp b/assets/test-characters-bold.bmp new file mode 100644 index 0000000000000000000000000000000000000000..27288d81dc3b305f53eed922ac18ea446f8bf488 GIT binary patch literal 3966 zcmeH|F>4z!6oA_rdYe6D$`TJA(yrCwK(I>pX6b)$)+V>KC7d}lh)%_1$%Di1uh^(d z!B|6oK{5E|a!VBst51^S+R53T8ffu5q&wZG_w@AMJKdYNN#lu^4)rgn-BSBR?I~SO zUK9UX5A7L^U2|f0%W%h(J>MRneSG%u*%pC)eQb-4wfp$&jLO;)roAv^TgaRk(i zc<0h{n-%O;c9JdlhQmQ|Ns90LWvYdpzGb| zF_Zk7NiFp?g-=%PN=6UV7pltr(sjCmqkCM2> z_(8*SmHT?6`Vk0H_ESCUB=2f0Vv%(Ec^(e4P+w#~&yJGX0i~94$CV0))e1jLS`G&e zblx~w`mbl+e>Z{jPnMkON2IAD`;Nc z-}mm@r^55RPxf24v34h?m9XIY#DQIam{~0Bd)?`Ebae3 LUyx0=zn=f!^915) literal 0 HcmV?d00001 diff --git a/assets/test-characters.bmp b/assets/test-characters.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a806aced2e4af419275e8743829fa903e0cce7dc GIT binary patch literal 3966 zcmeH}F>ljA6vu%j6Y&Qib_W*r46W3PL+tPc*vSftlvE&MAxqqb#b_zi9|F+~u5_-9 zlr5f1Vp&yI><$QrHnAViZtU2}*_}XC%Cqi#zTds~{`c+_<>|AYa3`_H*gwK{h3yTt zyZFTR1o^l6b-Rb(af=OZHuHuhTV7qDZGE=&sj9&CepFQlU|XMUeX1&Od+x^tcN;7H zC0tR(&~jkdJ)aKksWF@ET@I<}rol|s@j}M|qw6~cbBx(|&^0<58OeKWBzxJBd7U)y;#q$ik~e&=lzUKyv2#xB$&U*!AKAauWgA6=CA<7F9tt%z@^(m_X-puWe~ZzO6X zJmtLXY;4k$XH$hiTED_%?&JUAxJ8bw^p$XfO8YP&su+k1vKhdP>kkIrg20J;{IUz2$OM+9xNn+ITMZWuCrxj%|YFjG5ez z3SR1Y4OaE#FZ@Sb=V#CU-;{HG)Dm<{vGmg^CDEZ=qaz^~%+yCOTSU_|U9+1cYLjNO zZx^^-myzq`{HTWfy?)B~SL}KcU%j-OJJBn7J-)Wg{|WOyylTTHZwW+GEX`7A^LHC+ l^r)a;L$M_80A(-Qgn(YquizK4mOH}zuk$4-d;RtE{R5-CZ6p8y literal 0 HcmV?d00001 diff --git a/raspagenda.py b/raspagenda.py index f63bef3..f275424 100644 --- a/raspagenda.py +++ b/raspagenda.py @@ -60,9 +60,9 @@ def main(): draw.line([(0,16),(250,16)], fill = 0,width = 2) draw.line([(125,16),(125,122)], fill = 0,width = 2) - cal_icon = Image.open(os.path.join(assets, "cal-icon.bmp")) + cal_icon = Image.open(os.path.join(assets, "cal-icon3.bmp")) - image.paste(cal_icon, (129,24)) + image.paste(cal_icon, (129,20)) draw.text((160, 26), 'Agenda', font = font16_bold, fill = 0) @@ -83,8 +83,8 @@ def main(): from display.display import DisplayHelper displayService = DisplayHelper(screenWidth, screenHeight) - displayService.update(image.rotate(rotateAngle)) # go to sleep - displayService.clear() + displayService.update(image.rotate(rotateAngle)) # Displays the image + #displayService.clear() displayService.sleep() # go to sleep diff --git a/test/test_characters.py b/test/test_characters.py new file mode 100644 index 0000000..65e1805 --- /dev/null +++ b/test/test_characters.py @@ -0,0 +1,80 @@ +#!/usr/bin python3 +# -*- coding: utf-8 -*- +""" +This script is created to test the different fonts installed. It may return error if some of them are missing. +""" +import datetime as dt +import json +import os +import sys + +from PIL import Image,ImageDraw,ImageFont + + +def main(): + # Basic configuration settings (user replaceable) + # config.json is in the root folder + configFile = open(os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'config.json')) + config = json.load(configFile) + + + isDisplayConected = config['isDisplayConected'] # set to true when debugging rendering without displaying to screen + screenWidth = config['screenWidth'] # Width of E-Ink display. Default is landscape. Need to rotate image to fit. + screenHeight = config['screenHeight'] # Height of E-Ink display. Default is landscape. Need to rotate image to fit. + imageWidth = config['imageWidth'] # Width of image to be generated for display. + imageHeight = config['imageHeight'] # Height of image to be generated for display. + rotateAngle = config['rotateAngle'] # If image is rendered in portrait orientation, angle to rotate to fit screen + hourFormat = config['hourFormat'] # The format the hour will be displayed. eg. 13:02 or 01:02 PM + + # Set the hour, this is important to see what time the e-Paper has been syncronized + if hourFormat == "12h": + time = dt.datetime.now().strftime("%I:%M %p") + else: + time = dt.datetime.now().strftime("%H:%M") + + + assets = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'assets') + fontsdir = os.path.join(assets, 'fonts') + # Drawing on the image + font15 = ImageFont.truetype(os.path.join(fontsdir, 'wavesharefont.ttc'), 15) + font24 = ImageFont.truetype(os.path.join(fontsdir, 'wavesharefont.ttc'), 24) + + # pixel_operator fonts + font8 = ImageFont.truetype(os.path.join(os.path.join(fontsdir, 'pixel_operator'), 'PixelOperator8.ttf'), 8) + font8_bold = ImageFont.truetype(os.path.join(os.path.join(fontsdir, 'pixel_operator'), 'PixelOperator8-Bold.ttf'), 8) + font16 = ImageFont.truetype(os.path.join(os.path.join(fontsdir, 'pixel_operator'), 'PixelOperator.ttf'), 16) + font16_bold = ImageFont.truetype(os.path.join(os.path.join(fontsdir, 'pixel_operator'), 'PixelOperator-Bold.ttf'), 16) + + # Better VCR font + font16_2 = ImageFont.truetype(os.path.join(fontsdir, 'Better VCR 9.0.1.ttf'), 16) + font8_2 = ImageFont.truetype(os.path.join(fontsdir, 'Better VCR 9.0.1.ttf'), 12) + + + image = Image.new('1', (imageWidth, imageHeight), 255) # 255: clear the frame + draw = ImageDraw.Draw(image) + + + draw.text((0, 0), f"Pixel Operator 16 bold", font = font16_bold, fill = 0) + draw.text((0, 16), f"Hacer la compra", font = font16, fill = 0) + draw.text((0, 32), f"Pasear al gato", font = font16, fill = 0) + draw.text((0, 48), f"Escribir un post en Mastodon", font = font16, fill = 0) + + + + image.save(os.path.join(assets, 'test-characters.bmp')) + + + if isDisplayConected: + # This line is necesary to be able to acceass the modules from this folder + # We are basically adding the root folder of the proyect to the path + sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) + from display.display import DisplayHelper + + displayService = DisplayHelper(screenWidth, screenHeight) + displayService.update(image.rotate(rotateAngle)) + displayService.clear() + displayService.sleep() # go to sleep + + +if __name__ == "__main__": + main() diff --git a/test/test_weather.py b/test/test_weather.py new file mode 100644 index 0000000..e69de29 diff --git a/weather/__init__.py b/weather/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/weather/weather.py b/weather/weather.py new file mode 100644 index 0000000..e69de29