|

【開箱評測】Adafruit Memento Camera Board潛力探索

   

作者:陸向陽

圖1 Adafruit的Memento Camera Board(攝影:陸向陽)

 

一片Wi-Fi/BLE收發器(同時也是顆MCU)模組加一片影像感測器(攝影機)模組能幹嘛?答案是各種樂趣應用,例如可以做出陪伴型機器人、智慧門鈴或智慧餵鳥器。

Adafruit的Memento Camera Board(以下簡稱Memento)正是一片結合Wi-Fi收發模組、攝影機模組的開發板,以下筆者將逐層解析這片開發板,從基礎工程層面到創客應用層面。

Adafruit Memento Camera Board硬體組成解析

Memento的主控是一片上海樂鑫訊息(Espressif Systems)的ESP32-S3-MINI-1模組,模組上除了ESP32-S3晶片(Wi-Fi/BLE收發MCU)外也在封裝內包入了2MB PSRAM(提供更大運算空間因應較複雜的應用,如影像處理)與4MB Flash(用於儲存韌體),模組板上則有印刷電路板(PCB)式的收發天線。

Memento上另一個重點是豪威科技(OmniVision)的OV5640影像感測器(CMOS Image Sensor, CIS)模組,並具有JPEG編碼器、自動對焦馬達,OV5640提供近5百萬畫素(2560 x 1920)的影像。

開發板上其他的配置還有LIS3DH加速度感測器、類比麥克風、蜂鳴器、microSD記憶卡卡槽、1.54吋TFT LCD液晶螢幕(解析度240 x 240,充當拍照觀景窗)、6個使用者按鈕(上下左右、選擇、OK),2個Stemma連接器、1個Stemma QT(I2C)連接器。
其他還有電源開關、重新開機按鈕、快門按鈕、電池連接器、USB-C連接器(供電、電池充電與電腦傳輸)以及相關的LED燈號,另外若想透過UART埠探知開發與運作上的更多細節,Memento板子上也留有一組RX/TX孔位,焊上線路即可使用。

雖然ESP32-S3晶片本身有多達39支GPIO接腳,但要連接如此多感測器與提供連接器仍嫌不足,故板子上也用上一顆艾為電子(Awinic)AW9523 GPIO擴充晶片,以I2C介面與主控晶片相連,提供額外的I/O接腳操控。

以上是Memento板子的構成,但板子只是主體,Adafruit還為Memento設計相關配件,包含可裝於板子前後的覆蓋、鋰電池(350mAh或420mAh)等,前覆蓋還設置一圈環繞的LED燈號,用來提供拍攝時的補光。配件屬於選購,不含在Memento的主體購買內。

圖2 除左上角的Memento Camera Board其餘部份均是選購或使用者自購(圖片:Adafruit)

韌軟體設計

由上可知Adafruit用心設計Memento的硬體,使ESP32-S3更適合影像相關應用,然而更重要的是韌軟體設計,Memento內建的韌體可引導開機,並已經內建一些拍照應用的基本功能,例如切換解析度、使用濾鏡(Filter)等。

接著是開發在Memento上執行的應用程式,方法有兩種,一是用Arduino IDE以C/C++語言進行開發,不過Adafruit相關文件不建議使用Arduino開發,因為編譯時間會相當長;另一是用CircuitPython進行開發,Adafruit推薦此法。

附註:筆者也嘗試用Arduino IDE連接Memento,基本上要在開發板管理員(Board Manager)上新增非Arduino官方的開發板程序上都會稍複雜些,但Memento會再複雜些,需要安裝Git以Git Clone指令複製特定檔案與目錄至本機端才能順利新增。至於新增開發板對應的函式庫則按照一般程序即可,並且會自動順帶安裝相依的軟體元件。

圖3 若要用Arduino IDE開發Memento,在Board Manager新增階段需使用Git特別程序(圖片:Adafruit)

