From fd55975f11360f2f9c1faf0a5c003d2f5d59b526 Mon Sep 17 00:00:00 2001 From: Sirus-7 Date: Tue, 14 Apr 2026 16:59:31 +0200 Subject: [PATCH 1/2] bricks/ev3: Add NXT ultrasonic sensor on Portview --- bricks/ev3/modules/_ev3_port_view.py | 25 +++- .../media/ui/_port_view_nxt_ultrasonic.svg | 120 ++++++++++++++++++ 2 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 lib/pbio/src/image/media/ui/_port_view_nxt_ultrasonic.svg diff --git a/bricks/ev3/modules/_ev3_port_view.py b/bricks/ev3/modules/_ev3_port_view.py index cea9293c7..9f94175c9 100644 --- a/bricks/ev3/modules/_ev3_port_view.py +++ b/bricks/ev3/modules/_ev3_port_view.py @@ -4,10 +4,15 @@ ColorSensor as EV3ColorSensor, TouchSensor as EV3TouchSensor, GyroSensor, - UltrasonicSensor, + UltrasonicSensor as EV3UltrasonicSensor, InfraredSensor, ) -from pybricks.nxtdevices import ColorSensor as NXTColorSensor, LightSensor, SoundSensor +from pybricks.nxtdevices import ( + ColorSensor as NXTColorSensor, + LightSensor, + SoundSensor, + UltrasonicSensor as NXTUltrasonicSensor, +) from pybricks.parameters import Button, Port, ImageFile from pybricks.tools import wait @@ -30,6 +35,7 @@ IMG_NXT_LIGHT_AMBIENT = ImageFile._PORT_VIEW_NXT_LIGHT_AMBIENT IMG_NXT_LIGHT_REFLECTION = ImageFile._PORT_VIEW_NXT_LIGHT_REFLECTION IMG_NXT_SOUND = ImageFile._PORT_VIEW_NXT_SOUND +IMG_NXT_ULTRASONIC = ImageFile._PORT_VIEW_NXT_ULTRASONIC PORT_NONE_TOP = ImageFile._PORT_VIEW_P0_TOP PORT_NONE_BOTTOM = ImageFile._PORT_VIEW_P0_BOTTOM PORT_IMG = [ @@ -94,7 +100,7 @@ def port_process(index): # EV3 Ultrasonic Sensor try: - sensor = UltrasonicSensor(PORTS[index]) + sensor = EV3UltrasonicSensor(PORTS[index]) while True: try: distance = sensor.distance() @@ -227,6 +233,19 @@ def port_process(index): except OSError: pass + # NXT Ultrasonic Sensor + try: + sensor = NXTUltrasonicSensor(PORTS[index]) + while True: + try: + distance = sensor.distance() + detail = f"{distance:>4} mm" + yield IMG_NXT_ULTRASONIC, distance, detail + except OSError: + break + except OSError: + pass + # Nothing on this port. yield None, "---", "No device" diff --git a/lib/pbio/src/image/media/ui/_port_view_nxt_ultrasonic.svg b/lib/pbio/src/image/media/ui/_port_view_nxt_ultrasonic.svg new file mode 100644 index 000000000..43e5e135c --- /dev/null +++ b/lib/pbio/src/image/media/ui/_port_view_nxt_ultrasonic.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + From 81ca5653ba61143f74a8c765c0c2b27d3a377581 Mon Sep 17 00:00:00 2001 From: Friedrich Date: Tue, 14 Apr 2026 18:24:04 +0200 Subject: [PATCH 2/2] Update _ev3_port_view.py code format spaces end of line --- bricks/ev3/modules/_ev3_port_view.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bricks/ev3/modules/_ev3_port_view.py b/bricks/ev3/modules/_ev3_port_view.py index 9f94175c9..03cd03726 100644 --- a/bricks/ev3/modules/_ev3_port_view.py +++ b/bricks/ev3/modules/_ev3_port_view.py @@ -8,8 +8,8 @@ InfraredSensor, ) from pybricks.nxtdevices import ( - ColorSensor as NXTColorSensor, - LightSensor, + ColorSensor as NXTColorSensor, + LightSensor, SoundSensor, UltrasonicSensor as NXTUltrasonicSensor, )