色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣對Arduino 4x4x4 LED立方體編程

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-02 16:40 ? 次閱讀

上周,我構建了一個LED立方體– 64個LED ,您可以對其進行編程以進行夢幻般的未來派燈光秀,而且我希望您也這樣做,因為它激勵您并擴展Arduino技能的絕佳項目。我為您提供了一些基本的應用程序,以幫助您進行思考,但是今天,我將介紹為多維數據集制作的更多軟件以及代碼說明。這樣做的目的不僅是為您提供更多運行的燈光秀,而且是為了了解對多維數據集進行編程的一些限制,并在此過程中學習一些新的編程概念。

這是一些相當高級的編碼。在自定義提供的代碼之前,您確實需要閱讀我以前的所有 Arduino教程和我們的初學者Arduino指南。

應用程序1:迷你蛇

我不想運行一套像蛇一樣的圖案序列,而是想對一條蛇進行編程,這是一種人工的蛇,它可以自己做出隨機選擇,而且完全不可預測。僅限于2個細分,我將在后面解釋,您可以在下面查看演示。在此處下載完整的代碼。

處理3D空間時,單個點需要3個坐標: X, Y 和 Z 。

但是,在我們的立方體中,X和Z平面由LED引腳表示,而Y直接由LED引腳表示。映射到陰極平面。為了方便使用這些坐標并弄清楚立方體周圍的運動,我創建了一個新的數據類型(使用結構)來表示立方體上的單個點,我稱之為“ xyz”。它僅由兩個整數組成:“ xz”和“ y”。通過這種結構,我還可以在下面的特殊(xz,y)坐標系中表示一個方向:

Y運動 (向上,向下):(xz,y + 1),(xz,y-1)

Z 運動 (向前,向后) :(xz-1,y),(xz + 1,y)

X運動 (左,右):(xz + 4,y),( xz-4,y)

例如,要將LED沿一個位置向左移動(0,0),我們應用(xz + 4,y) 并以(0,4)結尾。

對移動有一定限制-即Y坐標只能是可能的 0到3 (0是最底層,3是最上層),而XZ坐標只能是 0到15 。在Z軸運動上設置了另一個限制,以防止從立方體的后部到前面的“跳躍”,反之亦然。在這種情況下,我們使用模數函數測試4的倍數,并拒絕該移動嘗試。這是邏輯,用 valid()函數表示,如果建議的方向是可以接受的移動,則返回true,否則返回false。我添加了另一個函數來檢查反向 –也就是說,如果蛇正朝一個方向前進,即使它是移動到–和 move()《的有效位置,我們也不希望它向后退。/strong》函數,該函數將獲取坐標,方向并返回新坐標。

XYZ 數據類型, valid(), move()和 inverse()函數都可以在下載的 xyz.h 文件中找到。如果您想知道為什么將其放入一個單獨的文件而不是主程序文件中,那是由于一些復雜的Arduino編譯器規則阻止了返回自定義數據類型;它們必須放置在自己的文件中,然后在主文件的開頭導入。

在主運行時文件中,一個方向數組存儲了蛇可能做出的所有可能動作;我們可以簡單地選擇一個隨機數組成員來獲得新的方向。還創建了變量來存儲當前位置(現在),先前的方向和先前的位置。其余代碼對您來說應該是顯而易見的。只需f o r個循環,然后打開和關閉LED。在主循環中,我們檢查建議的方向是否有效,如果是,則按照這種方式進行。如果沒有,我們會選擇一個新的方向。

在主循環中唯一要指出的是一些檢查,以糾正我發現的涉及多路復用的錯誤:如果新位置在相同的陰極平面或相同的陰極平面上陽極引腳,關閉前一個LED會導致兩個LED都熄滅。也是在這一點上,我意識到在我當前的實現中,超越2段蛇形是不可能的:嘗試以角落布置方式點亮3個LED。您不能這樣做,因為激活2層和2個LED引腳后,將打開4個LED,而不是3個。這是我們有限的多維數據集設計固有的問題,但不必擔心:我們只需要使用視覺持久性以重寫繪圖方法。

視覺持久性意味著當光線順序到達我們的眼睛時(比我們能夠處理的快),它看起來像是一幅圖像。在我們的案例中,與其同時繪制所有四個圖層,不如繪制第一層,將其停用,繪制第二層并使其停用:這比我們知道發生任何變化的速度還快。這就是消息編寫者工作的原理,就像這樣:

使用視覺持久性的新繪制方法

首先,是一個新的繪制例程。我創建了一個 4 x 16二維數組(正確或錯誤)以表示LED立方體狀態的文字。繪制例程將通過簡單地對其進行迭代并將每一層刷新到立方體一小會兒來實現視覺的持久性。它將繼續以當前狀態繪制自己,直到刷新時間過去為止,此時我們將控制權傳遞回main loop()。我已將代碼的這一部分保存在此LED_cube_POV文件中,因此,如果您只想開始編寫自己的游戲,然后隨時使用它作為基礎。

