本文小編為大家詳細(xì)介紹“在MicroPython中怎么用面向?qū)ο蠓椒刂苖icrobit顯示”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“在MicroPython中怎么用面向?qū)ο蠓椒刂苖icrobit顯示”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為石鼓企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,石鼓網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
Python(micropython)對物理計算非常有用
Python是當(dāng)之無愧的物理計算應(yīng)用中一個非常流行的語言。
Python很容易學(xué)習(xí),它很有表現(xiàn)力,可以在Linux、Mac OS和微軟Windows上免費使用。
Python讓樹莓派充滿活力,大量代碼樹莓派的代碼都是用Python實現(xiàn)的。
最近,micropython帶來了語言的幾個流行的單片機(jī)平臺,包括BBC microbit。
但…
大多數(shù)已發(fā)表micropython腳本使用Python程序風(fēng)格。大多數(shù)程序員都是這么開始的,它是教程中使用最廣泛的一種風(fēng)格。
當(dāng)以程序式編程時,您可以逐步地完成計算機(jī)所希望的工作,而程序則是指定這些步驟的過程。
值得探索其他編程風(fēng)格,在本文中,您將看到如何開發(fā)一個簡單的Python應(yīng)用程序,它可以使用面向?qū)ο箫L(fēng)格。在面向?qū)ο蟮某绦蛑校ㄟ^創(chuàng)建對象來編程,即將數(shù)據(jù)和代碼結(jié)合起來執(zhí)行簡單任務(wù)的小程序包。為了進(jìn)行更復(fù)雜的任務(wù),對象相互協(xié)作(相互交互)。通過編寫類的定義,指定特定對象的類型(數(shù)據(jù))和它能做什么(方法),指定程序所需的對象類型。
這個想法很簡單。應(yīng)用程序使用microbit的LED點陣顯示計數(shù)器的值,并且可以通過使用按鈕來更改它。稍后,您將看到如何將這個簡單的想法應(yīng)用于實際項目中。
您可以用簡短的腳本實現(xiàn)演示,但腳本的組成部分在其他應(yīng)用程序中不易使用。
以下是一些可能需要實現(xiàn)的變化,而不必從scratch開始:
使用 LED 燈柱顯示
顯示當(dāng)前光線等級或溫度
一個時鐘樣式,當(dāng)參數(shù)上升到9時跳到0
使用不同類型LED的類似顯示器
一次只打開一個LED顯示值的顯示器
用不同顏色的顯示不同值的顯示器
當(dāng)然,您可以通過創(chuàng)建原始腳本的多個變體來實現(xiàn)這一點,但如果您在原始腳本中發(fā)現(xiàn)了bug,那么會發(fā)生什么?你必須在每一份拷貝上做同樣的修改!
這就是為什么有經(jīng)驗的程序員試圖避免代碼重復(fù)拷貝的原因之一。甚至有一個縮寫詞可以幫助你記住它:DRY(Don’t repeat yourself),代表“不要重復(fù)你自己”。
還有一個很好的理由,可以用簡單的組件來編寫代碼。每個組件都很容易自己測試。這可以幫助您避免bug,跟蹤并刪除任何在代碼中爬蟲。
讓我們開始編碼
您將需要查看按鈕的代碼,并告訴應(yīng)用程序中的計數(shù)器在按下其中一個按鈕時計數(shù)或向上或向下計數(shù)。
沒有必要用一個類來實現(xiàn)它。
應(yīng)用程序代碼中創(chuàng)建和SimpleDisplayer實例連在一起的計數(shù)器,以達(dá)到預(yù)期的結(jié)果。
max_count = 10 disp = SimpleDisplayer() counter = Counter(disp, max_count) while True: if button_a.is_pressed(): counter.up() if button_b.is_pressed(): counter.down() sleep(200)
最后一部分應(yīng)該是不言自明的。它創(chuàng)建了一個SimpleDisplayer和計數(shù)器的代碼。讓我們從計數(shù)器開始。
Counter類
在這個應(yīng)用程序中,計數(shù)器是一個簡單的對象,它知道它的當(dāng)前計數(shù),并且可以在它的初始值為零和某些最大值之間上下計數(shù)。在我們的例子中,最大值是10。
計數(shù)器知道另一個對象,每當(dāng)計數(shù)器的值發(fā)生變化時就會被通知。最初,這將是一個SimpleDisplayer對象并在microbit上顯示。
下面是計數(shù)器類的代碼:
class Counter(): # count ranges from 0 to max. # when the count changes disp (the displayer) is notified def __init__(self, disp, max): self._disp = disp self._max = max self._count = 0 def update(self): self._disp.value(self._count) def up(self): if self._count < self._max: self._count += 1 self.update() def down(self): if self._count > 0: self._count -= 1 self.update()
計數(shù)器向顯示器發(fā)送消息,這是一個SimpleDisplayer使用內(nèi)置的LED顯示數(shù)值的代碼:
# SimpleDisplayer shows the latest value on the micro:bit's LEDs class SimpleDisplayer(): def value(self, num): display.show(str(num))
面向?qū)ο缶幊桃子诟?/strong>
這種方法使我們的應(yīng)用程序很容易適應(yīng)一個代碼的變化。假設(shè)您希望使用類似于Proto-pic EDGE的LED陣列顯示計數(shù)器的當(dāng)前狀態(tài)。
下面是驅(qū)動修訂應(yīng)用程序的代碼:
from microbit import * import neopixel ... max_count = 10 leds = neopixel.NeoPixel(pin0, max_count) disp = BarGraph(leds, BarGraph.YELLOW) counter = Counter(disp, max_count) while True: if button_a.is_pressed(): counter.up() if button_b.is_pressed(): counter.down() sleep(200)
最后一部分不變。使用了兩個新的類的代碼:neopixel和BarGraph。
neopixel類是microbit的micropython版的一部分,所以我們只需要導(dǎo)入neopixel模塊。BarGraph是我們應(yīng)用程序新的部分,我們需要寫它的定義并插入到上面。
這里是BarGraph類的代碼:
# BarGraph uses an array of Neopixels or other similar LEDs # to show the latest value class BarGraph(): # colo(u)r constants. # we use low values so the we don't strain the micro:bit's power supply WHITE = (50,50,50) RED = (50,0,0) BLUE = (0,0,50) GREEN = (0,50,0) YELLOW = (100,50,0) CLEAR = (0,0,0) def __init__(self, leds, on_colour=WHITE): self._leds = leds self._count = len(leds) self._on_colour = on_colour def value(self, num): for i in range(self._count): if i < num: self._leds[i] = self._on_colour else: self._leds[i] = self.CLEAR self._leds.show()
應(yīng)用程序代碼(前面所示)創(chuàng)建實例并將和計數(shù)器和BarGraph連接起來,從而達(dá)到預(yù)期的結(jié)果。
模塊化代碼更容易更改。在這篇文章的下一部分,我們將看到改變光感應(yīng)LDR的輸入和添加更多的顏色到BarGraph顯示。
我們還將看到這種方法的另一個主要好處:易于測試。
讀到這里,這篇“在MicroPython中怎么用面向?qū)ο蠓椒刂苖icrobit顯示”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:在MicroPython中怎么用面向?qū)ο蠓椒刂苖icrobit顯示
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article44/isgghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、域名注冊、網(wǎng)頁設(shè)計公司、微信公眾號、ChatGPT、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)