在过去的五年中,Kano已成为“学习编码”领域中最知名的名称之一。 他们现在拥有一系列产品,从计算机和光板到哈利波特编码套件。
他们最鲜为人知的产品之一是运动传感器套件-29美元的USB外设,可以检测自身与其他物体之间的距离。
- 我最好的2017年精选
- 关于增加Soundcloud播放量的9条提示
- 埃里克·谢尔蒙(Erick Sermon)的“全面合作”击败了受启发的法瑞尔(Pharrell),让杰伊·Z(Jay Z)创作了“我只是想爱你(给我2个礼物)”
- Spotify旨在改善免费用户的体验
- Spotify 2018年第三季度收益

这让我开始思考,运动传感器还能做什么?
在过去的几周里,伦敦的天气一直很灿烂,所以现在是休息烧烤,倒酒,听音乐的最佳时机!
唯一的问题是,我不想每次更改歌曲时都在笔记本电脑上留下油腻的痕迹。 因此,一个想法诞生了! 我将向您展示如何在Python中创建一个小的脚本,该脚本会从Motion Sensor Kit中读取数据,并在您挥手足够近时跳到Spotify上的下一条轨道。

设定
我将在Windows 10上开发我的应用程序,但是该项目将在MacOS或Linux上完美运行。
首先,请确保您拥有Python副本 已安装。 然后,您可以安装PIP ,这是一个很棒的工具,可让您轻松安装其他有用的软件包。 有关设置方面的更多帮助,Matthew Horne提供了出色的指南。
查找传感器
运动传感器使用串行连接与计算机通信,从而轻松读取数据。 打开命令行并运行mode命令。 您会看到当前正在使用串行端口的所有设备。

连接运动传感器,然后再次运行命令。 这次,您会看到一个额外的设备及其连接的端口(在我的情况下是COM7 )。 记下下一步。

安装套件
我们需要两个软件包来将运动传感器套件和Spotify链接在一起。 Pyserial将读取来自传感器的数据,而pyautogui将模拟键盘上按下的“下一个曲目”按钮。
在命令行中,输入pip install pyserial pyautogui
,然后按Enter 。 几分钟后,您就可以继续了!
写一些Python
进口货
我们将使用四个程序包:用于与运动传感器通信的serial
,以及用于读取数据的json
,然后是pyautogui
按媒体键的time
,以及控制我们抓取数据速度的time
。
打开文本编辑器,然后复制以下内容:

开放式交流
获取运动传感器生成的数据再简单不过了。 复制下面的行,但将“ COM7 ”替换为您先前记下的端口名称。
当我们在这里时(不要双关语!),我们将添加一个while循环以使脚本无限期地运行:

清理数据
运动传感器创建的数据具有一些本项目不需要的额外细节:
{u’type’:u’event’,u’name’:u’proximity-data’,u’detail’:{u’proximity’:32}}
好消息是,数据采用JSON格式,因此可以轻松获取所需的信息。 接近度 。 添加以下行以获取传感器的读数并将其转换为JSON对象:

不,我们可以使用以下代码隔离邻近信息:

控制距离

使用0到255之间的比例来测量对象的接近程度。为防止意外触发传感器,我们将设置一个较高的值。 使用下面显示的if语句(我添加了一些文本,将显示该文本触发了代码):

控制Spotify
我们正在使用一个巧妙的技巧来触发Spotify更改曲目。 pyautogui包可以模拟一个人在键盘上打字,我们将使用它来“按下” 下一个音轨按钮。 在下面添加代码:

您会注意到我还增加了1秒的睡眠时间。 这样可以给您足够的时间将手从传感器上移开,而不会意外触发换轨。
冲洗完成
我们使用的串行软件包可以创建一个缓冲区,这样,即使脚本被暂停,您也不会丢失任何信息。 在我们的情况下,我们不希望发生这种情况,因为它会触发数百个音轨变化! flushInput命令可以防止这种情况的发生:

试试看!
在主文件夹中将文件另存为spotify.py 。 确保Spotify已打开,然后返回命令行,键入python spotify.py并按Enter :

现在,将手放在运动传感器上! 如果您打开随机播放,Spotify将播放播放列表中的下一首歌曲或随机播放一首歌曲。

下一步
该项目的目的是为您提供使用Python与Motion Sensor Kit进行交互的初学者指南。 现在,您可以使用相同的基本代码来读取所有其他项目中的串行数据!
等不及要看你的作品了……