2020年2月20日 星期四

好書 : MicroPython Cookbook

今天發現一本 MicroPython 新書 :

# MicroPython Cookbook (Packt, 2019)


Source : 天瓏


隨著 Python 越來越普及, 我相信 MicroPython 將來會成為撰寫物聯網應用程式的首選, 而 ESP8266/ESP32 系列板子也會被廣泛使用. 每次看到有 MicroPython 新書卻又還沒時間繼續玩物聯網實驗, 就覺得非常手癢.

Win10 檔案總管的分組方式

筆電的 Win10 升版到 1909 版後, 檔案總管的檢視預設分組方式是按照日期, 這造成我一個困擾, 就是有些檔案會被排序到後面, 要找很久才找得到, 甚至按名稱排序也是先按日期分組再按名稱分組, 而非升版前全部照名稱排. 這可以在檢視中將分組方式改成 "無" 即可 :




這樣改回去之後就很好找了.

2020年2月18日 星期二

18650 充電式停電照明燈市調

前年為了預防鄉下颱風停電買了一台二行程小型柴油發電機, 實際使用後覺得不實用, 因為二行程內燃機不是我想像的一發即動, 常常弄了老半天才發動起來, 還不如買 18650 的停電照明燈實用, 反正停電通常不會超過 12 個小時, 只要撐過晚上就寢前的照明問題即可.

我在露天找到賣家 "小齊的家" 這款內置 18650 鋰電池的可掛式照明燈 :

# FL-70 防潑水 吊掛式 20W 14顆 LED 充電燈泡 (18650*1) $125
FL-71 擺攤神器 吊掛式 30W 24 顆 LED 充電燈泡 (18650*2) $195
FL-72 擺攤神器 吊掛式 50W 42 顆 LED 充電燈泡 (18650*3) $295

此款附一個充電器, 內附 18650 鋰電池, 可惜不能自行拆換, 但附充電器倒是不錯. 下面這款則有電池艙可自行更換 18650, 透過 Micro USB 槽充電, 有一個 USB 輸出, 有紅藍閃燈功能, 且其 18650 為並聯設計, 只有一顆 18650 也能工作, 只是續航力減半而已 :

廣角10W充電式戶外照明燈露營燈(附18650電池2顆+micro傳輸線) $385

其他 :

強光手電筒 全配套組 LED 手電筒 伸縮變焦 附充電器 18650電池 $395
(一盒20個) 廈門南孚環高18650,16340,26650,14500鋰離子智能自停電池充電器 $780 (單買 $45) (鳳山鋰電池批發可面交)
森林寶貝屋~強光LED三頭燈~三燈爆亮款~贈18650電池 $299

Win10 更新到 1909 版

這兩天我筆電又怪怪的, 今天下午更是突然變成飛航模式, 我根本沒按 F2 鈕進入飛航模式啊! 在命令提示字元下 winver 指令查詢, 才知道 Win10 已經自動升級到 1909 版了, 難道我之前關閉自動更新失效了嗎?





參考上次升版到 1903 後同樣出現 WiFi 消失怪象之解決辦法 :

回復舊版 Win10 停止自動更新並建立修復隨身碟

我檢查 "系統/復原" 裡面的還原點, 發現昨天 2/16 有因 Windows Update 而自動建立的一個還原點, 但還原了老半天都還是一直在跑, 乾脆關機重開用 ALT+F10 想回到原廠設定, 但很奇怪地, 就在按 ALT+F10 後等待時卻重開機, 然後一切都會復正常了, WiFi 圖示 與 Acer Care Center 都回來了, 設定也都可以進去了, 真是奇怪, 既然恢復正常, 那就維持在 1909 版吧!

不過我檢查 Acer Care Center 卻發現 SSD 部分顯示 "不支援" :




打 Acer 服務電話 0800258222 詢問, 工程師也不清楚, 說只要 C/D 槽都可讀到就沒關係, 那就這樣吧! 目前 Acer Care Center 版本是 3.00.3008. 工程師還教了一招, 就是重新啟動電腦前按住 Shift 效果跟開機時按住 ALT+F10 效果一樣.