應用2:Game of生活

現在,讓我們將其開發為Conway的《人生游戲》的基本版本。對于不熟悉(嘗試使用Google搜索來查找令人敬畏的復活節彩蛋動畫)的人來說,生命游戲是細胞自動機的一個示例,它創造了一種令人著迷的給出的行為只有幾個簡單的規則。

例如,這是螞蟻在智力和蜂巢的思想下如何運動的方式,盡管生物學事實表明它們實際上遵循非常基本的荷爾蒙規則。這是完整的下載代碼:按下 reset 按鈕重新啟動。如果發現自己反復出現相同的模式,請嘗試按住rest按鈕更長的時間。

此處是生命博弈的規則:

任何少于兩個活鄰居的活細胞都會死亡,好像是由人口不足造成的。

有兩個活鄰居的活細胞或三個活著的鄰居繼續生活到下一代。

具有三個以上活著的鄰居的任何活細胞都會死去,就像人滿為患一樣。

任何有三個活著的鄰居的死細胞都會變成

運行代碼。您會注意到,在5到10個“世代”內,自動機可能已經停下來,穩定在某個位置;有時,這種穩定的模式會改變位置并在木板上移動。在極少數情況下,它們甚至可能完全消失。這是只能使用4x4x4 LED的限制,但無論如何都是一個很好的學習練習。

解釋代碼:

您可能不熟悉 memcpy()函數。我用它來保存以前的游戲狀態,因為數組不能像普通變量那樣相互分配-您必須在內存空間中進行實際復制(在這種情況下為64位)。

howManyNeighbours()函數應該可以自我解釋,但如果情況并非如此,則此方法采用單個坐標,并遍歷每個可能的鄰居(與我們先前在蛇中使用的方向相同的數組)應用程序),以檢查它們是否有效。然后,它會檢查那些相鄰的LED在先前的游戲狀態中是否“點亮”,并計數有多少。

該“生活游戲”應用的主要功能是 progressGame(),這會將自動機規則應用于當前游戲狀態。

改進:到目前為止,我已經花了太長時間了,但是您可能想要嘗試添加一張支票,該支票在經過5代左右的相同模式后會自動將板復位。那請告訴我!我也建議您嘗試將POV方法添加到蛇游戲中,以期有可能使更長的蛇成為可能。

今天就是我了。我可能稍后會再訪問一些Arduino LED多維數據集應用程序,但希望您能夠修改我的代碼并創建自己的游戲規則:讓我們知道您在注釋中提出了什么,以便我們都可以下載您的創作!與以往一樣,我將在這里回答您的問題并捍衛我的可怕編碼能力。

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23252

    瀏覽量

    660588
  • Arduino
    +關注

    關注

    188

    文章

    6468

    瀏覽量

    186958
  • 立方體
    +關注

    關注

    0

    文章

    6

    瀏覽量

    6413
