91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

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

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-02 16:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

應用程序1:迷你蛇

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

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

但是,在我們的立方體中,X和Z平面由LED引腳表示,而Y直接由LED引腳表示。映射到陰極平面。為了方便使用這些坐標并弄清楚立方體周圍的運動,我創(chuàng)建了一個新的數(shù)據(jù)類型(使用結構)來表示立方體上的單個點,我稱之為“ xyz”。它僅由兩個整數(shù)組成:“ 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軸運動上設置了另一個限制,以防止從立方體的后部到前面的“跳躍”,反之亦然。在這種情況下,我們使用模數(shù)函數(shù)測試4的倍數(shù),并拒絕該移動嘗試。這是邏輯,用 valid()函數(shù)表示,如果建議的方向是可以接受的移動,則返回true,否則返回false。我添加了另一個函數(shù)來檢查反向 –也就是說,如果蛇正朝一個方向前進,即使它是移動到–和 move()《的有效位置,我們也不希望它向后退。/strong》函數(shù),該函數(shù)將獲取坐標,方向并返回新坐標。

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

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

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

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

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

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

應用2:Game of生活

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

例如,這是螞蟻在智力和蜂巢的思想下如何運動的方式,盡管生物學事實表明它們實際上遵循非?;镜暮蔂柮梢?guī)則。這是完整的下載代碼:按下 reset 按鈕重新啟動。如果發(fā)現(xiàn)自己反復出現(xiàn)相同的模式,請嘗試按住rest按鈕更長的時間。

此處是生命博弈的規(guī)則:

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

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

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

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

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

解釋代碼:

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

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

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

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

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

