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. 使用条款