日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 工業(yè)控制 > 電路設計項目集錦
[導讀]你有沒有覺得有必要吹掉一些蒸汽,釋放你內心的孩子,或者只是重溫從你的街機輝煌的日子粉碎東西的快感?進入正常!這款游戲是對經典打地鼠游戲的高科技改造,融合了懷舊和工程學。

你有沒有覺得有必要吹掉一些蒸汽,釋放你內心的孩子,或者只是重溫從你的街機輝煌的日子粉碎東西的快感?進入正常!這款游戲是對經典打地鼠游戲的高科技改造,融合了懷舊和工程學。

我們從頭開始制作這款街機游戲:一個激光切割的木制盒子,里面裝著九個氣缸。但這不僅僅是蠻力,我們用磁鐵和3D磁傳感器取代了傳統(tǒng)的機械開關,使撞擊檢測快速而精確。當然,我們也不能只使用自己3D打印的錘子,這樣就能承受最激烈的游戲玩法。我們還提供了完整的構建指南:組裝、編碼和校準。準備好開始了嗎?

游戲概述

在嘉年華上玩過打地鼠嗎?假鼴鼠會從不同的洞里鉆出來每次鉆出來,你就試著敲它。正常!《T》將這一概念現代化:玩家擊碎由壓縮空氣驅動的隨機彈出的9個氣動活塞。但這不是你爺爺的街機游戲:

智能命中檢測:活塞上的磁鐵與英飛凌最新系列的TLE493D磁性傳感器相互作用,取代機械開關,實現即時、精確的命中。

自動游戲流程:xmc4700 Relax Lite kit微控制器套件是游戲的大腦,并使用OPTIGA?TrustMsecurity芯片隨機化活塞定時。活塞的氣動閥由使用單芯片的TLE94112ES 12倍半橋控制!最重要的是,游戲中的DPS368壓力傳感器和3d打印的錘子會在錘子被舉起時觸發(fā)游戲開始。

時間和得分跟蹤:一個雙位數的7段顯示剩余的比賽時間和你的最終得分。

它是如何工作的

開始:舉起錘子→DPS368測量錘子與游戲底座的高度差,觸發(fā)游戲開始倒計時5秒。

播放:15秒倒計時開始→OPTIGA?Trust M芯片隨機分配活塞→TLE94112ES激活閥門→活塞彈出。

得分:敲擊活塞→TLE493D檢測磁感應→XMC4700點燃下一個活塞并增加得分。

接下來是什么?我們將開始建立和測試9活塞氣動系統(tǒng),然后整合3D磁傳感機制,添加雙7段顯示,最后我們3D打印智能錘子和組裝成一個拋光街機準備的游戲。

硬件

氣動系統(tǒng):

此版本中的氣動系統(tǒng)基于Hackster項目:使用單個芯片驅動氣動系統(tǒng)。按照這個指南來創(chuàng)建你的主干!T游戲。

步驟2:將氣動系統(tǒng)變?yōu)榛顒踊钊?/strong>

為了準備傳感器測試,我們現在將轉向組裝。確保所有的激光切割部件和3d打印部件都準備好了,因為從現在開始,它們將在每一步中使用(請參閱附件中的設計文件)。

讓我們從組裝活塞外殼開始,它由激光切割的部件與9個活塞和傳感器的切口粘合在一起。之后,我們放置3d打印的活塞導軌,將它們鎖定在適當的位置,防止旋轉。我們還增加了一些填充物的活塞支持,以幫助吸收沖擊。

接下來,我們將9個活塞放入各自的插槽中,并將磁鐵粘在它們身上,因為它們將在接下來的構建中發(fā)揮重要作用。請注意,在照片中,我們也組裝了側墻,這是激光切割,也可以附加在最后的組裝。

接下來,我們放置9個活塞墊,擰緊支撐活塞的木板。這塊板作為運動活塞和氣動系統(tǒng)之間的中間層。最后,你可以把活塞系統(tǒng)安裝到氣動系統(tǒng)上,就可以進行測試了。

