|
@@ -20,6 +20,7 @@ _LEFT_PADDING = 8
|
|
_ALARM_TIME_PATH = "alarm.json"
|
|
_ALARM_TIME_PATH = "alarm.json"
|
|
_SCREEN_WIDTH, _SCREEN_HEIGHT = lcd.winsize()
|
|
_SCREEN_WIDTH, _SCREEN_HEIGHT = lcd.winsize()
|
|
_AWAKE_SECONDS = 8
|
|
_AWAKE_SECONDS = 8
|
|
|
|
+_VIBRATION_MOTOR_PIN = 26
|
|
|
|
|
|
|
|
|
|
def _handle_pending_events():
|
|
def _handle_pending_events():
|
|
@@ -105,6 +106,7 @@ class App:
|
|
self._alarm_hour_text_box = None
|
|
self._alarm_hour_text_box = None
|
|
self._alarm_minute_text_box = None
|
|
self._alarm_minute_text_box = None
|
|
self._battery_status_text_box = None
|
|
self._battery_status_text_box = None
|
|
|
|
+ self._vibration_motor_pin = None
|
|
|
|
|
|
def _reschedule_sleep(self, interrupt: bool) -> None:
|
|
def _reschedule_sleep(self, interrupt: bool) -> None:
|
|
if interrupt:
|
|
if interrupt:
|
|
@@ -135,8 +137,11 @@ class App:
|
|
|
|
|
|
def _alarm(self) -> None:
|
|
def _alarm(self) -> None:
|
|
print("ALARM")
|
|
print("ALARM")
|
|
- utime.sleep(1)
|
|
+ for _ in range(3):
|
|
- print("alarm end")
|
|
+ self._vibration_motor_pin.on()
|
|
|
|
+ utime.sleep(0.5)
|
|
|
|
+ self._vibration_motor_pin.off()
|
|
|
|
+ utime.sleep(0.5)
|
|
self._next_alarm_time = self._alarm_config.next_time
|
|
self._next_alarm_time = self._alarm_config.next_time
|
|
|
|
|
|
def _update_alarm_time(self, event_arg: None) -> None:
|
|
def _update_alarm_time(self, event_arg: None) -> None:
|
|
@@ -176,7 +181,7 @@ class App:
|
|
_DEFAULT_FONT_COLOR,
|
|
_DEFAULT_FONT_COLOR,
|
|
rotate=90,
|
|
rotate=90,
|
|
)
|
|
)
|
|
- machine.Timer(0).init(
|
|
+ machine.Timer(0).init(
|
|
period=4000,
|
|
period=4000,
|
|
mode=machine.Timer.PERIODIC,
|
|
mode=machine.Timer.PERIODIC,
|
|
callback=lambda t: self._clock_text_box.setText(self._format_time()),
|
|
callback=lambda t: self._clock_text_box.setText(self._format_time()),
|
|
@@ -230,6 +235,7 @@ class App:
|
|
self._setup_clock()
|
|
self._setup_clock()
|
|
self._setup_alarm()
|
|
self._setup_alarm()
|
|
self._setup_battery_status_info()
|
|
self._setup_battery_status_info()
|
|
|
|
+ self._vibration_motor_pin = machine.Pin(_VIBRATION_MOTOR_PIN, machine.Pin.OUT)
|
|
btnA.wasPressed(self._button_a_pressed)
|
|
btnA.wasPressed(self._button_a_pressed)
|
|
btnB.wasPressed(self._button_b_pressed)
|
|
btnB.wasPressed(self._button_b_pressed)
|
|
|
|
|