“中国人”在做非常酷的事情,包括在摄影师的设备领域。 在过去的十年中,质量已大大提高,他们开始开发自己的独特产品,其产品的销量比“知名制造商”的产品高出许多。 但是,由于某种原因,几乎每种产品都至少含有一种,但脂肪含量却很大。 电子产品的开发者似乎正确地加入了tk fad:“美中不足-至少200克”。
不久前,我决定将自己置于恒定的光线下,并给自己买了一些“荧光棒”永诺yn-360。 棒子简直是神奇的,但当然有一个很大的缺点-远程控制的android应用程序实际上是行不通的。 除了该应用程序的次要缺点外,主要缺点是无法一次控制多个设备。 这个减号使控制功能失效,因为我仍然不得不反复使用棍子和手动调节灯光。
我有编程方面的经验,所以这种情况已经纠正了几个晚上。

选择开发工具
我不是专业的开发人员-编程是我的爱好,因此我不准备花费很多时间学习技术。 碰巧是我最喜欢的python语言,但是对于移动开发而言,它并不十分适合。 当然,有很多奇妙的项目,例如kivy,但是实际上没有足够的“电池”,我在python(然后在JavaScript)中已经习惯了。 结果,我选择了使用apache cordova的JS,我已经在该项目上做了一个项目(顺便说一下,这与我的工作有些关系-在这个应用程序中,我“抽出”了我的四旋翼机dji spark,被市场营销商砍掉了
在这里阅读 )。 在Cordova上进行开发的优点之一是开发速度快,易于操作以及“电池”的存在。
如何运作
毫无疑问,这些摇杆如何与智能手机配合使用-它是蓝牙LE。 我很幸运,在我之前已经有人对此问题感到困惑,几分钟后,我发现
了一个能够监视操纵杆操作协议
的python项目 。 事实证明它并不复杂。 为了使用ble,cordova找到了
ble插件
,恰好花了一个晚上写了一个工作原型。
这一切都始于扫描蓝牙LE设备。 但是,为了从搜索中排除不必要的内容(周围有很多),您可以通过设置所需服务的UUID进行扫描。 接下来,与他联系并获得服务和特色。 例如,可以使用BLE扫描器应用程序找到所需服务和特征的UUID。
所有这些导致了一段简单的代码:
var devices_dev={}; var devices=[]; var dev_main={}; function start_scan(){ evothings.ble.startScan( function(device) {
按照相同的原则,顺便说一句,您可以连接到其他BLE设备。 我沉迷于智能小米秤,可以增加体重。 我还能够从雷德蒙德打开智能水壶(并找出当前温度)。
之后,仅保留发送有关光的颜色或亮度的信息。 这些荧光棒中有几种类型的LED:冷5500k,暖3200k和RGB二极管。 这样做是为了使您既可以设置冷和暖的亮度(0-99%),也可以打开RGB二极管。
如果您需要设置冷或热二极管的亮度,我们将按以下顺序发送:
var white=0;
如果是彩色的:
var RR=255;
发送函数本身如下所示:
evothings.ble.writeCharacteristic( dev, characteristic, data,
在对该应用程序进行进一步工作的过程中,操纵杆发现了一个令人讨厌的错误,该错误花了很多时间才能检测到:例如,如果您发送“ white 50%”,然后“打开红色”,然后再次“ white 50%”,然后执行最后一个命令棍子不再响应。 在这种情况下,我必须插入拐杖,并向该序列的最后一组随机发送正负1%的邮件。
用户界面和“筹码”
由于您必须使用标准的html + js + css堆栈,因此可以使用许多现成的开发。 UI选择了
Materialise CSS ,而
iro.js被选择为UI的主要组件。
在测试应用程序的过程中,出现了单独的RGB二极管的功能-糟糕的色彩混合。 如果将至少1%的其他颜色添加到红色,则会出现奇怪的颜色混乱。 颜色的选择通常(包括官方应用程序)是由标准的“色轮”来实现的,其中很难获得“纯红色”等。 我必须实现对彩色二极管组的逐通道控制。
嗯,还制作了一些有助于实际工作的芯片。 例如,重命名棍子。 您无需将其序列号放在脑海中,就可以找出背景中的哪个序列号,您只需指定名称“ back”,“ left”等即可。 好吧,当您需要快速将灯光更改为预定的灯光时,有一些预设。

在与同事交流的过程中,事实证明,这些摇杆不是在摄影师中而是在拍摄视频的人中更受欢迎。 当他从我那里得知我正在开发一个用于管理它的应用程序时,他写道,如果您实现一项功能,那么该应用程序将把预算棒变成来自另一家制造商的模型的类似物,其成本要高出5倍。
“动画”
对于视频拍摄,有时您需要各种不同的灯光效果,例如,背景中警车的“灯光”等。 如果应用程序能够“手动”控制灯光,那么为什么不实施“动画”。 最初,想法是缝制10-20种不同的动画,但是我懒得坐在上面,所以又花了两个晚上,我做了一个简单的基于Web的动画编辑器。 此外,您最多可以编辑10个通道,然后在应用程序之间分配这些通道。

与更昂贵的同类产品相比,这些产品的唯一缺点是工作相当缓慢。 从发送命令到切换颜色,它需要300-400毫秒,因此您无法在更高的速度下实现更稳定的操作。
合计
结果,当晚编写并
发布了一份
完整的申请 ,我认为这比知名制造商的“正式”申请要高。 如视频所示:
PS:这不是我的第一篇有关编程如何在工作中发挥作用的文章,而这与编程本身完全无关。 阅读以下主题:
超越WiFi。 我们编写适用于Windows,Mac和Linux的Shoot&View客户端 。
随身携带Linux-摄影师的服务在树莓派上制作一个独立的照相亭