現在你已經成功地制造了活塞和氣動系統(tǒng)!隨后,我們將添加OPTIGA?Trust M芯片來隨機化活塞行為。你會注意到活塞的木制外殼上有一些切口。這些切口是為3D磁傳感器的支架設計的

3D磁傳感器可以測量三個方向的磁場:X, Y和z。我們將在9個活塞之間放置4個傳感器,這樣就可以檢測到任何一個活塞受到撞擊時磁場的變化。

在圓柱體的底部,我們放置了磁鐵。這些磁鐵能讓我們探測到圓柱體被擊中的時間。

磁鐵被放置在盡可能靠近3D磁傳感器的地方,以確保磁場足夠強,能夠被準確檢測到。對于傳感器,我們使用3D磁傳感器的切割板。在附件的Fritzing文件中提供了接線說明。

四個傳感器安裝在支架上,如下圖所示。

現在,我們可以把傳感器支架放在氣動系統(tǒng)里。

為了使組裝更實用,我們創(chuàng)建了一個帶連接器的小板。布線如圖所附的fritz文件所示;按照這些方法進行正確的連接。

現在我們可以把底板與9個氣缸在組裝和關閉一切的頂部。有了這一步,游戲的機制部分就完成了,可以進行測試了。

最后,我們可以測試9個活塞和磁傳感器(測試代碼在附件文件中提供)。之后,我們可以移動到7段屏幕的顯示部分。

分數顯示

我們使用兩個相互連接的7段數字來顯示游戲中的剩余時間和最終比分。我們將把顯示器安裝在“搞怪!”T游戲,這是設計來保持它。開始組裝激光切割的木制部件如下所示。一旦框架準備好,將7段顯示器安裝到木板上,并通過木板布線,在那里它們將連接到XMC微控制器。

讓錘子更聰明

錘子是擊打的關鍵部分!T游戲。為了檢測錘子何時被舉起,我們使用了兩個DPS368空氣壓力傳感器:一個傳感器放置在錘子內部。另一個被放置在里面!T框作為參考。

通過測量兩個傳感器之間的壓力差,我們可以測量錘與游戲之間的高度差,精度為±2厘米,并檢測錘何時被舉起。壓力傳感器接線圖在工程文件中提供。

對于錘子組件,您可以使用提供的3d打印部件。stl文件。這里有一些建議:水平打印錘子以獲得更好的穩(wěn)定性。將填充量增加到50%以增加重量和提高耐久性,將壁厚增加到2.4mm以增加堅固性。在電纜隧道區(qū)域(錘身)增加支架擋塊,避免支架難以拆除。

錘子由三部分組成:主錘體和兩個柔性TPU帽。這些蓋子可以在激烈的游戲過程中保護游戲免受損害。

在錘子的頂部,有放置DPS368壓力傳感器的空間。只需將傳感器推到位,如下圖所示:

另一個傳感器可以放置在任何地方。T游戲基地。

推動游戲發(fā)展

XMC4700放松套件需要5 V電源,顯示器工作在12 V,壓縮機和閥門都需要9 V電源。為了實現必要的電壓轉換,需要一個降壓轉換器從9v降壓到5v,從9v升壓到12v

為此,我們使用兩個TLD5190 VOLT DEMO評估板。這些板允許您通過調整板上微調器來選擇所需的輸出電壓。有關設置和使用這些評估板的詳細說明,TLD5190 VOLT DEMO評估板的用戶手冊提供了全面的解釋。

你可以通過向左轉動微調器來增加電壓,通過向右轉動來降低電壓。

軟件

現在讓我們一步一步地分解我們的Arduino代碼!首先,我們將闡明如何單獨使用和測試每個組件,然后我們將解釋整個應用程序代碼的Whack!T游戲。

第1部分:組件代碼

7段顯示代碼

游戲開始前會出現5秒倒計時。游戲在這個倒計時后開始,另一個15秒倒計時從那里開始。在這段時間里,你必須盡可能多地打汽缸。在第二次倒計時結束時,你的最終得分顯示-所有這些都是使用7段顯示。為了測試這兩個7段數字,我們使用了下面的示例代碼。我們所做的唯一修改是將引腳分配更改為50 (segmentLatch), 51 (segmentData)和52 (segmentClock)。

