makefile.component為設定使用的元件、感測板、訊息大小

下圖為感測板mda300的各個元件設定

雖然知道應該是需要在感測板部分設定能抓取GPS資料的程式
但對於各個環節的相扣還不是很了解>"<
以及感測板與此二元件(GPS,CCD)的PIN腳接合也不是很清楚該如何接才是正確的
MDA300 datasheet



要注意的地方是MIB510的上面有一個switch 2(SW2)要切成off
今天切到on了
一直都沒注意到
結果就是一直都沒東西跑出來
最後看到了
顯示有資料在接收
不過有個問題
就是顯示上面
Gateway的Node的圖一直是顯示沒收到資料的
沒收到資料是灰色旁邊有打個叉叉的圖
但是卻又有顯示感測到的溫度和濕度的資訊
所以覺得有些奇怪
另外,在接收資料的過程中
如果有東西阻擋住就無法接收到資料
例如:把mote(1)放到冰箱去
然後關起來
會發現沒收到任何的資料
門一打開
就馬上有看到資料
大概是這樣
接下來的之後再做報告
Directory: C:\Crossbow\cygwin\opt\MoteWorks\apps\tutorials\lesson_3\
然後將第一顆mote裝上Gateway上面
打開PN2,在Tools的選單選shell,會出現可以輸入的方格
輸入下列命令
make micaz install,1 mib510,com4
等上面的命令結束之後
拔下第一顆mote,接上另外一顆mote
然後接換到下列資料夾
Directory: C:\Crossbow\cygwin\opt\MoteWorks\apps\general\XSniffer\
然後一樣在Tools的選單選shell,出現輸入方格
輸入下列命令
make micaz install,2 mib510,com4

第一章、 介紹
MoteWorks是產生無線感測網路的end-to-end enbling platform
1-1. MoteWorks Network Landscape
1-1-1. The Mote Tier, XMesh software 提供必須的網路演算法
去形成可靠的通訊骨幹,如此可連接網路中的所有節
點連到伺服器. (Refer to XMesh User’s Manual)
1-1-2. The Server Tier, XServe and XOtap are server tier
applications that can run on a PC or Stargate.
(Refer to XServe User’s Manual)
1-1-3. The Client Tier 提供使用者形象化的軟體和圖形化的介
面來管理網路。Crossbow提供免費的客戶端軟體稱做
MoteView,但 XMesh 也可被介面化的客製化客戶端
軟體
(Refer to MoteView User’s Manual)
1-2. Low Power Operating System – TinyOS
MoteWorks已經有包含TinyOS在裡面,TinyOS是由美國加州
柏克萊大學發展出來的開放原始碼的操作系統,無線感測網
路操作系統很多都用TinyOS,他是以元件組合基礎、事件驅
動操作系統,TinyOS支援範圍從8-bit架構的微處理器(2 KB
的RAM)到32-bit處理器(32MB的RAM或更多)
1-3. Software Development Tools
MoteWorks提供一套發展工具,用來客製化Mote應用,包含客
製化感測板驅動、感測訊號條件反應和程序和訊息處理…等。
第一章、 安裝(安裝部分已寫在另一份文件,這裡跳過)
第二章、 操作環境客製化
這章告訴我們可以學到
Customizing Programmer’s Notepad
Cygwin interface
Compiling and Programming Tools
Environment variables
Interoperability between TinyOS 1.1.10 and MoteWorks
3-1.Programmer’s Notepad 2
MoteWorks包含一個可編譯nesC code的簡單整合開發環境的
Programmer’s Notepad版本。在”Tools”選單有”make mica2”、
”make micaz”、”make mica2dot”和”make iris”的選項。如果安裝的
時候不是使用預設資料夾的話就必須手動修改工具的路徑才能讓
他正常使用。下面是Option的畫面。
“make micaz”的make命令是做編譯的動作
(我認為是如此,如有錯誤之後會再回來修正)
“Tools”選單有一個shell的指令,在這個指令下輸入”make micaz”,
此動作的結果是等同於直接在Tools下按”make micaz”,如此看來
shell是一個可以讓你就像在cygwin下輸入指令一樣。
Note:要做編譯或燒錄都必須在.nc檔的應用資料夾底下執行。
3-2.Cygwin
Cygwin是在Windows底下模擬Unix/Linux的環境。它包含兩部分
1).A DLL(cygwin1.dll),模擬Linux API
(DLL的全名為Dynamic Link Library,一般翻為「動態連結資料庫」)
2).集合提供的類似 linux 的 tools
Cygwin的一些有用常用的指令稍後再補上
3-3.Setting Aliases
這是可以設定進入特定資料夾的捷徑,設定的檔案是在
C:Crossbowcygwinetc裡面的profile
打開它,然後輸入
alias cdMoteWorks=”cd Crossbow/cygwin/opt/MoteWorks”
alias cdtools=”cd Crossbow/cygwin/opt/MoteWorks/tools”
alias cdapps=”cd Crossbow/cygwin/opt/MoteWorks/apps”
然後存檔,打開cygwin發現出現下圖的訊息
喔喔出現問題了>”<
算了,暫時不管它,沒設捷徑不影響
將profile裡面有做增加的部分刪除,改回原本的檔案內容
結果就沒再出現那個訊息了。
3-4.Compiling MoteWorks Applications
在Cygwin裡面做compiling(building) application code的語法是
make <platform>
下表是對照表
3-5.Programming Boards
燒錄程式的時候需要定義所使用的燒錄板是什麼型號的,
下表示對照表
3-5-1.MIB510/Serial Port Programmers
MIB510這塊版子是使用RS-232來和電腦連接傳輸資料的,如果
PC沒RS-232的插孔,可以使用RS-232轉USB的線,我們所使用
的就是RS-232轉USB的線
這裡簡單的說明一下燒錄的語法
Ex: make micaz install mib510,com1
micaz : 是<platform>
mib510 : 是<programmer>
com1 : 是連接埠(PC’s serial port),這個設定要先進到裝置
管理員查看
install : 是燒錄
3-6.Installing MoteWorks Application into a Mote
燒錄工具包含一個設定node ID的燒錄方法,且不需要直接去修改
原始碼。語法如下所示
Make <platform> reinstall,<n> <programmer>,<port>
Platform、programmer和port已經在前面提過了就不再說一遍。
<n>的n是設定節點的ID
install : 編譯程式到指定的platform
reinstall : 下載之前編譯好的程式到Mote,且不再重做編譯
3-7.Setting the Group ID and Node Address for the Mote Network
The Mote Message的標頭檔包含了一個Group ID(群組ID),這可以允許
區別各群組的Motes分享相同的通道。如果想要各群組的Motes在各自
群組的通道,需要設定Group ID 成一個獨特的8-bit的值來濾除那些訊
息。預設的Group ID是0x7d。設定Group ID的資料夾在
C:CrossbowcygwinoptMoteWorksapps,裡面的MakeXbowlocal的檔
案裡面的DEFAULT_LOCAL_GROUP的地方可以做設定。此外,訊息
的標頭檔有帶一個16-bit的destination node number。
3-8.The MakeXbowlocal file
MakeXbowlocal file提供一個方便的方法讓使用者改變Group ID、
channel(RX/TX frequency)和RF transmission power
使用它只要在特定的application的最上層的資料夾有一個叫做Makefile
的檔案,點兩下打開它。會看到一行寫著
Include ../MakeXbowlocal
經由增加了這一行在Makefile會使的application在編譯的時候把
MakeXbowlocal包含進去。
Note : MoteConfig不讀也不使用MakeXbowlocal的參數設定
因此是在MoteConfig的介面上自行另外設定的。
下面我把MakeXbowlocal的檔案部分print下來放在下面,且大概說一下設定
參數的位置。
Note : 如要使設定work只要把那行前面的”#”消掉就可以了
第一張圖:設定Programming Board,我們是使用MIB510,所以把
MIB510前面的#號拿掉,Port的話我們的是COM4
所以這裡要改成MIB510=COM4
第二章圖:設定MICA2的RF Band和RF Channel。
第三張圖:設定MICA2的RF Power。
第四張圖:設定MICAz和IRIS的RF Channel,紅色框框上面有顯示各通
到號碼相對應的頻率是多少。
第五張圖:設定MICAz的RF Power。一樣上面有對照表。
最後一張圖:是設定IRIS的RF Power。
這些設定在要做編譯之前要先檢查一遍是否都有設好。
3-9.Radio Frequencies
MICA2、MICA2DOT和MICAz可以使用的頻帶是315MHz、433MHz、
915MHz或2.4GHz ISM頻帶。在Compile之前一定要先確定頻帶沒設錯。
3-10.Automated Build Tools
MoteWorks提供好幾個自動編譯工具來簡化編譯程序
3-10-1.build
這個命令類似”make”。不過編譯之後的訊息只會顯示編譯之後
產生的錯誤和警告。語法是:
$build micaz
3-10-2.Buildall
這個命令跟build一樣,不過不同的是這個命令編譯資料夾內所
有的應用程式。下面是語法:
3-11.Mote Programming Tools
MoteWorks提供好幾個自動化工具來簡化燒錄到Mote的程序
3-11-1.flash
應該是燒錄進Mote的吧!預設node id=1和port=COM1,
且這命令只能用在MIB510和MIB520上。下面是語法:
3-11-2.flashall
範圍同buildall的範圍。下面是語法:
3-11-3.fuses
這命令允許使用者在Programming Board讀和寫Mote的fuse(查字典是保
險絲@@不懂)設定。下面是語法:
3-11-4.motelist
This command list MIB520 and Telos devices attached to the USB port。
(囧~看不是很懂)
3-12.TinyOS Interoperability and Tree Management
使用者可以在TinyOS(v.1.1.10)和MoteWorks之間相互操作,很多的命令提供
方便的切換TinyOS和MoteWorks樹狀結構。
3-12-1.gettos
這個命令允許使用者去觀看有多少的TinyOS的環境被編譯。
下圖是在cygwin下輸入gettos之後產生的畫面
3-12-2.settos
使用者可以經由改變一個符號連結來切換到一個新的MoteWorks。
兩個樹狀結構都在同樣的/opt/MoteWorks 根目錄,但是使用者可以
保有兩個版本,一個是標準版(2.0)和企業版(2.1),第一次使用這個命
令時,回重新命名現在的MoteWorks樹狀結構成為指定的版本。
下圖是指令:
3-12-3.usetos
這個命令使用者切換MoteWorks和TinyOS的環境
下面是指令:
usetos -switch to MoteWorks
usetos tinyos -switch to TinyOS 1.x
usetos tinyos-2.x -switch to TinyOS 2.x
下圖是切換功能顯示,告訴我們怎麼用此命令。
3-13.Compiling Utilities
MoteWorks提供了好幾個實用的編輯。
3-13-1.make
這命令允許使用者編譯nesC code,且提供幾個選項直接的輸入在
命令列,如platform、XMesh power mode、group ID和無線電頻率。
輸入方式如下圖所示:
3-13-2.mote-mem
看編譯韌體之後模組記憶體使用的情形。
下圖是手冊上的例子
3-13-3.treediff
顯示兩個不同的應用的來源差異。
(不是很懂)
3-14.XSniffer
XSniffer是一個Crossbow發展的工具,它可以讓使用者去透過XMesh觀看通訊傳
輸的情形。這個軟體使用在電腦上,且使用一個MICA2或MICAz的Mote來觀看
RF packet traffic,要使用XSniffer需要下列兩個需求
1. XSniffer TinyOS code : 這個程式碼是被建立給使用在MIB510或MIB520的基
地台上的一個MICAz或MICA2的。這個原始碼放在
/MoteWorks/apps/general/XSniffer
2. XSniffer的圖形化見面是被安裝和執行在電腦上的。它被安裝在
C:/Crossbow/XSniffer
3-14-1.Building and Starting XSniffer
在資料夾(/MoteWorks/apps/general/XSniffer),編譯和燒錄程式到正
確的平台。對於MICAz和 MIB510的命令是
make install micaz mib510,/dev/ttyS0
WARNING: XSniffer不作用在XMesh,編譯時不使用route,hp2或
route,lp2的變數,XSniffer使用
TOSH_DATA_LENGTH=64,它能提供最大的使用者
資料封包。
開啟XSniffer圖形化介面,選擇適合的COM port然後START,網路訊息
會顯示紀錄。
3-14-2.Using XSniffer
XSniffer可以被習慣用於監事mesh的行為,它會顯示無線電範圍的無線電
訊息的監聽。Use XSniffer to :
1. 如果一個mote加入mesh就會被監看,當發生資料封包將改變重廣播
位址到基地台位址或其它的基地台。
2. 監看個別的mote無線電封包序號。
3. 監看從基地台的無線電通訊。
4. 監看無線電訊息的重試
5. 監看最新的路由和時間同步訊息
關於更多XSniffer的細節,參照XMesh User’s manual
MDA300CA
⊕WARNING:靜電放電現象(ESD)會使MDA300CA壞掉。
ESD 造成的損壞範圍可以從微小的表現下降
到整個裝置的故障。
MDA300CA是被設計成用在MICAz和MICA2 Mote的一個量測平台,
它主要的應用是a)無限低功率設備,b)天氣量測系統,c)精確的農耕
和灌溉控制,d)動物棲息地監測,e)土壤分析,和遠端遙控。
圖表 1.MDA300CA,它可以與MICAz和MICA2 Mote結合
類比感測器基於準確性和動態範圍可以被用在different channels。
數位感測器可以被用在digital or counter channels。Mote取樣類比、
數位和計數器channels,且可以經由數位輸出或繼電器而被啟動。
MICAz(MPR2400CA) 或 MICA2(MPR400CB) 和MDA300CA 的結合可
以被使用如一個低功率無線資料取得裝置或程序控制機器。下面的
Table 7-1給了絕對最大值額定功率給各式各樣的電子參數。
Table 7-1. The MDA300CAs Absolute Maximum Ratings
+VDD to GND*……………………-0.3V to +5.5V
Digital Lines:
Input voltage range**…-……0.5V to Vdd +0.5V
Continuous output low current…………50 mA
Continuous output high current…………-4 mA
Analog Lines:
Input voltage range……………-0.2V to Vcc +0.5V
Counter Line:
Input voltage range…………………0V to 5.5V
Relays:
Maximum Contact Voltage…………………100V
Maximum Contact current…………………150mA
*Users are strongly encouraged to stay within the MICAz or MICA2 nominal
input voltage of 2.7 to 3.3 VDC
**The input negative-voltage rating may be exceeded if the input and output
current ratings are observed
Theory of Operation
簡單的描述在MDA300CA上面可用的pins的作用,
下圖是腳位和腳位的敘述。
Single Ended Analog Operation (Channels A0 to A6)
⊙NOTE: 這些通道是共同分享給differential channels A11-A13,且它
們不能在同一時間使用。
訊號的動態範圍在0V 到2.5V之間的可以被接在這些通道,最小的有
意義的值是0.6mV。類比數位轉換器(ADC,Analog-to-Digital Converter)的
結果可以被轉換成
Voltage= ADC_READING/4096
電阻需要被增加(焊接)在MDA300CA板上,正確的比例編排外部的類比
感測器的電壓等級,如此最大電壓是2.5VDC。有兩排電阻─RA和RB與個
別的ADC channels有關聯。這些電阻形成一個簡單的電阻電壓分配者。
因此選擇RA和RB的值如此的RB/(RA+RB)的值是經由感測器小魚2.5V的最
大輸出,電阻是相對應於一個特定的ADC channel 是被列在下表Table 7-2
且此區在板子上的位置也在下圖Figure 7-3。
⊙NOTE:在R30到R36位置的電阻是0Ω,在為通道焊接相對應的電阻實
需要移除。
Differential Analog Signals(Channels A11 to A13)
通道A11 到A13可以被differential analog channels使用,動態範圍和
轉換公式是和single ended channels相同。
Differential Precision Analog Signals(Channels A7 to A10)
通道A7到A10是precision differential channels,它們有增益100的感測
前端,這些通道的動態範圍是±12.5mV,偏移量會經由不段的偏移量的
量測而被消去,且對於軟體相消被寫在E2PROM。ADC的結果可以被
轉換成
Voltage(in mV)=12.5×(ADC_READING/2048-1)
Digital Channels(Channels D0 to D5)
通道D0 - D5是digital channels且可以被用在數位輸入、輸出,基於外
部事件或啟動外部訊號他們可以被使用在計算外部現象、引起的反應。
如果發生電源重置,感測器為避免遺失數值,這些通道的結果可以被
儲存在EEPROM,這些通道可以免受於開關跳躍,當設置有內部提升
的電阻輸入,它們可以插入感測器開關。
Counter Channel
這個通道用在高速計算或頻率量測。他有一個Schmitt triggered front-end。
Internal Channels
有一個溫度和濕度的內部感測器。這可以被用在監控系統的健康,在溫差
量測應用中它也可以被用在”cold junction compensation”,可以使用MICAz’s
或MICA2’s的內部監控來得知裝置電壓,進而得到裝置還能使用多久。
Relay Channels
有兩個relay channels可以被用在啟動外部事件,在最大離析和最小能源消
耗,這裡個relays是光學的固體狀態,一個relay正常是開啟,另一個則是
關閉。
External Sensors Excitation
有三個激發電壓─5.0V、3.3V和2.5V,能激發外部感測器,(They can be
used for turning on active external sensors or they can be used in half bridge
or full bridge sensors such as strain gauge, force or pressure measurement.)
LEDs
LED 訊號顯示由一些應用使用Motes的上的附件,且想要用LEDs顯示事件。
Power Supply(VCC)
它可以使用外部電源的附加裝置。