Turn Clock - (動作) Set the clock to a certain time - 輸入一個數值,無論現在中馬達轉角(分針)如何,設定咕咕鐘的時針分針至某個時間點。 - 轉動的過程,快到設定的時間的最後1小時(360度)會切換成慢速轉動(突顯分針的細膩設計) - 但不知道為什麼,每次設定動作完成,中馬達(分針)會減少2度?@@ (不知用意為何)
Run the clock (中馬達系統) Switch between clock and alarm mode (紅外線系統) Reset the cuckoo and the hammer (大馬達系統) - Activate the alarm? - Should the cuckoo come out? Display the time (面板系統)
加實物操作、確認動作,研讀
[pande] (日常) 年假結束
[pande] LEGO亂亂看(咕咕鐘:齒輪、程式)
4320: 12小時的分針(中馬達)轉角
- (動作) Set the clock to a certain time
- 輸入一個數值,無論現在中馬達轉角(分針)如何,設定咕咕鐘的時針分針至某個時間點。
- 轉動的過程,快到設定的時間的最後1小時(360度)會切換成慢速轉動(突顯分針的細膩設計)
- 但不知道為什麼,每次設定動作完成,中馬達(分針)會減少2度?@@ (不知用意為何)
- (運算) Modulo returning non-negative value
- 輸入兩個數值,傳回一個非負的模數值
- 取模數的目的,是用以規範中馬達角度(代表分針)對主程式的意義處在12小時循環之間。
- Q.直接取模數就好了,為什麼要另建一個My Block取非負的模數值? → 何時會遇到負值? 不知。
- 是否也用以避開設定期的混亂? 還要再往後看
- (取值) Calculate time accurate to the minute
- 取分針時間(中馬達角度),以6度來做進退位(四捨五入運算),將數值對齊6的倍數
- 6度: 分針1分鐘=360(一圈)除以60(分鐘)=6度
繼續補完mission 2, mission 3
[pande] (日常) 作息會調失敗的預感
[pande] LEGO亂亂看(咕咕鐘:齒輪、程式)
- Knock on the door
- Peek out of the door
- Move in and out
- Cuckoo!
- Move and flap
- (動作) Reset the cuckoo
- 細膩的按鈕控制(回收咕咕鳥): 壓按鈕、放鬆按鈕、放鬆馬達
- 在咕咕鐘的運作中看起來跟一般單馬達控制的效能沒什麼差別
- Q. 實際上這個block跟單馬達控制有什麼差別? Unregulated?
3組起始,第1組分支(1分2),第2、3組獨立
- 中馬達系統: 控制齒輪組(時針/分針)&計秒閃光(計秒聲響-滴答)
- 紅外線系統: 切換時鐘運行/鬧鐘設定模式
- 大馬達系統: 檢查警報槌&咕咕鳥的時間到了沒? 做出應有的反應
- 面板系統: 顯示運作(Clock)/設定(Alarm)/切換(Busy)三種工作狀態(Mode)
Switch between clock and alarm mode (紅外線系統)
Reset the cuckoo and the hammer (大馬達系統)
- Activate the alarm?
- Should the cuckoo come out?
Display the time (面板系統)
Time: 存放咕咕鐘時間(中馬達角度)
Alarm: 存放警報槌設定時間(中馬達角度)
Mode: 代表現處模式,字串
- Clock: 時鐘正在運行
- Alarm: 正在設定鬧鐘(=正在設定警報槌啟動時間)
- Busy: 模式切換中。響聲告知開始切換模式,中馬達(時/分針)歸定位
中馬達系統(時鐘)、大馬達系統(咕咕鳥/警報槌)會暫時停止運作,面板系統會清空顯示
Sound: 代表現在正在播放聲音
包括咕咕鳥啟動時&警報槌啟動時
正負值。正值時,每秒滴答聲不播放
Cuckoo
(動作) Cuckoo behavior
- 改旗標,告知系統現正到達指定時間(秒響先暫停)
- 咕咕鳥聲音、咕咕鳥伸出、咕咕鳥收回
Time Text
(運算) Convert time to text
- 串連「時:分:秒」
- 數值未達10者,前面加零處理 Second: true/false 表示輸出字串是否要帶秒數
[pande] (日常) 明天就要出征了
[pande] LEGO亂亂看(咕咕鐘:齒輪、程式)