大家好,機械結構的幾種模型已經學過了,我們已經知道了如何用簡單的機械方式讓我們的機械做不同的動作,接下來,我會先說EV3部分,雖然wedo也很好玩,但EV3的可玩性對於成年人的吸引力更大,所以我有更大的興趣先入手它。而這部分,我跳過了EV3的基礎入門,之後我會再補充。
在說具體案例之前,我會說一套思維理論。因為EV3學習更加強調STEM學科教育,也就是學會分析問題以及解決問題,這裡所提到的思維方式不僅對孩子適用,通用也適用於成年人,或許因為成年人的固化思維,接受起來更加困難,所以我每次還是選擇不厭其煩地先說一下這種思維方式。
內容取自樂高官方EV3套裝原理模型,教學材料,需要45544套裝和45560擴充套件包。
按照我的理解,就是麻煩找上門了,你需要去找到一個套路去解決這個麻煩,並且最佳化這個套路,以便下次遇到同樣的麻煩的時候,可以直接套取出來,從而快速解決問題。
這也就是所謂的建模。
透過程式設計培養計算思維
為了培養學生們的演算法思維,將向他們介紹一些程式設計原理。在設計解決方案的過程中,他們會組織一系列動作和結構,實現為自己的模型賦予生命。
學生會用到的最常見程式設計原理包括:
1、輸出
輸出是由學生所編寫程式控制的一系列訊號。MINDSTORMS中的輸出示例包括聲音,光線,顯示及開啟和關閉電機等。
2、輸入
輸入是計算機或裝置所接收的資訊。可以透過感測器以數字或文字值的形式進行輸入。例如,感測器檢測或測量一些數值(如距離),然後將那些值轉換為數字輸入訊號,使它們可以在程式中使用。
3、事件(等待)
學生可以讓程式等待特定事件發生後,再繼續執行後續動作。程式可以等待一定時間,或是等待感測器檢測到特定事物。
4、迴圈
學生可對動作進行程式設計,使其無限重複或重複特定次數。
5、函式
函式是指特定情況下可整體使用的一組動作。例如,一組可進行光線閃爍的模組被統稱為“閃爍函式”。
6、條件
對於那些只能在特定情況下才可執行的動作,學生可藉助條件來對其程式設計。在程式中建立條件意味著:如果該條件一直沒有被滿足,那麼其中一部分程式將永遠不會被執行。例如,如果觸動感測器被按壓,電機將開啟;如果被鬆開,電機將停止。
案例開始:
巡航控制
:
目標
:
學生將:
使用變數模組來儲存資訊
編寫多層程式
建立功能模組(我的模組)
-設計一個巡航控制程式來協助駕駛員,減輕他們的駕駛壓力。
詞彙
:
輸入、輸出、虛擬碼、常量、迴圈、等待、電機、觸動感測器
(學生必須瞭解這幾個詞的概念)
核心函式
:
1、觸動感測器;
2、迴圈;
3、切換;
4、變數;
5、數字;
6、我的模組。
年級
:6-8
1
聯絡
在本次課程中,您將向學生介紹變數。學生將利用此資訊為他們的輪式機器人新增巡航控制功能。按壓觸動感測器可以增加機器人的行進速度。
圍繞下列問題進行展開課堂討論:
-駕駛過程中哪些因素會使駕駛員感到壓力?
-在長時間駕駛過程中,我們如何能幫助提高駕駛員的安全性?
向學生提問,他們認為方向盤上的加號和減號有什麼作用。討論這兩個符號如何調整汽車的速度。
允許學生選擇最適合自己獲取及分享想法的工具。鼓勵他們以文字、影片、影象、草圖筆記或其它創意性媒介的方式,將自己的想法記錄下來。
2
建構
搭建:
對於初次接觸EV3的孩子,引導他進行搭建,認識零件,以及學會使用零件很有必要。如果是有自己想法的學生,可以讓其自由發揮,不過還是不能太偏離主題,及兩個大型電機的基礎。
此次,可在前面安裝 觸動感測器。
告知學生,今天的任務是利用兩個觸動感測器來控制和保持他們機器人的行進速度。
在對機器人進行程式設計之前,先讓學生對搭建的系統進行檢查:
-連線線是否正確地從電機連線到埠B和C?
-機器人的輪子是否正確安裝?
-機器人的輪子是否自由旋轉?
程式:
讓學生在EV3程式設計環境中新建一個專案。
加深學生對變數模組的理解。向學生講解。變數是一種程式設計模組,它可以儲存資料(文字、邏輯、數字或陣列),在程式執行過程中這些資料可隨時被重新賦值。
並介紹,使用數學、文字或陣列運算模組時,上述模組會被讀取,然後被寫入。
學生需要對自己的而機器人進行程式設計,以實現機器人在移動時,可透過按壓觸動感測器來為它加速。控制觸動感測器(等待)的程式塊應放在一個迴圈中。
允許學生選擇最適合自己獲取及分享虛擬碼的工具。鼓勵他們使用文字、影片、影象、草圖筆記或其他創意性媒介。
可以嘗試一下這種解決辦法:
透過變數增加速度
:
1、啟動程式;
2、建立一個名為“速度”的變數並賦予其0值;
3、如果觸動感測器受到按壓;
a、讀取“速度”變數;
b、使變數讀取值增加10;
c、將結果寫入“速度”變數;
d、讀取“速度”變數;
e、以設定的速度值啟動電機B和C,該速度值即為“速度”變數中儲存的數值。
否則
(不操作)
4、一直重複步驟3a至3e。
備註:
讓學生參考軟體上對於“變數”和“常量”的解釋。
告知學生,他們今天將會使用常量模組。
您可能希望向學生講解一個常量和一個變數的區別。
-一個常量可被程式反覆不斷地呼叫。這些固定值只有在程式停止執行時才可以被使用者編輯。
-變數是一個程式儲存數值的方式,而這些數值將會被該程式呼叫。不同之處在於,變數的值可在程式執行過程中被反覆不斷地覆蓋。
您可能需要將常量模組與移動轉向模組和顯示塊放在一起顯示。
向學生展示如何使用變數模組,然後讓他們建立一個其中包含變數的程式。
3
反思
編寫第一段程式,實現觸動感測器被按壓時,機器人加速,然後讓學生思考,如何拓展程式可使機器人減速。
一種解決方案是引入第二個無限迴圈,與首個程式設計練習中使用的迴圈類似。該迴圈應使用不同的觸動感測器埠(增添另一個感測器)。
數學模組應被改為減法運算而不是加法。
就多工方面需要提醒學生,他們在本次課程中需要用到這方面的知識。
提供一種解決方案:
透過變數增加和降低速度:
1、啟動程式;
2、建立一個名為“速度”的變數模組並賦予其0值,然後啟動兩個任務。
任務1
3、如果觸動感測器1受到按壓:
a、讀取“速度”變數;
b、使變數讀取值增加10;
c、將結果寫入“速度”變數;
d、讀取“速度”變數;
e、以設定的速度值啟動電機B和C,該速度值即為“速度”變數中儲存的數值。
否則
(不操作)
4、一直重複步驟3a至3e。
任務2
5、如果觸動感測器2受到按壓:
a、讀取“速度”變數;
b、使變數讀取值減去10;
c、將結果寫入“速度”變數;
d、讀取“速度”變數;
e、以設定的速度值啟動電機B和C,該速度值即為“速度”變數中儲存的數值。
否則
(不操作)
6、一直重複步驟5a至5e。
分層教學部分:
現在學生已實現透過按壓一個(或兩個)按鈕對輪式機器人進行加速和減速,他們可以擴充套件自己的程式,實現顯示自己機器人的移動速度。學生將會使用顯示塊來顯示變數模組的儲存值。
本次課程中將會學到的一個新技巧是建立我的模組。在下面的解決方案中,可以看到兩個這樣的模組。我的模組允許使用者建立他們已經完成的子程式。
在下面的例子中,我們已經提取了加速和減速迴圈,並相應建立了兩個我的模組。進行此操作出於兩個原因:首先,可以節省空間;其次,這些子程式可被應用於其它程式。在EV3軟體的解釋說明中都可以找到關於我的模組的教程。
提供一種解決方案:
透過變數和顯示實現增加和降低速度:
1、啟動程式;
2、建立一個名為“速度”的變數模組並賦予其0值,然後啟動三個任務。
任務1
3、啟動我的模組“加速”。
任務2
4、啟動我的模組“減速”。
任務3
5、讀取“速度”變數。
6、顯示“速度”變數的儲存值。
7、一直重複步驟5至6。
分享:
允許學生選擇最適合自己的工具,分享自己的作品。其中包含自己的創造、獨特的思維及學習過程。
要求一到兩個小組展示他們的程式,以及他們的輪式機器人如何運動。
整個小組內有多少種不同的解決方案?針對給定的問題,對比多種可能的解決方案。
4
延續
使用基於文字的程式語言進行程式設計。
此次難度頗大,一定要是6-8年級的孩子才適合適當補充,否則很容易打擊積極性。
官方提供了ROBOTC程式語言,基本的幾個操作指令還挺簡單,但是控制語言確實需要背一下。
這些比較基礎的部分,關鍵是讓學生能夠入門,接受這些程式設計概念。
這些內容,我選自樂高官方的教材,希望能對大家瞭解樂高到底學什麼的,有所幫助。
謝謝大家!
溫馨提示