由於把Memento用USB-C接上電腦後就會顯現一個磁碟槽,因此只要下載Memento對應的 .uf2檔案,將檔案拖放到磁槽的根目錄內,就完成了CircuitPython直譯器的安裝,後續創客只要把自己寫的CircuitPython程式改名成code.py,並同樣拖放到磁槽根目錄,另外也拖放函式庫的目錄(資料夾)到槽內,就完成了將程式從電腦傳遞(或稱為上載Upload)到開發板上的動作。

圖4 先至CircuitPython官網下載Memento對應的直譯器,筆者選擇Chinese (Pinyin) 中文拼音版,其實訊息是看不懂的,建議還是用英文版,然後選擇下載 .uf2檔案(圖片:陸向陽)

 

圖5 初接入電腦的Memento會顯示一個名為CAMERABOOT的磁碟代號(英文字母編號視電腦而不同)(抓片:陸向陽)

 

圖6 等待拖放直譯器 .uf2檔案時顯示的畫面(攝影:陸向陽)

圖7 將 .uf2檔案拖放到CAMERABOOT後就會起變化,一樣是I槽,但名稱變成CIRCUITPY,表示成功裝入CircuitPython直譯器(抓圖:陸向陽)

 

圖8 從CAMERABOOT變成CIRCUITPY,Windows也會認定成不同的新裝置,COM編號從12變成13(抓圖:陸向陽)

了解上述程序後,其實不用急於投入CircuitPython程式開發,因為Adafruit已經提供數個已經開發好的CircuitPython影像應用程式可用,例如基本功能的Basic Camera,或是比較酷炫的Fancy Camera等。

圖9 筆者刷入現成CircuitPython範例影像應用程式Basic Camera後的操作畫面(攝影:陸向陽)

 

這些影像應用程式除了是以CircuitPython程式語言撰寫成之外,程式內容也呼叫了Adafruit的PyCamera函式庫,在GitHub上Adafruit也分享了更多以PyCamera函式庫撰寫成的範例程式可供參考,如TimStamp、Viewer等。

這些範例程式已經可以玩出許多影像特效,例如慢動作、縮時攝影等,在設定、操作與體驗這些範例程式後,也可以先簡略看一下範例程式的原始程式碼,後續可以修改程式。

更之後,若希望更完整學習技能,可以開始學習CircuitPython程式語言,然後學習其核心模組、標準函式庫,再學習影像專用的PyCamera函式庫,如此就能自己開發撰寫影像應用程式。

要注意的是,CircuitPython雖然廣泛支援677片(至2026年10月上旬)不同業者、不同型款的開發板,但CircuitPython的模組、函式庫所適用的開發板各異,開發前建議事先查詢確認。舉例而言,同為CircuitPython 10.3.1版Memento目前約可用90多個模組,而有一片開發板µGame則為40多個模組。

另外,範例程式會依據CircuitPython 9.x、10.x、11.x提供不同對應版本,已經安裝到Memento上的CircuitPython直譯器是哪個版本,則應當對應執行哪個版本的範例程式,以Memento而言(10月上旬)目前最新版為10.3.1,11.x版仍在Alpha階段,建議直譯器與範例程式都一致使用9.x或10.x版。

圖10 以範例程式FocusStack為例即提供CircuitPython 9.x、10.x、11.x三種直譯器對應的版本(抓圖:陸向陽)

 

圖11 CircuitPython官網顯示Memento可以使用的CircuitPython核心模組,10.3.1版中約92個(見圖中左下所列文字)(抓圖:陸向陽)

 

圖12 使用CircuitPython開發的好處之一是可以在網頁上逐行下令與直譯器互動,這是Arduino IDE無法的,然此僅適合初學摸索之用,筆者因為用中文拼音版,故文字訊息不易解讀(抓圖:陸向陽)

 

圖13 筆者使用黃色濾鏡效果的拍攝畫面,解析度選擇640 x 480(攝影:陸向陽)

 

圖14 筆者建議的Memento學習、開發程序(依據編號)(繪圖:陸向陽)

實作細節

了解軟硬體概要後,實際上還有許多實施細節要注意,例如Memento幾乎必須裝microSD記憶卡才能用,而Memento最高只支援32GB容量的卡,目前市面上仍可買到16GB、32GB記憶卡,更高容量則不建議。