另外, 我找到一篇如何關閉與開啟 Windows 自動更新的教學, 摘要如下 :

若要開啟自動更新, 用記事本編輯一個 disable-auto-update.bat 檔如下 :

sc stop wuauserv
sc config wuauserv start= disabled

然後以管理員身分執行此 bat 檔即可.

若要開啟自動更新, 用記事本編輯一個 enable-auto-update.bat 檔如下 : 

sc config wuauserv start= auto
sc start wuauserv

同樣也是以管理員身分執行此 bat 檔.

參考 :

如何徹底關閉 Windows 10 的自動更新?

不過目前我還是開啟自動更新, 暫時不關閉.

網路上有人討論升版為 1909 版後的毛病是檔案總管有時會卡, 這兩天確實有遇到, 而且底下的工作列也會. 參考 :

Win10 1909更新又出Bug,讓人徹底失去更新的興趣
Windows10 最新1909版本現在穩定了嗎? 可以升級了嗎?

其他值得參考的文章 :

Windows 10升級或更新後,儲存空間大幅度縮水了怎麼辦?
4 種方法查看Windows 10系統組建(Build Number)與版本編號

Windows 系統掃描

如果覺得 Win10 系統有點怪怪時可用指令來掃描系統檔案是否有缺損 :

sfc /scannow 

先以管理員身分開啟命令提示字元視窗 cmd :


Microsoft Windows [版本 10.0.18363.657]
(c) 2019 Microsoft Corporation. 著作權所有,並保留一切權利。

C:\WINDOWS\system32>sfc /scannow   

正在開始系統掃描。這將需要一些時間。

開始系統掃描的驗證階段。
驗證 100% 完成

Windows 資源保護找不到任何完整性違規。

如果顯示 "找不到任何完整性違規" 表示系統正常 :




參考 :

# 使用系統檔案檢查程式工具來修復遺失或損毀的系統檔案

用內建模組 pprint 列印字典物件

這個 pprint 模組是我在歐萊禮的 "深入淺出 Python (第二版)" 這本書第三章末尾讀到的, 以前讀過好幾本 Python 書籍都不知道有這東西, 原來它可以整齊漂亮地列印複雜的字典 (即巢狀字典, 字典裡面還有字典).

Python 裡面最複雜的內建資料型態是字典, 也就是一群鍵值對物件的群集 (collection). 字典的鍵必須是可雜湊的 (hashable), 不可變的資料型態例如 int, float, bool, complex, str, tuple 這六種型別都可算出唯一的雜湊值, 因此都可以作為 key; 而 list, set, 與 dict 這三個可變型別為不可雜湊 (unhashable), 因此不能做 key, 參考 :

python中的hashable(可雜湊的)是什麼意思

字典的值可以是任何一種物件型態 (Python 的資料全部都是物件), 當然也可以是另一個字典, 例如 :

>>> p1={'name':'孫藝珍',
    'age':38,
    'diploma':'首爾藝術大學'}
>>> p2={'name':'玄彬',
    'age':37,
    'diploma':'中央大學戲劇電影學系'}
>>> p={'p1':p1,'p2':p2}
>>> print(p)
{'p1': {'name': '孫藝珍', 'age': 38, 'diploma': '首爾藝術大學'}, 'p2': {'name': '玄彬', 'age': 37, 'diploma': '中央大學戲劇電影學系'}}

可見直接用 print() 列印巢狀字典時, 每個項目會前後串在一起不容易閱讀. 使用內建模組 pprint 的 pprint() 函數可以讓每個項目分開條列, pprint 模組使用前須先匯入 :

>>> import pprint
>>> pprint.pprint(p)
{'p1': {'age': 38, 'diploma': '首爾藝術大學', 'name': '孫藝珍'},
 'p2': {'age': 37, 'diploma': '中央大學戲劇電影學系', 'name': '玄彬'}}

