2020年6月4日 星期四

好站 : Last Minute Engineers

今天在 "Last Minute Engineers" 這個網站看到豐富的 ESP32 教學內容, 而且 裡面收錄了很多有趣的專案, 閒暇時可以試著改用 MicroPython 來實作 :

https://lastminuteengineers.com/esp32-arduino-ide-tutorial/

此網站使用 Arduino IDE 為開發工具, 亦即使用的是 Arduino 版的 C 語言, 對於非 IT 科班者門檻稍高些, 但也只是程式語言部份而已. Arduino IDE 的好處是內建了許多 C 語言範例程式可以馬上套用或修改.

不過 Arduino IDE 的缺點是, 每次改程式都要重新燒寫韌體有點麻煩, 如果用 MicroPython 的話只要燒錄一次映像檔即可, 它會建立一個簡單的檔案系統, 更改程式後只要上傳 main.py 即可, 不須燒錄韌體. 但是如果要用到 ESP32 內建的藍芽連線功能的話, 目前還是要用 Arduino IDE 才行, 因為 MicroPython on ESP32 直到 1.12 版才開始加入藍芽模組, 且還在持續完善中.

2020年6月3日 星期三

關於 BBC micro:bit 開發板

以前剛開始接觸 MicroPython 時便知道 BBC micro:bit 這塊開發板也可以使用 MicroPython 開發物聯網應用, 但上露天查詢價格都不便宜 (最低 475 元), 比起 NodeMCU 或 Wemos D1 mini 來說貴了許多, 不過最近仔細評估後發現, 若考慮到板上內建的感測器, 其實這個價格並不算貴, 而且內建的常用感測器減少了實驗時常見的接線不良問題, 可降低初學者摸索的挫折感, 非常適合中小學生的物聯網科學教育之用.

這塊板子是英國廣播公司 BBC 與 ARM 等公司合作設計的開源硬體開發板, 目的是要提升英國青少年的動手做科學的能力, 2016 年免費送出了 100 萬片給英國公立中小學.

https://microbit.org/ (官網首頁)
https://zh.wikipedia.org/wiki/Micro_Bit

BBC micro:bit 大小如信用卡, 正面正中央有 25 顆排成 5*5 矩陣的 LED, 內建的隱藏式光度感測器也是位於 LED 矩陣區域. 左右各有一個標示為 A 與 B 的使用者按鈕輸入, 正下方的銅板接點標示了 0, 1, 2 的三個數位/類比 GPIO 輸出入粗接點以及中間的細接點, 可以用鱷魚夾將粗接點引出 :


正面


Micro:bit 開發板的背面焊接了主要的零組件, 左上角的大晶片是 nRF51822 微處理器, 上方的條狀銅箔是舖在電路板上的 2.4 GHz 射頻天線 (藍芽與 Radio 通訊用), 正上方有一個用來供電與上傳韌體的 Micro USB 插槽, 其右方一個重置 (Reset) 按鈕, 以及一個 2.0 mm 的電池插槽母座, 正下方則是 GPIO 的銅箔接點 (稱為金手指) :


背面


注意, 正反面的 GPIO 對應接點是相同的, 粗接點可用一般鱷魚夾引出, 細接點則否, 必須使用擴充槽 (breakout) 引出全部接點. 除了引出全部 GPIO 接點外, 擴充槽還有避免鱷魚夾刮傷 micro:bit 主板上銅箔的作用, 擴充板有許多種, 參考 :

現貨 micro:bit IO 擴展板 DFRobot 原廠
micro:bit專用 金手指轉接擴展板
MICRO:BIT開發板插槽
Micro:bit 擴展板 Breakout轉接板(直針)
T型黑色Micro:bit擴展板 (主板轉接麵包板Breakout)

BBC micro:bit 開發板包含兩顆處理器晶片, 主處理器為 Nordic 公司的超低功耗無線 nRF51 系列 SoC 晶片 nRF51822, 係基於 ARM Cortex-M0 架構所開發之 32 位元單核處理器, 內建 16KB RAM 與 256KB Flash 記憶體並以 16 MHz 時脈運行, 專門用於無線嵌入式系統與消費性電子產品, 兼具高效能 (與 ARM7 相當) 與低成本特性, 使用建議之電池組可工作達數月之久. 此外還支援 2.4GHz 低功率藍芽 (LBE) 無線通訊協定 (但在 MicroPython 環境因為受到記憶體限制沒有開啟, 僅無線模組 radio 可用). 參考 :

# microbit MB80-UShttps://zh.wikipedia.org/wiki/NRF51

第二顆晶片為負責與電腦通訊之 USB 晶片NXP/Freescale KL26Z, 係基於 ARM Cortex-M0+ 架構之 48 MHz處理器, 支援 USB2.0 OTG, 提供與電腦透過 USB 介面傳輸資料功能.

BBC micro:bit 內建如下五種感測器 (sensor) 與致動器 (actuator) :
  • 5*5 LED 矩陣 (致動器, 輸出)
  • 溫度感測器 (內建於 CPU 內)
  • 光度感測器 (隱藏式設計, 位於 LED 矩陣區域)
  • 加速度感測器 (NXP/Freescale MMA8653)
  • 電子羅盤 (磁場/旋轉/方位感測器, NXP/Freescale MAG3110)
關於 micro:bit 的內建感測器參考 :

https://microbit.org/get-started/user-guide/features-in-depth/

BBC micro:bit 的開發語言有三種 :
  • Javascrip Block 
  • Javascript
  • MicroPython
Javascript Block 是以 Scratch 為基礎的積木式圖形化開發語言, 毋須撰寫程式碼, 只要依據控制邏輯將積木單元拖曳後加以堆積排列與調整參數即可. 由於 micro:bit 最初開發的初衷是為了讓小學生能以簡單的方式學習物聯網與程式設計, 因此大部分的 micro:bit 初學者教材是以 Javascript Block 為開發語言.

其次是使用 Javascript Editor 直接編寫 Javascript 程式碼來控制 micro:bit, 它提供了更豐富的功能, 例如可撰寫副程式或函數等. 其實 Javascript Editor 與 Javascript Blocks 基本上可說是文字版與圖形版的差異, 兩者是可互相切換的, 但部分功能只能單向, 亦即 Javascript Editor 有的 Javascript Block 不一定有; 反之則一定有. 不管是用 Javascript 或 Javascrip Block 編寫程式, 上傳
至 micro:bit 時都會被編譯成機器碼執行, 這是與一般瀏覽器中的 Javascript 以解譯器逐行執行不同之處.

第三種開發語言是 MicroPython, 這是 Python 3 在嵌入式設備上的再實作版 (re-implementation), 標準函式庫僅實作用得到的重要部分, 並根據所使用 CPU 新增特定模組. 使用 MicroPython 開發的好處是, 它具有 REPL 介面可與 Python 執行環境進行互動式操作, 就像在 PC 上使用 Python Shell 一樣. MicroPython 也有線上編輯器, 參考 :

https://python.microbit.org/v/2.0

以 MicroPython 控制 micro:bit 的教學文件參考 :

https://microbit-micropython.readthedocs.io/en/latest/
https://microbit.org/get-started/user-guide/python/
https://nkust.gitbook.io/micro-bit/shi-shi-yong-micropython

目前市面上以 MicroPython 為開發工具的書有如下幾本 :

BBC micro:bit程式設計入門:MicroPython快速上手指南 (這本市圖有)


Source : 博客來


Programming With MicroPython: Embedded Programming with Microcontrollers and Python


Source : 天瓏


Beginning BBC micro:bit: A Practical Introduction to micro:bit Development


Source : 天瓏


Getting Started With the micro:bit: Coding and Making With the BBC’s Open Development Board


Source : 博客來


如果使用圖形化介面開發 micro:bit 應用的話, 可參考下面這個整理得非常完整的網站 :

