亚洲va在线va天堂xxxx中文 ,女子奶水太多喂老头中文字幕,亚洲性啪啪无码av天堂,无码H肉动漫在线观看免费中文

用 Lua 控制你的樹(shù)莓派

2023-06-09 08:18:15 來(lái)源:Linux中國(guó)

Lua 是一種有時(shí)會(huì)被誤解的語(yǔ)言。它與 Python 等其他語(yǔ)言不同,但它是一種通用的擴(kuò)展語(yǔ)言,廣泛用于游戲引擎、框架等??偟膩?lái)說(shuō),我發(fā)現(xiàn) Lua 對(duì)開(kāi)發(fā)人員來(lái)說(shuō)是一個(gè)有價(jià)值的工具,可以讓他們以一些強(qiáng)大的方式增強(qiáng)和擴(kuò)展他們的項(xiàng)目。

你可以按照 Seth Kenlon 的文章《Lua 值得學(xué)習(xí)嗎?》的介紹下載并運(yùn)行常用的 Lua,該文章中還包括了簡(jiǎn)單的 Lua 代碼示例。但是,要充分利用 Lua,最好將它與采用該語(yǔ)言的框架一起使用。在本教程中,我演示了如何使用名為 Mako Server 的框架,該框架旨在使 Lua 程序員能夠輕松地編寫(xiě) IoT 和 Web 應(yīng)用代碼。我還向你展示了如何使用 API 擴(kuò)展此框架以使用樹(shù)莓派的 GPIO 引腳。


【資料圖】

要求

在學(xué)習(xí)本教程之前,你需要一個(gè)可以登錄的正在運(yùn)行的樹(shù)莓派。雖然我將在本教程中編譯 C 代碼,但你不需要任何 C 代碼經(jīng)驗(yàn)。但是,你需要一些使用POSIX終端的經(jīng)驗(yàn)。

安裝

首先,在樹(shù)莓派上打開(kāi)一個(gè)終端窗口并安裝以下工具,以使用 Git 下載代碼和編譯 C 代碼:

$ sudo apt install git unzip gcc make

接下來(lái),通過(guò)運(yùn)行以下命令編譯開(kāi)源 Mako Server 代碼和 lua-periphery 庫(kù)(樹(shù)莓派的 GPIO 庫(kù)):

$ wget -O Mako-Server-Build.sh \  https://raw.githubusercontent.com/RealTimeLogic/BAS/main/RaspberryPiBuild.sh

查看腳本以了解它的作用,并在你覺(jué)得沒(méi)問(wèn)題后運(yùn)行它:

$ sh ./Mako-Server-Build.sh

編譯過(guò)程可能需要一些時(shí)間,尤其是在較舊的樹(shù)莓派上。編譯完成后,腳本會(huì)要求你將 Mako Server 和 lua-periphery 模塊安裝到/usr/local/bin/。我建議安裝它以簡(jiǎn)化軟件的使用。別擔(dān)心,如果你不再需要它,你可以卸載它:

$ cd /usr/local/bin/$ sudo rm mako mako.zip periphery.so

要測(cè)試安裝,請(qǐng)?jiān)诮K端中輸入mako。這將啟動(dòng) Mako 服務(wù)器,并在你的終端中看到一些輸出。你可以按CTRL+C停止服務(wù)器。

IoT 和 Lua

現(xiàn)在 Mako 服務(wù)器已在你的樹(shù)莓派上設(shè)置好,你可以開(kāi)始對(duì) IoT 和 Web 應(yīng)用進(jìn)行編程,并使用 Lua 操作樹(shù)莓派的 GPIO 引腳。Mako Server 框架為 Lua 開(kāi)發(fā)人員提供了一個(gè)強(qiáng)大而簡(jiǎn)單的 API 來(lái)創(chuàng)建物聯(lián)網(wǎng)應(yīng)用,而 lua-periphery 模塊讓 Lua 開(kāi)發(fā)人員可以與樹(shù)莓派的 GPIO 引腳和其他外圍設(shè)備進(jìn)行交互。

首先創(chuàng)建一個(gè)應(yīng)用目錄和一個(gè).preload腳本,其中插入用于測(cè)試 GPIO 的 Lua 代碼。.preload腳本是一個(gè) Mako 服務(wù)器擴(kuò)展,在應(yīng)用啟動(dòng)時(shí)作為 Lua 腳本加載和運(yùn)行。

$ mkdir gpiotst$ nano gpiotst/.preload

將以下內(nèi)容復(fù)制到Nano 編輯器中并保存文件:

-- Load periphery.so and access the LED interfacelocal LED = require("periphery").LEDlocal function doled()  local led = LED("led0") -- Open LED led0  trace"Turn LED on"  led:write(true)   -- Turn on LED (set max brightness)  ba.sleep(3000)    -- 3 seconds  trace"Turn LED off"  led:write(false)  -- Turn off LED (set zero brightness)  led:close()endba.thread.run(doled) -- Defer execution                     -- to after Mako has started

