電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>M5Stack圣誕雪球開源分享

M5Stack圣誕雪球開源分享

2023-06-28 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

什么?

雪花球和熔巖燈有一個(gè)共同點(diǎn):它們看起來非常簡單和漂亮。而且你不能得到足夠的他們兩個(gè)!雪球只不過是一個(gè)包含微型化場景的透明球體。球體充滿了水,其中包含白色的小薄片。你可以花幾個(gè)小時(shí)一遍又一遍地?fù)u晃地球,看著雪花慢慢地沉到地上。非常平靜和冥想!

在北半球,圣誕節(jié)是在冬季,因此傳統(tǒng)上與降雪有關(guān)。這就是為什么雪球中經(jīng)常出現(xiàn)圣誕場景的原因。

為什么?

雪花球很漂亮,它們就像熔巖燈一樣令人愉悅。自己制作雪球可能很棘手,因?yàn)槟枰线m的液體和合適的薄片。而且一定要封好,不然你的客廳會泛濫成災(zāi)。以及如何制作將放置在球體中的防水場景?如果您不想玩水和玻璃碗,那么您必須以數(shù)字方式構(gòu)建它。

?

如何?

現(xiàn)代時(shí)代使現(xiàn)代解決方案成為可能。因此,邁向數(shù)字雪球不再那么困難了。您只需要一個(gè)顯示器、一個(gè)電池、一個(gè)加速度計(jì)和一個(gè)微處理器

M5Stack Core 模塊為小巧而方便的數(shù)字雪花球提供了完美的基礎(chǔ)。所有必要的部件都已經(jīng)很好地內(nèi)置在一個(gè)外殼中。

集成的加速度傳感器可用于確定設(shè)備的方向。這里不需要高精度。雪只應(yīng)始終根據(jù)重力方向向下落。因此不需要傳感器融合或溫度校正,只需要 X 和 Y 方向的加速度值。

pYYBAGOJUESAJXSvAAA6KkpoU3M762.jpg
設(shè)備不同方向的加速度數(shù)據(jù)
?

一個(gè)簡單的物理雪花模型。

幸運(yùn)的是,自由飄落的雪花的物理模擬非常簡單。

雪花的質(zhì)量小,表面積大。在真空中,它們下落的速度與 50 公斤的啞鈴一樣快,但在大氣中,空氣阻力會減慢它們的速度。它們在短暫的加速階段后達(dá)到最大速度,然后以恒定速度落到地面。這不僅美觀,而且易于模擬。

在降雪模擬的每個(gè)時(shí)間間隔內(nèi),每片雪花只需要在重力方向上移動一個(gè)常數(shù)值即可。而已。

但如果你完全那樣做,它看起來根本不現(xiàn)實(shí)。雪花之所以如此迷人,是因?yàn)樗鼈兙徛y以預(yù)測的下落方式。由于它們的重量很輕,它們不僅會緩慢地落到地上,而且它們的運(yùn)動方向也會隨著微小的空氣運(yùn)動而改變。模擬這些空氣運(yùn)動及其對每片雪花的影響會使軟件變得非常復(fù)雜。

一個(gè)簡單的解決方案是使用添加到下降運(yùn)動的隨機(jī)值。此外,每個(gè)雪花都有自己的速度因子,因此并非所有雪花都以相同的速度下落。自然界也是如此,因?yàn)檠┗ǖ男螤詈痛笮〔煌?,下落的速度也不同?/font>

// get the acceleration data
// values are in g (9.81 m/s2)
M5.IMU.getAccelData(&accX,&accY,&accZ);
// use gravity vector for movement
float dx = (accX*-10.0) + (round(accX)*random(5)) + (round(accY)*(random(10)-5));
float dy = (accY*10.0) +  (round(accX)*random(5)) + (round(accY)*(random(10)-5));
flakeArray[i].x = flakeArray[i].x + round(dx*flakeArray[i].speed);
flakeArray[i].y = flakeArray[i].y + round(dy*flakeArray[i].speed);
// push the snowflake to the sprite on top of the background image
img.drawXBitmap((int)(flakeArray[i].x-flakeWidth),
    (int)(flakeArray[i].y-flakeHeight),
    snowflake, flakeWidth, flakeHeight, TFT_WHITE);
