資料介紹
PCB圖如下:
?
成分
HMC6343集成電路 | × 1 |
741C083510JP CTS電阻器產品 |
× 1 |
227CKS035M 伊利諾伊電容器 |
× 1 |
106CKH050M 伊利諾伊電容器 |
× 1 |
Y16271K00000T9R Vishay 箔電阻器(Vishay Precision Group 的部門) |
× 1 |
Y16271K00000T9R Vishay Precision Group 箔電阻器 |
× 1 |
Y1624350R000T9R Vishay 箔電阻器(Vishay Precision Group 的部門) |
× 1 |
描述
HMC6343加速度計模塊
HMC6343是霍尼韋爾提供的具有傾斜補償功能的固態羅盤模塊。HMC6343 具有三軸磁電機、三軸加速度計和一個運行所有計算的 PIC 內核。你得到的是一個指向 I2C 的指南針,即使你傾斜電路板,它也保持不變。固態(以及許多經典的水基)指南針在不平放時會嚴重失效。傾斜補償 HMC6343 對于那些現實世界的羅盤應用至關重要
作為我博士工作的一部分,我制作了第二人生查看器的修改版本,在開放虛擬世界研究小組之前的貓鼬、犰狳和奇美拉項目之后,我將其命名為 Pangolin,它允許;
將串行設備連接到查看器
根據 GPS 讀數控制化身的移動
根據加速度計和磁力計讀數控制相機
這些功能的結合使您可以執行諸如將加速度計、磁力計和 GPS 接收器連接到 Arduino 之類的事情,讓它將讀數轉儲到查看器中并讓查看器使用它們來控制頭像和相機。這背后的動機是通過創建移動跨現實界面來解決“空缺問題”;允許用戶在真實環境和等效合成環境中體驗同時存在,使用他們的物理位置和方向作為其合成表示的隱式控制方法。我將在 6 月的 iED 2013 波士頓峰會上發表一篇關于此的論文——如果我能獲得資金讓我真正到達那里!
獲取代碼和構建
Pangolin 源代碼可在 Bitbucket 上獲得,我的添加和修改在 GNU 通用公共許可證下獲得許可。串行 IO 功能使用 Terraneo Federico 的 AsyncSerial 類,該類根據 Boost 軟件許可證獲得許可。查看器代碼庫是在刪除 --loginuri 標志之前從 Linden Lab 的查看器版本中分叉的,因此 Pangolin 與 OpenSim 網格/服務器兼容。
Second Life wiki 上提供了構建查看器的說明。我使用 32 位 Debian GNU/Linux 構建(特別是通過從 64 位 Arch Linux 主機進入 32 位 debootstrap 安裝,請參閱我的說明),它生成在 32 位 Linux 和 64 位上運行的二進制文件安裝了 32 位兼容性庫的 Linux。
串行連接使用 Boost.Asio。Linden 提供的 Boost 預構建庫缺少我的修改使用的一些功能,因此我使用 LightDrake 的替代方案構建;他的公共圖書館可以在這里找到。要使用這些庫,請編輯代碼庫根目錄中 autobuild.xml 文件中的相應條目。你正在尋找這個部分,在這里我已經注釋掉了 Linux 版本的原始庫和哈希,并用 LightDrake 替換了它;
Linux 1.45.0 版本;如果您嘗試更新的 Linux 版本或 Windows/Darwin 版本,請告訴我進展如何!使用這個新庫會導致相當討厭的命名空間沖突(至少在 Linux 1.45.0 版本中),我已經為此上傳了一個修復程序。
我還在 Bitbucket 上放了一個示例 Arduino 草圖,它使用了一個 HMC6343 加速度計/磁力計和一個 u-blox MAX-6 GPS 接收器,我之前寫過。
二進制
如果您只是想在沒有成功設置(相當特殊的)構建環境的繁瑣情況下嘗試一下,我已經將 32 位 Linux 二進制文件上傳到 Bitbucket。
用法
正常啟動查看器并登??錄,然后查看包含單個條目串行監視器的串行菜單。單擊此,您將看到類似的內容;
將串行設備的路徑和波特率放入頂部設備設置部分的字段中,然后單擊[連接]。對我來說,在 Linux 機器上使用 Arduino,如果是第一個串行設備,串行設備通常出現在 /dev/ttyACM0 或 /dev/ttyS0,如果是第二個串行設備,則出現在 /dev/ttyACM1 或 /dev/ttyS1 等。如果你'正在使用 Arduino 并且找不到它,只需啟動 Arduino IDE 并查看工具菜單中的串行端口條目。
Pangolin 需要以下格式的消息,由換行符分隔;
1
<軸承> <俯仰> <滾動> <緯度> <經度>
例如;
1
183.90 75.80 -59.30 56.339991 -2.7875334
因此,請確保您的串行設備遵守此消息格式;上面鏈接的示例 Arduino 草圖可以做到這一點,對您來說可能是一個有用的起點。
Anchor settings 部分中的字段用于輸入您知道真實世界緯度/經度和相應虛擬世界坐標以及虛擬世界與真實世界的比例的單個點的位置 - 例如,如果 1m 在現實世界在虛擬世界中用 1.2m 表示,然后在 Scale 字段中輸入 1.2。
錨點的 Sim X 和 Sim Y 是全局的;這對于允許 Pangolin 跨多個區域(例如大型區域)工作是必要的。因為區域是 256x256m,所以您可以通過 (256 * region position) + 局部坐標輕松計算一個點的全局坐標。例如,如果我的錨點在 1020,1043 的區域中的 127,203,23,則錨點的全局 X 坐標為 (1020 * 256) + 127 = 261247 & 錨點的全局 Y 坐標為 ( 1043 * 256) + 203 = 267211。沒有實現高度(GPS 的垂直精度大大低于水平),所以只需在你的模擬人地面水平附近選擇一個模擬人 Z。緯度和經度字段有 6 位小數精度。
輸入所有錨點設置后,單擊 [Set] 如果一切正常,您應該在 Received data 部分看到來自串行設備的數據,在 Calculated data 部分看到處理后的位置值。暫停復選框將停止字段更新,以便您可以復制值等。如果收到的數據出現亂碼,那么您可能設置了不正確的波特率 - Pangolin 將忽略此數據,而不是嘗試處理它并發送您的化身運動失控.
要根據接收/計算的數據啟用/禁用對相機和頭像的移動的控制,請使用“控制”部分中的“方向控制”和“位置控制”復選框。本節中的各種微調器允許您更改平滑、高通濾波器和更新頻率。這些值的好壞取決于您使用的硬件/傳感器、SIM 卡的規模等。
#include
#define HMC6343_ADDRESS 0x19
#define HMC6343_HEADING_REG 0x50
// 由操縱桿固件定義的數據結構
結構{
????int8_t x;
????int8_t y;
????uint8_t 按鈕;
????uint8_t rfu;
}喜悅報告;
無效設置(){
??Wire.begin(); //初始化I2C總線
??序列號.開始(115200);//初始化串行總線
}
無效循環(){
??字節高字節,低字節;
??Wire.beginTransmission(HMC6343_ADDRESS); // 開始與 HMC6343 通信
??Wire.write(0x74); // 設置 HMC6343 方向
??Wire.write(HMC6343_HEADING_REG); // 發送要讀取的寄存器地址
??Wire.endTransmission();
??Wire.requestFrom(HMC6343_ADDRESS, 6); // 從 HMC6343 請求 6 個字節的數據
??而(Wire.available() < 1); // 沒有字節接收時忙等待
??highByte = Wire.read();
??lowByte = Wire.read();
??浮動標題 = ((highByte << 8) + lowByte) / 10.0; // 以度為單位的航向
??highByte = Wire.read();
??lowByte = Wire.read();
??浮動間距 = ((highByte << 8) + lowByte) / 10.0; // 以度為單位
??highByte = Wire.read();
??lowByte = Wire.read();
??浮點數 = ((highByte << 8) + lowByte) / 10.0; // 以度數滾動
??joyReport.buttons = 0;
??歡樂報告.rfu = 0;
??joyReport.x = 約束(((int)(map(roll, -90, 90, -100, 100))), -100, 100);
??joyReport.y = 約束(((int)(map(pitch, -90, 90, -100, 100))), -100, 100);
??Serial.write((uint8_t *)&joyReport, 4);
??延遲(100);// 以大約 10Hz 的頻率執行此操作
}
它有效嗎?
代碼本身運行良好。我在圣安德魯斯大教堂的廢墟中測試了它,Open Virtual Worlds 小組為此使用 MSI WindPad 110W 平板電腦進行了 OpenSim 重建。盡管 OSgrid 版本通常比我們的本地網格舊,但可以在我們自己的網格和 OSgrid 上訪問此 sim(搜索稱為“StAndrewsOVW”的區域)。
代碼
測試代碼
數據.ino
?
- 微加速度計的原理與應用 22次下載
- 基于石英撓性加速度計A/D與I/F數據采集系統 13次下載
- 基礎加速度計傳感器 26次下載
- 選擇一個加速度計的技巧 10次下載
- 加速度計的設計應用 7次下載
- MEMSIC攻克加速度計難題 8次下載
- 基于LabVIEW的加速度計模型參數辨識模塊設計_郭鑫 4次下載
- 降低加速度計的平均功耗 11次下載
- 基于Ansys的壓電式加速度計模擬分析 44次下載
- 力平衡式三軸微加速度計的設計與分析 22次下載
- 厚膜混合集成電容式加速度計 17次下載
- 三維MEMS加速度計的測試方法 77次下載
- 介觀壓阻效應在硅微加速度計中的應用 11次下載
- 微加速度計在惡劣環境下的可靠性 19次下載
- 基于微加速度計的AIR MOUSE的研究 15次下載
- 狀態監測中數字MEMS加速度計的混疊效應 873次閱讀
- MEMS加速度計中的振動校正 1762次閱讀
- 為您的應用選擇最合適的MEMS加速度計 1597次閱讀
- 如何使用加速度計提高傾角測量的準確性 2211次閱讀
- 如何使設計人員選擇最合適的加速度計 1005次閱讀
- 如何使用電容感應來測量加速度 3040次閱讀
- 如何擴展MEMS加速度計的帶寬 3083次閱讀
- 加速度計的安裝方法分享 4228次閱讀
- 一文詳解壓電加速度計 2377次閱讀
- 九軸傳感器之加速度計是怎么回事 2628次閱讀
- digilent三軸MEMS加速度計傳感模塊介紹 2370次閱讀
- digilentPmodACL三軸加速度計介紹 1903次閱讀
- 關于一種帶數模混合輸出的加速度計系統的設計和驗證 4152次閱讀
- MEMS加速度計是什么 加速度計工作原理 2.6w次閱讀
- 新型MEMS加速度計與商用壓電(PZT)狀態監控加速度計的比較 7399次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多