幾天前曾有NXT同好留言詢問Mindsensors Port Splitter V2若使用NXC,則Port該如何定義,剛好手上有一個舊型V1的Port Splitter而過去僅用來接過馬達作為同步控制,還尚未實際以數位感應器作測試,因此,就以現有幾個Mindsensors的Digital Sensors來驗證它的功能,當然也希望能提供詢問的同好較為完整的回應。
Port Splitter的用途與限制
首先參考Port Splitter的User Guide,可以瞭解這個裝置的用途在於可以使用NXT的一個Input Port連接最多三個數位感應器,用途有點像HiTechnic的Sensor MultiPlexer,事實上用法與功能方面還是有相當的差異。
不過更需要瞭解的是Port Splitter的使用限制:
1. 必須為數位感應器無法接類比式Sensor,HiTechnic就沒有這個限制。
2. 所連接數位感應器的I2C Bus Address必須唯一,HiTechnic同樣沒有限制,不過必須是它已經認識的裝置。
3. 數位感應器的總耗電量不能超過100mA,否則會無法運作。
如果符合以上三個條件,那Port Splitter的程式控制功能比起HiTechnic的 Sensor Mux就容易不少,何況價格僅為五分之一左右($11.95 vs. $57.95),還是值得研究與探討實際的運作情形。
功能測試
前面提過了,只要連接的裝置符合它的使用條件,程式控制的方式就可以對同一個Input Port同時操作多個數位裝置,而這次測試所選用的三個感應器分別為:NXT Ultrasonic(0x02)、NXTHID(0x04)、PFMate(0x48),
測試的NXC程式為:PortSplitter-03.nxc
執行讀取並顯示每一個Sensor的Device Name(0x10 - 0x17共8個Bytes),結果如以下畫面。
<
>
有些效較大電流的裝置,如NXTCAM實測時並無法同時接太多的Sensors,實際使用時還是須要先測試過。
※Mindsensors sensors I2C Bus Address及耗電量整理表:
Digital Sensors | I2C Bus Address | Current Consumption |
NXTHID | 0x04 | 25mA |
NXTMMX | 0x06 | 5mA |
NXTServo | 0xB0 | N/A |
MagicWand | 0x70 | 25mA |
MTRMX-NX | 0xB4 | N/A |
NumericPad | 0xB4 | 1mA |
PFMate | 0x48 | 15mA |
RTC-NX | 0xD0 | 1.2mA |
RXMUX | 0x7E | 2-4mA |
NXTPowerMeter | 0x12 | 10mA |
|
|
|
NXTCAM | 0x02 | 42mA |
NXTLineleader | 0x02 | 5.7mA |
ACCL-NX | 0x02 | 3.5mA |
DIST-NX | 0x02 | 45mA |
NRLink | 0x02 | 2-25mA |
PSP-NX | 0x02 | 2-12mA |
沒有留言:
張貼留言