資料介紹
描述
?
簡介和動機:
有很多關于如何在您的項目中使用 arduino/genuino 101 的板載慣性測量單元 (IMU) 的優(yōu)秀教程。例如:,但缺少有關如何使用 Arduino/Genuino 101 的板載低功耗藍牙 (BLE) 傳輸此數(shù)據(jù)的信息。
本教程項目將演示一種使用 Evothings Workbench 通過 BLE 將原始 IMU 數(shù)據(jù)傳輸?shù)揭苿釉O備的方法。本教程還將展示如何使用Smoothie.js庫 以圖形方式實時顯示 IMU 數(shù)據(jù)。
你需要什么
- Arduino/Genuino 101 板
- USB電纜
- Arduino IDE 1.6.8
- 我們定制的 arduino 草圖,imuble01.ino
- Evothings 工作臺和 Evothings 查看器?
- Smoothie.js來自 SmoothieCharts?
- 我們修改后的應用文件index.html和app.js
軟件
該項目的代碼已注釋,我鼓勵您閱讀它。我不會提供所有代碼如何工作的逐行細分,而是強調我認為最重要的領域。
對于 BLE 連接的 Arduino/Genuino 101 項目,了解所需軟件的整體布局非常重要。除了電路板上的 Arduino 草圖之外,您還必須編寫軟件才能在移動設備上運行。為了編寫草圖,我們使用熟悉的 Arduino IDE 以及我們項目所需的庫 CurieIMU 和 CurieBLE。
要為移動設備開發(fā)我們的軟件,有兩大類選項:
- 直接為我們希望與之交互的移動設備的操作系統(tǒng)編寫本機應用程序。
- 使用 JavaScript/HTML/CSS 三重奏編寫一個 Web 應用程序,它基本上可以在任何平臺上運行。
在我與 BLE 合作的最初努力中,我面臨的挑戰(zhàn)不僅是學習 BLE,而且還必須了解這些選項。這就是 Evothings 的用武之地。Evothings 平臺是一個完整的“生態(tài)系統(tǒng)”。借助 EvothingsStudio,我們可以使用 JavaScript/HTML/CSS 編寫我們軟件的移動應用程序組件。通過在我們的移動設備上運行 EvothngsViewer 應用程序,我們可以訪問設備的原生功能,例如 BLE。Evothings 平臺包括一個名為 easyble.js 的庫,該庫具有通過 BLE 連接與您的 Arduino/Genuino 101 項目建立和通信的所有必要功能。
?
如果您擔心不了解 HTML/CSS/JavaScript 會阻礙您,我可以保證在開始這些項目和使用 Evothings 之前,我沒有任何網(wǎng)絡編程經(jīng)驗。我確實有 C/Arduino C 和 Python 方面的經(jīng)驗,但沒有 HTML/CSS/JavaScript 方面的經(jīng)驗。evothings 網(wǎng)站包含大量優(yōu)秀的教程和文章 可幫助您入門。如果您有一些基本的編程知識,并且愿意通讀并學習一些有趣的代碼示例,那么請立即投入并使用這個非凡的工具!
Arduino草圖
我為 arduino 項目編寫軟件的首要原則是建立在其他人的工作之上,這個項目也不例外。我使用加速度計和陀螺儀原始數(shù)據(jù)訪問示例草圖作為我項目草圖的基礎。這些位于 CurieIMU 庫 ( http://www.arduino.cc/en/Reference/CurieIMU )參考頁面的底部。我從加速度計草圖開始,然后將相關的陀螺儀草圖元素剪切并粘貼到其中。
低功耗藍牙
當我第一次開始使用 BLE 時,我對所有新術語感到不知所措。我希望它會像通過串行端口發(fā)送消息一樣簡單。如果您感到不知所措,請不要擔心,只需開始嘗試即可。您使用它的次數(shù)越多,您就越有信心在您的項目中使用 BLE!有許多很好的教程可以幫助您入門。開始學習的幾個好地方是 CurieBLE 庫參考和 Adafruit BLE 教程:
BLE 標準規(guī)定了服務,這些服務是相關數(shù)據(jù)值的集合或集合。在 BLE 的世界中,這些值被稱為特性。每個服務和特征都由一個通用唯一標識符 (uuid) 指定。對于官方接受的服務,這些 uuid 是為您指定的。信不信由你,我找不到慣性測量的標準服務!所以對于這個應用程序,我必須為我的“imu 服務”生成一個自定義 uuid。對于自定義服務,您必須創(chuàng)建自己的 128 位自定義 uuid。這很容易做到,并且有很多資源可以生成這些 uuid。我使用的是一個在線 uuid 生成器:
完成后,您可以使用 CurieBLE 庫創(chuàng)建 BLE 服務:
BLEService imuService("917649A0-D98E-11E5-9EEC-0002A5D5C51B"); // 自定義 UUID
BLECharacteristic imuAccCharacteristic("917649A1-D98E-11E5-9EEC-0002A5D5C51B", BLERead | BLENotify, 12 );
BLECharacteristic imuGyroCharacteristic("917649A2-D98E-11E5-9EEC-0002A5D5C51B", BLERead | BLENotify, 12 );
BLEUnsignedCharCharacteristic appButtonCharacteristic("917649A7-D98E-11E5-9EEC-0002A5D5C51B", BLERead | BLEWrite );
請閱讀 Arduino/Genuino 101 網(wǎng)站上的 BLE 代碼示例(https://www.arduino.cc/en/Tutorial/Genuino101CurieBLEHeartRateMonitor) 和此代碼中的注釋以進一步了解如何設置您的 BLE 服務和特性。通過 BLE 發(fā)送浮點數(shù):所有 BLE 數(shù)據(jù)都以字節(jié)形式傳輸。因此,無論您的數(shù)據(jù)是來自整數(shù)、字符還是浮點數(shù),都必須將其轉換為字節(jié)才能通過 BLE 傳輸。無需將 IMU 數(shù)據(jù)作為浮點數(shù)傳輸,CurieIMU 接口允許您以整數(shù)形式訪問原始 IMU 數(shù)據(jù)。然而,這兩個示例應用程序都將這些原始數(shù)據(jù)轉換為具有物理意義的浮點數(shù)。這些轉換基于 CurieIMU 參考中推薦的公式。對于加速度計,建議使用以下公式將原始加速度計讀數(shù)轉換為 mg:
? ? ?浮動 g = (gRaw/32768.0)*getAccelerometerRange()
我們有什么選擇來處理這個問題?
- 我們可以通過 BLE 發(fā)送原始數(shù)據(jù)整數(shù),并在我們軟件的移動應用程序端實現(xiàn)推薦的方程。這將問題轉移到移動應用程序上。
- 我們可以將浮點數(shù)轉換為字符串。字符串只是 char 數(shù)組,或者另一種看待它們的方式是字節(jié)數(shù)組。然后我們可以在移動應用程序方面隨意轉換或解碼這些字節(jié)。這是 CurieBLE 庫 ( http://www.arduino.cc/en/Reference/CurieBLE ) 的教程/參考所暗示的解決方案。
- 我們可以使用一些 C 編程魔法將我們的浮點數(shù)轉換為它們的 char 數(shù)組或字節(jié)等價物,然后通過 BLE 將它們發(fā)送給移動應用程序“解碼”。
選項 1 很好,但沒有教給我們?nèi)魏涡聳|西。此外,當我們最終獲得只能作為浮點數(shù)使用的數(shù)據(jù)時,我們將回到我們開始的地方。英特爾居里模塊非常強大,那么為什么不使用它來執(zhí)行計算并讓移動應用程序來處理其他瑣事呢?選項 2 是一種非常常用且可接受的方法,但涉及處理字符串和字符串轉換的所有開銷。
選項 3 可能是最復雜的,但也是最有效的。我們跳過了處理字符串的所有開銷。在這個選項中,我們還將學習如何使用代表我們數(shù)據(jù)的實際字節(jié)。我們將更深入地了解我們的計算機如何表示和存儲數(shù)字。我們還將獲得以 Arduino C 為核心的信心。最重要的是,這個選項也將為我們贏得一些嚴肅的“極客信譽”,因此作為優(yōu)秀的制造者和黑客,我們當然會選擇選項 #3!
選項#3:
所有數(shù)據(jù)類型在內(nèi)存中都有一個底層表示。了解浮點數(shù)的存儲和表示方式是我們解決方案的關鍵。Arduino C 使用 32 位或 4 個字節(jié)來表示和存儲一個浮點數(shù)。char 和 unsigned char 數(shù)據(jù)類型都使用 4 位或 1 字節(jié)來表示和存儲 char 數(shù)據(jù)。
unsigned char 是 CurieBLE 庫中數(shù)據(jù)交換的“貨幣”:
/**
* 設置 Characteristic 的當前值
* @param value 要設置的新值,作為字節(jié)數(shù)組。數(shù)據(jù)存儲在內(nèi)部副本中。
* @param length 數(shù)組中要寫入的有效數(shù)據(jù)的長度,以字節(jié)為單位。
* 不得超過為此特征設置的 maxLength。
* @return bool true 設置值成功,錯誤為 false
*/
bool setValue(const unsigned char value[], unsigned short length);
如您所見,為了使用setValue()函數(shù)更改特征的值,我們需要將數(shù)據(jù)作為 char 數(shù)組傳遞(unsigned char 數(shù)組與字節(jié)數(shù)組相同)。
所以現(xiàn)在的問題變成了,我們?nèi)绾蝹鬟f一個浮點數(shù)和一個無符號字符數(shù)組?我們可以通過使用 C 語言union來做到這一點。union關鍵字允許我們讓不同數(shù)據(jù)類型的變量在內(nèi)存中共享相同的空間。由于 C 中的浮點數(shù)占用 4 個字節(jié),我們希望與 4 個無符號字符的數(shù)組共享 4 個字節(jié)的內(nèi)存空間。
從某種意義上說,編譯器并不真正關心我們?nèi)绾谓忉屪止?jié),它只是保留空間并允許我們使用這個空間,就好像它是我們聯(lián)合中的一種數(shù)據(jù)類型一樣。但是,當我們在程序中使用變量時,我們必須非常小心,以確保正確考慮變量的大小和類型。
實際上,在我們的例子中,我們需要從加速度計和陀螺儀中分別考慮 3 個浮點數(shù)。每個軸一個浮點數(shù)。我們可以為每個變量考慮一個單獨的變量、聯(lián)合和 BLE 特征。但是,知道每個浮點數(shù)的長度為 4 個字節(jié),并且每次 BLE 傳輸最多可以發(fā)送 20 個字節(jié),我們可以使用 2 個聯(lián)合、2 個 3 個浮點數(shù)的數(shù)組發(fā)送完整的加速度計和陀螺儀數(shù)據(jù)集,并且只需2 個特性,每個特性 12 個字節(jié)。這不僅會使我們的代碼更具可讀性和可管理性,而且效率更高。
為此,我們將使用聯(lián)合來共享 3 個浮點數(shù)數(shù)組(需要 12 個字節(jié))和一個 12 個無符號字符數(shù)組之間的空間。這樣做是這樣的:
聯(lián)盟
{
? ? ?浮動一個[3];
? ? 無符號字符字節(jié)[12];
} 數(shù)據(jù);
當從 IMU 讀取數(shù)據(jù)并轉換為浮點數(shù)時,我們將其分配給聯(lián)合體的浮點元素:
? ?CurieIMU.readAccelerometer(axRaw, ayRaw, azRaw);
? ?accData.a[0] = convertRawAcceleration(axRaw);
? ?accData.a[1] = convertRawAcceleration(ayRaw);
? ?accData.a[2] = convertRawAcceleration(azRaw);
不幸的是,我們還沒有完成。如果我們嘗試將聯(lián)合傳遞給setValue()函數(shù),我們的編譯器會抱怨并且不讓我們繼續(xù)。完成這項工作還需要一個步驟。我們必須讓編譯器相信我們的并集實際上是一個無符號字符數(shù)組,方法是這樣轉換。演員表是一種編程魔法,它允許我們將一種數(shù)據(jù)類型轉換為另一種數(shù)據(jù)類型(https://www.arduino.cc/en/Reference/Cast)。在某些情況下,這可能會導致數(shù)據(jù)丟失,但在我們的例子中,由于我們只是處理字節(jié),我們根本不會丟失任何信息。然而,為了執(zhí)行這個轉換,我們確實需要使用一些指針魔法:
? ?unsigned char *acc = (unsigned char *)&accData;
讓我們翻譯一下:
首先,&accData獲取我們 12 個字節(jié)的內(nèi)存位置的地址。然后,(unsigned char *)&accData告訴編譯器我們認為這個內(nèi)存位置被視為一個無符號數(shù)組字符。實際上,這是一個指向該內(nèi)存位置第一個字節(jié)的指針。最后,unsigned char *acc將變量acc分配給這個指針。要處理的內(nèi)容很多,但多讀幾遍就會明白。如果沒有,只需按原樣使用模式發(fā)送數(shù)據(jù)。對陀螺儀數(shù)據(jù)重復完全相同的命令模式。?現(xiàn)在我們可以繼續(xù)使用移動應用程序了。
JavaScript/HTML/CSS 移動應用程序:
為了開發(fā)我們的移動應用程序,必須學習 JavaScript/HTML/CSS 似乎是一件苦差事。但是,時間和精力將是值得的!它將為您的項目打開許多機會,并允許您利用許多令人興奮的庫進行編程。一個這樣的庫,smoothie.js將在此處討論。為了幫助您學習如何使用 JavaScript/HTML/CSS,Evothings 網(wǎng)站和 Evothings 工作臺提供了大量示例和教程來幫助您。就本項目而言,我發(fā)現(xiàn)最簡單的方法是修改 TI SensorTag CC2650 示例。此示例代碼遵循功能強大的結構,易于閱讀,并且已經(jīng)具有我們項目所需的大部分功能。每個示例都有一個包含許多文件的目錄樹,乍一看可能看起來很復雜,但出于我們的目的,我們只需要修改示例根目錄中的兩個文件 index.html 和app.js ,并將smoothie.js庫添加到我們的項目目錄。下面的項目配方涵蓋了這些步驟
移動應用程序的亮點:
沒有什么可以替代閱讀代碼,但我將在這里介紹一些亮點。請記住,我們的 IMU 數(shù)據(jù)將作為無符號字符或字節(jié)數(shù)組通過 BLE 發(fā)送。幸運的是,JavaScript 提供了易于使用的函數(shù)來將這些字節(jié)轉換回任何形式的數(shù)據(jù)。這是一個代碼片段,它將我們的加速度計字節(jié)轉換回 JavaScript 中的浮點數(shù):
? ?var ax = new DataView(data).getFloat32(0, true);
? ?var ay = new DataView(data).getFloat32(4, true);
? ?var az = new DataView(data).getFloat32(8, true);
字節(jié)通過 data 變量傳遞到我們的函數(shù)中。此數(shù)據(jù)用于實例化 DataView。一旦我們有了這個,我們就可以調用 DataView 對象的許多方法之一來將數(shù)據(jù)轉換為我們想要的表示形式。在?這種情況下,我們要將其轉換回浮點數(shù)。還記得我們從 Arduino/Genuino 101 IMU 創(chuàng)建的浮點數(shù)是 4 字節(jié)還是 32 位長?getFloat32 ()函數(shù)專門用于處理 32 位浮點表示。我們發(fā)送到getFloat32()的參數(shù)功能非常重要。第一個是一個數(shù)字,這個數(shù)字在我們的例子中是 0、4 或 8,表示我們的 4 字節(jié)浮點數(shù)的第一個字節(jié)的字節(jié)偏移或索引。第二個參數(shù) true 表示我們的浮點數(shù)是小端格式。就是這樣,很簡單。我們現(xiàn)在可以將所有的 分配給一個變量ax、ay或az來表示沿每個軸的加速度。
現(xiàn)在,擁有這些數(shù)據(jù)的實時滾動圖形表示不是很巧妙嗎?當然會!為了實現(xiàn)這一點,我們將使用Smoothie.js庫。我相信這說明了使用 JavaScript/HTML/CSS 為連接設備開發(fā)移動應用程序的力量。幾乎所有您能想到的用途都有免費且易于使用的庫和框架。
Smoothie.js庫在?http://smoothiecharts.org/??網(wǎng)站上?有完整的描述。為了學習如何使用該庫,作者創(chuàng)建了一個 10 分鐘的教程(http://smoothiecharts.org/tutorial.html)。在查看示例并閱讀他們的教程后,您應該能夠輕松地使用他們的代碼來創(chuàng)建自己的繪圖。作者還創(chuàng)建了一個構建器頁面 ( http://smoothiecharts.org/builder/ ),允許您以圖形方式自定義繪圖。根據(jù)您的意愿對繪圖進行格式化后,您可以從構建器頁面底部的文本框中剪切代碼并將其直接粘貼到您的應用程序中。
我們將從smoothiecharts.org 主頁下載smoothie.js庫到我們的移動應用程序目錄中以使用它。請按照以下項目配方中的說明執(zhí)行此操作。index.html 中的以下行允許我們在應用程序中使用該庫:
這就是教學的內(nèi)容。讓我們做這個項目吧!
硬件:
Arduino/Genuino 101。
因為 Arduino/Genuino 101 帶有板載 BLE 和 IMU 功能,所以無需制作電路!只需通過 USB 將您的計算機連接到您的計算機以上傳草圖并訪問 Arduino 軟件 (IDE) 的串行監(jiān)視器窗口以進行調試。
項目配方:
我假設您已經(jīng)安裝了 Arduino IDE、對英特爾居里的板級支持以及所有必要的庫。如果沒有,請在此處獲取說明:https://www.arduino.cc/en/Guide/Arduino101。
1) 下載并安裝 EvothingsStudio 和 EvothingsViewer ( http://evothings.com/download/ )。按照此處特定于您的操作系統(tǒng)和移動平臺的說明進行操作。
2) 啟動 Evothings Workbench 并單擊示例選項卡。
?
3) 復制 TI SensorTag CC2650 演示應用程序并為其命名。
4) 使用文件瀏覽器,進入 EvothingsStudio/MyApps 目錄,找到您在步驟 3 中重命名的項目的主目錄。
5) 選擇 index.html 文件并將其重命名為 index_old.html。
6) 選擇 app.js 文件并將其重命名為 app_old.js。
7) 現(xiàn)在將本項目教程中的 index.html 和 app.js 文件復制到新項目的主目錄中。
8) 創(chuàng)建一個名為 Smoothie 的目錄。
9) 轉到 smoothiecharts.org 并單擊標有下載 Smoothie.js 的按鈕。Smoothie.js 庫的文本應顯示在您的瀏覽器中。
10) 單擊瀏覽器的文件選項卡,然后選擇將頁面另存為。在步驟 8 中創(chuàng)建的 Smoothie 目錄中將此頁面另存為 Smoothie.js。
11) 使用 USB 電纜將您的 Arduino/Genuino 101 連接到您的計算機。
12) 使用您的 Arduino IDE 1.6.8,將 imu_ble.ino 草圖上傳到 Arduino/Genuino 101。
13) 打開串口連接。在建立 BLE 連接之前,不會從 arduino/genuino101 imu 發(fā)送數(shù)據(jù),因此此時您不應期望看到任何串行數(shù)據(jù)。
14) 返回 EvothingsWorkbench 并從 Connect 選項卡中獲取您的連接密鑰。
15) 在您的移動設備上啟動 EvothingsViewer 并輸入連接密鑰。
16) 點擊移動應用主頁上的開始按鈕。
17) 建立連接后,您應該會在移動設備上看到以下消息,狀態(tài):數(shù)據(jù)流活動 - 加速度計。值應該在 Arduino IDE 串行窗口上流式傳輸,并且線條應該在加速度計和陀螺儀圖上滾動。
18) 搖晃、扭轉和轉動 Arduino/Genuino101!
結論:
您可以選擇多種方法來收集、傳輸和顯示 IMU 數(shù)據(jù),但我相信這里介紹的方法是最有教益的方法。仔細閱讀代碼并對其進行試驗確實沒有替代品。你的努力會得到回報。作為創(chuàng)客,我們越是真正了解我們的項目是如何運作的,我們就越能完成:
“投入勞動力的最佳紅利總是來自尋求更多的知識,而不是更多的權力。” 1906 年 3 月 12 日簽署威爾伯和奧維爾賴特。”
?
- ADIS16470微型MEMS慣性測量單元(IMU)英文手冊 0次下載
- 慣性測量單元M-G370系列廣泛用于工業(yè)系統(tǒng)各個領域
- 慣性測量單元M-G366PDG提供低誤差系數(shù)的解決方案
- 愛普生的慣性測量單元(IMU)M-G370PDT成為無人駕駛的理想選擇
- M-G552PR1IMU(慣性測量單元)RS422接口傳感器
- M-G552PC7 IMU(慣性測量單元)CAN接口
- IMU(慣性測量單元)CAN接口M-G552PC1
- 慣性測量單元(IMU)CAN接口:M-G552PJ7
- M-G552PJ1 IMU(慣性測量單元)CAN接口
- M-G370PDS慣性測量單元(IMU)
- InvenSense慣性測量單元IMU_MPU6050中文數(shù)據(jù)手 2次下載
- iSensor MEMS慣性測量單元(IMU)手冊
- ADIS16490/ADIS16495/ADIS16497:戰(zhàn)術級慣性測量單元(IMU),具有業(yè)界最低的SWAP+C
- BM1160小型低功耗慣性測量單元的詳細資料介紹免費下載 18次下載
- 基于MEMS陀螺和加計的微慣性測量單元研制 12次下載
- LOG-LIO: 一種高效局部幾何信息估計的激光雷達慣性里程計方法 934次閱讀
- 一種易于實現(xiàn)的無外部設備IMU校準方法 1520次閱讀
- MEMS IMU/陀螺儀對準的基礎知識 4934次閱讀
- 預測和管理MEMS陀螺儀中的關鍵噪聲源 2327次閱讀
- 慣性測量單元可實現(xiàn)高數(shù)據(jù)分辨率 1162次閱讀
- 基于光纖陀螺儀實現(xiàn)慣性測量系統(tǒng)的應用方案 3807次閱讀
- dfrobot10自由度慣性導航模塊簡介 1774次閱讀
- 基于MEMS技術的IMU慣性測量單元的工作原理解析 1.1w次閱讀
- 慣性測量裝置IMU的用途_IMU在主機應用處理器的功能 1w次閱讀
- 自動駕駛基礎 慣性測量單元 2840次閱讀
- 自動駕駛基礎之高精度地圖和定位慣性測量單元IMU的詳細介紹 7304次閱讀
- 集成Arduino和Xsens Awinda慣性測量套件的可穿戴式人體運動測量設備原型 7670次閱讀
- IMU中傳感器的功能_IMU應用實例_IMU解決方案 2.8w次閱讀
- 慣性導航系統(tǒng)工作原理及應用 1.7w次閱讀
- MEMS慣性測量單元(IMU)/陀螺儀對準基礎 4155次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費
- 5STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實現(xiàn)
- 2.94MB | 4次下載 | 免費
- 7PCB圖繪制實例操作
- 2.92MB | 2次下載 | 免費
- 8零死角玩轉STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設計
- 0.10 MB | 137次下載 | 免費
- 4A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 7PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多