隨著教育部啟動中小學生信息素養(yǎng)測評,并推動在中小學階段設置人工智能相關課程,編程教育課程納入中小學基礎教育體系已是大勢所趨。創(chuàng)客教育和比賽在中小學中也越發(fā)受到重視。上個星期我有幸被邀約參觀了寧波市中小學創(chuàng)新創(chuàng)客博覽會,見到了許多精彩的創(chuàng)客比賽和一些有意思的創(chuàng)新作品。
其中循跡小車這個比賽項目引起了我的興趣。循跡小車是一種能夠自動按照給定的路線移動的小車。它是集圖像傳感器、信號處理、電機驅動及自動控制等技術來實現(xiàn)路面探測、障礙檢測、信息反饋和自動行駛的技術綜合體。通常是用地面不同顏色線條或者其他圖形聲光信號標記來引導小車。目前已有大量循跡機器人在軍事、商用和科學研究等方面獲得了廣泛的應用,例如生產(chǎn)線、物流、碼頭場景下的場地物料配送循跡機器人,醫(yī)院的循跡機器人護士,商場的導游循跡機器人等。
創(chuàng)客比賽中的循跡小車比賽項目是有一定難度的。循跡小車前方配有紅外線或者光感探頭用來識別路線軌跡,并且配有兩組馬達提供動力,學生通過編程來實現(xiàn)小車自動探測與行駛,保證小車繞過障礙并盡快到達終點。
不過循跡小車設備價格比較昂貴,我們只用Scratch來仿真做一個簡單版的循跡小車,讓大家展示一下循跡小車的功能。
首先我們需要繪制一個造型小汽車,小汽車最好四個輪子,并且能夠表示前進的方向,我將車頭前面增加了一條線。舞臺背景為自行繪制的一條崎嶇的道路,道路顏色需要和背景顏色區(qū)分開來。
繪制小車和背景圖后我們完成的首要目標就是如何實現(xiàn)小車轉彎。現(xiàn)實生活中開車轉彎時無非就是左轉和右轉,在循跡小車程序中也是同樣的道理。什么時候小車左轉或右轉,都是需要進行判斷。例如圖中A點,當小車的左前輪一旦碰到邊緣區(qū)域的時候就需要向右慢慢轉彎。圖中B點,當小車右前輪一旦碰到邊緣區(qū)域的時候需要向左慢慢轉彎。分析完成后我們快來看看代碼如何實現(xiàn)吧。
首先我們需要在造型中增加兩個前輪的造型(左前輪和右前輪),目的是用于判斷小車的轉向,當程序開始運行后,小車固定到起點區(qū)域并面向90度方向運動。
小車需要不斷地偵測并判斷左右轉向的情況,增加一個重復執(zhí)行語句,不斷切換左前輪、右前輪和小車的三個造型。不停進行“左右雷達調(diào)整”,當雷達檢測到碰到邊緣時(背景顏色),就慢慢地順著反方向轉動直至回歸正常軌道。
這里還有一個需要注意的技巧,如果你自行編寫程序運行時應該會看到小車的三種造型刷新并不順暢,小車動畫一直閃爍效果很差,這也是我為什么要設置兩個自制積木的原因。在新建新的積木時需要勾選左下角的“運行時不刷新屏幕”這個選項,這樣在運行程序的時候小車就不會出現(xiàn)閃爍的情況,能夠成功讓小車按照設計的軌道運行了。
相對來說循跡小車這個比賽項目還是蠻有意思充滿挑戰(zhàn)的,有興趣的同學可以搜索一下包括樂高在內(nèi)的循跡小車相關系列內(nèi)容與視頻。