女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Simulink和Arduino的紅外接近傳感器

使用Simulink和Arduino的紅外接近傳感器

2022-12-09 | zip | 0.13 MB | 次下載 | 2積分

資料介紹

描述

介紹

第一部分中,我們構(gòu)建了 Sharp IR 傳感器的模型并了解了它的工作原理我們還實(shí)施了一個(gè)軟件模型以在 Arduino 上使用范圍測(cè)量。在這一部分中,我們將添加一個(gè) Arduino 塊,它可以在由 Arduino 數(shù)字輸入之一觸發(fā)時(shí)調(diào)用中斷服務(wù)例程 (ISR)。

中斷在某些情況下很有用,因?yàn)樗鼈兛梢皂憫?yīng)特定的硬件事件,而無需不斷檢查輸入狀態(tài)的代碼,從而減少處理器的負(fù)載。當(dāng)處理器必須快速響應(yīng)事件時(shí),它也很有用。在這里,我們將使用中斷來響應(yīng)當(dāng)物體離紅外傳感器太近時(shí)發(fā)生的事件。在下一節(jié)中,我們將在機(jī)器人接近某物時(shí)將其用作警報(bào)信號(hào)例如,機(jī)器人可以選擇后退、轉(zhuǎn)彎或只是停止。

此處的重點(diǎn)將放在如何使用中斷塊上,但包含有關(guān)其工作原理的注釋以更好地理解它,以防有人想要修改它或繼續(xù)開發(fā)。

項(xiàng)目文件

要使用該庫,請(qǐng)?jiān)?a href='http://www.asorrir.com/soft/special/' target='_blank' class='arckwlink_none'>下載提交后解壓縮文件。使用 MATLAB 轉(zhuǎn)到 blocks 文件夾并鍵入. 這將為您的 Simulink 安裝編譯塊。如果編譯失敗,請(qǐng)檢查您是否選擇了帶.mex arduino_interrupt.cmex -setup

先決條件

所需硬件

與第 1 部分相同:

  • Arduino Mega 2506 開發(fā)板
  • 帶電線的小面包板
  • 1 個(gè)夏普紅外傳感器 GP2Y0A02YK0F
  • 1 個(gè)電容 10uF – 100uF
  • 1個(gè)電容1uF
  • 1 個(gè)電容 200 nF

第 2 部分的新組件

  • 2個(gè)10k歐姆電阻

Arduino 中斷基礎(chǔ)知識(shí)

arduino 文檔包含關(guān)于如何使用中斷的很好的概述和建議還有一張表將不同的中斷編號(hào)映射到連接引腳,適用于不同的板,在您自己的項(xiàng)目中使用中斷時(shí)需要查閱。

在這部分中,我們將使用中斷 0,它連接到 arduino mega 2560 板上的數(shù)字引腳 2。當(dāng)中斷被觸發(fā)時(shí),中斷服務(wù)程序被調(diào)用。當(dāng)相應(yīng)引腳上的電壓從高電平下降到低電平(下降)或從低電平變?yōu)楦唠娖剑ㄉ仙r(shí),可以觸發(fā)中斷。arduino mega 還有兩種觸發(fā)模式,low 和 change。有關(guān)更多詳細(xì)信息,請(qǐng)參閱文檔。

要使用中斷,您必須將中斷服務(wù)程序附加到中斷。這就是新區(qū)塊要做的。由于中斷服務(wù)例程會(huì)中斷其他代碼,因此通常建議在其中做的事情越少越好。與在服務(wù)例程中進(jìn)行復(fù)雜計(jì)算相比,僅向主循環(huán)發(fā)送有關(guān)事件的信號(hào)并讓它處理它通常更好。

Simulink 庫和文件

讓我們來看看新的區(qū)塊。下載 zip 文件 [鏈接] 并將其解壓縮到一個(gè)文件夾中。在 MATLAB 中,轉(zhuǎn)到文件夾并運(yùn)行 setup.m 文件,然后鍵入 MyArduinoLib。這個(gè)庫應(yīng)該打開:

?
pYYBAGOSiTiARxK2AABdcAjm4YA344.png
?