不過 pprint() 的整齊列印只限於最外層項目, 例如新增一個含有內層字典的項目 p3 :

>>> p3={'name':'河智苑',
    'age':41,
    'diploma':'檀國大學戲劇電影學系',
    'works':{'2006':'黃真伊',
             '2013':'奇皇后',
     '2019':'巧克力'}}
>>> p['p3']=p3

用 print() 列印全部項目串在一起 :

>>> print(p)
{'p1': {'name': '孫藝珍', 'age': 38, 'diploma': '首爾藝術大學'}, 'p2': {'name': '玄彬', 'age': 37, 'diploma': '中央大學戲劇電影學系'}, 'p3': {'name': '河智苑', 'age': 41, 'diploma': '檀國大學戲劇電影學系', 'works': {'2006': '黃真伊', '2013': '奇皇后', '2019': '巧克力'}}}

用 pprint() 只有外層項目會逐項整齊條列 :

>>> pprint.pprint(p)
{'p1': {'age': 38, 'diploma': '首爾藝術大學', 'name': '孫藝珍'},
 'p2': {'age': 37, 'diploma': '中央大學戲劇電影學系', 'name': '玄彬'},
 'p3': {'age': 41,
        'diploma': '檀國大學戲劇電影學系',
        'name': '河智苑',
        'works': {'2006': '黃真伊', '2013': '奇皇后', '2019': '巧克力'}}}

可見內層項目 works 的值不會逐項條列.

2020年2月17日 星期一

買 LED 充電式小檯燈

因為臥室擺不進一台書桌, 為了在床邊讀書時有足夠亮度, 以及偶而要焊接電路板照明用, 上露天買了兩盞 LED 充電式小檯燈 :

LED桌面檯燈【HNL7A2】閱讀燈護眼不閃頻護眼檯燈 $299




一個放高雄, 一個帶回鄉下用.

Python IDLE 的程式編輯器

使用 IDLE 測試學習 Python 都只侷限於互動式用法, 直接在 IDLE shell 裡面敲程式碼, 從來沒有用過它所提供的程式編輯器, 今天在看歐萊禮的 "深入淺出 Python (第二版)" 這本書時才發現它有這個功能, 對於稍長一點的程式很好用.


Source : 博客來


此書適合初學者, 但對我來說還是有很多可學的東西, 希望在周三拿去母校高科大還書之前能看完大部分.

點選 IDLE 左上角 "File/New File" 開啟編輯器 :




輸入程式 : 



點選編輯器左上角 "File/Save As ..." 選取路徑輸入檔名存檔  :




點選編輯器 "Run/Run Module" 或直接按 F5 執行 .py 程式 :




執行結果會顯示在 IDLE shell :




雖然沒有行號, 但作為簡單測試目的來說這樣就夠了.

另外, IDLE 讓初學者覺得不好用的地方是不知道怎樣叫出之前所下的指令, 如果在命令提示字元視窗 (DOS) 用 Python 指令進入 shell 互動介面, 只要按向上或向下方向鍵就可以叫出之前所下指令, 但在 IDLE 介面是用 ALT+P  與 ALT+N 組合鍵, 而方向鍵則是用來移動游標.

IDLE 所有快捷鍵定義在 "Optios/Configure IDLE" 功能項的 keys 選單中 :




當大家都在用 Anaconda 與 Jupyter 時, 我還在用 IDLE 似乎有點像摩登原始人, 哈哈哈.

2020年2月16日 星期日

2020 年第 7 周記事

不知不覺 2020 已過去七周矣, 春節前爆發的武漢肺炎至今還在延燒, 鑽石公主號郵輪上每天都新增確診者, 前年跟爸搭過寶瓶星號去香港, 雖然我是住海面有窗戶的船艙, 但我也了解住內艙不見天日的感覺, 希望日本政府能盡快想出處理辦法, 否則關在裡面透過中央空調只有被感染的份.

