最近我有幸拿到RAK(瑞科慧联)近期很红的一块模块– WisCam,有兴趣的Maker 早已不迫及待地想要尝试这块迷人的Camera module。有关WisCam 开发板的硬件规格(CPU、FLASH、Camera、I/O、WiFi module)等信息都可以在Ches 拔的那篇文章中找到详细的介绍,所以我就不在这里多做说明。这篇文章主要想跟大家分享的是,我在使用WisCam 时用到的一些功能和心得。
RAK 这次的WisCam产品真的很吓人,不仅价格亲民(非常适合像我这样子穷穷的maker ),WisCam 整个套件的完整度让Maker 可以非常快速的上手(基本上只要会插电、下载APP、连WiFi 就可以使用)。此外,另一个亮点就是这次的WisCam 有支持兼容Arduino,这对还是菜鸟Maker 的我来说无疑是一大福音。
在App 上看到camera 镜头成像后,立马决定来研究这个最近在Maker界声量极高的WisCam 到底还有什么厉害之处。在玩WisCam 之前,有段时间有小小研究过webcam 做影像辨识,所以这次对于研究WisCam 莫名有点感觉,当然我会这样说是因为WisCam也可以做到相同的效果。
WisCam 本身分为两种working mode,分别为UVC (USBcamera :webcam 的形式)和WiFi Camera。这两种working mode 是利用不同的接电方式,若要使用UVC mode 就像webcam 一样,插上micro USB 接笔电或PC 即完成;使用WiFi camera 的话是透过Arduino UNO 接5V供电,或是将WisCam 开发版直接用micro USB 接电源。
这样接线就是让Wiscam 在WiFi camera 的模式下运行
(题外话:如果不用他们家的原厂线,用自己的micro USB 接我的MAC 竟然会是WiFi camera mode!真神奇!但我还没去厘清这是为什么。)
WisCam 最简单、普遍的应用就是在WiFi camera mode 之下,利用手机里下载好的App (RAK 这次很有心,iOS、Android系统App 都开源给大家使用,可直接Google 即可找到下载连结)连上WisCam 的AP,就可以立即从手机观测镜头影像。
由于我想要尝试的是WisCam 的远程观测功能,因此先撇开UVC mode,专注在分享有关于WiFi camera mode 的使用上。
特别想尝试RAK 说的「远程监控」,是因为原本我在玩webcam 时,要让别人从不同的network 看到我这颗webcam 的画面,是靠着ngrok 做到的(其实ngrok 本来就不是这样用,但for fun 已经够用),所以我就非常好奇WisCam 是如何做到远程监控,发现原来在里面内建一个Nabto P2P cloud 的功能。
Nabto platform 运作机制图
Nabto P2P cloud 的运作如同上图所示,Device 端是一个具有联网功能的开发版(像是Arduino MEGA2560 +WiznetW5100EthernetShield),透过在appmyproduct(以下会做说明)上注册的unique device ID & License Key 在Nabto Basestation 辨识出自己,而Client 透过App (与appmyproduct 有关)若要access 该联网的装置,在送出request 的同时,也会把access device 的Device ID 一起送到Nabto Basestation,实现P2P 联机。
Device 或是Client (app) 要有可以和Nabto Basestation 建立关系的功能,势必要加上他们家的SDK – uNabto SDK。这个SDK 之强大,他可以支持许多常见的连网开发版,连我最爱用的ESP8266也在其内!真的让我心痒痒,一个很想玩的概念!
上面提到的appmyproduct 就是Nabto 为了加速「远程监控」应用程序的开发,所以释出一套具有和Nabto platform 直接沟通的App 模板,意思是如果你愿意花时间也是可以自己写原生的mobile app,只是要加上uNabto SDK 才能利用Nabto cloud 实现远程监控,不过我相信大家不会想把心力放在开发App 上面。
还有针对不同的scenario 设计不同的App 形式,根本超友善!除了App 模板,刚提到注册Device ID ,以及License Key 也是在appmyproduct 上完成。只要申请账号,就可以建立项目,生成License Key (就会一并出现Device ID)如下图。
这个Device ID 和License Key 就是要放进Device 的code 里面,让Device 可以依据以上信息告诉Nabto Basestation 我是谁,让App 顺利的远程监控Device 的某些行为。
那WisCam 又是怎么一回事?其实把刚才举Arduino MEGA2560 + Wiznet W5100 Ethernet Shield 的例子换成WisCam 就大功告成了。也就是说文件里面的一句「WisCam 支持Nabto P2P cloud 的功能」WisCam 的情况是这样,在WiFi camera mode 之下用笔电WiFi 连上WisCam 后在Browser 的网址栏打上:http://192.168.100.1/cgi-bin/param.cgi?action=list&group=nabto就可以看到类似下图的信息:
上面的Nabto id 就好比在appmyproduct 注册好的Device ID,而在RAK 本身释出的开源App 当然也就已经具备uNabto 的SDK,可以从App 中输入该WisCam 的Nabto id 去做配对。
但这样直接尝试连接后发现,出现了「NTCS_CLOSED」的结果,一查才发现是「端设备未连接」的情形,为什么会这样呢?我在一开始提到WisCam 在WiFi camera mode 的使用,这种简易的使用default 是AP mode (也就是只能让),原来如果要让WisCam 真的可以远程监控,它势必要先转成STA mode,才可以顺利连上网络。
在这里,先澄清一下,所谓远程控制是Device 和App 在不同的network 底下,App 仍然可以透过网络去access 到Device,甚至设计对Device 做出控制。
RAK WisCam结合Arduino 的应用
RAK WisCam 这次的camera module我觉得很大的优点和优势是和Arduino 兼容,既然可以和Arduino 兼容,我又有什么理由不好好发挥一点创意来实作应用呢,看了看手边为数不多的零件,突然灵光乍现,想到了个有趣的东西。
既然这颗camera module 摆着只能定向观测,不如我把手边的游戏杆模块加上两颗SG90 的伺服马达结合底座,让这颗camera module 可以观测不只一个方向的画面,而主控版就用Arduino nano 即可。
其实会想到这样的应用,是因为公司常常会有客人拜访,如果只是定向观测的话很容易漏掉画面(因为不可能随时盯着手机app 的画面),但倘若可以看到一定范围内(也就是马达角度的极限)的画面,或许会有点帮助。以下是我的系统架构图:
用WisCam加Arduino NANO做出多角度监视器的架构图(制图:Ryan Hu)
由于手边组件缺乏,目前只做到这样的地步,不过我目前的想法是利用游戏杆模块远程操控马达(近期补完货再加上去),让我可以清楚地在手机的app 上看到多种角度的画面。
至于实作细节,本文就不一一详述了,这里仅提供一些学习资源,例如Arduino马达控制可参考叶难大大这篇《Arduino练习:伺服马达以Tower Pro SG90为例》,Joystick游戏杆控制可参考Motoduino这篇《XY双轴vwin 游戏杆模块》,至于如何用Arduino来运用游戏杆控制马达,则可在巴贝缦的这篇《Arduino 以游戏杆控制服务器马达》文章中找到教学解答喔。
P.S 如果能做影像辨识,那就更好玩了!
结论
最后,文章的结尾我想说WisCam 的确可以让Maker 快速上手,是一个好玩的开发工具包,不过还是仍不免俗的还有改进的空间,以下提出两点建议。
第一,它虽然支持Arduino,的确可以利用UNO 接5V,甚至是用UART来做通讯,但我觉得对于WisCam本身可以发挥的空间就显得不足,即便整包WisCam 原始码都可以下载下来,但会不知道从何发挥起(大概是因为我还太菜的原因)。
其次就是WisCam 目前看似只能于Linux下做更多的尝试,对于不是使用Linux 的Maker 来说,并不是件友善的事情。
不过总体来说体验是非常好的,对于想要快速体验IP camera 但却没有太多银弹的Maker 们,可以尝试看看这款WisCam,CP 值颇高!
Wiscam 淘宝购买链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-14938546650.18.638a2e6T0NUOm&id=543901093786
- wiscam
+关注
关注
0文章
3浏览量
5408 - 瑞科慧联
+关注
关注
0文章
12浏览量
7583
发布评论请先登录
相关推荐
评论