上面的 Lua 代碼使用你編譯并包含在 Mako 服務(wù)器中的 Lua-periphery 庫(kù)控制樹(shù)莓派 LED。該腳本定義了一個(gè)名為doled的函數(shù)來(lái)控制 LED。該腳本首先使用 Luarequire函數(shù)加載periphery庫(kù)(共享庫(kù)periphery.so)。返回的數(shù)據(jù)是一個(gè)包含所有 GPIO API 函數(shù)的Lua 表。但是,你只需要 LED API,你可以通過(guò)在調(diào)用require后附加.LED來(lái)直接訪問(wèn)它。接下來(lái),代碼定義了一個(gè)名為doled的函數(shù),它執(zhí)行以下操作:

通過(guò)調(diào)用periphery庫(kù)中的LED函數(shù),并將字符串led0傳給它,打開(kāi)樹(shù)莓派主 LED,識(shí)別為led0。將消息Turn LED on打印到跟蹤(控制臺(tái))。通過(guò)調(diào)用 LED 對(duì)象上的write方法并將布爾值true傳遞給它來(lái)激活 LED,該值設(shè)置 LED 的最大亮度。通過(guò)調(diào)用ba.sleep(3000)等待 3 秒。將消息Turn LED off打印到跟蹤。通過(guò)調(diào)用 LED 對(duì)象上的write方法并將布爾值false傳遞給它來(lái)停用 LED,這會(huì)將 LED 的亮度設(shè)置為零。通過(guò)調(diào)用 LED 對(duì)象上的close函數(shù)關(guān)閉LED。

.preload腳本的末尾,doled函數(shù)作為參數(shù)傳遞給ba.thread.run函數(shù)。這允許將doled函數(shù)的執(zhí)行推遲到 Mako 服務(wù)器啟動(dòng)之后。

要啟動(dòng)gpiotst應(yīng)用,請(qǐng)按如下方式運(yùn)行 Mako 服務(wù)器:

$ mako -l::gpiotst

控制臺(tái)中打印以下文本:

Opening LED:opening "brightness": Permission denied.

訪問(wèn) GPIO 需要 root 訪問(wèn)權(quán)限,因此按CTRL+C停止服務(wù)器并重新啟動(dòng) Mako 服務(wù)器,如下所示:

$ sudo mako -l::gpiotst

現(xiàn)在樹(shù)莓派 LED 亮起 3 秒。成功!

Lua 解鎖 IoT

在本入門(mén)教程中,你學(xué)習(xí)了如何編譯 Mako 服務(wù)器,包括 GPIO Lua 模塊,以及如何編寫(xiě)用于打開(kāi)和關(guān)閉樹(shù)莓派 LED 的基本 Lua 腳本。在以后的文章中,我將在本文的基礎(chǔ)上進(jìn)一步介紹 IoT 功能。

同時(shí),你可以通過(guò)閱讀它的文檔來(lái)更深入地研究 Lua-periphery GPIO 庫(kù),以了解有關(guān)功能以及如何將其與不同外設(shè)一起使用的更多信息。要充分利用本教程,請(qǐng)考慮關(guān)注交互式 Mako Server Lua 教程以更好地了解 Lua、Web 和 IoT。編碼愉快!

關(guān)鍵詞:

相關(guān)文章

熱文推薦

用 Lua 控制你的樹(shù)莓派
用 Lua 控制你的樹(shù)莓派

Lua是一種有時(shí)會(huì)被誤解的語(yǔ)言。它與Python等其他語(yǔ)言......更多>

當(dāng)前通訊!中天科技:協(xié)同行業(yè)構(gòu)建可持續(xù)發(fā)展數(shù)字世界
當(dāng)前通訊!中天科技:協(xié)同行業(yè)構(gòu)建可持續(xù)發(fā)展數(shù)字世界

今年是5G發(fā)牌四周年,中國(guó)已經(jīng)建成全球規(guī)模最大、技術(shù)......更多>

女人常吃香菜有什么好處和壞處_世界熱文
女人常吃香菜有什么好處和壞處_世界熱文

關(guān)于女人常吃香菜有什么好處和壞處的內(nèi)容,包含女人吃......更多>

南通12.2億成交3宗宅地 總建面36.8萬(wàn)平方米
南通12.2億成交3宗宅地 總建面36.8萬(wàn)平方米

觀點(diǎn)網(wǎng)訊:6月8日,南通3宗住宅用地完成出讓,均底價(jià)......更多>

排行推薦

