Ameba Arduino: [RTL8195AM] ArduCam - 使用ArduCAM-Mini-2MP將照片傳出
材料準備
- Ameba x 1
- ArduCAM-Mini-2MPx 1
- AccessPort V.137終端機連線軟體
範例說明
這個範例裡使用ArduCAM-Mini-2MP模組來產生JEPG,並將raw data輸出至console。我們需要的library有
https://github.com/Ameba8195/Arduino/blob/master/libraries/AmebaArduCAM.zip
https://github.com/Ameba8195/Arduino/blob/master/libraries/AmebaArduCAM.zip
安裝library的方式請參考Arduino官方網站的教學文章將zip檔的library加入Ameba RTL8195:
https://www.arduino.cc/en/Guide/Libraries#toc4
關於ArduCAM-Mini-2MP使用說明請參考AMEBA_ArduCAM_Mini_OV2640_JPEG範例
接線圖如下:
我們打開範例 “File” -> “Examples” -> “AmebaArducam” -> “AMEBA_ArduCAM_Mini_OV2640_JPEG”,編譯並上傳至Ameba RTL8195之後按下Reset按鈕reboot。
https://www.arduino.cc/en/Guide/Libraries#toc4
關於ArduCAM-Mini-2MP使用說明請參考AMEBA_ArduCAM_Mini_OV2640_JPEG範例
接線圖如下:
我們打開範例 “File” -> “Examples” -> “AmebaArducam” -> “AMEBA_ArduCAM_Mini_OV2640_JPEG”,編譯並上傳至Ameba RTL8195之後按下Reset按鈕reboot。
操作說明
此範例採用Serial communication與使用者互動,而我們使用終端機軟體為AccessPort,連線baudrate為115200如下圖連上Ameba RTL8195之後:
程式在一開始會等待使用者從Serial傳輸界面等待輸入16進位指令,首先將AccessPort發送欄位的設定由字串設定為十六進位,並且設定圖片解析度(預設為320×240),可在AccessPort的發送欄位框裡輸入0~8,OV2640可以支援的最大解析度如下所示:
程式在一開始會等待使用者從Serial傳輸界面等待輸入16進位指令,首先將AccessPort發送欄位的設定由字串設定為十六進位,並且設定圖片解析度(預設為320×240),可在AccessPort的發送欄位框裡輸入0~8,OV2640可以支援的最大解析度如下所示:
case 0: myCAM.OV2640_set_JPEG_size(OV2640_160x120); break; case 1: myCAM.OV2640_set_JPEG_size(OV2640_176x144); break; case 2: myCAM.OV2640_set_JPEG_size(OV2640_320x240); break; case 3: myCAM.OV2640_set_JPEG_size(OV2640_352x288); break; case 4: myCAM.OV2640_set_JPEG_size(OV2640_640x480); break; case 5: myCAM.OV2640_set_JPEG_size(OV2640_800x600); break; case 6: myCAM.OV2640_set_JPEG_size(OV2640_1024x768); break; case 7: myCAM.OV2640_set_JPEG_size(OV2640_1280x1024); break; case 8: myCAM.OV2640_set_JPEG_size(OV2640_1600x1200); break;
接著在AccessPort發送欄位輸入0x11數值,在程式碼中0x11代表設定輸出圖片格式為JPEG(預設已是JPEG格式),之後再重新輸入0x10,OV2640即開始往終端機列印1張jpeg的raw data
case 0x10: mode = 1; start_capture = 1; //Serial.println("CAM start single shoot."); break; case 0x11: myCAM.set_format(JPEG); myCAM.InitCAM(); break;
此時可將AccessPort的Terminal頁面設定為HEX顯示,可以看到從OV2640傳出的raw data,如下圖:
當Terminal頁面印完了raw data之後,點擊上圖存檔的圖示,在存檔的過程中,存檔的類型要選擇All Files(*.*),之後即可觀賞圖片
另外還提供一種圖片連續的輸出方式,只要回到AccessPort發送欄位輸入0x20數值,OV2640就會不斷地輸出jpeg的raw data
case 0x20: mode = 2; start_capture = 2; //Serial.println("CAM start contrues shoots."); break;
直到Ameba RTL8195從AccessPort收到0x21的數值指令則會結束列印jpeg raw data
temp = Serial.read(); if (temp == 0x21) { start_capture = 0; mode = 0; break; }
Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved. Terms of Use