阿玉micro:bit研究區

作者黃文玉老師應該是小狐狸們小學時的電腦老師, 去年出版了一本 micro:bit 的新書 :

# 輕課程 用micro:bit學程式設計結合KAISE擴展板創意專題實作:使用Microsoft MakeCode


Source : 博客來


在眾多普受歡迎的物聯網開發板中, 來自英國的就有兩個 : 低階的 micro:bit 與高階 (具有 Linux 作業系統) 的 Raspberry Pi, 而處理器核心都來自 ARM, 也是一家英國公司, 英國人的新創能力值得敬佩. 與來自義大利的 8 位元 Arduino 比起來, 我覺得 32 位元 ARM 核心且內建多個重要感測器的 micro:bit 更適合作為青少年物聯網教學之用, 從圖形介面入手進階到 MicroPython 程式撰寫, 最後晉級到樹莓派, 都是 Python 系列. 

明儀買書一本 : Word全方位排版實務:紙本書與電子書製作一次搞定

最近在研究如何用 WORD 排版, 於博客來找到下面這本博碩 2019 年底再版的書, 約 75 折, 但考量未滿 300 元要付運費, 所以打電話問明儀確定有書, 同樣也是 75 折不如就近馬上取書 :

Word全方位排版實務:紙本書與電子書製作一次搞定(暢銷回饋版) $400


Source : 博碩


OFFICE 的妙用真的要用到時才能真正體會到.

2020年6月2日 星期二

ESP32/ESP8266 開發工具 uPycraft IDE 測試

我在 Random Nerd 的網站看到這個很方便的 MicroPython 視覺化開發工具 uPyCraft IDE, 不僅可以用來寫 MicroPython 程式, 上傳檔案到 ESP8266/ESP32 開發板中, 還可以直接燒錄 MicroPython 韌體, 可以說是 MicroPython 一貫作業開發工具, 參考 :

Flash/Upload MicroPython Firmware to ESP32 and ESP8266

以下是測試紀錄 (失敗) :

Windows 版的 uPycraft 下載網址 :

https://randomnerdtutorials.com/uPyCraftWindows

下載的檔案 uPyCraft_V1.1.exe 不須安裝可直接執行, 經 TotalVirus 掃描僅有 Acrones 掃出疑似 Malware (1/71), 但 uPyCraft 是開放原始碼軟體, 應該沒有問題 :




執行 uPyCraft_V1.1.exe 會顯示一個安裝 SourceCodePro 字型的提示, 按 OK 即可 :





以下說明 uPycraft 之韌體燒錄, 程式撰寫, 以及檔案管理等功能之操作步驟, 使用的 ESP8266/ESP32 開發板如下 :
  • ESP-01 (ESP8266 with 1M Flash)
  • Wemos D1 Mini (ESP8266 with 1M Flash)
  • NodeMCU (ESP32 with 4M Flash)
注意, ESP-01 的 Flash 的記憶體有分 512KB 與 1MB 兩種, 雖然 MicroPython 有提供 512KB 用的韌體, 但其內建模組已被刪減, 有些功能無法使用.

首先到 MicroPython 網站下載韌體 :


1. 下載映像檔 : 

ESP32 開發板的韌體映像檔 :

http://micropython.org/download/esp32/ (ESP32)




ESP8266 開發板的韌體映像檔 :

http://micropython.org/download/esp8266/ (RSP8266)




2. 燒錄映像檔 :

將開發板與電腦 USB 槽連接, 開啟 "控制台/裝置管理員", 打開 "連接埠", 可以看到此 USB 之 COM 埠, 例如此處為 COM9 :




執行 uPycraft 程式, 點選 "Tools/Serials" 勾選上面所查到的 COM 埠 :




使用 ESP-01(1M Flash) 或 D1 mini 點選 "Board/ESP8266", NodeMCU 點選 "Board/ESP32" :




點選 "Tools/BurnFirmware" :




在彈出視窗中, 點選 board 與 COM, Firmware Choose 欄點選 Users, 按 choose 按鈕點選已下載之韌體 bin 檔, 最後按 ok :




可惜事與願違, 燒錄一直失敗 ~~~~ 即使 erase_flash 欄勾選 No (直接燒錄) 也是一樣 :





換線換板子試了好幾次都沒成功, 同樣的線以之前的舊方法 esptool.py 與 Flasher.exe 燒錄都成功, 可以排除線的問題, 殘念 ~~~

2020年6月1日 星期一

安裝壁掛液晶螢幕

在露天購買的 AOC 19.5 吋液晶螢幕上周收到了, 壁掛架則前兩周就已買來, 但因電鑽在鄉下家裡無法馬上施工, 上周末回鄉下時特地趁記憶猶新趕緊將電鑽放進後車廂, 否則很快就會忘記, 這樣又要推遲一周了.

購買 AOC 20E1H 19.5 吋 LED 螢幕 (HDMI)
購買液晶螢幕壁掛架

今天不用去載菁菁, 回到家才五點半還早, 趁這時間趕緊施工. 我上週早就已經在牆壁上定位鑽孔點, 方法是先將壁掛架大的那塊先鎖在液晶螢幕背部的四個 VESA (10 cm) 孔 :




然後套上較小的要鎖在牆壁上的那塊, 接著在四個螺絲洞上塞個沾水的衛生紙條, 將螢幕在牆壁上對準要安裝的大約位置後貼到牆壁上, 這樣衛生紙條上的水就會在牆壁上留下水痕, 趁還沒乾用鉛筆描出要鑽孔的圓洞 :




接著就是鑽洞, 鑽子直徑要與塑膠套管差不多 (稍小或剛好), 深度要跟塑膠套管一樣深或深一點點, 鑽好後將塑膠套管用鐵鎚慢慢塞進去, 再用所附螺絲將壁掛架鎖上去 :




最後將液晶螢幕背後的電源線與 HDMI 線插好, 另一端接到輝達的 Jestson Nano, 再將螢幕掛上去, 電腦開機顯示正常 :




我的五斗櫃實驗室終於完工啦!

好書 : WORD 排版藝術

這本書是電腦書作家侯捷的著作, 我自 2004 年買來至今只看了前三章便停住了, 當時是想要將讀研究所時寫的小書 "PRAAT 初學者使用手冊" 重新排版, 以及寫一本 AutoIt 實戰書籍而研究 WORD 排版技巧, 但要忙的事情很多, 都擱下沒完成 (應該是專案執行力太低吧).


Source : 金石堂


最近想要幫二哥整理物聯網教材, 加上我筆電的 Win10 預載 OFFICE 365 試用版最近在同事協助申請下以公司帳號註冊成功, 終於可以編輯 DOCX 檔案了, 所以上週又找出這本書來研究排版問題. 其實我原本想用 Google 文件來做, 但幾經折騰終於了解文件排版還是用微軟的 WORD 最妥當.

雖然這本侯捷的書很舊了, 但那只是 WORD 版本差異而已, 排版的觀念本身沒甚麼變, 但操作上要去找出同樣功能新版要在哪裡設定卻得費些工夫. 此書試閱參考 Google :

WORD 排版藝術試閱 (碁峰)

