• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      從Processing到Python

      2020-12-21 03:48周賢杰李玲雪薛港瀟
      中國(guó)信息技術(shù)教育 2020年23期
      關(guān)鍵詞:爬蟲代碼開源

      周賢杰 李玲雪 薛港瀟

      創(chuàng)客書籍《愛上Arduino》(Massimo Banzi著)中,介紹了一個(gè)叫做“互動(dòng)云”的互動(dòng)媒體作品。這個(gè)作品利用Processing程序語(yǔ)言編寫代理程序(proxy),通過網(wǎng)絡(luò)從makezine.com下載RSS文件并提取文件中的所有關(guān)鍵詞,然后再計(jì)算“peace、love、Arduino”三個(gè)詞的數(shù)量,并且根據(jù)這三個(gè)數(shù)據(jù)產(chǎn)生一個(gè)代表色彩的RGB值,最后通過USB接口傳給Arduino,點(diǎn)亮一個(gè)RGB燈,顯示出具有特定意義的燈光色彩。

      這個(gè)作品的實(shí)現(xiàn),需要作者了解Processing的使用方法和功能,同時(shí)要具備Arduino的編程能力,熟悉串口通信和引腳控制,難度比較大。但是筆者發(fā)現(xiàn),借助pinpong庫(kù),并借助Python語(yǔ)言的requests庫(kù)(網(wǎng)頁(yè)爬蟲),實(shí)現(xiàn)這個(gè)項(xiàng)目的難度就降低了。

      ● 作品的創(chuàng)意思路

      筆者準(zhǔn)備用新的方案,重新實(shí)現(xiàn)(remake)這個(gè)“互動(dòng)云”作品。因?yàn)榧夹g(shù)更新,makezine.com上已經(jīng)不提供RSS文件訂閱了,筆者改用“DF創(chuàng)客論壇”上的帖子信息。具體思路如下:

      在“DF創(chuàng)客論壇”搜索“pinpong”,在返回的網(wǎng)頁(yè)信息中找三個(gè)關(guān)鍵字,分別為“arduino”“虛谷號(hào)”和“掌控板”,得到不同的關(guān)鍵字出現(xiàn)次數(shù),然后分別對(duì)應(yīng)0~255的數(shù)字,賦值為R、G、B,然后用pinpong庫(kù)來對(duì)應(yīng)控制R、G、B三種顏色(RGB燈)。

      這個(gè)RGB燈光的顏色就代表了pinpong庫(kù)的用戶中,使用“arduino”“虛谷號(hào)”和“掌控板”這三種開源硬件的比例。隨著用戶作品發(fā)布數(shù)量的變化,這個(gè)燈光的色彩也在同步變換,是不是很有意義?

      ● 作品的原理分析

      “互動(dòng)云”作品是一個(gè)典型的網(wǎng)頁(yè)爬蟲結(jié)合開源硬件的案例。網(wǎng)絡(luò)爬蟲是信息輸入,燈光顯示是信息的輸出,工作流程如圖1所示。

      從圖1可以看出,獲取信息、處理信息和輸出信息,都需要特定的庫(kù)來實(shí)現(xiàn),如爬蟲使用requests、網(wǎng)頁(yè)文本分析使用Beautiful Soup庫(kù)、開源硬件的驅(qū)動(dòng)則需要pinpong。對(duì)這三個(gè)庫(kù)的簡(jiǎn)要介紹如下頁(yè)表所示。

      ● 作品的硬件搭建

      作品的硬件其實(shí)非常簡(jiǎn)單,開源硬件加上RGB全彩LED模塊即可。開源硬件可以使用任何一塊Arduino、掌控板或者micro:bit等??紤]到RGB的LED模塊不夠亮,筆者在boson Kit中找了一個(gè)WS2812 RGB全彩燈帶模塊。

      器材清單:任何一塊Arduino、Arduino擴(kuò)展板、WS2812 RGB全彩燈帶。

      筆者將燈帶連接在Arduino的數(shù)字口P7(其實(shí)從P2~P13,任何一個(gè)引腳都可以),作品實(shí)物連接如圖2所示。

      因?yàn)槭褂昧藷魩?,所以在引用pinpong庫(kù)時(shí),需要導(dǎo)入“NeoPixel”包。指令為:from pinpong.board import Board,Pin,NeoPixel。

      ● 作品的代碼編寫

      平時(shí)教學(xué)已經(jīng)習(xí)慣了用Jupyter Notebook,這次的代碼習(xí)慣上用Jupyter Notebook來寫。

      首先要打開DF社區(qū),在搜索欄搜索pinpong,然后在地址欄中得到URL地址,即https://mc.dfrobot.com.cn/search.php?mod=forum&searchid=44&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=pinpong。具體的代碼也非常簡(jiǎn)潔,為了方便理解,筆者分為三個(gè)部分來呈現(xiàn),具體見下方二維碼。

      筆者統(tǒng)計(jì)了一下,代碼僅二十多行。而《愛上Arduino》中的項(xiàng)目,Processing的代碼加上Arduino的代碼,要超過一百多行。Python加pinpong的優(yōu)勢(shì)就顯示出來了。

      ● 作品的測(cè)試和部署

      計(jì)算機(jī)接上Arduino,運(yùn)行代碼后,Arduino將自動(dòng)燒寫一個(gè)特定的固件,然后就能看到Jupyter上輸出關(guān)鍵詞“Arduino”“虛谷號(hào)”和“掌控板”出現(xiàn)的次數(shù)。然后Arduino連接的RGB燈帶就開始點(diǎn)亮。要呈現(xiàn)什么樣的創(chuàng)意外觀呢?既然是“互動(dòng)云”,就可以做成“云”的樣子,將硬件封裝在棉花中,如圖3所示。

      在這個(gè)作品部署的過程中,pinpong的優(yōu)勢(shì)再次得到了顯示。因?yàn)樵瓉淼淖髌酚肞rocessing,Processing對(duì)硬件的要求要高一些,無(wú)論是安裝程序還是運(yùn)行程序都不如Python方便快速。筆者選擇了一款能夠運(yùn)行Linux的硬件作為處理信息的“主機(jī)”,價(jià)格不到百元,使用的是國(guó)產(chǎn)芯片RK3308(ROCK PI開發(fā)板),經(jīng)過測(cè)試,運(yùn)行非常流暢。

      猜你喜歡
      爬蟲代碼開源
      校園武術(shù)“學(xué)、練、賽”一體化實(shí)踐探索
      基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
      Python反爬蟲設(shè)計(jì)
      五毛錢能買多少頭牛
      2019(第十四屆)開源中國(guó)開源世界
      2019開源杰出貢獻(xiàn)獎(jiǎng)
      基于Scrapy框架的分布式網(wǎng)絡(luò)爬蟲的研究與實(shí)現(xiàn)
      誰(shuí)搶走了低價(jià)機(jī)票
      神秘的代碼
      一周機(jī)構(gòu)凈增(減)倉(cāng)股前20名
      宝坻区| 浦城县| 巫溪县| 泽州县| 威海市| 林甸县| 广昌县| 潜山县| 遂平县| 江北区| 连云港市| 安仁县| 华坪县| 博爱县| 汉中市| 揭东县| 新乡县| 安乡县| 宁河县| 清苑县| 攀枝花市| 威远县| 当阳市| 南昌市| 开封县| 丹巴县| 揭阳市| 岚皋县| 乳山市| 洪泽县| 昌都县| 宣汉县| 兴业县| 邹城市| 高平市| 民县| 汉沽区| 泰州市| 青冈县| 吉水县| 葫芦岛市|