這篇文章會(huì)使用 micro:bit 鏈接 OLED1306 顯示器,搭配「變量」、「三角函數(shù)」、「重復(fù)循環(huán)」等積木,在 OLED 上繪制「正弦波形」以及「圓形」兩種數(shù)學(xué)圖形。
micro:bit 連接 OLED1306 顯示器
按照下圖,使用「擴(kuò)充板、杜邦線、面包板」,將 micro:bit 連接 OLED1306 顯示器。
加入 OLED1306 積木
開(kāi)啟 MakeCode 的擴(kuò)展功能,搜尋「oled」,從搜尋結(jié)果中選擇「OLED12864_I2C」的項(xiàng)目,點(diǎn)選加入 OLED1306 顯示器積木。
繪制「正弦波形」
「正弦波形」是什么呢?是一種來(lái)自三角函數(shù)中的正弦比例的曲線波形,當(dāng) x 不斷改變時(shí),透過(guò)震幅、角度和正弦函數(shù)計(jì)算 y 坐標(biāo),仿真周期性的波形圖案。
正弦波形 y 坐標(biāo)公式:y = y0 + n × sin(deg)
( y0:y 軸位置、n:震幅大小、deg:角度 )
了解公式原理后,就可以開(kāi)始設(shè)計(jì) OLED 的繪圖程序:
按照公式,先放入對(duì)應(yīng)的 x、y、y0、n、deg 變量,并設(shè)定數(shù)值。
使用重復(fù)循環(huán),重復(fù) 128次 ( 因?yàn)?OLED 的 x 方向分辨率只有 128 點(diǎn) )
每次重復(fù)時(shí)
計(jì)算 y 坐標(biāo) ( 注意!MakeCode 的三角函數(shù)使用「弧度」,要將角度除以 57.7 轉(zhuǎn)換 )。
OLED 繪制在 (x,y) 繪制亮點(diǎn)。
x 增加 1。
deg 增加 20。
完成后,啟動(dòng) micro:bit,OLED 就會(huì)畫(huà)出正弦波形。
繪制「圓形」
「圓形」是透過(guò)三角函數(shù),計(jì)算圓周上的 x 與 y 坐標(biāo)所畫(huà)出的圖形。
圓形坐標(biāo)公式 ( x0、y0 為圓心坐標(biāo),r 為半徑,deg 為角度 ):
x 坐標(biāo):x0 + r × cos(deg)
y 坐標(biāo):y0 + r × sin(deg)
首先新增一個(gè)名為 circle 的函式,替函式加入 x0、y0、r 和 deg 四個(gè)參數(shù),透過(guò)函式繪制圓形。
了解公式原理后,就可以開(kāi)始設(shè)計(jì) OLED 的繪圖程序:
按照公式,編輯 circle 函式內(nèi)容。
使用計(jì)次循環(huán),重復(fù) deg 次 ( 360 度可以畫(huà)出圓形,180 度可以畫(huà)出半圓形 )。
每次重復(fù)時(shí)計(jì)算 x、y 坐標(biāo),并在 OLED 繪制亮點(diǎn)。
函式編輯完成后,于啟動(dòng)時(shí)呼叫 circle 函式。
完成后,啟動(dòng) micro:bit,OLED 就會(huì)畫(huà)出圓形。
如果需要修改「起始角度」,可以把 circle 函式增加一個(gè) deg0 的參數(shù),計(jì)算角度時(shí),先加上 deg0,就能夠指定起始的角度。
下圖的例子,按下 A 按鈕時(shí),OLED 會(huì)畫(huà)出左邊的半圓形,按下 B 按鈕時(shí),OLED 會(huì)畫(huà)出右邊的半圓形。
審核編輯:劉清
-
OLED
+關(guān)注
關(guān)注
119文章
6219瀏覽量
224789 -
正弦波
+關(guān)注
關(guān)注
11文章
648瀏覽量
55596 -
OLED顯示器
+關(guān)注
關(guān)注
0文章
66瀏覽量
13319
原文標(biāo)題:Micro:bit OLED繪制數(shù)學(xué)圖形
文章出處:【微信號(hào):易心Microbit編程,微信公眾號(hào):易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論