机器人设计与应用专题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

機器人設計與應用專題國立豐原高中郭再興學習目標•了解機器人設計的基本原理•能瞭解流程圖概念,以及如何應用於解決問題。•藉由圖控式程式發展環境,以及控制機器人解決循跡問題,了解演算法流程控制的基本輸入、處理步驟、輸出等基本概念學習目標•學習迴圈結構以及控制燈泡物件•學習選擇結構以及按鈕感應器物件•學習邏輯判斷物件(AND、OR、NOT、XOR)•練習分析問題,包括輸入、輸出、資料處理方式。學習目標•學習如何使用光感應器製作循跡機器人•學習使用超音波感應器製作巡邏機器人•以解決機器人克服難關問題為例,介紹如何解決各種機器人挑戰關卡,並從中應用解題概念,做為問題解決的基本核心策略。電腦解題教學工具GameMaker()Scratch()Alice()可程式化機器人系統益智遊戲可程式化機器人LEGOMindstormsNXT樂高機器人NXT9797•電機控制元件–控制器–伺服馬達–感測器•圖控式程式發展環境•積木元件89電機控制元件•包含NXT控制器、伺服馬達、感應器组成•NXT控制器就像人的大腦,伺服馬達好比人的肌肉,提供動力,感應器就像人的五官,偵測外界環境並轉換成數位資料,再傳送回NXT控制器,驅動伺服馬達做出反應•基本運算模式輸入-處理-輸出•圖控式程式發展環境選擇結構:若按下按鈕責執行上半側的指令,反之則走下半側迴圈結構開始物件屬性•程式虛擬碼while(true){if(touch_sensor_is_pressed){beep();show_picture_on_screen()}}•感測器若被壓下,則由喇叭播放音效,螢幕也會顯示笑臉畫面,學生在此可學到基本程式撰寫方法,以及三種基本流程閃黃燈程式•挑戰題目--製作閃黃燈程式•展示事先錄製的閃黃燈影片•依照建構圖,將零件組合完畢範例程式說明紅綠燈程式•挑戰題目--製作紅綠燈程式•展示事先錄製的紅綠燈影片•依照建構圖,將零件組合完畢程式說明程式執行原理,與之前的閃黃燈程式相同,依序是:•點亮連接PortA的綠燈-等3秒鐘-熄滅PortA綠燈•點亮連接PortB的黃燈-等1秒鐘-熄滅PortB的黃燈•點亮連接PortC的紅燈-等4秒鐘-熄滅PortC的紅燈閃黃燈變換紅綠燈•使用感測器控制閃黃燈切換紅綠燈•展示事先錄製的影片•依照建構圖,將零件組合完畢選擇結構•說明選擇結構概念•設定各種感測器條件•討論並實作程式說明•選擇結構(switch)最簡單的用法,就是判斷感測器輸入的資料是否符合預期,例如上圖中就是判斷接在Port1的按鈕感測器是否被壓下,若條件成立則程式走上半部,反之則走下半部。其他感測器設定•下圖為光感應器偵測到光線亮度大於50%時,條件為真•下圖為超音波感應器偵測到物體距離小於15cm時,條件為真•下圖為光感應器偵測到光線亮度大於50%時,條件為真延伸討論•程式編輯的技巧(copy-paste、捲動程式)•將程式改成超音波感測,這樣有路人站立在路口時,不用按鈕也能自動感應,控制燈號進入紅綠燈狀態•將條件設定改成聲控的話,那麼路人站在路口時,就可以用聲音的方式啟動控制•也請同學們想想看還有哪些變化,可以擴充控制的方式電子搶答機•引起動機--益智類型電視節目搶答•問題說明--電子搶答機•依照建構圖,將零件組合完畢•說明使用邏輯物件控制迴圈–下圖程式若按下Port1或Port2所接的按鍵(也就是按下任何一個按鍵),無窮迴圈就會被中斷使用邏輯物件控制迴圈•迴圈物件,可以設定為無窮迴圈(forever),下圖是設定成當邏輯輸入為true時迴圈中止•迴圈內的前兩個物件,負責偵測Port1按鈕、Port2按鈕是否被按下•若按鈕被按下,|則綠色的線會送出true的訊號,由迴圈內的第三個物件(邏輯物件)匯整後作出判斷(本例為OR)常用的邏輯判斷AND運算:只有兩個輸入值都為“真”時結果才為“真”;其他情況輸出結果都為“假”OR運算:兩個輸入值至少一個為“真”,輸出結果則為“真”;否則輸出結果為“假”XOR運算:兩個輸入值相同則輸出為”假”,兩個輸入值相異則輸出為”真”,可以用簡單口訣幫助記憶”同性相斥、異性相吸”NOT運算:取相反值若輸入“真”,則輸出”假”,若輸入“假”,則輸出”真”程式解說•先暫停程式2秒鐘,點亮PortB燈•接著進入迴圈,若Port1按鈕或Port2按鈕被按下,則迴圈中止•緊接著立刻判斷是哪一個按鈕被按下–若是Port1按鈕被按下,則點亮PortA燈–若是Port1按鈕未被按下,接著再判斷若Port2按鈕被按下,則點亮PortC燈延伸討論•問題1:先判斷Port1按鈕,接著才判斷Port2按鈕,是否不公平?•問題2:是否會出現誤判?•是否有別的程式寫法?三輪自走車自走車組合基本車身前進後退控制馬達前近一小段距離控制馬達後退一小段距離無窮迴圈單光感循跡挑戰問題:如何讓機器人使用一個光感應器,控制兩個馬達,依循地上黑線前進?單光感循跡演算法演算法說明step1光感應偵測地面亮度step2若偵測到亮-左馬達出力step3若偵測到暗-右馬達出力不斷重複上面步驟,即可循跡前進參考程式光感測到亮,則走上半側路徑控制馬達左轉;反之則走下半側控制馬達右轉右馬達停止左馬達運轉無窮迴圈虛擬碼while(true){if(LightSensor_detect_white){motorB_stop();motorC_run();}else{motorC_stop();motorB_run();}}•討論單光感循跡演算法的特性,優缺點分析•演算法的特性--有限性、明確性•準備難度較高的圖形再試試看,並且討論失敗的原因,歸納出演算法的缺點進階挑戰地圖雙光感循跡•控制機器人以雙光感測器循跡前進,且行經到底線時能自動停止•請同學思考如何利用二個光感應器來循跡,同時還能判斷是否到達底線範例程式左光感遇亮控制左馬達前進遇暗則停止右光感遇亮控制右馬達前進遇暗則停止無窮迴圈•虛擬碼while(true){if(left_LightSensor_detect_white)motorC_run();elsemotorC_stop();if(right_LightSensor_detect_white)motorB_run();elsemotorB_stop()}•自走車大致讓黑線在兩個光感中間車身前進•若不小心靠左偏離路線,在右光感感應到黑線時,就會造成右馬達停止,讓車子偏右修正回正常路線•若是車子不小心靠右偏離路線,也能修正回來•兩個光感都感應到黑線時,兩個馬達就會靜止,達到停車的效果機器人學習套件BasicStampBoeBot()BasicCommander()科學魔法車(~me017/welcome)LegoMindstorms()Arduino()MicrosoftRoboticsDeveloperStudio(MSRDS)RobotBasic()

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功