From 54eb946bdf27054868d4a6a568bdb6ba9dee5052 Mon Sep 17 00:00:00 2001 From: brentru Date: Mon, 5 Aug 2024 14:49:23 -0400 Subject: [PATCH 1/4] add new guide contnets --- PyPortal/PyPortal_Wheres_My_Friend/code.py | 122 ++++++++++++++++++ .../PyPortal_Wheres_My_Friend/images/home.bmp | Bin 0 -> 20678 bytes .../images/office.bmp | Bin 0 -> 20678 bytes .../images/subway.bmp | Bin 0 -> 20678 bytes .../images/workout.bmp | Bin 0 -> 20678 bytes 5 files changed, 122 insertions(+) create mode 100755 PyPortal/PyPortal_Wheres_My_Friend/code.py create mode 100755 PyPortal/PyPortal_Wheres_My_Friend/images/home.bmp create mode 100755 PyPortal/PyPortal_Wheres_My_Friend/images/office.bmp create mode 100755 PyPortal/PyPortal_Wheres_My_Friend/images/subway.bmp create mode 100755 PyPortal/PyPortal_Wheres_My_Friend/images/workout.bmp diff --git a/PyPortal/PyPortal_Wheres_My_Friend/code.py b/PyPortal/PyPortal_Wheres_My_Friend/code.py new file mode 100755 index 000000000..943744c4d --- /dev/null +++ b/PyPortal/PyPortal_Wheres_My_Friend/code.py @@ -0,0 +1,122 @@ +# SPDX-FileCopyrightText: 2024 Brent Rubell, written for Adafruit Industries +# +# SPDX-License-Identifier: MIT +import time +import board +import displayio +import terminalio +import adafruit_imageload +from adafruit_display_shapes.rect import Rect +from adafruit_display_text import label +from adafruit_pyportal import PyPortal + +# Adafruit IO shared feed key +IO_FEED_KEY = 'location' +# Fetch the location every 5 seconds +SLEEP_DELAY_SECONDS = 5 +# Set the backlight brightness, 0.0 (off) to 1.0 (max brightness) +BACKLIGHT_BRIGHTNESS = 0.5 +# Location text and images +LOCATION_IMAGES = { 'home': 'images/home.bmp', 'work': 'images/office.bmp', 'gym': 'images/workout.bmp', 'commute': 'images/subway.bmp' } + +# Create the PyPortal object +pyportal = PyPortal(status_neopixel=board.NEOPIXEL) + +# Configure the PyPortal's display +display = board.DISPLAY +display.rotation = 0 +display.brightness = BACKLIGHT_BRIGHTNESS + +# Display label and image coordinates +TEXT_AREA_X = display.width // 14 +TEXT_AREA_Y = 20 +TEXT_AREA_LOCATION_X = display.width // 3 +TEXT_AREA_LOCATION_Y = display.height - 20 +IMAGE_SPRITE_X = (display.width // 3) - 10 +IMAGE_SPRITE_Y = display.height // 5 + +# Create a displayIO Group +group = displayio.Group() + +# Draw the background +bg_group = displayio.Group() +rect = Rect(0, 0, display.width, display.height, fill=0xFFFFFF) +bg_group.append(rect) +group.append(bg_group) + +# Use the default font +font = terminalio.FONT + +# Draw a label for the header text +text_area = label.Label(font, text="Where is Trevor?", color=0x000000, scale=3) +text_area.x = TEXT_AREA_X +text_area.y = TEXT_AREA_Y +group.append(text_area) + +# Draw a label for the location text +text_area_location = label.Label(font, text="@ home", color=0x000000, scale=3) +text_area_location.x = TEXT_AREA_LOCATION_X +text_area_location.y = TEXT_AREA_LOCATION_Y +group.append(text_area_location) + +# Create a group for the icon only +icon_group = displayio.Group() +group.append(icon_group) + +# Show the group +display.root_group = group + +def set_image(group, filename): + """Sets the image file for a given group for display.""" + print(f"Set image to {filename}") + if group: + group.pop() + + if not filename: + return # we're done, no icon desired + try: + if image_file: + image_file.close + except NameError: + pass + image_file = open(filename, "rb") + image = displayio.OnDiskBitmap(image_file) + image_sprite = displayio.TileGrid(image, pixel_shader=getattr(image, 'pixel_shader', displayio.ColorConverter())) + image_sprite.x = IMAGE_SPRITE_X + image_sprite.y = IMAGE_SPRITE_Y + group.append(image_sprite) + +prv_location = None +while True: + try: + print("Fetching location data...") + # Fetch the location data from Adafruit IO + feed = pyportal.get_io_feed(IO_FEED_KEY) + # If the location value is in the list of images + if feed['last_value'] in LOCATION_IMAGES: + # Check if the location has changed from the last time + # we fetched the location + if prv_location == feed['last_value']: + print("Location has not changed!") + else: # Location has changed + print(f"Location: {feed['last_value']}") + # Load the image for the current location + set_image(icon_group, LOCATION_IMAGES[feed['last_value']]) + # Update the location text + text_area_location.text=f"@ {feed['last_value']}" + # Show the refreshed group + display.root_group = group + # Update the previous location + prv_location = feed['last_value'] + else: + print("Location not found in images!") + # Update the location text + text_area_location.text=f"Error: Unknown Value!" + # Show the refreshed group + display.root_group = group + except Exception as e: + print(f"Failed to fetch location data: {e}") + + # Wait 5 minutes (300 seconds) before fetching the location feed again + print("Sleeping, fetching the location again in 5 minutes!") + time.sleep(SLEEP_DELAY_SECONDS * 60) \ No newline at end of file diff --git a/PyPortal/PyPortal_Wheres_My_Friend/images/home.bmp b/PyPortal/PyPortal_Wheres_My_Friend/images/home.bmp new file mode 100755 index 0000000000000000000000000000000000000000..d0c17d0b66e78e6ef4e235f2ad7dec7fa52c6664 GIT binary patch literal 20678 zcmeI&TTC2P7zgk_($Z2LX{%J_B66!0DGGE^6f71+tX5D&g{oAv6-0$JB)qg~(gz3$ zp-l)6zzg)D50H?QH$n(a6HF)}BqUr)0<_cd+rtn0txxRy8=YW%$P?S!+t}LL!o!CT(b?IF zD_5?dw6qiz6&1LC{W@;nzKx}&C9JNl;>L{|2nYzUw5F%0KR=Ia z*RElBcom4i3hH2MObTrmsr^e);e@Qxy zzsq;Gm+9z}q!QEaPK}vAbS=1Z(pmKa`Y4igNZqJepVn(BQ7vK8+bET)IyFn(D@uO! z8lk#7f2SL@E8QzfZ_rEghVb>9HbDrkSM5u$c2i76e1TA1vL=4P;rn#<3kpw+OA0@X4hk=f zE(#xvP6`iS(%3@3^n3^$5v3`dG93|ESC3}=cn z40nn)#s?HFj87LK$!D=Fs6&VK^e{W;!1FK2*}NFU hY!|%?`#tBsXK%p1{egNL#CakCk$^}*B=8?e;9sz@scrxO literal 0 HcmV?d00001 diff --git a/PyPortal/PyPortal_Wheres_My_Friend/images/office.bmp b/PyPortal/PyPortal_Wheres_My_Friend/images/office.bmp new file mode 100755 index 0000000000000000000000000000000000000000..40f71331604f364574e9617cc6c9bd012a13d02d GIT binary patch literal 20678 zcmeHO2Ur!y8a)>hk)rz)QHjPzFp3fp#cq`Avpg&)Sb`cGF%qMKEm$KKo(;s_OH}OL z*n982_ZCg>&2-;#@15ClXZG&iqJH0VzYllj|IdH^vwL@EW@koo(<9AcIjXz_lo3lA zwm%bcTOH!RA#Yg!h~deTC;02HzwqOaKjPuThd6)!JhpG&j(PLuVfpgqIC$_Nu3x{7 zFTeZ}zyA6we)!=BY}>XCty;CRP?$_63>!8K7cXAKpMU;|-+ucI+1c5Mh=@SPjvaCG z zcI{ex{q@)Q`|rPT6u^oVE6}oKODtKk1S?mrMCHnr;p5|j>C>m<+i$&6(;IK=9_PD;lc%U@7^6FM~*~fWF&t1yZXICt(GDpjh49zA;ClTSW@x3@Rety_l*6)K=v zvu4<^VFU8z%ZIG2EX0$D>D&aN@)Xj2blx>FMdXa^(uDRjY=YHEUw#%$XQFb}aVo z+lRq}2jkkcYgo8&A#UBeg`-E0V#bUas8y>L)~s2BZr!?}aN)v;j*iBVAw%Hr?~lWW z595n3zCgKh<>2S%hvv z3_yz(EwEt00!*1Q1@-FH!lijS(Y8AS^5lsi~>hv112fVq(y#Qzz7^QwQ!NF+LrVUb3QjkA?euRdG;_~Iom_2(o1VKPl zR1_91T7+J`dZA#!f+$(CB)WF(ioJXH0#C$O%ABG{gp8_$E5 zQPvxC>Uq!-Xw?$`9B5fcUZmE~Tuk2rL<=%L{NP#2x%aV&O3^56A{virfV5o!ghKGs z20HS-LWqVsLh}9eo{4&F-$CRJ) zvxZ&gsn_z7Rio8D4DNL5b+WZr3)^3*Ethd~W(Dz_Q_z}12e1?g}XaXzC_G?BP_!3Xm5Da7b%Y5C@=T9!i2w@K6T`LVo6Tez6o}dDMBF zYq5{5-Kp? zQCrlT6lEze8)zG}EP;;ZWaOLakYFhvBYHB9lN5sRaT_h@EDF?wu_%s^(5@`6%;t4; z{_C&pKKAZj+l-scr6@`>aUB$P9hJjGOM(utE(m2@p$jep5h+4{nbD=l=VfyBX=NqT5uoUB(FxofIai}nl=2+xGdkp@9#1i zIwt4A-Cf*hm?nOw?PV}1roJuAg#{lwS?0HFq=KRGA)QPzJbJQIAQ=*g6v4={%MKbf zNuqMO6h&DDL2rK&*iQ;tBbK`M2qMo&4mz*>;J__0m@98U-Ou$3qh=4-i~f z9${$jtl-|{&w$8GYv}@uC5-KvT&NHue5^6m)t@elSYrwsNTUxbn+3C^$YOsu znbJ2ZRSV_x@f$)-Rpk)Yj9IICjQtC*Q-g%{hLY$7v(}4NX4R|OKgz32c1qirRjciU z2oYo>l-?wIaTD!xIj}5udcDY@rsSFqa;w~x9WuHC$gRqzRbBR;E17h}CQZ;vFY_(c z+ga#H%7r9y7WZU2#A1T#730#m=*VuT%xhO$lHg#H%0&T+aMR+Fb^@p&JVb$g3YDbH zg^OrUvb=O7wbiwlCo#_^Qo*ylXW$9J}t64Cd{)BB8{=|GC;Hau79 z+>d0U+ds4<{o6TmV^ORXES4z#s+O^QT4?o9v*7U5avdg43!1JLG((HUEk3#{(vo`e z%hFS74w<5qGs-Oq`6P;AW<{<<=rKe@AW>lo4IaU+sf|KqW5garfK2(g`R&iCb%g_vOsyynd>AwV8LG5x= zy$ea;cvHO8I!C%Gxr&A^ZjDqq?5om#I(5@*k9EpIZwqTT9|9x2qT*sp#9JGFIu;)8 zR4PY7Qv08%gqorUh08t&2In18v=-gTW(orNMKTQ89{ zS@(VicS@jKwTKo$_Wy6FjaTSNM}XZE4*qC>E>!$c6>+s zOg2lW&Rwc{Sz8@b;yb}zWx#jYT&`LS}(Uz9Niabxi2l^c=5DV z6a+QY*5I#@&@uD6=nBsDBTsov#SF1e@BQJ>qb)rq+pi*%Yq2-@I0A+ z4cTQ2HC3yLwJXZKj=rME1vq{7mS+=$N|ni)e3h!zsw;fOoX(*;u$&@cPNiV^@HZ+% zsLd5U^p&O%N;i?Kvn%UiiXcx_N-L8xYp*lAOb;jud5xK0W(?)^RPI+(LSuz5M^P#F zr_^99${0?P`%=uk`^Gd>*jy&%ZX2RQTq7ysIN0ro0zm~O1*BBS{hM8M3J=JWmxvJ0 k|H_x&vmKBlRVFX*mtM~0liSzNgX057B3}6aAMe2b01fg<3IG5A literal 0 HcmV?d00001 diff --git a/PyPortal/PyPortal_Wheres_My_Friend/images/subway.bmp b/PyPortal/PyPortal_Wheres_My_Friend/images/subway.bmp new file mode 100755 index 0000000000000000000000000000000000000000..751ee17ab28d5d0c8b8af4ea77482896fa24bcf4 GIT binary patch literal 20678 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 literal 0 HcmV?d00001 diff --git a/PyPortal/PyPortal_Wheres_My_Friend/images/workout.bmp b/PyPortal/PyPortal_Wheres_My_Friend/images/workout.bmp new file mode 100755 index 0000000000000000000000000000000000000000..9e86448b2b423f438347251db819f15385e73e76 GIT binary patch literal 20678 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 S<0iQW<_9(Kpa%Y~HSi~Jc%VQ4 literal 0 HcmV?d00001 From df22e218257f7bcb5afdfc8f749b5bab63f0ec6c Mon Sep 17 00:00:00 2001 From: brentru Date: Mon, 5 Aug 2024 14:55:42 -0400 Subject: [PATCH 2/4] linty --- PyPortal/PyPortal_Wheres_My_Friend/code.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/PyPortal/PyPortal_Wheres_My_Friend/code.py b/PyPortal/PyPortal_Wheres_My_Friend/code.py index 943744c4d..75966de41 100755 --- a/PyPortal/PyPortal_Wheres_My_Friend/code.py +++ b/PyPortal/PyPortal_Wheres_My_Friend/code.py @@ -5,7 +5,6 @@ import board import displayio import terminalio -import adafruit_imageload from adafruit_display_shapes.rect import Rect from adafruit_display_text import label from adafruit_pyportal import PyPortal @@ -17,7 +16,8 @@ # Set the backlight brightness, 0.0 (off) to 1.0 (max brightness) BACKLIGHT_BRIGHTNESS = 0.5 # Location text and images -LOCATION_IMAGES = { 'home': 'images/home.bmp', 'work': 'images/office.bmp', 'gym': 'images/workout.bmp', 'commute': 'images/subway.bmp' } +LOCATION_IMAGES = { 'home': 'images/home.bmp', 'work': 'images/office.bmp', + 'gym': 'images/workout.bmp', 'commute': 'images/subway.bmp' } # Create the PyPortal object pyportal = PyPortal(status_neopixel=board.NEOPIXEL) @@ -72,16 +72,10 @@ def set_image(group, filename): if group: group.pop() - if not filename: - return # we're done, no icon desired - try: - if image_file: - image_file.close - except NameError: - pass image_file = open(filename, "rb") image = displayio.OnDiskBitmap(image_file) - image_sprite = displayio.TileGrid(image, pixel_shader=getattr(image, 'pixel_shader', displayio.ColorConverter())) + image_sprite = displayio.TileGrid(image, + pixel_shader=getattr(image, 'pixel_shader', displayio.ColorConverter())) image_sprite.x = IMAGE_SPRITE_X image_sprite.y = IMAGE_SPRITE_Y group.append(image_sprite) @@ -114,9 +108,9 @@ def set_image(group, filename): text_area_location.text=f"Error: Unknown Value!" # Show the refreshed group display.root_group = group - except Exception as e: - print(f"Failed to fetch location data: {e}") + except RuntimeError as e: + print("Failed to fetch location data: ", e) # Wait 5 minutes (300 seconds) before fetching the location feed again print("Sleeping, fetching the location again in 5 minutes!") - time.sleep(SLEEP_DELAY_SECONDS * 60) \ No newline at end of file + time.sleep(SLEEP_DELAY_SECONDS * 60) From 8593c16d4213e6b122056bf0d3e0f231c80c55e1 Mon Sep 17 00:00:00 2001 From: brentru Date: Mon, 5 Aug 2024 15:08:36 -0400 Subject: [PATCH 3/4] enlinten --- PyPortal/PyPortal_Wheres_My_Friend/code.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PyPortal/PyPortal_Wheres_My_Friend/code.py b/PyPortal/PyPortal_Wheres_My_Friend/code.py index 75966de41..f61ed4788 100755 --- a/PyPortal/PyPortal_Wheres_My_Friend/code.py +++ b/PyPortal/PyPortal_Wheres_My_Friend/code.py @@ -35,7 +35,7 @@ IMAGE_SPRITE_X = (display.width // 3) - 10 IMAGE_SPRITE_Y = display.height // 5 -# Create a displayIO Group +# Create a displayIO Group group = displayio.Group() # Draw the background @@ -66,11 +66,11 @@ # Show the group display.root_group = group -def set_image(group, filename): +def set_image(image_group, filename): """Sets the image file for a given group for display.""" print(f"Set image to {filename}") - if group: - group.pop() + if image_group: + image_group.pop() image_file = open(filename, "rb") image = displayio.OnDiskBitmap(image_file) @@ -78,7 +78,7 @@ def set_image(group, filename): pixel_shader=getattr(image, 'pixel_shader', displayio.ColorConverter())) image_sprite.x = IMAGE_SPRITE_X image_sprite.y = IMAGE_SPRITE_Y - group.append(image_sprite) + image_group.append(image_sprite) prv_location = None while True: @@ -105,7 +105,7 @@ def set_image(group, filename): else: print("Location not found in images!") # Update the location text - text_area_location.text=f"Error: Unknown Value!" + text_area_location.text="Error: Unknown Value!" # Show the refreshed group display.root_group = group except RuntimeError as e: From db37f2c53dddf51e4d9c64b594ddbb90ab270fc0 Mon Sep 17 00:00:00 2001 From: brentru Date: Mon, 5 Aug 2024 15:11:44 -0400 Subject: [PATCH 4/4] reduce line len --- PyPortal/PyPortal_Wheres_My_Friend/code.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PyPortal/PyPortal_Wheres_My_Friend/code.py b/PyPortal/PyPortal_Wheres_My_Friend/code.py index f61ed4788..1865ceafc 100755 --- a/PyPortal/PyPortal_Wheres_My_Friend/code.py +++ b/PyPortal/PyPortal_Wheres_My_Friend/code.py @@ -75,7 +75,8 @@ def set_image(image_group, filename): image_file = open(filename, "rb") image = displayio.OnDiskBitmap(image_file) image_sprite = displayio.TileGrid(image, - pixel_shader=getattr(image, 'pixel_shader', displayio.ColorConverter())) + pixel_shader=getattr(image, 'pixel_shader', + displayio.ColorConverter())) image_sprite.x = IMAGE_SPRITE_X image_sprite.y = IMAGE_SPRITE_Y image_group.append(image_sprite)