商務(wù)部將組織開(kāi)展汽車促消費(fèi)活動(dòng);5月新能源車批發(fā)銷量同比增59% 世界熱消息
商務(wù)部將組織開(kāi)展汽車促消費(fèi)活動(dòng);5月新能源車批發(fā)銷量同比增59% 世界熱消息
商務(wù)部將組織開(kāi)展汽車促消費(fèi)活動(dòng)。乘聯(lián)會(huì):5月新能源... 更多>
銀河證券:硬件和內(nèi)容良性循環(huán) VR生態(tài)加速構(gòu)建|全球觀天下
銀河證券:硬件和內(nèi)容良性循環(huán) VR生態(tài)加速構(gòu)建|全球觀天下
銀河證券研報(bào)認(rèn)為,在VR領(lǐng)域,軟硬件相互促進(jìn),協(xié)同發(fā)... 更多>
光大證券:硅料價(jià)格下降盈利有望分化 關(guān)注盈利拐點(diǎn)的細(xì)分環(huán)節(jié)龍頭|時(shí)快訊
光大證券:硅料價(jià)格下降盈利有望分化 關(guān)注盈利拐點(diǎn)的細(xì)分環(huán)節(jié)龍頭|時(shí)快訊
光大證券研報(bào)表示,產(chǎn)業(yè)鏈價(jià)格持續(xù)下跌,多晶硅致密料... 更多>
中信證券:當(dāng)前偏低估值背景下銀行板塊步入可積極配置區(qū)間 天天熱點(diǎn)
中信證券:當(dāng)前偏低估值背景下銀行板塊步入可積極配置區(qū)間 天天熱點(diǎn)
中信證券研報(bào)認(rèn)為,降低銀行存款成本仍屬今年重點(diǎn)方向... 更多>
世界熱訊:家用供暖設(shè)備哪種省錢(qián)(家庭供暖品牌)
來(lái)為大家解答以上問(wèn)題,家用供暖設(shè)備哪種省錢(qián),家庭供... 更多>
pan.baidu com/s/ 百度網(wǎng)盤(pán)電腦版(music.baidu.com)|環(huán)球觀天下
來(lái)為大家解答以上問(wèn)題,pan baiducom s 百度網(wǎng)盤(pán)電... 更多>
天天關(guān)注:漫游數(shù)據(jù)是什么意思要不要打開(kāi)(除霧要不要打開(kāi)AC?)
相信大家對(duì)漫游數(shù)據(jù)是什么意思要不要打開(kāi),除霧要不要... 更多>
諸葛亮的八個(gè)經(jīng)典故事繪本(諸葛亮的八個(gè)經(jīng)典故事)-每日短訊
來(lái)為大家解答以上的問(wèn)題。諸葛亮的八個(gè)經(jīng)典故事繪本,... 更多>
期貨報(bào)告今日需關(guān)注的期貨數(shù)據(jù)與事件提醒(2023年6月9日)周五1.中國(guó)至6月8日45個(gè)港口鐵礦石庫(kù)存;2.中國(guó)公布5月CPI年率;3.中國(guó)至6月9日外購(gòu)仔豬養(yǎng)殖利潤(rùn);4.中國(guó)至6月9日自繁自養(yǎng)生豬養(yǎng)殖利潤(rùn);5.中國(guó)至6月9日菜粕周度庫(kù)存,至6月9日豆粕周度庫(kù)存;6.中國(guó)至6月9日全國(guó)主要油廠大豆壓榨開(kāi)機(jī)率,至6月9日全國(guó)主要油廠大豆壓榨量 當(dāng)前速訊
期貨報(bào)告今日需關(guān)注的期貨數(shù)據(jù)與事件提醒(2023年6月9... 更多>
木工做的柜子不滿意能拆嗎怎么辦(木工做的柜子不滿意能拆嗎) 天天熱聞
相信大家對(duì)木工做的柜子不滿意能拆嗎怎么辦,木工做的... 更多>
今頭條!上市公司積極布局“AI+教育” 相關(guān)技術(shù)可賦能高考復(fù)習(xí)、押題、閱卷等環(huán)節(jié)
6月7日,三六零(601360)集團(tuán)董事長(zhǎng)周鴻祎發(fā)出一條微博... 更多>
存款利率靈活調(diào)整 中小銀行料跟進(jìn)下調(diào) 實(shí)時(shí)焦點(diǎn)
6月8日,國(guó)有大行下調(diào)活期存款和部分定期存款掛牌利率... 更多>
美國(guó)總統(tǒng)拜登:任命Polly Trottenberg為美國(guó)聯(lián)邦航空管理局(FAA)代理局長(zhǎng)
美國(guó)總統(tǒng)拜登:任命PollyTrottenberg為美國(guó)聯(lián)邦航空管... 更多>
大行存款“降息” 中小銀行有望跟進(jìn)|當(dāng)前速讀
繼去年9月大行存款“降息”、今年4月中小銀行補(bǔ)降后,... 更多>

汽車產(chǎn)業(yè)或進(jìn)入“微增長(zhǎng)”時(shí)代 動(dòng)

5月上海二手房成交回落,掛牌活躍

華泰證券:布局低位豬股 關(guān)注新技

全球時(shí)訊:韓國(guó)LG Electronics和加

2020年西安戶口遷入政策是什么樣的

魔獸世界安其拉開(kāi)門(mén)任務(wù)怎么做(魔

榮盛發(fā)展:股票于2023年6月9日(星

工銀河北高速集團(tuán)高速公路REIT被受

1天更新4次!他們這樣為高考考生加

上海電影王健兒:3年3億孵化“文創(chuàng)+