其次,相關說明也提及建議格式化成FAT32檔案系統,如此CircuitPython與Arduino均能用,Arduino開發也可支援更早期的FAT16。

雖然是FAT16/32等常見的檔案系統,但說明也不建議直接操作一般個人電腦的作業系統來對記憶卡格式化,建議下載、安裝與使用SD Association官方原廠的工具程式進行格式化。

另外個人經驗,筆者曾拍完最後一張照後立即關機,結果最後一張照變成亂碼,建議拍完仍等一段時間再關機,讓影像資料有時間回寫到記憶卡內。

圖15 未能及時寫入的亂碼圖片(攝影:陸向陽)

相關的細節還有:建議Memento盡可能直接透過USB-C與電腦直接連接,中若透過USB Hub有可能產生變數,或者某些Memento出廠預設的韌體不支援LED Ring(補光LED環,即前述的選購配件),須升級韌體才行。

潛在與現行專案應用

最後,單純體驗影像應用程式、撰寫影像處理功能仍可能無法滿足創客,以下也提供三則Memento應用供參考:

1. 陪伴機器人

Hackstor.io網站上有一個專案在打造一個家庭陪伴機器人Digi-Home,可以提醒家庭成員待辦事項、監控與遙控家電、陪伴老人等,該專案的主控板是Arduino Nano R3,但攝影部份則使用Memento,Memento在此專案中扮演受控的子系統角色。

圖16 家庭陪伴機器人Digi-Home機內使用Memento為其攝影子系統(圖片:Hackstor.io)

2. 智慧門鈴

智慧門鈴是Adafruit原廠手冊中建議的應用,目前尚未找到是否有公開的專案。智慧門鈴意指有人按下門鈴後攝影機便開啟,可以用Wi-Fi即時傳遞影像到居家內成員的手機上,以及啟動一段時間的錄影,以便之後可以回調影片知道誰曾來過(掛號未收、純小孩惡作劇)。

智慧門鈴確實是具潛力的應用,2018年Amazon以10億美元收購智慧門鈴商Ring,或小米也推出智慧門鈴等,創客自己實作也會很有趣。

3. 智慧餵鳥機

智慧餵鳥器(IoT Bird Feeder with Camera)是DigiKey Maker.io網站上的一個專案,由Adafruit供稿,專案真正實作者是Ruiz兄弟外加另一名創客。餵鳥器是用Memento連接電池(2,200mAh,並非原有的配件規格)與PIR紅外線感測器,而後將其裝設在樹枝上。

圖17 用Memento建構出物聯網智慧餵鳥器(圖片:DigiKey)

一旦鳥類靠近,觸動紅外線感測器,就會拍張照並透過Wi-Fi傳遞到用戶手機上,也可以轉發成電子信件,或設定間隔多少時間自動拍照,相關運作也需要Adafruit雲端服務(稱為Adafruit ‎IO)配合。


關於DigiKey

DigiKey 總部位於美國明尼蘇達州錫夫里弗福爾斯市,是電子元件和自動化產品的全球領導經銷商。DigiKey 提供最豐富、最深入的品項,可立即出貨至全球,提供來自將近 3,000 家深受信賴的製造商,共超過 1,750 萬款元件。工程師、設計人員、建構商與採購專業人士都可享受 DigiKey 的創新數位解決方案、設計工具、流暢的採購體驗,藉此簡化專案的各個階段。若要進一步探索 DigiKey 的電子經銷、自動化解決方案與設計資源,請至 digikey.tw,或關注我們的 Facebook、X、YouTube、Instagram 及 LinkedIn。

陸向陽

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: 陸向陽

從電子科系畢業後,即以媒體人的角色繼續這段與「電子科技」的不解之緣。歷任電子技術專書作者、電子媒體記者、分析師等角色,並持續寫作不殆。近來投入Arduino、Raspberry Pi等開放硬體的研究與教程介紹。

Share This Post On

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *