CAMERA相機積木

ESP32可以外接相機,便具有拍照、顯示畫面的功能(需搭配彩色TFT螢幕)。除了ESP32-CAM本來相機就是標配外,現在有愈來愈多家廠商出品的擴展板都開始支援相機的功能,包含KSB065、PocketCard、Pixel:Bit等,相機的使用在ESP32變得愈來愈普遍,因此特地製作了ESP32相關的相機積木,讓大家方便使用。「CAMERA相機」的積木位於「吉哥積木」→「ESP32」→「模組」→「CAMERA相機內。

將相機拍攝到的畫面,即時呈現在TFT液晶螢幕上

範例一:KSB065將相機畫面顯示到TFT彩色螢幕

以下以KSB065為例子,讓相機所拍攝到的影像顯示在TFT彩色螢幕上:

初始化區塊:

  1. 初始化時設定相機的板子為KSB065,拍攝的解析度為320X240。

  2. 設定相機是否要上下翻轉或是左右鏡射,因為每一家的板子,相機的配置都不同,視需要自行調整。

  3. 設定TFT彩色螢幕初始化,板子一樣設定為KSB065,螢幕方向設為1,才能將螢幕轉正。

重複執行區塊:

  1. 設定相機開始拍攝,擷取畫面

  2. 因為KSB065的彩色螢幕長寬是160:128,相機初始化時設定的解析度是320X240,超過螢幕的大小,因此將相機影像縮放為1/2,便是160X120的大小,便能夠放進TFT螢幕顯示了。

  3. 記得最後要將相機畫面清除。


在這個例子中,因為使用了TFT液晶螢幕,所以在板子上要將TFT液晶螢幕的腳位往上調到ON的位置。第一組和第三組的指撥開關編號5、6、7、8,都要往上調到ON,其他的所有開關請調到OFF。在這個例子中,因為PocketCard腳位的限制,無法使用TFT液晶螢幕,只能NodeMCU-32可以使用。


程式的結果:

  1. 如果是使用ESP32-S

  2. 相機要插到Camera 2的插槽

  1. 如果是使用PocketCard

  2. 相機要插到Camera 1的插槽

  3. 但是PocketCard因為腳位不夠的關係無法使用TFT螢幕

範例二Pixel:Bit將相機畫面顯示到TFT彩色螢幕

以下以Pixel:Bit為例子,讓相機所拍攝到的影像顯示在TFT彩色螢幕

初始化區塊:

  1. 初始化時設定相機的板子為Pixel:Bit,拍攝的解析度為240X240。

  2. 設定TFT彩色螢幕初始化,板子一樣設定為Pixel:bit,螢幕方向必須設為3,才能將螢幕轉正。

重複執行區塊:

  1. 設定相機開始拍攝,擷取畫面

  2. 因為Pixel:Bit的彩色螢幕長寬是240:240,相機初始化時設定的解析度也是設定成240X240,因此將相機影像縮放設為1,相機拍攝的畫面便能夠放進TFT螢幕顯示了。

  3. 記得最後要將相機畫面清除。

範例設定相機特效

以下的範例,每二秒改變一次相機特效。特效積木共有兩個,一個是下拉式的選單選擇特效,一個則是可以透過變數來設定特效值的積木。相機特效總共有七個,依序是:

  1. 無特效,特效值是0

  2. 負片,特效值是1

  3. 灰階,特效值是2

  4. 紅色色調,特效值是3

  5. 綠色色調,特效值是4

  6. 藍色色調,特效值是5

  7. 老照片,特效值是6

範例人臉偵測

以下的程式範例,當鏡頭偵測到人臉時,TFT彩色螢幕上會顯示「有人」的訊息;如果沒偵測到人臉,則會顯示「沒人」的訊息。只要透過選單選擇你的擴展板,以下的程式便可以適用於KSB065、PocketCard、Pixel:Bit,以及ESP32-CAM。

當ESP32偵測到人臉時

當ESP32沒有偵測到人臉時