以下是這幾天看書整理的筆記 :
  1. 文字處理 (word processing) 與排版 (typesettings) 的差別 :
    文字處理 : 字型, 大小, 顏色, 字距, 行距, 特殊效果等.
    排版 : 除了文字處理外還包括版式設定, 例如頁邊, 天地, 頁碼, 頁眉, 目錄, 索引等.
  2. 用 WORD 排版的弱點在於分色能力較差, 以及頁面尺寸受限, A3 以上不適合. WORD 的色彩模式為 RGB, 適合在電腦螢幕顯示, 而不適合印刷品的彩色排版, 印刷的色彩模式為 CYMK. 但在以文字內容為主, 非美工專業或彩印方面的書籍製作來說, WORD 絕對夠好且容易使用. 
  3. 出版界以開數來描述書籍尺寸, 印刷廠的標準用紙有全開 (31*43 英吋) 與菊開 (24.5*34.5 英吋) 兩種, 將全開紙裁成 16, 18, 25, 32 等分稱為 16 開, 18 開, 25 開與 32 開, 除此之外的尺寸必須請印刷廠抄紙 (即準備特規尺寸的紙) 才行. 
  4. 台灣電腦書籍傳統尺寸為 18 開 (17*23 公分), 英文電腦書籍則採國際 18 開 (大 18 開, 18.5*23 公分). 一般小說散文通常採用 25 開 (15*21 公分), 此尺寸剛好是菊版 (24.5*34.5 英吋) 的 1/16, 又稱為菊 16 開.  
  5. 為什麼要用 WORD 寫作? 因為寫作過程需要不斷修改, 增刪, 與搬移文字, 而科學技術類書籍又有許多交互參照之處, 參照點會隨寫作過程動態地變化, WORD 會為每一個參照點編號並自動修正參照位置. 另外, WORD 還可以為頁碼, 章節, 圖表, 註腳, 書籤等功能之編號自動化. 目錄可以用 WORD 自動化產生, 但不會自動更新.  
  6. WORD 寫作平台相關的功能 :
    功能變數 fields
    範本 templates
    巨集 macros
    標號 captions
    多層次大綱編號 multi-level outlines numbering
    交互參照 cross reference
    追蹤修訂 track changes
    註解 comments
    書籤 bookmarks
  7. 用 WORD 排版的第一件事是進入 "版面配置" 中設定紙張大小與邊界, 這樣就把頁面尺寸, 版芯位置, 天地等等都確定下來 (天是頁首以上的留白, 地是頁尾以下的留白, 通常天大於地的視覺效果較好), 接著就是節 (sections) 與各種樣式設定. 
  8. 節 (sections) 是文件中各自獨立的排版單元, 如果略過節的設定, 則整份文件就變成單一個節, 這是最容易被忽略的排版概念. 寫作之前應該為每個文件單元 (序言, 目錄, 致謝, 各章等) 設定各自獨立的節, 這樣每個節就可以設成從奇數頁開始, 讓文前 (序言, 目錄, 致謝等) 以羅馬數字編頁; 讓正文 (各章) 與文後 (附錄, 索引) 以阿拉伯數字編頁, 設定好之後存成範本 (templates, 副檔名為 dotx) 以備後用.
  9. 樣式是用來呈現 "特定頁面元素" (例如大標題, 小標題, 內文, 圖表, 程式碼等) 的一組格式. 樣式是所有排版作業的靈魂, WORD 的每一個自動化功能都是依據使用者事先規劃的樣式來完成. WORD 的內建樣式設定雖然多半不適合我們使用, 需要手動修改, 但卻是進行高階排版作業的依據, 例如 WORD 會收集標題 1 到標題 9 樣式的文字組成多達 9 層的目錄; 也會收集文件內的索引項目, 並以索引 1 到索引 9 樣式組成多達 9 層的索引.   
  10. 99% 的 WORD 使用者只是將它當作是文字編輯器來用, 沒有認識到它處理大型文件的正規排版能力. 學會 WORD 排版設定, 創作就從 "白了少年頭" 的繁瑣工作變成只需關心創作內容的愉快過程. 
  11. 想成為優秀的作家必須學會排版, 因為一個優秀的作家一定關心自己的作品最後長得怎樣. 學術界公認最好的排版軟體 TeX 的作者 Donald Knuth (圖靈獎得主) 就是為了讓自己的著作達到滿意的版面而跳下來開發自己的排版軟體. 
  12. WORD 排版作業的最佳模式 : 文件引導框 + 整頁模式. WORD 左方的文件引導框顯示文件中所有標題的階層結構, 每個標題都是超連結, 點擊後右方視窗就會顯示對應之內文位置可直接編輯, 非常方便. 整頁模式的特點是可忠實呈現所有頁面元素於製版與印刷時得實際呈現, 在右視窗的整頁模式對標題做任何修改會立即反應到左視窗的文件導引框, 注意, 文件引導框只能檢視無法編輯.   
參考 :

以Word做數位排版
這些Word的技能可以省下你99%的時間
Paperback Manuscript Templates
不專業教學 | 製作一本書的流程 (排版→設計→印刷)
GOOGLE DOC 排版-段落第一行空兩格


2020-06-02 補充 :

今天在博客來找到一本還不錯的 WORD 排版書 :

Word全方位排版實務:紙本書與電子書製作一次搞定(暢銷回饋版) $400


Source : 博客來


此為再版書, 7/28 前 $299 元, 相當於打 75 折.

2020年5月31日 星期日

2020 年第 22 周記事

又來到月底了, 今年陰曆閏四月, 現在是第二個四月, 再過三周就端午節, 姊姊的高鐵票昨天終於搞定, 但回高雄那張大學生票沒搶到.

前陣子豪雨加強降雨, 所種的大陸妹全部陣亡, 只有空心菜存活, 今天去種子行時也只剩下 36 株空心菜苗, 買 30 株剩六株很奇怪, 所以我全部都買下來, 因為接下來的颱風季就要靠這 60 多株空心菜以及地瓜葉了. 老闆娘說這陣子不育苗了

最近因為想要先整理 MicroPython on ESP8266/ESP32 教材給二哥暑假學習, 所以花了一些時間回頭複習之前的筆記, 突然覺得, 人失去記憶真是可怕的一件事, 重看自己的筆記居然有一部分不記得自己曾經這樣寫過, 海馬迴真的漸漸壞掉了.

下午到頂樓重新丈量了一下太陽能板支架尺寸, 決定 300 公分的角鋼需要 4 支, 各部分尺寸設計如下 :




角鋼每支 300 元需花 1200 元. 下午 4 點半正要去五金行剪角鋼, 剛好來採收波蘿蜜的人車子停在大門口擋住去路, 想想似乎時間有點趕, 只好下周再去買了. 

2020年5月30日 星期六

好站 : 雅技資訊日誌

前天向 momo 買的一本資安書籍 :

Kali Linux滲透測試工具 第二版 (碁峰, 陳明照, 2015)


Source : 博客來


我在博客來的書籍介紹中看到作者陳明照的部落格, 拜訪之後覺得是非常優質的資安教學網站, 值得好好來學習 :

http://atic-tw.blogspot.com/

不過這本書我買錯了, 現在已出第三版, 我第二天發現就已辦理退貨, 其實此書第二本市圖就有, 要買就買 2020 第三版.

夢幻筆電 LG GRAM 17 吋 17Z990

今天在 momo 看到去年曾列入新筆電購買候選名單的 LG Gram Z90N, 現在居然 42000 就買得到耶! 去年還要 50000 元, 我覺得太貴所以改買更輕但續航力較不足的 Swift5 :




LG Gram 現在也有更大的 17 吋 (適合越來越老花的我) :

【LG 樂金】Gram 17吋 17Z990 極緻輕薄筆電(i7-8565U/16G/512G SSD/Win10) $53900




續航力近 20 小時, 還大容量 DRAM 16GB, 簡直是夢幻款, 但問題是背包要夠大.

【大锤开箱】LG gram 20 款 17 英寸更进一步!




新款 Gram 最吸引我的除超大螢幕外, 還有 4 個 USB 插槽, 其中一個支援 USB PD (可用 PD 行動電源對筆電充電), 而且具備 Micro SD 讀卡機, DRAM 與 SSD 也可擴充, 看完這個介紹, 有股 "買吧!" 的衝動! 參考 :

開箱評測 LG gram 17″- 世界最輕17吋筆電,續航19.5小時 (這是舊款 17 吋)

新銳 Python 網頁框架 : Masonite

