欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

怎樣對(duì)Arduino 4x4x4 LED立方體編程

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-02 16:40 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用視覺(jué)持久性的新繪制方法

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

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

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

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

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

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

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

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

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

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

解釋代碼:

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

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

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

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

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

責(zé)任編輯:wv

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

    關(guān)注

    242

    文章

    23390

    瀏覽量

    663681
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

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

    關(guān)注

    0

    文章

    6

    瀏覽量

    6433
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AURIX TC4x虛擬化技術(shù)詳解

    AURIX TC4x CDSP介紹及應(yīng)用 AURIX TC4x 硬件支持包助您實(shí)現(xiàn)初期開(kāi)發(fā),加速開(kāi)發(fā)進(jìn)程 AURIX TC4x 如何使用MathWorks Matlab工具箱自動(dòng)生成PPU目標(biāo)代碼 AURIX TC
    的頭像 發(fā)表于 02-07 11:47 ?149次閱讀
    AURIX TC<b class='flag-5'>4x</b>虛擬化技術(shù)詳解

    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 ?0次下載
    PCM512<b class='flag-5'>x</b>/<b class='flag-5'>4x</b> EVM用戶指南

    TCAN4x5x評(píng)估模塊用戶指南

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

    CC13x4、CC26x4 Simplelink? 無(wú)線MCU技術(shù)參考手冊(cè)

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

    TLV320AIC32x4電源時(shí)序

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

    TLV320AIC32x4睡眠和待機(jī)模式

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

    為T(mén)M4C12x MCU開(kāi)發(fā)LCD應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《為T(mén)M4C12x MCU開(kāi)發(fā)LCD應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 10:40 ?0次下載
    為T(mén)M<b class='flag-5'>4C12x</b> MCU開(kāi)發(fā)LCD應(yīng)用

    TDA4x(LDC) 畸變矯正應(yīng)用說(shuō)明

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

    雙TDA4x系統(tǒng)解決方案

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

    SN65LVCP404千兆位4x4交叉點(diǎn)開(kāi)關(guān)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《SN65LVCP404千兆位4x4交叉點(diǎn)開(kāi)關(guān)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-08 11:12 ?0次下載
    SN65LVCP404千兆位<b class='flag-5'>4x4</b>交叉點(diǎn)開(kāi)關(guān)數(shù)據(jù)表

    創(chuàng)意挑戰(zhàn)丨從0自制“自平衡立方體”(分享開(kāi)源資料)

    一個(gè)非常有意思的項(xiàng)目,利用反作用力輪保持平衡的立方體! 項(xiàng)目概覽 這個(gè)立方體能夠在頂點(diǎn)處保持平衡,同時(shí)還能以受控方式繞軸旋轉(zhuǎn)。這一功能是通過(guò)巧妙地控制和一組三個(gè)反作用力輪來(lái)實(shí)現(xiàn)的。這個(gè)裝置
    發(fā)表于 06-19 14:00

    16通道、 2/4/8時(shí)分多路復(fù)用局部調(diào)光背光LED驅(qū)動(dòng)器TLC696x2/4/8數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《16通道、 2/4/8時(shí)分多路復(fù)用局部調(diào)光背光LED驅(qū)動(dòng)器TLC696x2/4/8數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-25 09:08 ?0次下載
    16通道、 2/<b class='flag-5'>4</b>/8時(shí)分多路復(fù)用局部調(diào)光背光<b class='flag-5'>LED</b>驅(qū)動(dòng)器TLC696<b class='flag-5'>x</b>2/<b class='flag-5'>4</b>/8數(shù)據(jù)表

    可以使用CLI命令同時(shí)使用多個(gè)miniprog4(例如,3~4)對(duì)多個(gè)CCG7x設(shè)備進(jìn)行編程嗎?

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