由於到目前為止處理得宜, 我國政府防疫中心獲得國內外讚譽, 但以台商往來中國之密切, 我們恐怕不能高興得太早, 必須嚴格執行邊境管制, 及早對高汙染源管道 (例如還沒防堵的上海, 北京, 新加坡飛台班機) 加強進行檢疫追蹤, 防止社區感染.

今天去種子行買了 5 株辣椒, 20 株北海道水果玉米, 30 株波菜, 30 株大陸妹, 2 株絲瓜, 總共花了 125 元, 下午都在菜園忙這些. 我把這個活動視為 "農療", 希望能讓未確診的疑似恐慌症緩和下來. 最近還是偶而會突然莫名奇妙緊張, 憂心忡忡, 卻又說不上來是在擔心甚麼.





傍晚去跑步, 經過山邊盧老闆的超大宅院, 依舊是大門深鎖, 對面他買來種樹的兩塊地上有兩台挖土機停在那裏, 看來是要把全部樹都剷平, 圍籬上掛了一年的出售看板早已爬滿野藤, 令人不勝唏噓. 據說盧老闆是做水果外銷致富的, 幾年前接手這塊地後蓋起豪宅, 隔年又風光當起山上宮廟的大爐主, 但第二年就得病返回天庭了. 如果可以偷看人生劇本, 盧老闆會怎麼做呢? 我們又會怎麼做呢?

兩萬來到我們家已三個月了, 他與小咪的關係剛開始劍拔弩張, 現在已漸漸接受對方的存在 (不可改變的事實), 雖然偶而小咪還是會衝過去暴打一頓, 那也是兩萬這個白目小弟愛招惹人家. 兩萬也在我衣櫥上方找到固定棲身之處了, 雖然小咪並不怎麼喜歡, 他還是順利攻佔了小咪的小斑馬睡墊 :





韓劇愛的迫降已看到第 15 集, 本周將是大結局, 我很好奇編劇要怎麼收尾哩, 期待. 本周已註冊了 AWS 培訓的 APN 帳號, 下周要開始學習了.

市圖還書 4 本 (Azure, AI 文字算法)

本周到期還書三本 :
  1. 還在找IDC架主機? :Windows Azure雲端時代新選擇
  2. AI也能說文解字 : Python上的文字算法
  3. 工程數學的降魔十一掌
  4. 成為「不老之人」的再1個習慣
Azure 有人預約先還, 目前專心學 AWS 與 GCP.

2020年2月15日 星期六

攜帶型示波器市調

前陣子二哥趁寒假先看下學期的電子實驗, 發現要做 RLC 電路, 希望在開學前用麵包板先試試看, 但沒有示波器看不到信號波形與暫態響應也沒有意義. 由於我做物聯網實驗有時也需要看信號, 所以就上露天找到幾款價格低於 4000 元的小型攜帶式示波器 :

<微控制器科技> 原裝 DSO Nano V3 Plus (加强版)、2CH 示波器+1CH 信號產生器、ARM開源軟體 $3190


Source : 露天


特點  : 雙通道
螢幕 : 2.8 吋 TFT (320*240)
鋰電池 : 404042 型 500 mAh 3.7V (? 小時)
頻寬 : 100 MHz (模擬)
取樣率 : 500 ms/s
上升時間 : < 3ns
儲存容量 : 8MB


[ya一館] 數字便攜式數字IPS 示波器手持小型迷你示波器100MHz帶寬500MS採樣 $2990



Source : 露天


特點 : 電池續航力強, 儲存空間大
螢幕 : 2.4 吋 IPS (320*240)
鋰電池 : 904360 型 5000 mAh 3.7V (12 小時)
頻寬 : 100 MHz (模擬)
取樣率 : 500 ms/s
上升時間 : < 3ns
儲存容量 : 64MB


DSO3 20MHz 掌上型 示波器、100MHz 採樣率、鋁合金外殼、含鋰電池、支持標準BNC接口探棒 $1730


Source : 露天


特點 : 輕巧
螢幕 : 1.8 吋 TFT (320*240)
鋰電池 : 1200 mAh 3.7V (3~6 小時)
頻寬 : 20 MHz
取樣率 : 100 ms/s
上升時間 : < 20ns
儲存容量 : ?

目前比較傾向雙通道的 DSO nano Plus, 有時需同時觀察兩個信號.

關於 STM32F103C8T6 開發板

今天在找攜帶型示波器時在露天看到一款 "DSO Nano V3 Plus" 使用 STM32F103 微控器, 這是 ARM-Cortex M3 架構的處理器, 效能比 Arduino 高很多, 有很多物聯網終端也是使用 STM32, 其最小開發板 Blue Pill 價格在 50~100 左右, 有 Micro USB 槽, 可使用 Arduino IDE 開發, 參考 :

STM32F103C8T6 開發板 最小系統板 (現貨) $75
STM32F103C8T6最小系統板核心板 STM32 ARM開發板 cortex-m3 可用ARDUINO IDE開發 (有詳細說明) $75
STM32F103C8T6 系統板 單片機學習板 核心板 STM32 ARM開發板 A20 $80

關於 Arduino IDE 用於 STM32, 參考 :

# 別再糾結了,ARDUINO IDE也能開發stm32系列單片機了
Getting Started with STM32 using Arduino IDE: Blinking LED

2020年2月14日 星期五

Nvidia Jetson Nano 測試筆記 (四) : 安裝機殼

上週在露天買的 Jetson Nano 機殼昨天已到貨, 直到今晚才有時間把主機裝進去, 雖然這不是甚麼大學問, 但還是有些眉角要顧. 此機殼附兩個按鈕開關 Power 與 Reset, 需分別接到板子的 Jumper 上.

將 Jetson Nano 插槽朝左, 在板子右上角有四對 Jumper, 由左到右編號為 1, 2, 3, 4 的話, 最左的一號是 Power, 3 號是 Reset, 最右邊的 4 號是 Auto ON, 需用一個跳帽插入 4 號 Auto ON, 這樣電源才會受 Power 控制, 如下圖所示 :






這次我有加購散熱風扇, 其電源接頭位於乙太網插槽正後方, 參考 :

NVIDIA® Jetson Nano™ 散熱風扇 使用教學

下面這個網頁雖然是另外一種外殼, 但可參考板子上的接線位置 :

Geekworm NVIDIA Jetson Nano Metal Case with Power & Reset Control Switch for NVIDIA Jetson Nano Developer Kit




安裝完成如下圖 :


Source : 露天


但這次風扇與攝影鏡頭暫時用不到我沒有接, 以後要接時再打開側蓋即可.

7 本學習 Julia 的免費好書

今天在 momo 看到 "Think Julia" 這本書 :

Think Julia|如何像電腦科學家一樣思考


Source : 博客來


我剛跟 momo 買書卻沒看到, 總價低於 500 需運費, 所以等下回了. 

其實此書作者有將內容放在 GitHub 上, 英文 OK 的人有福了 :

https://benlauwens.github.io/ThinkJulia.jl/latest/book.html

此書也名列 7 本免費 Julia 電子書之首 :

7 Excellent Free Books to Learn Julia

Julia 目前已更新至 1.3.1 版, 參考官網 :

https://julialang.org/downloads/

AWS 學習筆記 (二) : 註冊 Fundation 培訓與認證帳號

年前在 momo 買了 "AWS實戰:快速開發、建立和部署應用程式" 這本書, 看到第三章就因為忙 Git/Heroku 而停頓了. 今天開始要來認真準備 AWS Fundation (基礎) 認證.

首先須至 AWS training 網站註冊一個 APN 帳號 :

# https://aws.amazon.com/tw/training

按 "開始使用" 鈕 :




按 "LET'S GET STARTED" 鈕 :




選右邊 via APN Partner Central 的 "SIGN IN" 鈕 :




按底下的 "Create Your APN Partner Central Account" 鈕 :




填寫個人資訊 (有打 * 的欄位必填), 注意名字最好與護照英文姓名拼字一樣, Business Email 要填公司郵件信箱, 填好後按底下的 "Submit" :




到公司 email 信箱收確認信, 按其中的確認連結 :




確認後會開啟密碼設定網頁, 密碼最短 8 個字元, 至少含一個數字與字母, 按左邊的 "Set Password" 鈕 :




最後設定三個安全問題 (三個都要設) 後按 "Save" 鈕即可 :





AWS 會寄 email 通知已註冊成功 :




可從 APN Portal 網址登入 :

https://partnercentral.awspartner.com

點 APN Partner Training 底下的 "Learn more" 進入學習網頁 :




進入時會顯示你的 profile, 填寫 Language, Country, 與 Time Zone 後按 "Save" 鈕 :



點上面的 "Learning Library" 即進入學習網站 :




可點左下角的 "Language" 篩選語言, 或者用左上角的搜尋框搜尋課程名稱.

也可以從下列網址進入 :

https://www.aws.training

初級認證必須完成下面三項課程 :
  1. AWS Business Professional (Digital : 編號 30254)
  2. AWS Technical Professional (Digital : 編號 45423)
  3. AWS Cloud Economics (Digital : 編號 35616)
課程目標主要是讓學習者了解基礎的銷售與核心服務.

2020年2月13日 星期四

Win10 長按 delete 或 backspace 等鍵無法連按問題

這兩天我的筆電問題真多, 昨天就發現長按 Delete, Backspace 等鍵時不會連續動作, 例如在記事本中按 Backspace 會往回刪除一個字元, 連按的話會持續往回刪除, 但從昨天開始連按 Backspace 卻只回刪一個字元而已, 要刪除多個字元需放開重按, 這跟以前的使用經驗不同.

我搜尋 "win 10 backspace 連續" 找到 Yahoo 知識一篇文章 :

鍵盤不能連按

原來是 "篩選鍵" 選項被勾選所致, 如果按住 Shift 鍵超過 8 秒就會變成這樣, 一定是這幾天小咪或兩萬這兩隻貓又坐在我筆電鍵盤上熱屁股所致. 此文說點 Win10 工作列右下角的 ^ 可以看到一個時鐘 icon, 按住 Shift 鍵超過 8 秒就會出現此圖示 :




 點此圖示會彈出一個 "設定篩選鍵", 取消勾選 "啟動篩選鍵" 按確定即可 :




如果沒有看到時鐘小圖示的話, 可以從控制台的 "輕鬆存取中心", 點 "讓鍵盤更容易使用" 也可以設定 :





還找到下面這篇強國人寫的, 但介面不同較不實用 :

键盘你肿么啦?——长按删除键,只能删除一个字符的问题及解决方法

Win10 檔案總管一直顯示沒有回應問題

這兩天我的 Swift5 筆電開啟檔案總管常出現 "沒有回應" 一直轉圈圈, 重新開機就 OK 了, 但過了不久又出現了. 開啟工作管理員觀察記憶體使用量偏高, 這可能與我 Chrome 網頁開太多有關, 但這些網頁都有在用暫時不能關. 我在想是否還有其他耗記憶體的地方, 就搜尋 "Win10 檔案總管 沒有回應" 找到下面這篇 :

win10 檔案總管沒有回應

最底下一位 kahnmao 給出了線索, 原來是快速存取要清掉, 點選檔案總管左上角的 "快速存取", 右下角會顯示過去曾經開啟的檔案列表, 點中間分隔線上的 "最近使用過的檔案" 就會選取目前顯示的檔案, 按滑鼠右鍵, 選取 "從快速存取移除" 即可 (這些只是檔案的連結 Link, 刪除它們並不會刪除硬碟中的檔案) :




因為它一次僅顯示約 18 個檔案, 所以刪除後又會出現下一批, 所以要重複做好幾次, 直到不再出現為止 :




還有一個需要清除的是 Chrome 的瀏覽資料, 按瀏覽器右上角的三個小點進入設定畫面 :




往下找到 "隱私權和安全性", 點清除瀏覽資料即可 :




Windows 用久了要常清理這兩個地方才不會越跑越慢, 越跑越怪.

貶三害

前天在分享 Line 關於健康的貼文時誤選了公司單位的群組, 我馬上將其 "刪除", 但這是錯誤的, 應該選 "收回" 才對, 因為刪除只是你自己看不到 (眼不見為淨), 群組裡面的其他人還是看得到, 刪除後反而無法收回. 很快地就收到上司貼文, 拜託我不要在公務群組貼與工作無關的文章, 我只好道歉說誤貼了事, 這已是我第二次手賤了.

這還不是最賤的, 這兩周以來學習進度非常慢, 兩天可以搞定的竟然拖成兩三個禮拜, 我覺得有下列三隻害蟲讓我浪費了大把時間 :
  1. Line
  2. Yahoo 新聞
  3. 臉書+Messenger
每天一起來就先看 Line 有無訊息, 接著轉 Yahoo 看看有無大新聞, 最後又看看臉書有哪些令人羨慕的炫耀動態貼文~~~我是在幹嘛? 花了一兩個小時看完這些只有虛脫~~~世界好混亂, 疫情好緊張, 人心好醜惡, 朋友的人生好棒棒 .... 我呢?  我覺得心靈好空虛.

惋惜過去浪費的光陰, 決定刪除 Line 貼文以節省手機記憶體, 退出不需要的群組, 但有些退不掉 (例如單位的群組), 只能把臉書與 Yahoo 貶到第三層桌面減少見面機會, 把具有生產力的雲端硬碟往前挪, 雖然做不到除三害, 至少要貶三害.

Google 商店優惠券

去年 10 月在 Google 商店幫二哥買的 Pixel 4 手機有贈送 4500 元優惠券, 截止期限為今年 4 月 30 日 (2019/12/11 Gmail). 今天上 Google 商店查看商品, 發現其實能買的東西不多, 只有 Nest mini 智慧音箱 (1785 元), Chrome Cast 電視棒 (1445 元), 以及 Pixel 手機配件例如保護套等等.




目前有兩個打算 :
  1. 買 2 個 Nest mini + 1 個 Chrome Cast :
    合計 2*1785+1445=5015, 須自付 5015-4500=515 元. 
  2. 買 3 個 Nest Mini :
    合計 3*1785=5355, 須自付 5355-4500=855 元. 
比較傾向第一方案.

關於 Nest mini 參考 :

Google Nest mini 智慧音箱 會說中文的 Google小姐 售價兩千台幣有找!




https://www.youtube.com/watch?v=Mkwq98PBiYo




會說中文ㄟ! 還能認出六個人, 但需要先在手機安裝 Google Home.

2020年2月12日 星期三

momo 買旗標書兩本 + 威剛 64GB SD 卡

今天在手機看到一本 1 月底剛出版的旗標新書 :

機器學習的數學基礎:AI、深度學習打底必讀 $580

旗標的書在明儀 VIP 只打 85 折, 在 momo 活動打 79 折, 因為打折後不滿 500 元要加 75 元運費, 所以我又找到一本也是旗標的 GCP 新書 :

機器學習開發神器!Google Cloud Platform 雲端開發應用超入門 $490

原價 580+490=1070, 打 79 折是 846, 滿 500 折 50 為 797, 加購 64GB SD 卡 199 共 996 元. 不計 SD 卡的話, 書大約打 75 折, 很划算.




SD 卡是買來給 Jetson Nano 用的, 因為 Nvidia 官方文件使用 64GB 示範, 我可能會用它來架站. 我前幾天有問建國路店家, 創見 64GB 要 240 元, 威剛 199 算便宜了. 日本人寫的書都整理得不錯, 但本周要開始準備 AWS 認證了, 考過後再來玩 GCP 吧!

MicroPython on ESP32 學習筆記 (十三) : 看門狗計時器 WDT (on v1.12)

昨天在 ESP32 上燒錄 MicroPython v1.12 版韌體後, 確認此版開始支援 BLE 藍芽, 這實在太棒了, 可惜我對藍芽協定及其操作仍很陌生, 等學習原理後再來測試. 反倒是想了一個程式來測試看門狗計時器 (Watch dog, WDT), 前次的測試參考 :

MicroPython on ESP32 學習筆記 (六) : 看門狗計時器 WDT

更多 ESP32 上的 MicroPython 測試參考 :

MicroPython on ESP32 學習筆記索引

使用看門狗須從 machine 套件匯入 WDT 類別, 然後呼叫建構子 WDT() 並傳入 timeout 參數指定看門狗計時器的逾時毫秒數, 它會傳回一個 WDT 物件, WDT 物件一建立即開始計時, 必須在計時器逾時前呼叫其 feed() 方法將計時器歸零, 否則計時器將重置 (reset) 系統 :

from machine import WDT    #匯入 WDT 類別
wdt=WDT(timeout=20000)     #建立 WDT 物件開始計時
wdt.feed()                                  #WDT 計時器歸零

看門狗計時器主要被用來偵測應用程式是否咬死或系統當機, 因此要將 feed() 放在任務執行結束時呼叫, 如果發生系統當機就無法呼叫 feed(), 這樣就會導致系統重啟, 讓程式能重新新執行避免僵在那裏失去功能.

下面範例使用一個無窮迴圈來模擬看門狗計時器的用途 :

#main.py
from machine import WDT
import time
wdt=WDT(timeout=20000)
i=0
while True:
    i=i+1
    print(i)
    if i == 21:
        wdt.feed()
        i=0
    time.sleep(1)

此程式從 machine 匯入 WDT, 設定了 20 秒的看門狗計時器, 另外還匯入 time 模組, 用來在迴圈中以 time.sleep(1) 計時 1 秒.

此例用 while True 建構一個無窮迴圈, 執行時會印出秒數, 當秒數到 21 秒時呼叫 feed() 的方法來重置 WDT 計時器避免系統重啟, 但這不會成真, 因為數到 20 秒時 WDT 計時器就因逾時而重啟系統, 程式又重新執行了, 所以這個無窮迴圈根本沒有機會執行 wdt.feed() 指令. 若將程式改為第 19 秒就重置 WDT 計時器, 系統就不會重啟了.

將此程式存成 main.py, 然後用 ampy 傳送至檔案系統根目錄下 :

D:\test>ampy --port COM8 put main.py

參考

MicroPython on ESP32 學習筆記 (二) : 檔案系統

開啟 PuTTY 連線 COM 埠,  結果如下 :






I (531) cpu_start: Pro cpu up.
I (531) cpu_start: Application information:
I (531) cpu_start: Compile time:     Feb 11 2020 00:37:56
I (534) cpu_start: ELF file SHA256:  0000000000000000...
I (540) cpu_start: ESP-IDF:          v3.3.1
I (545) cpu_start: Starting app cpu, entry point is 0x400836ec
I (535) cpu_start: App cpu up.
I (556) heap_init: Initializing. RAM available for dynamic allocation:
I (563) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (569) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (575) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (581) heap_init: At 3FFBDB5C len 00000004 (0 KiB): DRAM
I (587) heap_init: At 3FFCC810 len 000137F0 (77 KiB): DRAM
I (593) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (599) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (606) heap_init: At 40099A80 len 00006580 (25 KiB): IRAM
I (612) cpu_start: Pro cpu start user code
I (295) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
1
2
3
4
5
....
17
18
19
20
(reset)

注意, 由於此程式為無窮迴圈, 因此無法再用 ampy 上傳新的 main.py 覆蓋掉, 必須重新燒錄韌體才行.