




盛玉嬌 DFRobot資深課程設計工程師,設計開發了“掌控板入門教程”“掌控板進階教程”等科創類教程百余篇,收獲超10萬瀏覽量,曾榮獲首屆掌控板教學應用設計大賽三等獎。
教學背景
晾衣服是我們每個人家庭生活的日常。陽光是天然的消毒劑,紫外線可以殺滅螨蟲、細菌和病毒等多種有害生物。晾曬衣物的最佳時間是上午10點到下午4點,尤其是中午12點到下午3點,此時紫外線最強,晾曬效果最好。而且衣物的晾曬時間不宜過長,一般3個小時就能起到作用。但是很多人將衣服洗完后,直接掛到太陽下長時間暴曬,這樣可能會損害其正常壽命。另外,若是衣服晾在室外忘記收回,天氣突變時會被打濕。這時,衣服又需要重新洗滌晾曬,費時費力。因此,我們需要一個智能化的晾衣架,能夠在天氣變化和晾衣結束時自動將衣物收進來。
教學目標
1.根據連線圖進行實物連接,理解不同執行器的使用和接線方法。
2.理解舵機與電機的區別。
3.掌握邏輯運算符or和自定義函數的使用方法。
4.能夠完成智能晾衣架程序的編寫。
教學重難點
教學重點 掌握多條件判斷函數的應用。
教學難點 掌握自定義函數的復用,并能夠獨立完成代碼的調試。
教學準備
micro:bit、擴展板、舵機、水分傳感器、光線傳感器。
教學過程
一、情境導入
師:由于天氣變化多端,我們在晾曬衣服時可能會碰到下雨的情況,衣服很容易被淋濕。白天曬出去的衣服晚上有時忘記收了,也會被第二天早上的露水打濕。除此之外,晾衣時間過長會導致衣服出現變黃或褪色等問題。同學們是否遇到過這種情況?你知道不正確的晾衣方法也會影響衣物壽命嗎?
學生參與討論,上網查閱資料并記錄結果,進行分享:晾曬衣物的最佳時間段是上午10點到下午4點,尤其是中午12點到下午3點,此時紫外線功效最強。衣物的晾曬時間不用過長,一般3個小時就能起到作用。另外還要經常開窗,保持室內通風、透光、干燥。
教師總結:不正確的晾衣方法既浪費時間,又會折損衣物的壽命。所以我們要盡量避免這種情況,科學晾衣。
師:怎樣科學晾衣呢?如果能有一個智能化的晾衣架就好了,能夠在天氣變化和晾衣結束時自動將衣物收進來。
學生回顧算法知識,思考本項目要通過哪種算法來實現。
二、項目實踐
教師將學生分為三人一組,共同完成項目任務。
1.問題分解
師:請大家借助思維導圖工具,對項目進行問題分解。
學生利用思維導圖工具,分析裝置的功能需求和設計需求。
教師總結:首先考慮智能晾衣架的必要功能,即自動晾衣,想一想自動晾衣有哪些條件可以在此條目下繼續拆分;其次,為了實現自動晾衣的功能就需要有檢測功能,需要檢測的條件可以在此條目下繼續拆分;再思考一下是否有補充功能,如手動操作的功能等,然后對拆分出的項目進行分析,并完成思維導圖,如圖1。
2.學習硬件知識
師:我們需要使用什么工具來實現衣架的伸出和收回呢?
教師引導學生討論,引入舵機:舵機是一種可以指定控制位置(角度)的電機,可以通過程序指定控制舵機旋轉的角度。
師:那么我們如何檢測天氣是否適合晾曬衣服?
學生小組討論,教師提示:可使用水分傳感器。水分傳感器是一個利用濕度方式檢測有沒有水分的傳感器,通過檢測可知有沒有下雨。將傳感器放置在室外,當有雨水滴到花瓣狀檢測面上時,濕度增大,隨之電壓升高,我們便可以通過主控板得知室外下雨了。
師:白天和晚上有什么差別?如何檢測白天和晚上呢?
學生小組討論,教師提示:白天光線充足,晚上比較昏暗,所以我們可以通過光線的變化來判斷白天和夜晚。這需要用到光線傳感器。基于PT550環保型光敏二極管的光線傳感器,可以用來對環境光線的強度進行檢測。
學生以小組為單位,按照接線圖將模塊利用連接線組裝好,如圖2。
3.編寫程序
師:調用示例程序“07.servo.py”就能控制舵機。在BXY軟件中,依次點擊“文件—示例—Basic—07.servo.py”即可打開示例程序。注意本項目中舵機接的引腳為P8,要將程序中的“Servo(pin0)”改為“Servo(pin8)”。
學生小組合作完成舵機轉動程序的導入及修改,并測試其功能。
(注:使用舵機時,需要外接電源,從擴展板上電源接口供電,否則可能會出現舵機不轉或者程序無法燒錄的情況。)
師:使用示例程序“02.analogRead.py”即可讀取水分傳感器或光線傳感器的數值。在BXY軟件中,依次點擊“文件—示例—Basic—02.analogRead.py”打開示例程序。
學生小組合作導入獲取水分值和光線值的程序,并測試其功能效果:將濕紙巾放在水分傳感器的金屬花朵檢測頭上,在串口區會看到水分值變大;用手遮擋光線傳感器的透明檢測頭,在串口區會看到光線值變小。
(注:使用水分傳感器時,只有金屬花朵部分可以接觸水,如圖3,其他部位不可接觸水,否則可能會燒毀硬件。)
4.算法設計
師:水分值數據在什么區間時,我們該觸發智能晾衣架的收回功能呢?請大家用紙巾吸水后滴到水分傳感器上,模擬測試下雨時讀取到的數值。使用時需要注意不要將水滴到除了水分傳感器表面的其他地方,否則會導致短路燒壞模塊。
學生將測試得到的結果進行分享,綜合對比得出合適的數值。同理,請學生們測出光線值的區間,然后進行算法設計,并畫出邏輯框圖,如圖4。
學生根據邏輯框圖完成程序修改及調試。
運行測試實現效果:當水分值小于200(沒有下雨),光線值大于100(白天),無需按下A鍵(沒有人為控制按鍵)時,放出衣架;當水分值大于或等于200(可能下雨了)時,收回衣架;當光線值小于100(可能天黑了)時,收回衣架;當按下A鍵(人為控制按鍵按下)時,收回衣架。
師:如果大家在運行測試時,發現了問題或者不好的部分,可以對設計的方案進行迭代,直到完善。
學生完成測試并迭代完善程序。
三、小結與點評
展示交流大家的作品,并分享小組設計的算法內容。
教師小結:本節課,我們將之前所學的算法知識進行了實踐,學習了可復用的代碼并鞏固學習了如何利用編程的方式實現算法并解決問題,熟練掌握了利用計算思維解決問題的方法論。
四、延伸拓展
師:對比其他小組設計的程序,考慮下你們小組設計的作品有哪些沒考慮到的功能?請大家歸納總結并完善算法設計。如果想要精確控制和調整舵機的角度,我們就要不斷地上傳程序,這樣很不方便,那么有沒有什么辦法可以通過某個傳感器來精確控制呢?
學生思考討論。
師:其實大家可以使用角度傳感器,它是一款模擬信號輸入設備,能基于電位器的旋轉角度,非常容易實現通過旋轉的角度來驅動其他設備。大家課后可以拓展延伸一下,如果使用角度傳感器,我們的程序該怎么設計?
教學反思
本項目通過智能晾衣架的制作過程,帶領學生學習計算思維解決問題的方法論,利用這套方法論進行項目的問題發散與功能分解,并借助思維導圖工具,分析出具體的功能需求,最終實現項目。在教學過程中,將生活科學與信息技術聯合起來,通過“以問設答”的教學互動,引發學生自主思考,在提升學生科學素養和創新素養的同時,也培養了學生良好的學習習慣。(本課件由DF創客社區推薦)