庫中的塊可用于將硬件中斷映射到將作為中斷服務(wù)例程執(zhí)行的子系統(tǒng)。該塊有一個(gè)輸入端口,稱為 simIRQ。該輸入端口可用于仿真,以模擬硬件中斷。對(duì)于在目標(biāo)上執(zhí)行,它沒有任何功能。輸出端口是函數(shù)調(diào)用信號(hào)。它應(yīng)該連接到一個(gè)稱為子系統(tǒng)的函數(shù),如下面的任務(wù) 2 所示。

如果雙擊該塊以打開遮罩,它包括四個(gè)設(shè)置。中斷號(hào)和引腳號(hào)是電路板設(shè)置,根據(jù)文檔,它們必須與電路板匹配。模式?jīng)Q定輸入引腳上的什么事件將觸發(fā)中斷,上升、下降、變化或低。最終設(shè)置啟用和禁用輸入端口。

對(duì)于有興趣的人,這里有一個(gè)簡(jiǎn)短的描述,它屬于包含新塊的庫的塊文件夾中的文件。

  • MyArduinoLib.slx——庫文件
  • slblocks.m – 描述庫的 MATLAB 文件。如果此文件存在,庫將包含在 Simulink 庫瀏覽器中。
  • arduino_interrupt.c – 這是一個(gè) c 文件 s-function,用于實(shí)現(xiàn)此塊在仿真期間將執(zhí)行的操作。此文件編譯為:mex arduino_interrup.c(之前運(yùn)行 mex -setup)。這必須在您使用庫之前完成。
  • arduino_int_lib.tlc——這個(gè)文件告訴代碼生成器要為這個(gè)塊生成什么樣的代碼。
  • arduino_interrupt.tlc – 由上面的文件取消包含系統(tǒng)頭文件。

如果您有興趣,請(qǐng)研究 arduino_interrupt.c 和 arduino_interrupt.tlc 的實(shí)現(xiàn)以了解它們的作用。您也可以根據(jù)需要更改行為。

任務(wù) 1 – 修改對(duì)象模型并添加施密特觸發(fā)器

為了使模擬比文章 1 運(yùn)行得更快,我們將在此處使用比上一篇文章中更小的對(duì)象模型。但請(qǐng)返回更詳細(xì)的工廠并對(duì)其進(jìn)行測(cè)試,以確保簡(jiǎn)化模型足夠。在構(gòu)建任何硬件之前制作系統(tǒng)模型是一種很好的基于模型的設(shè)計(jì)實(shí)踐。這意味著在將時(shí)間和金錢花費(fèi)在硬件上之前,想法或概念會(huì)通過模擬進(jìn)行測(cè)試。

新的完整系統(tǒng)模型名為 system_model.slx,如下所示。

?
poYBAGOSiTyAVJ7TAABaR5t2918121.png
?

正如您在上面的模型中看到的,有傳感器模型、一個(gè) arduino 板子系統(tǒng)和一個(gè)名為 SchmittTrigger 的塊。在第一篇文章中,我們看到傳感器會(huì)針對(duì)不同的距離提供不同的電壓。這意味著我們需要一個(gè)能夠在特定距離(電壓)觸發(fā)的電路。當(dāng)障礙物位于觸發(fā)距離附近時(shí),為了使其穩(wěn)健并避免多次中斷,我們實(shí)施了施密特觸發(fā)器。這里它是在 MATLAB 函數(shù)塊中用 MATLAB 代碼實(shí)現(xiàn)的。

Arduino 子系統(tǒng)有兩個(gè)輸入,A0 用于模擬輸入,D2 用于觸發(fā)中斷的數(shù)字輸入。

?
pYYBAGOSiU2AfxLnAABImpbSjjs272.png
?

有一個(gè)采樣子系統(tǒng)將電壓轉(zhuǎn)換為可以在軟件中讀取的數(shù)字,還有一個(gè)時(shí)間表子系統(tǒng)。調(diào)度子系統(tǒng)將調(diào)用軟件中的函數(shù)。階躍函數(shù)定期調(diào)用,中斷在施密特觸發(fā)器觸發(fā)時(shí)調(diào)用。需要這種調(diào)度才能通過中斷模擬該系統(tǒng)的異步行為。

任務(wù) 2 – 構(gòu)建軟件模型