收藏 人收藏

    評論

    相關推薦

    ADS42B4x EVM用戶指南

    電子發燒友網站提供《ADS42B4x EVM用戶指南.pdf》資料免費下載
    發表于 12-10 14:08 ?0次下載
    ADS42B<b class='flag-5'>4x</b> EVM用戶指南

    ADS58H4x EVM用戶指南

    電子發燒友網站提供《ADS58H4x EVM用戶指南.pdf》資料免費下載
    發表于 12-10 13:51 ?0次下載
    ADS58H<b class='flag-5'>4x</b> EVM用戶指南

    PCM512x/4x EVM用戶指南

    電子發燒友網站提供《PCM512x/4x EVM用戶指南.pdf》資料免費下載
    發表于 12-10 13:48 ?0次下載
    PCM512<b class='flag-5'>x</b>/<b class='flag-5'>4x</b> EVM用戶指南

    TCAN4x5x評估模塊用戶指南

    電子發燒友網站提供《TCAN4x5x評估模塊用戶指南.pdf》資料免費下載
    發表于 11-25 15:12 ?0次下載
    TCAN<b class='flag-5'>4x5x</b>評估模塊用戶指南

    CC13x4、CC26x4 Simplelink? 無線MCU技術參考手冊

    電子發燒友網站提供《CC13x4、CC26x4 Simplelink? 無線MCU技術參考手冊.pdf》資料免費下載
    發表于 11-14 15:48 ?0次下載
    CC13<b class='flag-5'>x4</b>、CC26<b class='flag-5'>x4</b> Simplelink? 無線MCU技術參考手冊

    TLV320AIC32x4電源時序

    電子發燒友網站提供《TLV320AIC32x4電源時序.pdf》資料免費下載
    發表于 10-18 10:15 ?0次下載
    TLV320AIC32<b class='flag-5'>x4</b>電源時序

    TLV320AIC32x4睡眠和待機模式

    電子發燒友網站提供《TLV320AIC32x4睡眠和待機模式.pdf》資料免費下載
    發表于 10-18 09:43 ?0次下載
    TLV320AIC32<b class='flag-5'>x4</b>睡眠和待機模式

    為TM4C12x MCU開發LCD應用

    電子發燒友網站提供《為TM4C12x MCU開發LCD應用.pdf》資料免費下載
    發表于 09-19 10:40 ?0次下載
    為TM<b class='flag-5'>4C12x</b> MCU開發LCD應用

    TDA4x(LDC) 畸變矯正應用說明

    電子發燒友網站提供《TDA4x(LDC) 畸變矯正應用說明.pdf》資料免費下載
    發表于 09-10 10:58 ?0次下載
    TDA<b class='flag-5'>4x</b>(LDC) 畸變矯正應用說明

    Jacinto7 AM6x/DRA8x/TDA4x原理圖檢查清單

    電子發燒友網站提供《Jacinto7 AM6x/DRA8x/TDA4x原理圖檢查清單.pdf》資料免費下載
    發表于 09-06 11:19 ?0次下載
    Jacinto7 AM6<b class='flag-5'>x</b>/DRA8<b class='flag-5'>x</b>/TDA<b class='flag-5'>4x</b>原理圖檢查清單

    雙TDA4x系統解決方案

    電子發燒友網站提供《雙TDA4x系統解決方案.pdf》資料免費下載
    發表于 09-03 10:13 ?0次下載
    雙TDA<b class='flag-5'>4x</b>系統解決方案

    創意挑戰丨從0自制“自平衡立方體”(分享開源資料)

    一個非常有意思的項目,利用反作用力輪保持平衡的立方體! 項目概覽 這個立方體能夠在頂點處保持平衡,同時還能以受控方式繞軸旋轉。這一功能是通過巧妙地控制和一組三個反作用力輪來實現的。這個裝置
    發表于 06-19 14:00

    16通道、 2/4/8時分多路復用局部調光背光LED驅動器TLC696x2/4/8數據表

    電子發燒友網站提供《16通道、 2/4/8時分多路復用局部調光背光LED驅動器TLC696x2/4/8數據表.pdf》資料免費下載
    發表于 03-25 09:08 ?0次下載
    16通道、 2/<b class='flag-5'>4</b>/8時分多路復用局部調光背光<b class='flag-5'>LED</b>驅動器TLC696<b class='flag-5'>x</b>2/<b class='flag-5'>4</b>/8數據表

    可以使用CLI命令同時使用多個miniprog4(例如,3~4)對多個CCG7x設備進行編程嗎?

    我有一個關于使用帶有 miniprog4 的 CLI 命令編程 CCG7x 的問題。 我們可以使用 CLI 命令同時使用多個 miniprog4(例如,3~
    發表于 02-22 06:30

    使用Arduino Nano制作一個4×4×4 LED立方體

    在這個項目中,我們將使用 Arduino Nano 制作一個很酷的 4×4×4 LED立方體
    的頭像 發表于 02-11 12:07 ?3185次閱讀
    使用<b class='flag-5'>Arduino</b> Nano制作一個<b class='flag-5'>4</b>×<b class='flag-5'>4</b>×<b class='flag-5'>4</b> <b class='flag-5'>LED</b><b class='flag-5'>立方體</b>
    主站蜘蛛池模板: 国产传媒18精品A片在线观看| 11 13加污女qq看他下面| 国产69精品久久久久乱码免费| 最近日本字幕MV免费观看在线| 中文视频在线观看| 97免费在线视频| ABO成结顶腔锁住| 成片在线看一区二区草莓| 成人永久免费视频| 国产精品久久久久久久久免费下载 | 恋夜影院支持安卓视频美女| 久久麻豆亚洲AV成人无码国产| 久久久久久久尹人综合网亚洲| 毛片在线网址| 秋霞电影在线观看午夜伦| 热99RE久久精品国产| 午夜日韩久久影院| 亚洲日韩中文字幕区| 2021自产拍在线观看视频 | 伊人情人网综合| 中文字幕一区二区视频| qq快播电影网| 国产偷国产偷亚洲高清SWAG| 精品亚洲视频在线观看| 脔到她哭H粗话HWWW男男动漫| 欧美美女性生活| 手机在线免费看毛片| 亚洲精品自在在线观看| 最新国产精品视频免费看| 苍井空a 集在线观看网站| 大桥未久电影在线| 精品AV无码一二三区视频| 免费人成在线观看网站视频| 秋霞电影院兔费理论84MB| 色噜噜视频| 亚洲人成在线观看一区二区| 97超碰97资源在线观看视频| 成人免费视频网站www| 精品久久久无码21P发布| 欧美日韩精品久久久免费观看| 色偷偷网址|