0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OLED繪制數(shù)學(xué)圖形

jf_cVC5iyAO ? 來源:易心Microbit編程 ? 2023-03-28 10:20 ? 次閱讀

這篇文章會(huì)使用 micro:bit 鏈接 OLED1306 顯示器,搭配「變量」、「三角函數(shù)」、「重復(fù)循環(huán)」等積木,在 OLED 上繪制「正弦波形」以及「圓形」兩種數(shù)學(xué)圖形。

micro:bit 連接 OLED1306 顯示器

按照下圖,使用「擴(kuò)充板、杜邦線、面包板」,將 micro:bit 連接 OLED1306 顯示器。

a0381778-cc90-11ed-bfe3-dac502259ad0.jpg

加入 OLED1306 積木

開啟 MakeCode 的擴(kuò)展功能,搜尋「oled」,從搜尋結(jié)果中選擇「OLED12864_I2C」的項(xiàng)目,點(diǎn)選加入 OLED1306 顯示器積木。

a04a5802-cc90-11ed-bfe3-dac502259ad0.jpg

繪制「正弦波形」

「正弦波形」是什么呢?是一種來自三角函數(shù)中的正弦比例的曲線波形,當(dāng) x 不斷改變時(shí),透過震幅、角度和正弦函數(shù)計(jì)算 y 坐標(biāo),仿真周期性的波形圖案。

正弦波形 y 坐標(biāo)公式:y = y0 + n × sin(deg)

( y0:y 軸位置、n:震幅大小、deg:角度 )

a06b0bce-cc90-11ed-bfe3-dac502259ad0.jpg

了解公式原理后,就可以開始設(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。

a07d7b60-cc90-11ed-bfe3-dac502259ad0.jpg

完成后,啟動(dòng) micro:bit,OLED 就會(huì)畫出正弦波形。

繪制「圓形」

「圓形」是透過三角函數(shù),計(jì)算圓周上的 x 與 y 坐標(biāo)所畫出的圖形。

圓形坐標(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ù),透過函式繪制圓形。

a0bc25e0-cc90-11ed-bfe3-dac502259ad0.jpg

了解公式原理后,就可以開始設(shè)計(jì) OLED 的繪圖程序:

按照公式,編輯 circle 函式內(nèi)容。

使用計(jì)次循環(huán),重復(fù) deg 次 ( 360 度可以畫出圓形,180 度可以畫出半圓形 )。

每次重復(fù)時(shí)計(jì)算 x、y 坐標(biāo),并在 OLED 繪制亮點(diǎn)。

函式編輯完成后,于啟動(dòng)時(shí)呼叫 circle 函式。

a0d3b37c-cc90-11ed-bfe3-dac502259ad0.jpg

完成后,啟動(dòng) micro:bit,OLED 就會(huì)畫出圓形。

a0e78b4a-cc90-11ed-bfe3-dac502259ad0.jpg

如果需要修改「起始角度」,可以把 circle 函式增加一個(gè) deg0 的參數(shù),計(jì)算角度時(shí),先加上 deg0,就能夠指定起始的角度。

a1096954-cc90-11ed-bfe3-dac502259ad0.jpg

下圖的例子,按下 A 按鈕時(shí),OLED 會(huì)畫出左邊的半圓形,按下 B 按鈕時(shí),OLED 會(huì)畫出右邊的半圓形。

a12744ec-cc90-11ed-bfe3-dac502259ad0.jpg

a13c4518-cc90-11ed-bfe3-dac502259ad0.jpg






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6141

    瀏覽量

    223171
  • 正弦波
    +關(guān)注

    關(guān)注

    11

    文章

    623

    瀏覽量

    54963
  • OLED顯示器
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    12923

原文標(biāo)題:Micro:bit OLED繪制數(shù)學(xué)圖形

文章出處:【微信號(hào):易心Microbit編程,微信公眾號(hào):易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MATLAB圖形繪制基本技術(shù)教程

    1 MATLAB基本二維圖形繪制2 plot 命令使用3 loglog、semilogx、semilogy、polar4 二維曲線的標(biāo)注5 二維圖形坐標(biāo)軸的控制6 其他類型的MATLAB二維
    發(fā)表于 09-04 08:23

    matlab圖形繪制功能

    matlab圖形繪制功能
    發(fā)表于 08-17 14:57

    第10章 2-D圖形庫(kù)之繪制圖形

    轉(zhuǎn)stemwin教程本期主要講解2-D圖形庫(kù)的圖形繪制,包括繪制多邊形,繪制圓,繪制橢圓,
    發(fā)表于 10-12 10:13

    MATLAB圖形繪制基本技術(shù)

    3.1 MATLAB基本二維圖形繪制3.2 plot 命令使用3.3 loglog、semilogx、semilogy、polar3.4 二維曲線的標(biāo)注3.5 二維圖形坐標(biāo)軸的控制3.6 其他類型的MATLAB二維
    發(fā)表于 09-03 12:15 ?0次下載

    MATLAB高級(jí)圖形繪制技術(shù)

    MATLAB高級(jí)圖形繪制技術(shù) 5.1 其他二維圖形繪制命令5.2 其他三維圖形繪制命令5.3
    發(fā)表于 09-03 12:17 ?0次下載

    MATLAB高級(jí)圖形繪制技術(shù)

    MATLAB高級(jí)圖形繪制技術(shù) 5.1 其他二維圖形繪制命令5.2 其他三維圖形繪制命令5.3
    發(fā)表于 09-03 12:18 ?0次下載

    繪制根軌跡的數(shù)學(xué)依據(jù)及其性質(zhì)

    繪制根軌跡的數(shù)學(xué)依據(jù)及其性質(zhì)
    發(fā)表于 07-27 14:21 ?2960次閱讀

    繪制平面圖形

    繪制平面圖形 2.2.1?幾何作圖
    發(fā)表于 07-31 15:42 ?3730次閱讀
    <b class='flag-5'>繪制</b>平面<b class='flag-5'>圖形</b>

    如何用Word調(diào)用Protel For DOS繪制圖形

    如何用Word調(diào)用Protel For DOS繪制圖形 撰寫科技文章時(shí),常常需要插入一些電路原理圖,如果這些原理圖用Word自帶的畫圖工具繪制
    發(fā)表于 03-09 13:40 ?1369次閱讀

    JAVA教程之常用圖形繪制與填充

    JAVA教程之常用圖形繪制與填充,很好的JAVA的資料,快來學(xué)習(xí)吧
    發(fā)表于 04-11 17:28 ?3次下載

    JAVA教程之不規(guī)則圖形繪制

    JAVA教程之不規(guī)則圖形繪制,很好的JAVA的資料,快來學(xué)習(xí)吧
    發(fā)表于 04-11 17:28 ?1次下載

    基于VS的分形圖形繪制田興彥

    基于VS的分形圖形繪制_田興彥
    發(fā)表于 03-17 08:00 ?0次下載

    Matlab圖形繪制經(jīng)典案例詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是Matlab圖形繪制經(jīng)典案例詳細(xì)說明資料免費(fèi)下載。
    發(fā)表于 08-01 17:21 ?7次下載
    Matlab<b class='flag-5'>圖形</b><b class='flag-5'>繪制</b>經(jīng)典案例詳細(xì)說明

    30個(gè)MATLAB圖形繪制

    30個(gè)MATLAB圖形繪制
    的頭像 發(fā)表于 07-07 09:54 ?1494次閱讀

    MATLAB中特殊圖形繪制示例

    MATLAB中特殊圖形繪制示例
    的頭像 發(fā)表于 07-07 09:55 ?774次閱讀