--- image: https://i.imgur.com/il3GpGY.jpg tags: MicroPython disqus: paoyung descript: 動態圖的理想狀態就是一旦宣告執行後,不需再理會它就能自行動作,主流程即可去執行其他的運算和控制,後續再依情況要求動態圖停止、繼續或清除,如此才能真正運用在程式裡。 --- # MicroPython 真動態圖 > [color=#58f][name=Paoyung][time=Jul 02, 2022][:snake: ℳ𝒾𝒸𝓇ℴ𝒫𝓎𝓉𝒽ℴ𝓃 隨手記](/@PaoyungChang/mpy_trifiles) > [color=green] <span class="c_maroon">相關文章 👉 [MicroPython GIF 動態圖](/@PaoyungChang/mpy_gif)</span> 前情提要 --- 前篇「[GIF 動態圖](/@PaoyungChang/mpy_gif)」主要的目的是<span class="f_b c_brown">致敬</span>原作的發想,而一旦照著實作後會發現其實用性不佳,因為整個主流程都為了顯示動態圖而困在迴圈裡了。但前篇的一些概念和技巧也是本篇不可或缺的基礎,所以 GIF 圖的轉換程序和其他在閱讀本篇有不清楚之處,請再到前篇「[GIF 動態圖](/@PaoyungChang/mpy_gif)」查閱內容。 不要理我 --- 動態圖的理想狀態就是一旦宣告執行後,不需再理會它就能自行動作,主流程即可去執行其他的運算和控制,後續再依情況要求動態圖停止、繼續或清除,如此才能真正運用在程式裡,而原本依序繪製圖片的流程則轉由 Timer 來替代,並可將相同速度的動態圖交給同一個 Timer 來執行,若播放速度不相同則另外再啟用不同的 Timer,前提是以資源為考量的情況下。按前所述可以將程式撰寫如下: {%gist paoyung/ae280df40ff125682eff4a5867d413a8 %} >[color=orange] <span class="f_sz10">SSD1306設定請參考: [my_util.py 說明](/@PaoyungChang/my_util_py)</span> 展示 --- {%youtube pj1G15iOzTs %} REPL --- 待程式展示停止後,請試著在 REPL 的環境中對 g 這個物件操作,即可發現程式在修改後與前篇相比的好處及用法。 :+1: ```python= >>> demo2() >>> g.go() >>> g.stop() >>> g.clear() >>> ``` {%hackmd /@PaoyungChang/intro_v0702 %} {%hackmd /@PaoyungChang/css_01 %}