Skip to content

Commit 3b19ed5

Browse files
authored
Add led_by_port(), servo_stop(), buzzer_stop() API
* Addind motor_stop() API Whithout errors * Made led_by_port API * Made servo and buzzer stop API * Made required changes
1 parent 80f6354 commit 3b19ed5

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

neopia/neosoco.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,13 @@ def led_on(self, port='out1', brightness='100'):
483483
else:
484484
raise TypeError
485485

486+
def led_by_port(self, in_port='in1', out_port='out1'):
487+
if isinstance(out_port, str):
488+
in_value = self._convert_scale_from_input_port(in_port, 255)
489+
self._write_to_output_port(out_port, in_value)
490+
else:
491+
raise TypeError
492+
486493
def led_off(self, port='out1'):
487494
if isinstance(port, str):
488495
if port.lower() =='out1':
@@ -694,6 +701,12 @@ def servo_rotate_by_degree(self, port='out1', direction='forward', speed='100',
694701
else:
695702
raise TypeError
696703

704+
def servo_stop(self, port = 'out1'):
705+
if isinstance(port, str):
706+
self._write_to_output_port(port, self._SERVO_STOP)
707+
else:
708+
raise TypeError
709+
697710
def buzzer(self, pitch='3', note='c', beats='4'):
698711
self.write(Neosoco.NOTE, 0) # init
699712
if not isinstance(pitch, str) or not (int(pitch) >= 1 and int(pitch) <= 6):
@@ -734,6 +747,9 @@ def buzzer_by_port(self, port='in1'):
734747
self.write(Neosoco.NOTE, value)
735748
else:
736749
raise TypeError
750+
751+
def buzzer_stop(self):
752+
self.write(Neosoco.NOTE, 0)
737753

738754
def remote_button(self, button='1'):
739755
if isinstance(button, str):
@@ -745,4 +761,4 @@ def remote_button(self, button='1'):
745761
else:
746762
raise ValueError('Wrong value of button')
747763
else:
748-
raise TypeError
764+
raise TypeError

test.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,24 @@
9999
n.led_on() # By default value
100100
else:
101101
n.led_off()
102+
103+
# case 14) Control LED's brightness with sensor
104+
# while True:
105+
# n.led_by_port('out1', 'in1')
106+
107+
# case 15) Turn off buzzer when the distance is under 10cm
108+
# while True:
109+
# if n.get_value('in1') < 10:
110+
# n.buzzer_stop()
111+
# else:
112+
# n.buzzer('2', 'c', '4')
113+
114+
# case 16) Turn off servo motor when the distance is under 10cm
115+
# while True:
116+
# if n.get_value('in1') < 10:
117+
# n.servo_stop('out1')
118+
# else:
119+
# n.servo_rotate('out2', 'forward', '50')
120+
# wait(2000)
121+
# n.servo_rotate('out2', 'backward', '50')
122+
# wait(2000)

0 commit comments

Comments
 (0)