代碼Optiga?信任M盾2go

Optiga?Trust M芯片在這里用于生成(真實且加密安全的)1到9之間的隨機值,這是我們項目中的關鍵一步,因為它檢測到哪個圓柱體會彈出,使游戲變得不可預測和具有挑戰(zhàn)性。但在此之前,我們需要了解芯片的工作原理。

我們首先修改Optiga?Trust M Arduino庫中的一個示例,使其適應我們的需求。首先,讓我們看一下這段代碼的基礎:

頭文件和定義

要開始,我們需要包含“OPTIGATrustM.h”庫,它使我們能夠訪問TrustM功能。我們定義了隨機數生成的最大字節(jié)長度-將其設置為8確保我們一次可以生成最多8個隨機字節(jié)。

一個額外的調整:默認代碼包括彩色輸出(來自“fprint.h”),但為了簡單起見,我們選擇禁用它。

設置函數

一切就緒后,是時候初始化芯片了。setup功能確保Trust M板準備好生成安全隨機數。

這里有一個有趣的特性是電流限制——這個設置會影響主板的運行速度。如果我們增加電流限制,電路板就會加速。對于這個設置,我選擇了8 mA的限制(setCurrentLimit(8)),以便在性能和穩(wěn)定性之間取得更好的平衡。

循環(huán)函數:生成隨機數

每次循環(huán)運行時,Optiga?Trust M模塊通過函數getRandom(RND_MAXLENGTH, rnd)提供8字節(jié)的隨機數據。但是我們需要一個介于1和9之間的數字,因此我們將原始字節(jié)數組轉換為int64_t數字(convertByteArrayToInt64()),并使用對9 + 1取模將其映射到我們想要的范圍。這確保了我們總是在目標范圍內得到結果。

結果看起來像這樣:

3D磁傳感器代碼

這部分在我們的Hackster文章中有很好的記錄:下一代TLE493D: 3D磁感測指南,但對于這個特定的項目,我們需要使其適應XMC4700微控制器。

在深入游戲機制之前,我們需要測試所有四個傳感器,以驗證它們是否正確連接和運行。下面的代碼是專門為快速診斷設計的,允許我們檢查每個傳感器是否可操作。使用四個#define語句,我們可以激活或停用單個傳感器以進行測試。我們還定義了numavg,它決定了在計算平均值之前測量每個傳感器的次數。

平均傳感器值

一旦初始化,循環(huán)函數不斷地從傳感器讀取數據。函數average_sensor_value()測量多個讀數的值并取平均值,以獲得更穩(wěn)定的輸出。

傳感器的內置函數getTemperature()和getMagneticField()用于提取數據,而計時函數測量收集50個值所需的時間。

ps傳感器代碼

在我們的比賽中,時機就是一切。在玩家準備好之前,游戲不應該開始——這就是DPS傳感器的作用所在。這些傳感器用于檢測錘子何時被舉起,發(fā)出倒計時開始的信號。

為了實現這一點,我們使用了兩個DPS傳感器:一個傳感器放置在錘子內部來跟蹤它的運動。

第二個傳感器仍然固定在打!T設置,作為參考點。

關于如何使用傳感器的詳細解釋也可以在這篇Hackster文章中找到,但這里是我們如何在我們的項目中實現它。

頭文件和對象

Dps3xx.h包含在#include中,創(chuàng)建兩個Dps傳感器對象:

設置/循環(huán)

在我們追蹤錘子的運動之前,我們需要初始化傳感器并建立基線讀數。

設置功能確保兩個傳感器都正確初始化。

由于兩個傳感器在不同的位置,它們的壓力讀數自然會不同。這種差異可能相當于高達8米的高度差異,因此我們首先計算一個初始參考差作為基線。

高度差是在ight()函數中計算的,稍后我們將使用該函數來檢測運動。如果高度差大于10厘米,游戲將開始。