責任編輯:wv

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

    關注

    244

    文章

    24634

    瀏覽量

    691401
  • Arduino
    +關注

    關注

    190

    文章

    6526

    瀏覽量

    197088
  • 立方體
    +關注

    關注

    0

    文章

    6

    瀏覽量

    6558
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TMS570LS31x4/21x4微控制器:高安全標準下的強大之選

    TMS570LS31x4/21x4微控制器:高安全標準下的強大之選 在電子設計領域,對于高性能且適用于安全關鍵應用的微控制器的需求與日俱增。德州儀器(TI)的TMS570LS31x4/21x4
    的頭像 發(fā)表于 02-09 17:10 ?363次閱讀

    MAX6960:4線串行接口8x8矩陣圖形LED驅動器的深度解析

    MAX6960 - MAX6963:4線串行接口8x8矩陣圖形LED驅動器的深度解析 在當今的電子設備中,LED顯示技術無處不在。對于工程師而言,選擇合適的
    的頭像 發(fā)表于 02-03 15:25 ?782次閱讀

    256Mb x4、x8、x16 SDRAM特性解析與應用指南

    256Mb x4、x8、x16 SDRAM特性解析與應用指南 在電子設計領域,SDRAM作為關鍵的存儲器件,其性能和特性對系統(tǒng)的整體表現(xiàn)起著至關重要的作用。今天,我們就來深入探討一下256Mb
    的頭像 發(fā)表于 02-02 16:05 ?504次閱讀

    探索MAX25503:4 x 24汽車LED矩陣驅動器的卓越性能

    探索MAX25503:4 x 24汽車LED矩陣驅動器的卓越性能 在汽車電子領域,LED照明和顯示系統(tǒng)的需求日益增長,對于高性能、高靈活性的LED
    的頭像 發(fā)表于 01-30 15:35 ?692次閱讀

    MAX25500:4 x 24 汽車 LED 矩陣驅動器的卓越之選

    MAX25500:4 x 24 汽車 LED 矩陣驅動器的卓越之選 在汽車電子領域,顯示技術的發(fā)展日新月異,對于高質量、高性能的 LED 矩陣驅動器的需求也日益增長。Analog De
    的頭像 發(fā)表于 01-30 15:25 ?177次閱讀

    CDx4HC405x 和 CDx4HCT405x 高速CMOS模擬開關深度解析

    CDx4HC405x 和 CDx4HCT405x 高速CMOS模擬開關深度解析 在電子設計領域,模擬開關是實現(xiàn)信號切換與多路復用的關鍵器件。今天,我們將深入探討CDx4HC405x
    的頭像 發(fā)表于 01-16 16:05 ?351次閱讀

    CDx4HC405x與CDx4HCT405x:高速CMOS模擬開關的技術剖析與應用指南

    CDx4HC405x與CDx4HCT405x:高速CMOS模擬開關的技術剖析與應用指南 在硬件設計領域,模擬開關和多路復用器是實現(xiàn)信號選擇與切換的關鍵組件。今天我們要深入探討的是CDx4HC405x
    的頭像 發(fā)表于 01-16 15:50 ?802次閱讀

    CDx4HC405x和CDx4HCT405x:高速CMOS模擬開關的卓越之選

    CDx4HC405x和CDx4HCT405x:高速CMOS模擬開關的卓越之選 在電子設計的廣闊領域中,模擬開關是實現(xiàn)信號切換和選擇的關鍵組件。今天,我們將深入探討CDx4HC405x
    的頭像 發(fā)表于 01-16 15:25 ?408次閱讀

    探索CDx4HC405x與CDx4HCT405x:高速CMOS模擬開關的卓越之選

    探索CDx4HC405x與CDx4HCT405x:高速CMOS模擬開關的卓越之選 在電子設計的廣闊領域中,模擬開關和多路復用器是不可或缺的基礎組件。今天我們要深入探討的是德州儀器(TI
    的頭像 發(fā)表于 01-16 15:15 ?329次閱讀

    CDx4HC405x 和 CDx4HCT405x 模擬開關:特性、應用與設計指南

    CDx4HC405x 和 CDx4HCT405x 模擬開關:特性、應用與設計指南 引言 在電子設計領域,模擬開關是一種常用的器件,它能實現(xiàn)信號的路由、切換等功能。CDx4HC405x
    的頭像 發(fā)表于 01-16 15:15 ?348次閱讀

    基于VL53L4CX的飛行時間傳感器擴展板:X-NUCLEO-53L4A2技術解析

    STMicroelectronics X-NUCLEO-53L4A2擴展板設計用于配備Arduino R3連接器的任何STM32 Nucleo開發(fā)板。X-NUCLEO-53L4A2擴展板包括完整的評估套件,可讓用戶使用具有擴展距
    的頭像 發(fā)表于 10-30 16:10 ?802次閱讀
    基于VL53L<b class='flag-5'>4</b>CX的飛行時間傳感器擴展板:<b class='flag-5'>X-NUCLEO-53L4</b>A2技術解析

    3Dfindit 提供的數(shù)字立方體模型為研究項目的可視化提供了支持

    作為學習項目的一部分,羅伊特林根教育大學的學生們在比辛根集中營紀念地的博物館中使用 3Dfindit 動畫立方體模型進行了學習。作為歷史教學研討會的一部分,學生們研究了巴登-符騰堡州比辛根在
    發(fā)表于 08-01 14:36

    MT7615 802.11ac Wi-Fi4x4 雙頻單芯片資料

    電子發(fā)燒友網站提供《MT7615 802.11ac Wi-Fi4x4 雙頻單芯片資料.pdf》資料免費下載
    發(fā)表于 06-08 10:06 ?4次下載

    如何使用多個miniprog4對多個CCG7x設備進行編程?

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

    Sky5? LB/LMB/MB/HB 和 4x4 MIMO 分集接收模塊 skyworksinc

    電子發(fā)燒友網為你提供()Sky5? LB/LMB/MB/HB 和 4x4 MIMO 分集接收模塊相關產品參數(shù)、數(shù)據(jù)手冊,更有Sky5? LB/LMB/MB/HB 和 4x4 MIMO 分集接收模塊
    發(fā)表于 04-11 15:21
    Sky5? LB/LMB/MB/HB 和 <b class='flag-5'>4x4</b> MIMO 分集接收模塊 skyworksinc