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