?
?
?
pYYBAGOJflKAA5LNAABuXroAhUg588.jpg
?
1 / 2 ?降雪模擬說明
?

內(nèi)容。

?

我為自己編寫了一個(gè) R 腳本,它將圖像轉(zhuǎn)換為uint16_t RGB565 圖像數(shù)組。R 是用于統(tǒng)計(jì)數(shù)據(jù)分析的強(qiáng)大工具,但它也可以用于許多其他事情。例如,用于圖像處理。R 的好處之一是,它也可以從命令行調(diào)用。

要使用該腳本,您需要在計(jì)算機(jī)上安裝R 環(huán)境。然后,您可以使用 R GUI 運(yùn)行腳本,或從命令行調(diào)用它。

在 GUI 中,只需加載腳本,然后突出顯示所有文本并運(yùn)行它。將出現(xiàn)一個(gè)打開的對話框,您可以選擇圖像。然后頭文件會自動保存在同一目錄中。

注意:在第一次調(diào)用腳本后,R 必須安裝一些必需的庫。這需要一些時(shí)間,但只需要一次。

?
?
?
poYBAGOJflWAIT3DAAHsBTHX1OU906.jpg
?
1 / 2 ?帶有腳本的 R-GUI 將圖像轉(zhuǎn)換為 RGB565 數(shù)組
?

注意:有時(shí) .BMP 圖像會被錯誤讀取。最好使用 .PNG 或 .JPG 圖片。

從命令行調(diào)用腳本需要一些準(zhǔn)備工作,但工作起來又快又好:

R 有一個(gè)程序可以從命令行調(diào)用腳本。在 Windows 下,該程序稱為“Rscript.exe”,位于 R 的 bin 目錄中:

pYYBAGOJfleAU5WDAACvxYGkMow941.jpg
從命令行運(yùn)行 R-Scripts 的可執(zhí)行文件的位置
?

復(fù)制路徑,以便您可以絕對尋址程序。這可能看起來像這樣,例如:

"C:\Program Files\R\R-4.0.2\bin\Rscript.exe"
or
"C:\Users\Name\Documents\R\R-4.0.3\bin\x64\Rscript.exe"

使用 R 腳本更改目錄中的 .bat 文件中的路徑。現(xiàn)在您只需雙擊 .bat 文件。然后會打開一個(gè)控制臺窗口,在其中執(zhí)行 R 腳本。將出現(xiàn)一個(gè)打開的對話框,您可以在其中選擇圖像。然后,該腳本會創(chuàng)建包含 uint16_t 數(shù)組的 .h 文件和包含已轉(zhuǎn)換圖像的 PDF 文件。

?
?
?
pYYBAGOJflyARhfzAADEoPlPEYI347.jpg
?
1 / 4 ?執(zhí)行 .bat 文件
?

不要忘記在代碼中調(diào)整圖像的名稱。在代碼中,我使用了以下名稱:

const uint16_t background_image[76800] = { ... };

如何顯示。

模擬應(yīng)平滑顯示且無閃爍。為了實(shí)現(xiàn)這一點(diǎn),使用了具有 16 位顏色深度的全屏精靈。

// Sprite object "img" with pointer to "M5.Lcd" object
// the pointer is used by pushSprite() to push it onto the LCD
TFT_eSprite img = TFT_eSprite(&M5.Lcd);

16 位精靈很大。您將需要 M5Stack Fire 的 PSRAM 才能運(yùn)行此代碼。并且您需要在編譯器中啟用 PSRAM。使用 PlatformIO,只需在platformio.ini文件中添加以下行:

build_flags =
-DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue

首先,將背景圖像繪制到精靈中,然后在其上繪制每片雪花。一旦完成,精靈就會被推送到屏幕上。這使得模擬運(yùn)行良好且流暢,因此觀看起來很有趣。就像一個(gè)真正的雪球。

更新:

16 位精靈不是必需的。該代碼還適用于具有 8 位顏色深度的全屏精靈。這意味著該代碼也適用于 M5Stack-Gray。

反饋

我希望您喜歡“雪球”,并且此代碼可以證明對你們中的某些人有用。如果您有任何問題或意見,請隨時(shí)給我留言。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)