chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

應(yīng)用程序1:迷你蛇

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

處理3D空間時(shí),單個(gè)點(diǎn)需要3個(gè)坐標(biāo): X, Y 和 Z 。

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

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

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

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

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

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

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

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

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

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

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

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

應(yīng)用2:Game of生活

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

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

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

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

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

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

任何有三個(gè)活著的鄰居的死細(xì)胞都會變成

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

解釋代碼:

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

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

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

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

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

責(zé)任編輯:wv

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

    關(guān)注

    243

    文章

    24427

    瀏覽量

    687098
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6514

    瀏覽量

    195856
  • 立方體
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于VL53L4CX的飛行時(shí)間傳感器擴(kuò)展板:X-NUCLEO-53L4A2技術(shù)解析

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

    ?TPS65296 完整 LPDDR4/LPDDR4X 內(nèi)存電源解決方案技術(shù)文檔總結(jié)

    TPS65296器件以最低的總成本和最小的空間為 LPDDR4/LPDDR4X 存儲器系統(tǒng)提供完整的電源解決方案。它符合 LPDDR4/LPDDR4X 上電和斷電序列要求的 JEDEC
    的頭像 發(fā)表于 09-09 14:11 ?924次閱讀
    ?TPS65296 完整 LPDDR<b class='flag-5'>4</b>/LPDDR<b class='flag-5'>4X</b> 內(nèi)存電源解決方案技術(shù)文檔總結(jié)

    TLC696x2/4/8系列16通道智能LED背光驅(qū)動芯片技術(shù)解析

    Texas Instruments TLC696x2/4/8TLC696x2/4/8-Q1背光驅(qū)動器是與TLC696x0/TLC696
    的頭像 發(fā)表于 08-21 14:54 ?743次閱讀
    TLC696<b class='flag-5'>x</b>2/<b class='flag-5'>4</b>/8系列16通道智能<b class='flag-5'>LED</b>背光驅(qū)動芯片技術(shù)解析

    0.25 - 2.15 GHz 4x2 開關(guān)矩陣,帶音調(diào)/電壓解碼器 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()0.25 - 2.15 GHz 4x2 開關(guān)矩陣,帶音調(diào)/電壓解碼器相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有0.25 - 2.15 GHz 4x2 開關(guān)矩陣,帶音調(diào)/電壓解碼器的引腳圖
    發(fā)表于 08-07 18:35
    0.25 - 2.15 GHz <b class='flag-5'>4x</b>2 開關(guān)矩陣,帶音調(diào)/電壓解碼器 skyworksinc

    4 x 2 開關(guān)矩陣,帶音調(diào)/電壓解碼器 250 MHz–2.15 GHz skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()4 x 2 開關(guān)矩陣,帶音調(diào)/電壓解碼器 250 MHz–2.15 GHz相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有4 x 2 開關(guān)矩陣,帶音調(diào)/電壓解碼器 250 MHz–
    發(fā)表于 08-06 18:30
    <b class='flag-5'>4</b> <b class='flag-5'>x</b> 2 開關(guān)矩陣,帶音調(diào)/電壓解碼器 250 MHz–2.15 GHz skyworksinc

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

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

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

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

    如何使用多個(gè)miniprog4對多個(gè)CCG7x設(shè)備進(jìn)行編程?

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

    HMC370LP4/370LP4E x4有源倍頻器SMT技術(shù)手冊

    HMC370LP4(E)是一款利用InGaP GaAs HBT技術(shù)制造而成的有源微型x4倍頻器,采用4x4 mm無鉛表面貼裝封裝。 在5V電源電壓下,功率輸出為0 dBm(典型值)且相對輸入功率
    的頭像 發(fā)表于 04-17 11:30 ?651次閱讀
    HMC370LP<b class='flag-5'>4</b>/370LP<b class='flag-5'>4</b>E <b class='flag-5'>x4</b>有源倍頻器SMT技術(shù)手冊

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

    電子發(fā)燒友網(wǎng)為你提供()Sky5? LB/LMB/MB/HB 和 4x4 MIMO 分集接收模塊相關(guān)產(chǎn)品參數(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

    HMC596 CMOS 4x2開關(guān)矩陣,采用SMT封裝技術(shù)手冊

    HMC596LP4(E)是一款低成本4x2開關(guān)矩陣產(chǎn)品,采用無引腳QFN 4x4 mm表貼封裝,可用于衛(wèi)星/DBS、LNB和200 MHz至3000 MHz的多路開關(guān)。 開關(guān)上集成由正電壓控制的
    的頭像 發(fā)表于 03-07 16:50 ?1372次閱讀
    HMC596 CMOS <b class='flag-5'>4x</b>2開關(guān)矩陣,采用SMT封裝技術(shù)手冊

    AMS-MTX_4x4:多功能視頻畫面控制器,重塑視聽體驗(yàn)的新篇章

    的AMS-MTX_4x4多功能視頻畫面控制器,憑借其卓越的性能和多樣化的功能,成為了市場上的明星產(chǎn)品,引領(lǐng)著視聽行業(yè)的新潮流。 AMS-MTX_4x4是一款集視頻采集、視頻矩陣、畫面分割、畫面拼接四大功能于一的多功能視頻畫面控
    的頭像 發(fā)表于 12-26 10:50 ?714次閱讀
    AMS-MTX_<b class='flag-5'>4x4</b>:多功能視頻畫面控制器,重塑視聽體驗(yàn)的新篇章

    ADS42B4x EVM用戶指南

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

    ADS58H4x EVM用戶指南

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

    PCM512x/4x EVM用戶指南

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