好的,系統(tǒng)已經(jīng)建模,是時(shí)候?qū)崿F(xiàn)稍后應(yīng)該作為軟件在目標(biāo)上運(yùn)行的部分了。模擬輸入只是與步進(jìn)函數(shù)中的距離進(jìn)行比較,如果障礙物太近,我們會(huì)在數(shù)字輸出引腳上發(fā)出一個(gè)信號(hào)。輸出引腳可以連接到外部 LED(作為練習(xí)實(shí)現(xiàn))。如果沒有檢測(cè)到障礙物,則發(fā)送零。中斷服務(wù)例程在每次被施密特觸發(fā)器調(diào)用時(shí)切換數(shù)字輸出。

?
poYBAGOSiVCAYrj5AABBNkuXotA031.png
?

請(qǐng)注意,軟件模型是作為庫塊實(shí)現(xiàn)的。這是因?yàn)槲覀兩院髮⒃诰€束模型中使用相同的塊在目標(biāo)上運(yùn)行。

運(yùn)行模擬給出以下結(jié)果。

?
poYBAGOSiWiAeT8JAACBh0gPCdk689.png
?

青色線是實(shí)際距離,并且在不斷減小。品紅色線是中斷輸出的結(jié)果,黃線是與恒定距離比較的階躍函數(shù)。如果檢查模型的階躍函數(shù),您會(huì)發(fā)現(xiàn)它將在 250 mm 處觸發(fā)。放大繪圖顯示,由于實(shí)施和采樣,它實(shí)際上是在輸入為 245 mm 時(shí)觸發(fā)的。您可以更改此值并查看洋紅色線將在不同位置觸發(fā)。

有趣的是,當(dāng)障礙物離得更近時(shí),它會(huì)再次觸發(fā)。這是因?yàn)槲覀冊(cè)谏弦黄恼轮辛私獾絺鞲衅鞯墓ぷ髟怼?/font>它的非線性行為意味著當(dāng)障礙物太近時(shí),傳感器輸出電壓會(huì)降低,而在我們的實(shí)施中,它似乎比實(shí)際更遠(yuǎn)。

任務(wù) 3 – 構(gòu)建施密特觸發(fā)器電路

如下圖所示,在上一篇文章中構(gòu)建的過濾器旁邊構(gòu)建施密特觸發(fā)器。您可能需要稍后調(diào)整電位器以確保施密特觸發(fā)器正確觸發(fā)。

任務(wù) 4 – 軟件線束模型并在目標(biāo)上運(yùn)行

用于在目標(biāo)上運(yùn)行軟件的軟件線束模型如下所示。

?
poYBAGOSiXGAWR-tAABIG92Tvzk526.png
?

模擬輸入塊讀取引腳 0,A0,這是我們的傳感器值。左下方是我們新的中斷塊。右邊的塊寫入數(shù)字引腳 12 和 13。此模型中有兩個(gè)額外的塊可能需要一些解釋。第一個(gè)是函數(shù)調(diào)用生成器。這用于定期觸發(fā)階躍函數(shù)。需要速率轉(zhuǎn)換塊是因?yàn)樾盘?hào)源塊(中斷服務(wù)例程)是異步的,而數(shù)字輸出塊與周期性采樣時(shí)間同步。

現(xiàn)在嘗試在目標(biāo)上運(yùn)行它!

建議的實(shí)驗(yàn)

  • 修改并試驗(yàn)施密特觸發(fā)器以獲得所需的閾值。不要忘記更新模型以匹配行為。
  • 使用第 1 部分中的詳細(xì)模型進(jìn)行測(cè)試。小模型是否足夠?有什么不同嗎?

概括

本文展示了一個(gè)示例,說明如何在仿真中使用異步塊并將其作為中斷服務(wù)例程在目標(biāo)上運(yùn)行。這對(duì)于節(jié)省目標(biāo)執(zhí)行時(shí)間和對(duì)事件做出反應(yīng)很有用。

在下一篇文章中,我們將在移動(dòng)機(jī)器人上使用它。首先,我們將為機(jī)器人設(shè)置一個(gè)模擬器來測(cè)試實(shí)現(xiàn),然后我們?cè)谡鎸?shí)機(jī)器人上運(yùn)行軟件部分。

有用的鏈接


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

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  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)用手冊(cè)
  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電氣工程師手冊(cè)免費(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ū)動(dòng)電路設(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é)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)