使用Spresense相机板制作数码相机!
第1篇:什么是Spresense?
第2篇:使用Spresense制作高分辨率音乐播放器!
第3篇:使用ROHM附加板,通过Spresense轻松实现传感器检测!
第4篇:使用ROHM的BLE附加板,通过智能手机玩转高分辨率音乐播放器!
大家好,我是吉田!
这是使用索尼推出的Spresense进行电子制作的第5篇,这次我将使用相机板,制作一台小型数码相机。另外,在本篇中,我还将分享多个附加板和Spresense应用篇相关的作品示例哦。
本项目所需部件
・小型锂聚合物电池(860mAh)
(※注意:请小心处理,使用风险自负)
・Micro USB 数据线
・Micro SD 卡
本项目的流程
1.Spresense 相机板相关介绍
2.增加可操作按钮
3.制作小型数码相机
4.总结(含使用GPS和AI等功能的应用创意!)
1.Spresense相机板相关介绍
索尼推出的相机板是一款小型摄像头,它可以连接Spresense主板,分辨率为5.1兆像素。它是一款Spresense专用的产品,内置JPEG编码器,所以可以直接拍摄JPEG图像。
首先,我们将该摄像头和主板进行连接。先将专用的摄像头连接线插到主板上,深度方面要确保连接线的银色引脚到达主板的下方(参照下图),再连接插有SD卡的扩展板。
接下来,我们就要体验一下拍照功能了。先将主板和电脑进行连接,然后启动Arduino IDE。如下述截图所示,在Arduino IDE界面,选择文件 > Sketch示例 > Spresense的Sketch示例,打开camera程序。
再将该Sketch直接加载到Spresense内,运行起来会是什么效果呢?打开串口监视器,就可以发现每隔十秒就会进行一次照片拍摄。图像文件则是以“PICT00x.JPG”这样的命名,依次保存在SD驱动器下面。如此,就可以非常轻松地拍出高画质的照片了。
2.增加可操作按钮
接下来,为了操作LED和摄像头等部件,我们需要给Spresense加装一个按钮。扩展板上用于连接按钮等硬件的引脚分配见下图。
引脚分配图中的D00〜15 Arduino compatible Pin部分,可以直接进行Digital Input和Output(数字输入和输出)。
我们参照引脚分配图,将带LED的微动开关连接到Spresense扩展板上。先将微动开关的按钮侧引脚(位于四个边角部位的导线)的两端分别连接GND和D13。将LED的阳极引脚(正中间较长的导线)连接D12,较短的引脚连接GND。
连接完成之后,我们来测试一下按钮能否正常响应。如下所示,先制作相应的Sketch,让Spresense的绿色LED0和开关的LED发光,以此来进行动作确认。
const int buttonPin = 13; // the number of the pushbutton pin const int ledPin = 12; // the number of the led pin void setup() { // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT_PULLUP); // initialize the LED pin as an output: pinMode(LED0, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); } void loop() { int buttonState = digitalRead(buttonPin); if (buttonState == LOW) { digitalWrite(LED0, HIGH); digitalWrite(ledPin, HIGH); } else { digitalWrite(LED0, LOW); digitalWrite(ledPin, LOW); } }
将Sketch加载至Spresense,然后进行测试。
按下按钮之后,Spresense的LED(绿色)和微动开关(红色)亮起来了,看来用这个按钮进一步操作连接在Spresense上的传感器和摄像头,应该也不存在问题。
3.制作小型数码相机
接下来,我们就要将它制作成一按按钮就能拍照的数码相机了。先将摄像头、小型锂聚合物电池安装到主板上,再将微动开关安装至扩展板上,将两者合二为一。
然后,我们还是采用老办法,使用Spresense的空包装盒,制作一个和这个小家伙形状完全匹配的外壳。
先在包装盒上掏一个可以露出摄像头的孔(照片中的S的正中间),开一个按钮孔,再把这个小家伙放进去,一台小型数码相机就此诞生了!
最后,为了确保在按下开关之后就可以进行拍照,且照片保存到SD卡内,还需要对一开始用到的示例Sketch“camera.ino”进行改良。如下图所示,添加黄色部分内容,再将其另存为“sp_camera.ino”。
[sp_camera.inoスケッチ(在camera Sketch内添加黄色部分的内容)]SDClass theSD; int take_picture_count = 0; const int buttonPin = 13; // the number of the pushbutton pin const int ledPin = 12; // the number of the led pin … void setup() { pinMode(buttonPin, INPUT_PULLUP); // initialize the pushbutton pin as an input: pinMode(LED0, OUTPUT); // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the LED pin as an output: digitalWrite(ledPin, LOW); … void loop() { sleep(1); int buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. (buttonState is LOW as it’s PULLUP) if (buttonState == LOW) { Serial.println("Go!"); digitalWrite(LED0, HIGH); digitalWrite(ledPin, HIGH); if (take_picture_count < 100) { … } } else { // turn LED off: Serial.println("Waiting for Pushing Button"); digitalWrite(LED0, LOW); digitalWrite(ledPin, LOW); } }
运行sp_camera Sketch之后,则每次按下按钮(D13),按钮部位就会亮起红色灯光,同时拍下一张照片。
怎么样啊?一部可以完全放在手掌里面的小型数码相机就制作完成了。强烈建议您把它带到户外去,尽情地拍照哦。
4.总结(含使用GPS和AI等功能的应用创意!)
在本项目中,我们用到了索尼推出的标准相机板,再搭配使用扩展板,就成功制作出一台小型数码相机。
索尼推出的Spresense还有很多功能和应用,还可以根据不同的创意制作出各种各样的电子作品。Spresense的主板还标配了GPS天线,再搭配使用本项目中的摄像头,还可以显示拍照地点的GPS信息。
此外,索尼还提供了AI平台——Sony Neural Network Console。登陆该平台之后,可以使用图像进行机器学习等各种应用体验。还可以将在该平台上搭建的机器学习模型保存至SD卡,通过读取就可以使用Spresense的摄像头进行图像解析了。
怎么样?通过这些使用索尼Spresense制作的项目,是否能感觉到电子制作的广度在不断扩大呢?
最后,鼓励各位读者朋友今后也一定要充分利用Spresense,不断制作出各种有趣的电子作品,加油!
(吉田)
本系列连载的内容
第1篇:什么是Spresense?
第2篇:使用Spresense制作高分辨率音乐播放器!
第3篇:使用ROHM附加板,通过Spresense轻松实现传感器检测!
第4篇:使用ROHM的BLE附加板,通过智能手机玩转高分辨率音乐播放器!
第5篇:使用Spresense相机板制作数码相机!(本文)