最近注意到一個名為 Masonite 新興的開放原始碼 Python 網頁框架, 其在 GitHub 的熱度 (Star) 已超過 1300, 或許不久的未來將與已成熟的 Flask 與 Django 一樣成為廣受歡迎的網頁框架.

Masonite 在結構上參考了 Laravel (一個優異的 PHP 框架) 的許多先進設計, 例如服務提供者與服務容器等等, 而且提供了命令列與 ORM 工具, 具有簡單高效, 測試覆蓋率高等優點, 參考 :

https://pypi.org/project/masonite/ (套件下載)
https://docs.masoniteproject.com/ (教學文件)
https://github.com/MasoniteFramework/masonite (開放原始碼)

強國的社群有人發起教學文件中文化翻譯 (進行中) :

Masonite 中文文档

目前市面上 Masonite 的書籍只找到一本, 作者是 Masonite 的開發者 Joe Mancuso :

The Definitive Guide to Masonite: Building Web Applications with Python


Source : Amazon


Google 圖書有提供試閱, 參考 :

# Google Book : The Definitive Guide to Masonite: Building Web Applications with Python

此書作者之一 Joe Mancuso 有在 Youtube 發布 Masonite 簡介影片:

# #233 The Masonite Python Web Framework




很多人可能跟我一樣, 覺得 Django 已經很好用了, 為什麼還要學一種新的框架? 作者 Joe Mancuso 在下面這篇 Medium 的文章中比較了 Masonite 與 Django 的差異, 並對於為什麼 Masonite 是最適合初學者與專家的框架, 提出了極有說服力的愛用理由 :

Masonite 2.0 and Django

重點摘要如下 :
  • Masonite 是一個以開發者為中心的框架 (developer-centric), 專為網頁開發者而設計, 不像 Django 最初是為了建立新聞網站, 而 Flask 則看起來像是愚人節玩具 (好酸啊). 
  • Masonite 是為了想讓網頁應用成為 SaaS 雲端軟體而設計, 也是為那些周末戰士的專案 (Weekend Warrior Projects, 即只有周末才有空做的個人專案) 而開發. 
  • Masonite 採用 MVC (Model-View-Controller) 架構; 而 Django 則是採用 MTV (Model-Template-View) 架構, 這是兩者最大的不同. 雖然達成的效果一樣, 但架構不同就表示做事的方式不同. 
  • Django 將單一的應用程式分解成多個 App, 這對於將功能複雜的應用邏輯抽象化確實有其意義, 但對於許多開發者來說卻不知該如何拆解應用程式功能, 導致因為盲目分拆而讓應用程式的邏輯架構更加複雜. Masonite 不是這樣, 它是真正的 MVC 架構, 它將應用邏輯分拆成位於不同模組的多個控制器, Masonite 提供多種控制器類別可將應用邏輯以清楚與符合實際的方式抽象化. 
  • Mashonite 採用 Service Provide 與 Service Container 增添第三方應用程式 (例如郵件服務) 來擴充 Masonite 網站的功能, 此方式可加速網站的反應速度, 因為它不需要去後端 (backend) 去檢查是否有此服務. Django 的第三方服務是在後端 INSTALLED_APPS 設定中以字串格式列舉服務的位置與功能.
  • Django 的設定全部放在單一的 settings.py 與 settings_local.py 裡面, 有些人覺得這沒甚麼不好, 但其實全部放在一起有點混亂. Masonite 則是將設定以功能特性進行區分, 將其分割成多個設定檔.  
Masonite 怎麼用? 可參考下面這篇初體驗用 Masonite 來快速建立一個網頁應用程式 :

Python:masonite初体验TodoList

最近要抽空來玩玩看.

明儀買書一本 : 深度學習的數學地圖:用 Python 實作神經網路的數學模型

今天在博客來看到旗標剛出的新書, 詢問明儀確定有書, VIP 85 折 :

深度學習的數學地圖:用 Python 實作神經網路的數學模型


Source : 博客來


這本是從日文翻譯過來的, 日本人最擅長知識整理, 旗標的書品質又很不錯. 我的數學不太好, 所以在邁向 AI 路途中需要補腦一下.

2020年5月28日 星期四

momo 會員日購書 4 本 (Python/Kali Linux/tensorFlow)

今天 momo 會員日最後一天, 我挑了四本打 69 折的書 :

Python自學聖經:從程式素人到開發強者的技術與實戰大全
行動裝置上的AI:使用TensorFlow on iOS Android及樹莓派
Python最強入門邁向數據科學之路-王者歸來
Kali Linux滲透測試工具第二版

四本書總價 3060 元, 折扣後 2131 元, 約打 69.6 折, 加購 Sandisk 64GB 卡 :

【SanDisk 晟碟】Ultra microSD UHS-I 64GB 加價購 $199




全部總價 3060+199=3259, 折扣後 2131+199=2330, 扣掉 momo 幣 75 元, 用 momo 卡實付  2255, 約 69.2 折.

2020-05-29 補充 :

因為沒注意到 Kali Linux 滲透測試工具已經出第三版, 早上通知 momo 想換貨, 但客服機器人真的無三小路用, 看不懂我寫的句子, 只好全部退貨, 殘念 ~~~

Nvidia Jetson Nano 測試筆記 (五) : 安裝 Python 3

二月初把 Jetson Nano 的 Ubuntu 作業系統 Linux4Tegra (v18.04) 架起來之後, 因為忙別的事就暫停下來了. 這幾天整理完樹莓派 Pi Zero/A+/Pi 3A+ 等幾塊板子後, 想起 Jetson Nano 已塵封許久, 便找出來繼續安裝軟體部分, 主角當然就是以 Python 為主的機器學習生態系.

本系列測試文章參考索引 :

Nvidia Jetson Nano 測試筆記索引

Jetson Nano 的 Ubuntu 18.04 只預載了 Python 2.7.15, 沒有 Python 3, 用 python -V 或 python --version 指令可查詢 Python 2 的版本 :

tony1966@jetson-nano-tony1966:~$ python -V     
Python 2.7.15+
tony1966@jetson-nano-tony1966:~$ python --version 
Python 2.7.15+

因為機器學習套件要用到 Python 3, 必須自行安裝, 作法參考下列文章 :

在Linux上安装Python 3
How To Install Python 3.7 On Ubuntu 18.04
How to Install Python 3.8 on Ubuntu 18.04
Ubuntu 安裝 Python 3 (IDLE)
如何在Ubuntu 18.04上安装Python 3并建立本地编程环境
如何在Ubuntu 16.10上為Python 3.6安裝pip?
Ubuntu 環境下安裝 pip & python3


1. 更新套件清單 :   

tony1966@jetson-nano-tony1966:~$ sudo apt update   


2. 安裝支援軟體 software-properties-common 套件 : 

此套件會可讓我們添加個人套件庫 (PPA, Personal Package Archive), 可增進我們對套件管理員的控制 :

tony1966@jetson-nano-tony1966:~$ sudo apt install software-properties-common 
[sudo] password for tony1966: (輸入登入密碼後按 Enter, 密碼不會顯示)

此指令需按 Y 才會繼續安裝 :

是否繼續進行 [Y/n]? [Y/n] Y


3. 新增名為 deadsnakes 的 PPA : 

tony1966@jetson-nano-tony1966:~$ sudo add-apt-repository ppa:deadsnakes/ppa 

此指令需按 Enter 才會繼續安裝 :

Press [ENTER] to continue or Ctrl-c to cancel adding it.  (按 Enter 鍵)


4. 再更新套件清單 :   

tony1966@jetson-nano-tony1966:~$ sudo apt update   

接下來就可以安裝 Python 3 了, 目前最新版本是 Python 3.8 : 


5. 安裝 Python 3.8 : 

tony1966@jetson-nano-tony1966:~$ sudo apt install python3.8    

此指令需按 Y 才會繼續安裝 :

是否繼續進行 [Y/n]? [Y/n] Y

安裝完成後必須用 python3.8 指令檢查版本 :

tony1966@jetson-nano-tony1966:~$ python3.8 --version 
Python 3.8.3
tony1966@jetson-nano-tony1966:~$ python3.8 -V 
Python 3.8.3

如果用 python 或 python3 會出現錯誤 :

tony1966@jetson-nano-tony1966:~$ python ––version 
python: can't open file '––version': [Errno 2] No such file or directory
tony1966@jetson-nano-tony1966:~$ python3 ––version 
python3: can't open file '––version': [Errno 2] No such file or directory
tony1966@jetson-nano-tony1966:~$ python –V 
python: can't open file '–V': [Errno 2] No such file or directory

輸入 python3.8 進入 Python Shell 介面 :

tony1966@jetson-nano-tony1966:~$ python3.8 
Python 3.8.3 (default, May 14 2020, 20:11:43)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello World!') 
Hello World!

這樣就安裝好 Python 3 了, 接下來要即可安裝 Python 機器學習套件.


參考 :

Change the Python3 default version in Ubuntu
How to make 'python' program command execute Python 3?
Configure Python 3 as default on Ubuntu

2020年5月27日 星期三

ACER Swift 5 筆電鍵盤維修

今天下午將列印出來的維運技術資訊塞入透明夾後, 隨手就放在辦公桌的書堆上, 沒想到竟然滑下來敲到 Swift 筆電鍵盤的括號鍵 (" 鍵), 結果它的上方蓋就翹起來了, 取下來一瞧, 似乎是裡面微小的塑膠桿斷裂, 沒辦法固定鍵蓋了. 打電話給建國路的 ACER 維修中心, 我問說可否只換一個鍵? 工程師說他們是經銷商只能換整個鍵盤, 建議我去九如路的直營維修中心看看有沒有單一零件可換 : 高雄市三民區九如二路595號 07-3232585.

晚飯後天氣仍然晴朗無雨, 騎過去問櫃台, 說是要留機, 明天再通知取回. 結果剛回到家就接到工程師電話說已經好了, 所以又再跑一趟, 因在兩年保固內 (2019 年 1 月買的), 所以是免費更換. 經此事件, 我才發覺原來鍵盤每個鍵底下結構居然那麼精細, 所以不要在筆電上方附近放容易墜落之物, 走開不用時要闔上蓋子.


2020-05-30 補充 :

我現在每天學習讀書做測試都少不了這台 ACER Swift5 筆電, 所以必須好好愛惜, 讓它長久耐用提高 CP 值才行, 畢竟去年 1 月花了 36000 買來的, 不便宜啊! 用到現在近 1 年半, 基本上對寫程式上網等效能還算滿意.

好書 : Nanobrain: The Making of an Artificial Brain from a Time Crystal

今天在亞馬遜看到一本很吸睛的書 :

Nanobrain: The Making of an Artificial Brain from a Time Crystal


Source : Amazon


人造大腦? 時間晶體? 是科學怪人的狂想曲嗎? 時間晶體我是第一次聽到, 經過 Google 一番後找到如下資料 :

# 維基 : 時間晶體
# In Search of Time Crystal
A new, theoretical type of time crystal could run without outside help

原來時間晶體還是一個相當新的物理學理論, 源自麻省理工學院教授維爾切克 (Frank Anthony Wilczek, 2004 年諾貝爾物理學獎得主) 於 2012 所提出的概念, 目前已有實驗團隊發表成功創造出時間晶體的研究報告刊登於自然等期刊.

一般晶體中的原子在空間結構中依某種特定規則呈週期性重複排列, 時間晶體與此類似, 但不同的是, 時間晶體是在時間上呈週期性重複. 一般晶體是三維的物體; 而時間晶體則是四維以上的晶體, 具有時空的週期性結構, 而且因為處於最小能量狀態, 遵守能量守恆定律, 隨著時間推進無法與環境取得熱平衡, 因此將呈現永動狀態. 換言之, 時間晶體是一種不消耗能量的自發震盪, 參考 :

# 沒有摩擦的自發振蕩「永動機」- 量子時間晶體

以前永動機概念被物理學家斥為不可能, 因為它違反熱力學定律, 現在時間晶體卻可以? 其實時間晶體只是符合永動的定義而已, 其能量似乎無法利用 (需加入額外能量), 已知的應用之一是量子時鐘, 至於拿來建造人工大腦, 嗯, 就要看看此書作者怎麼說了. 作者 Anirban Bandyopadhyay 是印度人, 目前是茨城縣日本國立材料科學研究所的高級研究員.

購買 AOC 20E1H 19.5 吋 LED 螢幕 (HDMI)

為了在我的五斗櫃實驗桌上測試樹莓派與 Jetson Nano方便, 打算買一個有 HDMI 輸入介面的液晶螢幕, 經過搜尋露天賣場, 找到下面這款 AOC 的 19 吋螢幕很可以 :

【酷3C】全新 AOC 20E1H 19.5吋 HDMI 螢幕 螢幕 LED螢幕 $2050
【子震科技】AOC 20E1H(1A1H/1億/5ms/TN)20吋LCD螢幕 $2250
福利品 非宜花東/偏遠加價地區可免運 含稅 艾德蒙 AOC 20E1H 20型不閃屏 螢幕 $1800




此螢幕尺寸 38(高)*46(寬)*20(深) cm (含底座高度), 實際螢幕尺寸約 44(寬)*24(高)*2(深) cm, 剛好可以用壁掛方式鎖在五斗櫃上方以節省空間, 壁掛架上周已買, 參考 :

購買液晶螢幕壁掛架

2020-05-30 補充 :

已在牆壁上定位四個鑽孔點, 下周要從鄉下帶電鑽來施工.

2020年5月26日 星期二

購買 Kinyo 藍芽無線滑鼠

最近覺得去年四月買的 Logitech 藍芽滑鼠用起來怪怪的, 主要是壓住左鍵標記文字想複製時會跑掉, 要在尖端用力按住才行, 可能接觸開關已經兩光了. 雖然除了標記障礙外其實還能用, 但還是上露天買個新的 :

全新原廠保固一年KINYO藍芽3.0智能省電無線滑鼠(GBM-1800) $248

含運 248+60=308 元.




我以為羅技的可以用很久, 沒想到才一年就 GG 了, 看來是消耗品所以改買 Kinyo 的.

2020-05-29 補充 :

今天取貨回來測試, 按照說明書指示, 在 Win10 中新增藍芽裝置 (滑鼠), 然後按住滑鼠底板的按鈕 3~5 秒使其配對, 但試了好幾次都沒出現 Bluetooth Mouse, 去還書回來再試就 OK 了, 奇怪. 與羅技的藍芽滑鼠比起來, 按鈕聲音較大些, 價差一半也不要太苛求啦, 反正消耗品用得順就好, 可能較厚的關係, 握起來手感不錯, 滑起來也很靈敏.

2020年5月25日 星期一

Nvidia Jetson Nano 測試筆記索引

今年二月初突然想起 2019 年中買的輝達 Jetson Nano 開發板尚未裝機, 就抽了點時間下載 Ubuntu 映像檔來安裝, 但僅僅做了初步設定就忙別的而暫停. 今天在書上看到 Ubuntu 想起來, 回家找出主機擦拭一番, 並將之前的測試筆記整理索引如下 :

Nvidia 推出 99 美元的迷你 AI 電腦
輝達 Jetson Nano 開箱
Nvidia Jetson Nano 測試筆記 (一) : 安裝設定
Nvidia Jetson Nano 測試筆記 (二) : 安裝 VNC 伺服器
Nvidia Jetson Nano 測試筆記 (三) : 用 WIN10 遠端桌面連線存取桌面
Nvidia Jetson Nano 測試筆記 (四) : 安裝機殼
# Nvidia Jetson Nano 測試筆記 (五) : 安裝 Python 3


~進行中~

PS : 因為也是 HDMI 介面, 看來是改買個 HDMI 介面的壁掛液晶螢幕了.

2020年5月24日 星期日

PHP 學習筆記索引

我大約是在 2009 年初開始棄 ASP 轉學 PHP 的, 之後也搭配 jQuery UI 寫了一個自用的簡易 CMS 系統, 然後使用 PHP 撰寫爬蟲, 但近年來因為學習 Python 之故改用 Django 架站, PHP 就較少用了, 只有在維護租用的 Hostinger 虛擬主機時偶而用到而已.

雖然不常用, 還是將過去零零星星撰寫的 PHP 相關筆記整理如下, 方便要用到時複習 :

測試 jQuery 的 Ajax 方法 load()
顯示原始碼的 PHP 程式
產生 jQuery UI 日期選取器的 PHP 函式
產生 jQuery UI 按鈕與訊息盒的 PHP 函式
產生 jQuery UI 日期時間選取器的 PHP 函式
產生 jQuery UI DataTables 表格套件的 PHP 程式
用 PHP 計算複利與年金終值
MySQL 模擬 SELECT TOP 20 PERCENT * 指令的方法
網頁資料擷取易容術
PHP 從日期字串求星期幾的方法
判斷 MySQL 是否找到紀錄的方法
如何讓網頁不會被 cache
PHP 計算日期差距的方法
變異係數與標準差
年複合成長率
用 PHP 求線性迴歸方程式
用 PHP 計算樣本相關係數
PHP 與 Javascript 變數的 Scope
phpMyAdmin 如何設定自動增量主鍵
PHP 行動裝置偵測
如何將 Javascript 的陣列轉換為 PHP 陣列
如何取得 MySQL 聚合函數 (Aggregate) 的傳回值
用 PHP 計算移動平均線 MA 與指數移動平均線 EMA 的方法
# PHP 的 $_GET, $_POST, 與 $_REQUEST 測試
Easyui 測試 : Combobox 下拉式選單
關於 MySQL 中使用 AVG 聚合函數與 LIMIT 的問題
從 IP 查來源國家 (一)
從 IP 查來源國家 (二)
EasyUI Datagrid 中超連結的編輯問題
擷取期交所小型台指期 (MTX) 每日行情的方法
PHP 日期字串格式轉換方式整理
EasyUI Datagrid 表格內容為超連結時的編輯問題
# 如何剖析不標準的網頁
撰寫 PHP 網頁爬蟲程式的注意事項
如何比對 PHP 陣列的元素
Hostinger 主機運算資源限制與 PHP 效能優化
如何更改 Easyui Datagrid 的分頁選單 pageList 設定
在樹莓派上架設 PHP+MySQL 網站伺服器
在樹莓派上利用 sSMTP 傳送郵件的方法
PHP 陣列出現 Notice : Undefined offset 警告的解決辦法
證交所上市櫃股票列表
證交所信用額度總量管制餘額表
phpMyAdmin 載入資料庫逾時問題
安裝 XAMPP PHP 架站工具包
XAMPP 最大執行時間 (max_execution_time) 問題
PHP Curl 出現 Notice: Undefined index 警告問題
PHP 學習筆記 : 自訂函數
申請免費 PHP 虛擬主機 000a.biz 與 000webhost.com
網頁技術速學筆記 (五) : PHP 動態網頁 (1)
PHP 學習筆記 (一) 變數
順勢操作的停損線向上移動法
樹莓派安裝 Apache2+MySQL+PHP7
測試 jQuery 的 Ajax 函數 $.ajax()
jQuery 的工具函數測試
jQuery 的 Ajax 捷徑函數測試

~進行中~

2020 年第 21 周記事

本周雨彈來襲, 雖然現在都開車上班載菁菁上學, 但雨勢大時上下車還是會被淋濕, 週五早上菁菁還說想請豪雨假, 我說不要隨便請假, 結果臉臭臭的去上學; 我到公司一下車被雨淋到褲管半濕, 突然覺得好像應該請休一天才對.

豪雨災情慘重, 國中同學的木瓜園造大水, 木瓜樹倒了不少, 每年都要蒙受損失, 務農看天吃飯實在無奈. 昨天回鄉路過岳父的農舍, 進去才發現兩棵多產的木瓜樹倒了一棵, 被岳父鋸掉了, 樹根雖歪斜所幸還連著土壤, 復活再抽芽的機會頗高. 從鋸開的樹身我才知道原來木瓜樹裡面居然是空心的.

水稻災情也很慘, 再過一兩周就是收割時節, 卻被狂風暴雨摧折而倒地, 早上一大早就有農會的人騎車進來曬穀場照相, 應該是查證農損情況. 還好今天放晴了, 有些人家已迫不及待先收割再說, 不然下周另一波來襲恐怕血本無歸.

前幾天在露天買的 14 個不鏽鋼保鮮盒周六到貨帶回鄉下, 本周起就不再幫爸滷冬瓜封了, 改成配冷凍生菜, 爸午晚餐直接用電鍋蒸熟即可, 這樣不僅可變換菜色, 而且所花的時間更少, 以前製作冬瓜封要花掉一整個下午.

常用配菜 :
  1. 蘆筍
  2. 南瓜
  3. 地瓜
  4. 洋蔥
  5. 娃娃菜
  6. 玉米筍
  7. 秋葵
  8. 水煮蛋
  9. 刺瓜
  10. 水餃
  11. 胡瓜
  12. 彩椒
  13. 茄子
  14. 苦瓜
原本計畫今天要安裝太陽能板支架, 但氣候不穩, 所以下午先去小漢五金買了 L 型鋼片, 並詢問角鋼價格, 買 10 尺 220 元的亞角鋼就可以了, 雖然基本上是不鏽鋼, 但保險起見還是要上油漆. 兩塊能板 (167*100 cm) 併在一起需用掉四條 10 尺亞角鋼裁切為如下四條 :
  1. 170*2條
  2. 200*2條
裁切後分別剩下 130*2條與 100*2 條, 前者可用來裁成 65*2 條支柱, 後者可用來裁成四條上方固定條.

市圖還書 2 本 (LinkedIn/易經)

本周到期還書兩本 :
  1. 我用LinkedIn找到高薪國外工作 .2018個人品牌升級版
  2. 易經與命理全是自然科學
最近才從館員口中得知一般會員借書已放寬為 30 本, 家庭卡 60 本, 好是好, 但這樣一來我會越借閱多,

2020年5月23日 星期六

好書 : Arduino Cookbook 第三版

歐萊禮這本經典好書從 2011 年發行第一版以來就被視為 Arduino 學習的聖經, 我剛開始學 Arduino 就是從圖書館借這本書的中譯本開始的, 書中的程式碼都是可以發揮即戰力的實用參考範例, 我大部分都有實際跑過. 好消息是此書已在四月份推出了第三版 :

# Arduino Cookbook, 3rd Edition


Source : Oreilly


從目錄來看, 雖然整體還是維持 18 章不變, 但此版增修了非常多內容, 其中的亮點是在第 15 章新增了便宜的 WiFi 模組 ESP8266 的用法, 可見 ESP8266 已經奠定了低成本物聯網模組的關鍵地位. 此外此版也改寫或刪除了許多章節, 例如早已被併購的 Pachube 服務, 也增添了越來越火紅的 MQTT 協定等.

雖然說在物聯網終端模組的選擇上我早已改用 ESP32, 但 Arduino 在價格與教學上仍然具有其優勢, 尤其是 Arduino IDE 開發工具也可以用來開發 ESP8266/ESP32 應用就非常棒, 因為裡面內建了非常多範例可以直接套用修改, 只是 C 語言對於非科班的人來說還是形成一道障礙, 如果未來 Arduino IDE 可以做到 C/MicroPython 雙重支援的話那就無敵了.

ESP8266 WiFi 遙控滑翔機

今天在搜尋固定翼無人機資料時找到下面這篇文章, 讓我有股馬上動手做的衝動 :

# ESP8266-based WiFi-controlled DIY Model Airplane

這篇文章是印度電子工程師 Ravi Butani 用不到 15 美金, 以 ESP8266 自製的固定翼滑翔機 (park flyer), 以安裝於 Android 手機上的 App 透過 WiFi 遙控, 所用之鋰電池可讓飛機在空飛行 15 分鐘. 因為 ESP8266 使用電路板天線, 故遙控距離為 70 米以內. 原文發布於 Instructable :

DIY WiFi Controlled Tiny Plane <15$


Source : Youtube


安裝於 Android 手機之 App 利用 WiFi 的信號強度指標值 (RSSI) 來監督飛行距離, 當 RSSI 低於 -95 dBm 時手機會震動, 提醒操作者讓飛機返航. 其次, 當鋰電池電壓低於 3.7v 時, 手機也會震動提醒盡快讓飛機落地以免墜機. 此 App 設計採體感操控, 亦即手機朝左右偏斜時飛機也分別朝左右轉向.

此飛機的電路設計非常簡單, 沒有使用電變, 而是直接由 ESP8266 透過 GPIO 以 PWM 控制兩個馬達的推力, 因此整個飛控核心是放在 ESP8266 程式上. ESP8266 需燒錄名為 wifiplane_esp8266_esp12e.bin 的飛控韌體 :

wifiplane_esp8266_esp12e.bin

而手機則需安裝名為 wifiplane.apk 之 App :

wifiplane.apk

不過目前還沒有時間玩, 先記錄下來備查.

2020年5月22日 星期五

好站 : 到日本當軟體工程師的入門指南系列

今天在找 ESP32 的藍芽資料時偶然看到陳小熊在 iT 邦幫忙鐵人賽寫的系列文章, 讀完後覺得可以推薦給二哥參考 :

# 到日本當軟體工程師的入門指南系列

二哥這幾天有跟我討論未來工作型態的問題, 例如恩智浦, 台積電這種公司可能要輪三班; 走資工研發則是要加班, 我其實比較傾向軟體 IT 方向, 寧可加班也不要輪班. 雖然過去以代工為主的產業型態, 軟體人才待遇與歐美比起來遠遠不如, 但隨著產業朝智慧與自動化升級, 將來 IT 人才會供不應求.

由於我第一份工作是 ASIC 設計工程師, 在設計後期為了 post simulation 必須去日本三菱電機出差, 那時在大阪前後生活了半年左右, 覺得還蠻喜歡在日本工作的感覺, 甚至還曾計畫考松下或交流協會獎學金去日本讀書哩! 今天讀了陳小熊的文章後, 那時的日本印象頓時又鮮活起來.

要在日本生活與工作當然要懂一點日文, 我在學校時對日文就特別用心, 日語對話馬馬虎虎, 在大阪工作的半年裡, 我大部分都是用英文跟三菱電機的工程師溝通, 下了班去超市買東西才會用到簡單的日文. 後來我也去地球村學過日文, 考過舊日檢四級, 作者大三就考到 N1 實在太厲害了.

Garmin nuvi 4592R 軟體與地圖更新問題

我在 2016 年底用福利社購物金買的 Garmin nuvi 4592R 使用至今非常滿意, 經常上網更新圖資的話, 導航與超速照相警告提示精確度都還蠻高的, 但昨天在車上用手機連網進入應用程式 "下載中心" 欲進行更新時, 按下確定鍵卻毫無動作 :





打電話給 Garmin 客服 (02)2642-9199, 說可能主機 WiFi 信號較弱, 建議我在電腦安裝 Garmin Express 軟體, 透過電腦安裝應無問題. 軟體下載網頁 :

https://www.garmin.com/zh-TW/software/express/windows/ (約 114 MB)

安裝好 Garmin Express 好將導航機直接連接到 PC 的 USB 插槽 (不要透過 USB 分享器), 然後執行 Garmin Express, 新增裝置並註冊後即自動下載軟體與圖資, 參考按照下面這個影片 :

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






這樣就完成更新了.

2020年5月21日 星期四

購買樹莓派用的無線網卡 EW-7811Un

這幾天在測試新版樹莓派 Raspbian Buster 作業系統時, 發現之前用來給 Pi Zero 連網用的迅捷 FW150US (強國製) 沒辦法使用, 用 wget 安裝驅動程式的網址已不存在, 雖然有找到之前備份的驅動程式檔案 8188eu-20160305.tar.gz, 但在 Raspbian Buster 系統下安裝會出現錯誤 (下 insmod 指令時), 參考 :

樹莓派的 Wifi 設定 : 使用迅捷 FW150US

我手邊有兩塊 Pi Zero 與一塊 Pi A+, 如果沒有無線網卡連網的話就沒辦法用而近乎報廢了 (單機有啥意思呢). 需要安裝驅動的設備實在太麻煩, 我想有沒有樹莓派 Raspbian 內建就已支援, 不需安裝驅動即插即用的網卡呢? 我在台灣樹莓派找到這款信舟 EDIMAX 的 EW-7811Un 據說是可以的, 想買來試試 :

無線網路卡 – EW-7811Un

"EW-7811Un,其效能、樣式簡直像是專為 Raspberry Pi 而生,將 EW-7811Un 置入樹莓派,完全相容、免驅動、裝上就能用、低耗電、高速11n,好處多多,更別說EW-7811Un全球最小體積,鍍金接口和極簡的樹莓派有多麼地相襯。"

但 288 元有點小貴, 我在露天找到這賣家的一顆才 100 元 :

EDIMAX 高效能隱形USB無線網路卡(EW-7811Un)V1.0A_2013年出廠_已過保_低價出售 $100

我只要買 3 顆給兩片 Pi Zero 與一片 Pi A+ 用即可, 含運 360 元.




參考 :

How to Set up the Edimax EW-7811Un USB WiFi Adapter on Your Raspberry Pi
RPi USB Wi-Fi Adapters


2020-05-24 補充 :

今天到貨領回來測試 OK, 在 Raspbian Buster 2020.1 版上直接插到樹莓派自動就找到網卡, 不需安裝驅動程式, 這張卡實在太棒了.

2020-05-25 補充 :

雖然 FW150US 沒辦法在 Raspbian 即插即用, 但今日在輝達 Jetson Nano 的 Ubuntu 上卻可以, 可見這是作業系統有沒有內建其驅動程式的問題.

2020年5月20日 星期三

關於樹莓派 Pi 3A+ no wireless interface found 問題

上週在 Pi Zero W 上順利安裝了 Raspbian Buster, 因為此板內建 WiFi, 因此初次開機設定重啟後, 按右上角的無線連線 wlan0 即可選擇無線基地台. 但今天拿出去年買來卻一直未開機測試的 Pi 3A+, 燒錄同樣的 Buster 映像檔重開機後, 點右上角的無線連線 icon 卻顯示 "no wireless interface found", 無線網卡沒起來, 根本無法選擇基地台.




開啟終端機, 用 ifconfig 查詢網路介面, 只有 loopback (lo) 而已, 沒有 wlan0 :

pi@raspberrypi:~ $ ifconfig 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 9  bytes 524 (524.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9  bytes 524 (524.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

花了一整晚研究這問題, 測試了網上各種解決辦法都沒有效, 奇怪, Buster 在 Pi Zero W 上沒問題, 難道這是 P3 A+ 板子的問題? 我找到下面這篇台灣樹莓派論壇的教學文章, 說 2018 年新版 Raspbian 作業系統的無線網路設定檔 /etc/wpa_supplicant/wpa_supplicant.conf 中拿掉了 WiFi 的國家設定 :

[教學] 啟用 Pi 3B+的WiFi

我檢視此檔原始內容只有兩行 :

pi@raspberrypi:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

進入桌面系統的 "偏好設定/Raaspberry Pi 設定" :




切到最右邊 "在地化", 按 "設定 WiFi 國家", 在下拉式選單中選擇國家為台灣, 按確定即可 :




也可以在終端機下 sudo raspi-config 去設定 :

pi@raspberrypi:~ $ sudo raspi-config

選 "Localization Options" : 




選 "Change WiFi Country" :




選擇 "TW Taiwan" 按確定即可 :




再次檢查 /etc/wpa_supplicant/wpa_supplicant.conf 就會出現國家設定了 :

pi@raspberrypi:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=TW 

然後還要去修改網路介面設定檔 /etc/network/interfaces, 加入 wlan0 設定, 其原始內容為 :

pi@raspberrypi:~ $ sudo cat /etc/network/interfaces 
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback

要加上如下內容 :

allow-hotplug wlan0
auto wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

pi@raspberrypi:~ $ sudo nano /etc/network/interfaces
pi@raspberrypi:~ $ sudo cat /etc/network/interfaces   
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback

allow-hotplug wlan0
auto wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

存檔後重開機就可以看到 wlan0 了, 可以在桌面右上角選取無線基地台, 設定 SSID 與密碼, 也可以參考下面這篇去修改無線網路設定檔 /etc/wpa_supplicant/wpa_supplicant.conf, 在 network 參數中加入 ssid 與 psk 密碼  :

Raspberry Pi 3 'No Wireless Interface Found'

pi@raspberrypi:~ $ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 
pi@raspberrypi:~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=TW

network={
ssid="TonyNote8"
psk="123456"
}

參考 :

[教學] 啟用 Pi 3B+的WiFi
RPI 3 B+ No wireless interfaces found
Raspberry Pi 的基礎 - 使用 Wi-Fi 無線網卡連上網路
Raspberry Pi Wi-Fi & Bluetooth Setup - How to Configure your Pi 4 Model B, 3 Model B and 3 Model B+ Connectivity

2020年5月19日 星期二

好書 : Introduction to Programming in Python: An Interdisciplinary Approach

Python 的入門書目前可說汗牛充棟, 但下面這本 Addison-Wesley 出版的 "跨學科" (interdisciplinary) Python 入門書與眾不同, 書中範例涵蓋材料, 航太, 生物科學, 網路系統等領域, 目的是強化一個概念 : 數學, 科學, 工程, 以及運算這四個領域是緊密關聯在一起的. 在上一個千禧年時代, 基礎教育是以培養 "閱讀, 寫作, 算術" 能力為學科目標, 但作者認為現在必須改為 "reading, writing, and computing", 這裡的 computing 是指運用程式進行計算的能力.


Source : Amazon


此書三個作者都是普林斯頓資工系教授, 書中附有大量習題, 除了可作為大一新生的程式寫作教科書外也適合自學. 此書最大的亮點是作者附加了演算法概念以及提示語法應用上可能的盲點. 書中範例可從此書網站下載 :

https://introcs.cs.princeton.edu/python/home/

購買不鏽鋼保鮮盒

因為上周菁菁說阿公每天吃燉滷的菜會吃膩, 所以我打算不滷菜了, 改幫爸準備不同配置的冷凍生鮮菜魚肉等, 每餐用電鍋蒸熟即可, 容器則是用不鏽鋼保鮮盒, 經過在露天比價市調後, 決定向台南 mami 的魔法廚房購買 :

韓版加厚正304不鏽鋼保鮮盒 便當盒 密封保鮮盒 烤模*通過SGS檢驗*可當內鍋.烤模*mami的魔法廚房 長方形 550ml : $95*14=1330+65=1395

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




Youtube 有許多楊桃文化上船的電鍋料理做法可參考.

2020年5月18日 星期一

免費電子書 : Kalman and Bayesian Filters in Python

最近對卡爾曼濾波器很感興趣, 因為在飛航控制的應用非常多. 今天找到很棒的卡爾曼濾波器 Python 實作資料, 是矽谷工程師 "Roger Labbe" 寫的一本如何用  Python 實現卡爾曼濾波器的免費電子書, 下載網址如下 :

Kalman and Bayesian Filters in Python

Roger Labbe 將許多濾波器包含卡爾曼全都寫成 FilterBy 類別, 教學文件如下 :

https://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html

程式碼寄存於 GitHub :

https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python

還有人為此書寫下讀書筆記, 參考 :

读书笔记-学习《Kalman-and-Bayesian-Filters-in-Python》

要好好來探索一下 FilterBy 的用法, 數學原理可以慢慢研究沒關係, 希望早點應用到樹莓派無人機的飛行控制上.


2020 年第 20 周記事

上上週過了立夏之後天氣馬上明顯變熱, 晚上都得打赤膊睡覺, 但早上起來還是滿身大汗得再沖一次澡. 天氣熱對疫情應該也有幫助, 到本周陳部長已吃石斑魚矣. 但疫情一趨緩, 一大堆人就迫不及待擠景點與賣場, 竟然還很多人不戴口罩, 真以為天下太平了是嗎? 猴急最容易出錯.

上週四晚上打電話回鄉下時響很久爸都沒接, 由手機連線客廳監視器燈有開, 但外面四支監視器卻無法連上, 一直到八點多打給小舅, 想問看看是不是有請爸去他家吃晚飯, 小舅說沒有, 但他可以過去看看, 結果原來爸跟鄰居在外面曬穀場聊天沒聽到電話鈴聲. 監視器主機故障問題必須趕快解決. 週日早上接到婷婷電話, 說阿旺哥要去她家估價, 因小舅家的主機也故障了, 所以順便請阿旺哥中午來家裡檢視一下. 結果主機真的壞了, 換上三年前買的海康 SD-7208 主機後可看到監視影像, 但網路連線問題卻卡在密碼無效而停住. 後來問小安才進入 admin, 但我忙了一個下午還是無解, 下周再研究看看用 virtual sever 是否可行. 但至少監視器恢復正常錄影了.

上週種植的 30 株大陸妹經過上周三的狂風暴雨摧殘只剩下約 1/3 存活, 我發現天氣變熱之後大陸妹越來越難種, 鎮上種子行的老闆娘也說月底後就不育苗了, 要等秋天. 所以本周就改買 30 株空心菜以及五株秋葵來種, 因為夏秋是雨季, 這個時節只有空心菜與地瓜葉最不怕雨, 雨水多反而長得越嫩. 空心菜採收時只要留下根部, 雨水一來又會重新長出葉子來.

爸說下個月夏季電費要來了, 我的太陽能板何時才會完成? 這件事最近都擱下來, 一定要有點進度才行, 週日下午上去頂樓勘查地形, 順便量板子大小以決定支架要怎麼做. 這兩塊能板尺寸是 167*100*4 cm, 打算參考旁邊太陽能熱水器支撐架設計 :







方位角朝正南方 10 度以內均可, 傾斜角取 23 度, 因高雄市緯度北緯 23.28 度, 緯度 25 度以內傾斜角等於緯度, 參考 :

如何巧用方位角和傾斜角增大光伏發電量?

柱高=167*sin(23)=65.25 cm

上週看完 "謗法" 之後由 "夫婦的世界" 接檔, 本周已看到第十集, 這部真的超級灑狗血, 可說是韓版的 "炮仔聲" (但緊湊精緻些), 難怪打敗 "天空之城", 登上新的韓國電視收視率冠軍紀錄寶座. 此劇探索的元素很多, 謊言, 婚姻, 外遇, 報復, 政商勾結, ... 令人不得不繼續往下看.