通過使用這兩個DPS傳感器,我們創(chuàng)造了一個直觀的游戲啟動機制。玩家不需要按下按鈕或打開開關——當他們把錘子舉得足夠高時,游戲就會自動開始。

Part 2: Code for Whack!T游戲

顯示屏設置為顯示游戲時間和分數,而DPS和3D磁傳感器分別用于檢測舉起錘子和成功擊中。為了建立一個可靠的參考,在比賽開始前記錄初始傳感器值。

DPS傳感器-檢測當錘子被舉起,信號的游戲開始。

3D磁傳感器-跟蹤撞擊時,活塞被擊中。

多半橋和執(zhí)行器-控制彈出的活塞,讓玩家擊中。

壓縮機—提供空氣壓力以移動活塞。

顯示-顯示比賽時間和比分更新。

設置

在操作開始之前,需要初始化系統(tǒng)的所有組件。setup()函數負責這一點,準備顯示器、傳感器和執(zhí)行器。

顯示屏設置為顯示比賽時間和分數,而DPS和3D傳感器配置為檢測錘的運動和成功命中。為了建立一個可靠的參考,在游戲開始之前記錄初始傳感器值(measure_initial_values())??刂曝撠熞苿踊钊膱?zhí)行器的多半橋(MHB)通電,壓縮機開始積聚空氣壓力(kompressor.start()),確?;钊軌蛘R苿印?

短暫的延遲可以讓所有組件在游戲進入主循環(huán)之前穩(wěn)定下來。幾個關鍵文件管理游戲的不同方面:display.hpp處理顯示功能,airpressure_sensor.hpp處理來自空氣壓力傳感器的數據,3d_sensor.hpp檢測圓柱體何時被擊中,push.hpp控制執(zhí)行器,game_matrix.hpp管理活塞運動的核心游戲邏輯。

GameLoop

一旦設置好一切,游戲便進入主循環(huán),在此它將持續(xù)監(jiān)視玩家的行動,更新顯示內容并管理游戲邏輯。

游戲如何在循環(huán)中運行:

1?游戲計時器管理

函數getRemainingSeconds()檢查還剩下多少時間。

如果游戲處于活動狀態(tài)(start_counting == true)并且還有剩余時間,它會在屏幕上顯示倒計時。

如果計時器達到零,游戲將存儲最終分數,重置命中計數器,并為新一輪做好準備。

2?.命中檢測與計分

命中檢測是基于磁場的變化。當氣缸的頂部位置與其當前位置之間的差值超過0.1 mT時,將記錄命中(compare_difference(piston_now, 0.1))。

分數是用game_hit_counter實現的。

3?.氣缸體爆破機構

游戲使用calculate_average(piston_now)連續(xù)檢查活塞運動。

一旦檢測到撞擊,系統(tǒng)隨機選擇一個活塞(1到10),并使用push(random(1,10))激活它。

這讓游戲變得不可預測,確保玩家不知道下一個圓柱體會彈出哪個圓柱體,從而保持他們的沉浸感。

4? .游戲結束并重新開始

如果計時器跑完,將顯示最終分數,游戲將等待錘子再次被舉起,然后重新開始。

這種平滑的過渡確保了無縫的游戲體驗,而無需額外的按鈕或手動重置。

倒數計時器

正常!游戲采用倒計時計時器,確保每回合持續(xù)固定時間(15秒)。getRemainingSeconds()函數通過測量游戲開始后經過的毫秒數來計算剩余時間。如果經過的時間超過倒計時持續(xù)時間,則返回0。

開始新游戲

在start_game()函數中,我們檢查游戲是否處于非活動狀態(tài)(start_counting ==false),然后啟動倒計時。當倒計時達到0時,游戲開始,記錄開始時間(startMillis),設置游戲持續(xù)時間,并啟用倒計時。

該系統(tǒng)確保平穩(wěn)和自動啟動,無需手動輸入。

現在我們可以結束了!所以T游戲代碼,一切就緒,游戲就準備開始了!拿你的錘子瞄準一些汽缸!!

本文編譯自hackster.io

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