点击上方“蘑菇云创造”可以关注我们哦
-
专题:用Python驱动开源硬件 -
课程开发者的对话:新技术如何真正走进中小学课堂2.0 -
让人工智能应用“动”起来—以“传情达意”表情机器人项目的嘴形控制为例 -
基于Python语言开展初中物联网实验教学
从Processing到Python
——经典互动媒体作品“互动云”的全新实现
周贤杰 浙江省温州中学
李玲雪 薛港潇 上海蘑菇云创客空间
创客书籍《爱上Ardu ino》(Massimo Banzi著)中,介绍了一个叫做“互动云”的互动媒体作品。这个作品利用Processing程序语言编写代理程序(proxy),通过网络从makezine.com下载RSS文件并提取文件中的所有关键词,然后再计算“peace、love、Arduino”三个词的数量,并且根据这三个数据产生一个代表色彩的RGB值,最后通过USB接口传给Arduino,点亮一个RGB灯,显示出具有特定意义的灯光色彩。
这个作品的实现,需要作者了解Processing的使用方法和功能, 同时要具备Arduino的编程能力,熟悉串口通信和引脚控制,难度比较大。但是笔者发现,借助pinpong 库,并借助Python语言的requests 库(网页爬虫),实现这个项目的难度就降低了。
● 作品的创意思路
笔者准备用新的方案,重新实现(remake)这个“互动云”作品。因为技术更新,makezine.com上已经不提供RSS文件订阅了,笔者改用“DF创客论坛”上的帖子信息。具体思路如下:
在“ D F 创 客论 坛 ”搜 索“p i n p o n g ”,在 返回的网页信息中找三个关键字,分别为“arduino”“虚谷号”和“掌控板”,得到不同的关键字出现次数,然后分别对应0~255的数字,赋值为R、G、B,然后用pinpong库来对应控制R、G、B三种颜色(RGB灯)。
这个RGB灯光的颜色就代表了pi np on g库的用户中,使用“ardu i no”“虚谷号”和“掌控板”这三种开源硬件的比例。随着用户作品发布数量的变化,这个灯光的色彩也在同步变换,是不是很有意义?
●作品的原理分析
“互动云”作品是一个典型的网页爬虫结合开源硬件的案例。网络爬虫是信息输入,灯光显示是信息的输出,工作流程如图1 所示。
图1 “互动云”项目的工作流程
从图1可以看出,获取信息、处理信息和输出信息,都需要特定的库来实现,如爬虫使用requests、网页文本分析使用Beautiful Soup库、开源硬件的驱动则需要pinpong。对这三个库的简要介绍如下页表所示。
●作品的硬件搭建
作品的硬件其实非常简单, 开源硬件加上RGB全彩LED模块即可。开源硬件可以使用任何一块Arduino、掌控板或者micro:bit等。考虑到RGB的LED模块不够亮,笔者在boson Kit中找了一个 WS2812 RGB全彩灯带模块。
器 材 清 单 :任何 一 块Arduino、Arduino 扩展板、WS2812 RGB全彩灯带。
笔者将灯带连接在Arduino的数字口P7(其实从P2~P13,任何一个引脚都可以),作品实物连接如图2所示。
图2 作品连线图
因为使用了灯带,所以在引用pinpong库时,需要导入“NeoPixel”包。指令为:from pinpong.board import Board,Pin,NeoPixel。
●作品的代码编写
平时教学已经习惯了用Jupyter Notebook,这次的代码习惯上用Jupyter Notebook来写。
首先要打开DF社区,在搜索栏搜索pinpong,然后在地址栏中得到URL地址,即
https://mc.dfrobot.com.cn/search.php?mod=forum&searchid=44&orde rby=lastpost&ascdesc=desc&se archsubmit=yes&kw=pinpong。具体的代码也非常简洁,为了方便理解,笔者分为三个部分来呈现, 具体见下方二维码。
笔者统计了一下,代码仅二十多行。而《爱上Ardu ino》中的项目,Processing的代码加上 Arduino的代码,要超过一百多行。Python加pinpong的优势就显示出来了。
●作品的测试和部署
计算机接上Arduino,运行代码后,Arduino将自动烧写一个特定的固件,然后就能看到Jupyter上输出关键词“Ardu ino”“虚谷号”和“掌控板”出现的次数。然后Arduino连接的RGB灯带就开始点亮。要呈现什么样的创意外观呢?既然是“互动云”,就可以做成“云”的样子,将硬件封装在棉花中,如图3所示。
在这个作品部署的过程中, pinpong的优势再次得到了显示。因为原来的作品用Processing, Processing对硬件的要求要高一些,无论是安装程序还是运行程序都不如Python方便快速。笔者选择了一款能够运行Li nux的硬件作为处理信息的“主机”,价格不到百元,使用的是国产芯片RK3308(ROCK PI开发板),经过测试,运行非常流畅。
本文来源:《中国信息技术教育》
蘑菇云创造
微信号 : mgystem
扫码关注,了解更多
推荐阅读:

