Wireless Sensor Networks

1,351 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,351
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Wireless Sensor Networks

  1. 1. 目錄1.摘要………………………………….…………12.前言…………………………………………….23.製作原理……………………………….………34.設計方法與硬體電路………………………...115.軟體功能與演算法……………………….…..176.實測結果與心得………………………...……27
  2. 2. - 1 -1.摘要無線感測網路是由數百至數千個感測節點所組成的網路。感測節點是一種運算速度慢、記憶體空間有限的微小裝置,常用於長時間收集環境資訊,透過多點跳躍的網路特性,將感測資料傳回基地台。因此無線感測網路大量應用於環境監控、災害管理、緊急事件通報;除此之外,在軍事、追蹤、定位也有一番成果。在本學期黃寶儀老師所開的「無線感測網路與實作」期末專題將無線感測網路之重要應用「追蹤」和「定位」實作於自走車,於台大博理館六樓 Demo 我們實作成果。本專題所採用的 TAROKO 平台是一個低耗電、可程式、無線傳輸的感測網路硬體平台,相容於 Zigbee,在本課程佈署之室內環境中,理論上直線傳輸距離可達 50 米。其內建 MSP430F1611 微控制器,我們透過它來整合兩組 SHARP IR 紅外線感測器與兩組 GWS S35/STD 伺服馬達,得以完成自走車的基本硬體架構。實作自走車過程中,曾遇到兩個特殊案例:牆壁、角落。這些案例皆有機會造成死結發生,即自走車會不斷重複相同動作,無法從這些案例中走出來。因此在「軟體功能與演算法」章節,將詳細探討如何避免與解決這兩個案例;除此之外,此章節將詳細介紹自走車硬體裝置如何擺放與安裝、紅外線感測器的Threshold 設定、避障演算法的無限自動機(Finite State Machine)流程圖、車輪控制、方向控制以及定位資訊處理。最終,在台大博理館六樓佈署的無線感測網路環境,極不穩定的定位訊號中,本組自走車仍成功抵達目的地,但遺憾的是,未能及時停車。
  3. 3. - 2 -2.前言本專題為無線感測網路與實作課程的學期專題,黃寶儀教授從授課經驗中發現,以往無線感測網路的學習缺乏實作的能力,因此每兩年便在台大開一學期無線感測網路與實作課程,希望能夠透過豐富的課程內容,幫助學生更深入了解無線感測網路。本課程宗旨在使學生發展無線感測網路的應用或追求更先進的研究,在授課過程中,有系統地教導:現存的開發平台、微控制器程式設計的基本知識、整合感測器的方法、感測器的資料處理、通訊協定和系統議題與示範應用程式。可分為講座與實驗課。課程教學大綱如下: Week 1 (9/17): Class Admin Week 2 (9/24): WSN Overview Week 3 (10/1): Hardware Platform Introduction Week 4 (10/8): Lab-1: Development Environment And GPIO Labs Week 5 (10/15): Lab-2: Timer And Control Servo Motor Labs Week 6 (10/22): Communication Protocols Week 7 (10/29): Analog And Digital Interfacing Week 8 (11/5): Lab-3: Analog Input (ADC) Labs Week 9 (11/12): Lab-4: Digital Input/Output Labs Week 10 (11/19): Lab-5: Mac Layer Labs Week 11 (11/26): Localization Week 12 (12/3): Lab-6: Localization Labs (Survey report due) Week 13 (12/10): Simple Layout Class 1 Week 14 (12/17): Simple Layout Class 2 Week 15 (12/24): Survey presentation Week 16 (12/31): Lab-7: Low Power And Advance Microcontroller Functions Week 17 (1/7): Term project workshop #2 Week 18 (1/14) Term Project Demo透過循序漸進的課程與實驗,再加上數次的作業及研讀頂級會議論文與報告,最終可透過此課程傳授的知識與台大博理館六樓所佈署的無線感測網路,實作無線感測網路定位之自走車,並於最後一堂課展示課程專題成果。最終,在極不穩定的定位訊號下,本組自走車成功抵達目的地,但未停車。
  4. 4. - 3 -3.製作原理3.1 MSP430 微控制器在本專題中,我們採用 TI 公司的 MSP430 微控制器,他在耗電量與功能上,都有不錯的表現,非常適合應用於電池供電的攜帶型裝置和需長時間連續工作的裝置,本章節將對 MSP430F1611 的原理做詳細的說明。主要特徵:1.極省電架構可延長電池壽命 0.1-uA 隨機記憶體保存關機模式(power down mode) 0.8-uA 待機模式(standby mode) 250-uA/MIPS 工作模式(run time mode)2.類比量測精確度的完善表現 12 位元數位類比轉換器(DAC) 12 位元或 10 位元的類比數位轉換器(ADC)的取樣速率 可達每秒 20 萬次(200kps)3.具有現代 16 位元 RISC 核心處理器 擁有較大的暫存器空間 核心簡潔的設計來減少功率消耗及降低成本 具有現代化高效能程式設計編譯的能力 強大的中斷向量能力 效能可達每秒 16MPIS(million instructions per second)4.嵌入式模擬 系統內建可程式快閃記憶體(flash memory),能夠彈性的對程式碼做修改更新,和檔案升級及記錄資料。使用本身的內建模擬電路,可以透過JTAG 介面來連接而不需要用到額外的系統資源。使用內建模擬電路的好處包括: 可支援全進執行、中斷點及單步執行 可支援全進執行、中斷點及單步執行 混合訊號的完整性被保存,不被其他干擾
  5. 5. - 4 -5.具有彈性的時脈模組 為了能符合一些以電池為電源的應用,MSP430 的時脈模組被特別設計。低頻輔助時脈(low-frequency auxiliary clock, ACLK)由 32kHz 石英振盪產生,提供自我喚醒功能為背景的即時時鐘(real-time clock, RTC)使用。高速的數位控制振盪器(digital control oscillator, DCO)產生主時脈(master clock, MCLK), 供給 CPU 及高速的周邊模組使用。 低頻輔助時脈(low-frequency auxiliary clock)通常用於極低功率的待機模式 高速主時脈(high-speed master clock)通常用於需要高效能的訊號處理上圖 3.1.1 MSP430 時脈模組6.定址空間 MSP430 採用 von Neumann 架構,其定址空間分配給特殊功能暫存器(special function register, SFR)、硬體周邊(memory mapping I/O)、隨機存取記憶體(RAM)及 Flash/ROM。 MSP430 記憶體儲存資料的格式分 bit、byte 及 word 三種.記憶體是以位元組為單位(byte addressable),所以 word 格式的資料必須符合 littleendian 方式儲存在記憶體位置 Flash/ROM RAM 周邊模組(Peripheral Modules) 特殊功能暫存器(Special Function Register, SFRs)
  6. 6. - 5 -圖 3.1.2 MSP430 系列記憶體配置圖圖 3.1.3 MSP430F1611 方塊圖
  7. 7. - 6 -圖 3.1.4 MSP430F1611 腳位配置圖3.2 TAROCO 平台TAROKO 是一個低耗電、可程式、無線傳輸的感測網路硬體平台。它所使用的微控制器為前述的 MSP430,因此也繼承了其低耗電量的特性,使 TAROKO較一般的無線感測網路平台更省電。TAROKO 使用 IEEE802.15.4 做為無線傳輸的通訊協定標準,相容於 Zigbee。室外最長的傳輸距離可達 100 米,而室內直線傳輸距離可達 50 米。TAROKO 具有 USB 介面,可直接利用電腦的 USB 做為供電、燒錄程式及收集資料之用途。除此之外,TAROKO 還具有 ADC、DAC、UART、SPI、I2C 等週邊介面,提供強大的擴充性。
  8. 8. - 7 -主要特徵: 10KB RAM、48KB Flash 250kbps 2.4GHz IEEE 802.15.4 Radio 內建 PCB 天線 USB 介面 超低耗電量 週邊包括 ADC、DAC、UART、SPI、I2C 等 溫度感測器、 濕度感測器及光感測器(選購)圖 3.2.1 各部位圖解(正面)圖 3.2.2 各部位圖解(反面)
  9. 9. - 8 -3.3 Sharp IR 紅外線測距感測器車輛障礙物偵測的部分,本專題使用兩組紅外線感測器量測物體距離,有效範圍從 10 cm - 80 cm,使用類比訊號輸出。主要特徵: 較不受反射物體顏色所影響 有效範圍從 10 cm - 80 cm 輸出訊號從 0–3V 電源 5V 低成本圖 3.3.1 Sharp IR 紅外線感測器圖 3.3.2 Sharp IR 方塊圖
  10. 10. - 9 -圖 3.3.3 規格與腳位圖3.4 GWS S35/STD 360 度旋轉伺服馬達GWS S35 是一款 360 度旋轉的伺服馬達,本專題採用兩組作為主要驅動,使車輛可前進、後退、轉彎與停止。主要特徵: 扭矩 2.5Kg-cm(4.8V)2.8 KG-cm(6V) 電壓範圍 4.8V~6V 平均速度 60 rpm 運動角度 360 度 尺寸 39.5mmx20.0mmx35.6mm 重量 42g圖 3.4.1 GWS S35/STD 360 度旋轉伺服馬達
  11. 11. - 10 -圖 3.4.2 課程提供車盤已設置 GWS S35 伺服馬達圖 3.4.3 GWS S35 伺服馬達腳位圖GNDVccSignal
  12. 12. - 11 -4.設計方法與硬體電路4.1 設計方法圖 4.1.1 系統方塊圖1. 無線電模組接收佈署於環境中的無線感測網路,傳回微控制器以進行定位。2. 利用 TAROCO 內建微控制器接收紅外線測距感測器,進行障礙物偵測。3. 根據上述資訊驅動伺服馬達,使車輛順利抵達目的地。圖 4.1.2 測詴環境與佈署(博理館六樓)無線電模組IEEE 802.15.4微控制器伺服馬達紅外線測距感測器其他USB 模組Flash 記憶體感測器TAROCO 平台外部
  13. 13. - 12 -4.2 硬體電路圖 4.2.1 TAROCO 電路圖
  14. 14. - 13 -圖 4.2.2 TAROCO Radio 電路圖
  15. 15. - 14 -圖 4.2.3 TAROCO USB 電路圖
  16. 16. - 15 -圖 4.2.4 穩壓電路圖(Simple Layout Class 1)
  17. 17. - 16 -圖 4.2.5 穩壓電路 PCB(Simple Layout Class 2)
  18. 18. - 17 -5. 軟體功能與演算法5.1 定位系統本次期末 Demo 於台大博理館六樓實際測詴,其環境地形如圖 5.1.1。進行環境探勘(http://homepage.ntu.edu.tw/~r98525087/WSN/WSN_DEMO_PLACE.MOV)發現繞外圍將有轉角、廁所、電梯、花瓶等特殊情況。因此,決定自走車先繞行內圍,並且利用圖 5.1.2 定位系統收集定位資訊,在 Demo 時再將定位點資訊給予自走車參考,利用 norm-2 來判斷是否停止。圖 5.1.1 博理館六樓圖 5.1.2 定位系統
  19. 19. - 18 -5.2 安裝紅外線感測器5.2.1 紅外線感測器擺放測詴三種紅外線感測器擺放方向:前方、側面、斜前方(45 度角),其中最符合我們演算法擺放方向為斜前方,其擺放圖為圖 5.2.1。圖 5.2.1 紅外線感測器擺放圖5.2.2 紅外線感測器 Threshold 設定本小節將探討紅外線感測器 Threshold 與物體距離關係。實際測詴時發現若Threshold 較大時,將有機會卡在門縫或者花瓶的窘境,因此提高紅外線感測器的敏感度(即調低 Threshold),將可避免上述窘境。
  20. 20. - 19 -5.3 避障演算法(Avoiding Obstacle Algorithm)5.3.1 避障演算法流程圖(Avoiding Obstacle Algorithm Flow Chart)避障演算法分為六個狀態模式,分別為:GO_FORWARD、OBSTACLE、GO_BACKWARD、TURN_RIGHT、TURN_LEFT、STOP,避障演算法流程圖如圖 5.3.1 所示。STARTGO_FORWARDInfrared_left > THRESHOLD ||infrared_right > THRESHOLDNoNoOBSTACLEInfrared_left > THRESHOLD &&infrared_right > THRESHOLDinfrared_left > THRESHOLDinfrared_right > THRESHOLDNoNoGO_BACKWARDYesTURN_RIGHTYesTURN_LEFTYesNoYesachieve targetYesSTOPSTOP圖 5.3.1 避障演算法流程圖GO_FORWARD 模式:左紅外線或右外線感測到物體時,即轉換模式為OBSTACLE 模式,或者定位系統判定到達目的地即切換成 STOP 模式,否則就繼續前進。OBSTACLE 模式:利用計數器統計左紅外線與右紅外線碰到物體的可能性,若為前方有障礙物則轉換模式為 GO_BACKWARD 模式、左方有障礙物則轉換模式為 TURN_RIGHT 模式、右方有障礙物則轉換模式為 TURN_LEFT 模式。GO_BACKWARD 模式、TURN_RIGHT 模式、TURN_LEFT 模式:執行過後,自動切換模式為 GO_FORWARD 模式。STOP 模式:停止所有感測器以及車輪狀態。
  21. 21. - 20 -5.3.2 死結偵測(Deadlock Detection)在實際環境中,有許多因素(如:牆壁、角落等)可能導致自走車發生一些特別案例,甚至可能發生死結。當發生死結時,自走車將會在這個特別案例中無限打轉。因此,本小節將探討如何避免發生死結,將針對兩個最常見案例進行探討。5.3.2.1 牆壁案例:自走車前方有面牆而重複前進後退,導致死結發生,如圖 5.3.2.1。方法:當左紅外線感測器與右紅外線感測器偵測值皆超過 Threshold 時,先將自走車倒退,再次偵測左紅外線感測器與右紅外線感測器值,往感測值小的紅外線感測器方向移動。圖 5.3.2.1 死結發生案例-牆壁5.3.2.2 角落案例: 自走車在角落會形成循環式移動,如圖 5.3.2.2。方法: 利用定位系統來導正自走車移動方向,避免進入角落而造成死結。圖 5.3.2.2 死結發生案例-角落
  22. 22. - 21 -5.4 自走車控制5.4.1 車輪控制自走車車輪轉動速度、時間點和兩輪配合情況,將會影響避障演算法設計的結果,因此本小結將詳細介紹時脈控制、Timer 初始化以及一般車輪模式的設定,包含前進、後退、左轉、右轉和停止。5.4.1.1 時脈控制 設定時脈(以左輪為主、右輪剛好相反)#define forward 200#define stop 50#define backward 10 使用 Timer B 控制車輪Timer B1 (PULSE1): 控制左輪Timer B2 (PULSE2): 控制右輪5.4.1.2 Timer 初始化設定 PWM 暫存器,讓 Timer B1、Timer B2 能在預定時間發生中斷,使得輪子能正常轉向。// Select outputting PWM signalP2DIR |= BIT3 + BIT6;//Set Timer A registerTACTL = TASSEL0 + MC1 +TAIE; // Select ACLK and continuous mode;TACCTL0 = SCS + CCIE; // Set TA compare 0 : Capture synchronize +//Capture/compare interrupt enableTACCR0 = PERIOD; // Set PERIOD timeTACCTL1 = SCS + CCIE; // Set TA compare 1 : Capture synchronize +//Capture/compare interrupt enableTACCR1 = PULSE1; // Set PULSE1 timeTACCTL2 = SCS + CCIE; // Set TA compare 2 : Capture synchronize +//Capture/compare interrupt enableTACCR2 = PULSE2; // Set PULSE2 time
  23. 23. - 22 -5.4.1.3 前進(Forwarding)兩輪腳位需初始化,調整雙輪向前速度相同,以免發生往左或往右偏移狀態。void MotoFoward(){PULSE1 = forward;PULSE2 = backward;P2DIR |= BIT3+BIT6;0}5.4.1.4 後退(Backward)後退跟前進設計很相似,但輪子控制要向後;兩輪腳位需初始化,並調整雙輪向後速度相同,以免發生往左或往右偏移狀態。void MotoBack(){PULSE1 = backward;PULSE2 = forward;P2DIR |= BIT3+BIT6;}5.4.1.5 左轉(Turn Left)左轉跟前進設計很相似,但左輪腳位需要設定為靜止,並且將左輪 TimerB1設定為靜止。void MotoLeft(){PULSE1 = forward;PULSE2 = stop;P2DIR& = ~BIT6;}5.4.1.6 右轉(Turn Right)右轉跟前進設計很相似,但右輪腳位需要設定為靜止,並且將右輪 TimerB2設定為靜止。void MotoRight(){PULSE1 = stop;PULSE2 = backward;P2DIR &= ~BIT63}
  24. 24. - 23 -5.4.1.7 停止(Stop)將左輪跟右輪腳位設定為靜止,並且將左輪 Timer B1 跟右輪 TimerB2 設定為靜止。void MotoStop(){PULSE1 = stop;PULSE2 = stop;P2DIR &= ~(BIT3+BIT6);}5.4.2 方向控制此小節介紹避障演算法的六個狀態模式中車輪方向控制機制,如何利用 3.1小節所定義的車輪控制來實作。5.4.2.1 前進模式( GO_FORWARD 模式)利用紅外線偵測車子離左障礙物跟右障礙物距離,當車子靠近障礙物時,先將車子停止並切換成 OBSTACLE 模式,否則保持車子向前移動。// 偵測車子離左障礙物跟右障礙物狀態if((infrared_left < THRESHOLD) && (infrared_right < THRESHOLD)){MotoFoward();} //正前方無障礙物,前進else if(infrared_left > THRESHOLD){sample_left++;if(sample_left ==2){sample_left = 0;MotoStop();mode = OBSTACLE;}}//左前方有障礙物,二次後原地停止,並進入避障模式else if(infrared_right > THRESHOLD) {sample_right++;if(sample_right == 2){sample_right = 0;MotoStop();mode = OBSTACLE;}}//右前方有障礙物,二次後原地停止,進入避障模式
  25. 25. - 24 -5.4.2.2 物體偵測模式( OBSTACLE 模式 )當車子從 GO_FORWARD 模式切換成 OBSTACLE 模式時,車子會被強迫停止,並偵測車子與周圍物體距離關係;由於實測時發現輪子會有空轉的可能,因此當確認有物體則先退後再切換模式。// 統計避障模式資料if((infrared_left > THRESHOLD) && (infrared_right > THRESHOLD)) {check_left_and_right++;} //確認正前方有障礙物else if(infrared_left > THRESHOLD ) {check_left++;}//確認左前方有障礙物else if(infrared_right > THRESHOLD ) {check_right++;}//確認右前方有障礙物else{check_forward++;}//確認正前方無障礙物// 評估避障模式if(check_left_and_right == 3){MotoBack();check_left_and_right = 0;mode = GO_BACKWARD;} //正前方確定有障礙物,進入後退模式else if(check_left == 4){MotoBack();check_left = 0;mode = TURN_RIGHT;}//左前方確定有障礙物,進入右轉模式else if(check_right == 4) {MotoBack();check_right = 0;mode = TURN_LEFT;}//右前方確定有障礙物,進入左轉模式else if(check_forward == 2){MotoBack();check_forward = 0;mode = GO_FORWARD;}//正前方確定無障礙物,進入前進模式
  26. 26. - 25 -5.4.2.3 後退模式( GO_BACKWARD 模式 )當車子從 OBSTACLE 模式切換成 GO_BACKWARD 模式時,車子會先退後再利用左紅外線值跟右紅外線值來判斷為左轉還是右轉,因此可以避免卡於轉角的特殊情形。//後退再依紅外線值改變移動模式MotoBack();go_backward_count++;if(go_backward_count ==3){go_backward_count = 0;if(infrared_left > infrared_right){mode = TURN_RIGHT;}//車子離左物體較近else{mode = TURN_LEFT;}//車子離右物體較近}5.4.2.4 右轉模式( TURN_RIGHT 模式)當車子從 OBSTACLE 模式切換成 TURN_RIGHT 模式時,排除GO_BACKWARD 模式後,強制讓車子右轉後進入前進模式。//右轉後回到前進模式MotoRight();if(object_is_infront ==1){turn_right_count++;if(turn_right_count == 2){turn_right_count = 0;mode = GO_FORWARD;}}//偵測前方有物體else{mode = GO_FORWARD;}//偵測前方無物體
  27. 27. - 26 -5.4.2.5 左轉模式( TURN_LEFT 模式)當車子從 OBSTACLE 模式切換成 TURN_RIGHT 模式時,排除GO_BACKWARD 模式後,強制讓車子左轉後進入前進模式。//左轉後回到前進模式MotoLeft();if(object_is_infront ==1){turn_left_count++;if(turn_left_count == 2){turn_left_count = 0;mode = GO_FORWARD;}}//偵測前方有物體else{mode = GO_FORWARD;}//偵測前方無物體5.4.2.6 停止模式( STOP 模式)利用輪子靜止模式將車子停止,並且將紅外線感測器的腳位設定為 disable,因此可以停住自走車。//停止所有感測器以及輪子狀態MotoStop();P6SEL ^=(BIT0 + BIT1);
  28. 28. - 27 -6.實測結果與心得6.1 實測結果最後一堂課程,我們在台大博理館六樓進行期末學期專題競賽。圖 6.1.1 是本組自走車競賽紀錄之的路線圖,因自走車在起點擺放的角度不佳,使其走向未測詴過的地點,當跑到轉角處時,嚇得我們冒出一身冷汗(這個案例沒有測詴過),所幸車輛還是靠著定位資訊修正回正確的方向;但在途中發生了第二次意外狀況,地面不平造成車輪空轉(在博理 621 實驗室前有個凹洞),對於此案例,我們已事先研擬了一套對策,即讓車子先退後再轉彎,避免在原地打轉與卡死的可能;最後一個轉彎處時,又發生了一次意外狀況(白天日光中的紅外線干擾),但所幸日光干擾對行進方向的影響不大;最後,在時間即將截止之際,自走車順利抵達了終點,但未能及時停止。圖 6.1.1 本組自走車競賽紀錄之路線圖
  29. 29. - 28 -6.2 課程心得-李孟翰本學期黃寶儀老師所開的「無線感測網路與實作」意義非凡,教學內容不像傳統填鴨式教學,增加很多實作的LAB,從中摸索學習如何完成自走車所需元素,並於期末整合各 LAB 所學,製作出無線感測網路定位之自走車;特別感謝 SY 助教的照顧,除了每周不斷黏著助教問程式外,助教在閒暇之餘還會跟我們聊天,鼓勵我們遇到挫折該如何面對,尤其是未知的硬體電路問題。期末自走車問題特別多,包含 Position System 一直無法蒐集到資料、紅外線感測器無法正確收集到資料、車子在特定區域會發生空轉、Deadlock 發生時該如何調整演算法以及如何避免車子走入廁所、電梯、轉角處等;特別感謝 SY助教特別贊助數張椅子讓我們能在最後一周在博理館熬夜可以不必坐在地板繼續 coding,在極冷寒流日看日出感覺真美好。在 Demo 前一晚,我們又拿著一堆零組件在博理館六樓測詴。因為實作中無法順利避免走入廁所和電梯,因此最後採取繞內圈方式避免;除此之外,特別調高紅外線感測敏感度,減少正前方有物體的可能性,如此能有更準確決定車子左轉或右轉,大幅降低往回走的可能性;終於,當車子終於可以順利跑到想去的目的地時,就順便拍一張博理館的日出,證明這個寒冷的夜晚不是白敖的。Demo 當場狀況也很多,除了一開始手滑,讓車子跑到最不想讓車子進去的轉角外,其他一切都很順利讓車子跑到終點,雖然有些案例沒有事先想到(都是半夜做測詴),但還好在規定的 15 分鐘內有跑到終點附近,也拿到所有組別最高分數。最後,回顧本學期「無線感測網路與實作」所學的點點滴滴,從無到有完成整個期末專題,這種榮譽感是真實的;相信未來計畫或是工作遇到相關問題時,我很有自信說「I CAN DO IT」,謝謝黃寶儀老師跟 SY 助教這學期的照顧與耐心解疑惑,謝謝。
  30. 30. - 29 -6.3 課程心得-郭羿呈無線感測網路在近年來一直是學界的熱門研究領域,而本門課程對我來講也非常新鮮;但一開始我並未決定選修這門課,因為這並非我的研究領域,且聽學長說過這門課的負擔很大。但基於對單晶片系統的興趣,在旁聽過第一節課後,深深地覺得課程安排非常豐富且扎實,可以學到許多單晶片系統開發與無線感測網路的知識,我便毅然決然加簽了本課程。透過課程與實驗循序漸進的指導,從跑馬燈、中斷服務常式、鍵盤掃描、Timer與 Clock、伺服馬達等傳統單晶片課程奠定基礎,再加上學習如何將各種感測器的訊號從類比轉成數位、UART 的傳輸、Realterm 的安裝與操作、無線電的控制等,便具備了製作無線感測網路定位之自走車專題的基礎。在期末學期專題競賽的前夕,大家都聚集在博理館六樓一起努力調整作品,從無數次的撞牆測詴中,尋找程式設計的靈感,越夜越 HIGH,這種迴光返照的感覺妙不可言。在第一次看台大的日出,吃完早餐後,精彩的期末學期專題競賽便開始了,很可惜的是為避免影響自走車行走,我們無法精準了解對手戰況,僅能透過Realterm 來略知一二,但我們仍熱血觀戰。在輪到我們時,透過演算法與念力,我們的 BMW 號成功抵達終點,但車車似乎很熱血的還想再走一圈,所以沒有停下來。最後,實在佩服如此緊密且豐富的課程安排,輔以有趣的學期專題競賽,由此可見教授與助教的用心,這絕對是空前絕後、嘔心瀝血規劃下的課程,值得一修再修,我絕對會向學弟強力推薦此課程。XD
  31. 31. - 30 -圖 6.1 黃寶儀教授(資料來源: 黃寶儀老師個人網站)圖 6.2 SY 助教(資料來源: 小白喵的窩)圖 6.3 熬夜 Coding 圖 6.4 博理館日出圖 6.5 組員合照

×