楊鎧睿 姜銳函 徐紅梅
摘要:面向中小學(xué)生設(shè)計(jì)一種基于Arduino開源電子平臺的編程教具,由基礎(chǔ)模塊、循跡模塊、傳感器模塊、顯示模塊等部分組成,能夠?qū)崿F(xiàn)自動循跡、數(shù)據(jù)監(jiān)測及顯示的功能。使用者可以在基礎(chǔ)模塊上組裝其他拓展模塊實(shí)現(xiàn)不同的功能,程序簡短易懂,便于初學(xué)者掌握基礎(chǔ)編程能力。
關(guān)鍵詞:編程教學(xué);Arduino;傳感器;顯示器
中圖分類號:TP319 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)08-0079-02
隨著人工智能的興起,我國開始注重少兒編程教育對青少兒綜合能力的培養(yǎng)。在國家政策的引領(lǐng)下,2018年浙江省將信息技術(shù)(含編程)列入了高考選考科目[1],山東省中小學(xué)信息技術(shù)教材中也新增了大量Scratch、Python等編程內(nèi)容,青少年的編程教學(xué)正加快進(jìn)入公共教育領(lǐng)域[2]??善囱b編程機(jī)器人能夠培養(yǎng)學(xué)生的創(chuàng)造力、團(tuán)隊(duì)協(xié)作能力和邏輯思維能力[3],是實(shí)施編程教育的良好載體。為此設(shè)計(jì)一款面向中小學(xué)生或其他零基礎(chǔ)編程愛好者的編程教具小車,利用簡短的程序即可控制小車的行進(jìn)速度和方向,此外還可以自由組裝循跡模塊、傳感器模塊等拓展模塊以實(shí)現(xiàn)更多功能。
1 基礎(chǔ)模塊
小車的核心模塊采用Arduino UNO開發(fā)板,具有14路數(shù)字I/O口,6路模擬I/O口,一個16MHZ的晶體振蕩器、一個USB接口、一個電源插座、一個異步串行口和一個復(fù)位按鈕。ArduinoIDE能夠在Windows、Mac OS X等主流操作系統(tǒng)上運(yùn)行[4],能夠?qū)崿F(xiàn)跨平臺開發(fā);Arduino語言以C語言為基礎(chǔ),程序結(jié)構(gòu)簡單,便于初學(xué)者理解掌握。同時,Arduino語言提供大量庫文件,用戶可以自由擴(kuò)展相關(guān)功能;此外,Arduino開發(fā)方式簡單,可擴(kuò)展性強(qiáng),所以本次設(shè)計(jì)選擇Arduino UNO開發(fā)板。
驅(qū)動部分選擇N20直流電機(jī),轉(zhuǎn)速高力矩小,適用于對精度和力矩要求不高的場合。由于電機(jī)為大電流設(shè)備[5],不能直接用Arduino引腳控制,所以需使用H橋驅(qū)動芯片L293D進(jìn)行驅(qū)動。
2 拓展模塊
2.1 自動循跡模塊
循跡模塊由兩個安裝在小車前端朝向地面的紅外傳感器組成,能夠?qū)崿F(xiàn)在淺色地面上遵循黑色軌道自動行進(jìn)。當(dāng)紅外傳感器位于反光能力強(qiáng)的淺色地面上方時,反射回的紅外線較多,光電傳感器的阻值較小;當(dāng)紅外傳感器位于反光能力弱的黑色軌道上方時,反射回的紅外線較少,此時光電傳感器的阻值較大。將電壓比較器與左右兩側(cè)的紅外傳感器連接,即可通過電壓比較器的輸出電平判斷小車的位置,進(jìn)而做出相應(yīng)的調(diào)整。
2.2 光感模塊
光感模塊的功能主要由光敏電阻實(shí)現(xiàn),光敏電阻是利用半導(dǎo)體的光電效應(yīng)制成的電阻,光照強(qiáng)烈時,阻值減小,光照減弱時,阻值增加。光感模塊的具體電路如圖1所示,根據(jù)OUT端的輸出電壓即可實(shí)現(xiàn)光電轉(zhuǎn)換,完成光照強(qiáng)度的顯示等功能。
2.3 測溫模塊
測溫模塊選擇LM35溫度傳感器,能夠?qū)崿F(xiàn)測量溫度的功能,其輸出電壓與溫度成正比,將溫度用T表示,則電壓與溫度的轉(zhuǎn)換公式如式(1)所示。
測溫模塊的具體電路如圖2所示。
2.4 超聲波模塊
超聲波模塊可以實(shí)現(xiàn)2cm-400cm的距離測量功能,共有四個接口,其中VCC接5v電源,GND接地,TRIG(控制端)和ECHO(接收端)接I/O口[6]。初始化時將TRIG和ECHO端置為低電平,首先給TRIC發(fā)送至少10us的高電平信號,模塊自動發(fā)送8個40khz的方波。若有信號返回,則ECHO輸出高電平,高電平持續(xù)的時間即為超聲波從發(fā)射至返回的時間。測量距離的計(jì)算公式為:
測量距離=(高電平時間*聲速(340M/S))/2 (2)
2.5 顯示模塊
顯示模塊有七段數(shù)碼管顯示器和LCD1602兩種。七段數(shù)碼管顯示器使用動態(tài)顯示方式,連線方式如圖3所示。由四個共陽極七段數(shù)碼管構(gòu)成,所有段碼線由一個8位I/O口控制,4位位碼線分別控制不同的LED。
LCD1602顯示器是點(diǎn)陣字符型液晶顯示屏,可以顯示兩行的16位字符,有5個電源引腳,3個控制引腳和8個數(shù)據(jù)引腳,每個字符位都有對應(yīng)的RAM地址。
3 程序設(shè)計(jì)
由于本次設(shè)計(jì)面向中小學(xué)生,所以程序設(shè)計(jì)基于循序漸進(jìn)的原則,便于使用者掌握Arduino程序基礎(chǔ)知識,了解元器件基本原理,使學(xué)生在編寫程序控制小車和拓展功能的過程中,將抽象問題具體化,分析程序功能,提高邏輯思維能力。
圖4為小車自動循跡功能的程序,程序構(gòu)架的第一部分為變量及接口的聲明;第二部分調(diào)用setup0函數(shù),設(shè)置各引腳的輸入輸出類型和配置串口參數(shù);第三部分在loop0函數(shù)中實(shí)現(xiàn)循跡的功能。程序編寫簡單,結(jié)構(gòu)清晰,適于初學(xué)者理解掌握。此外,在實(shí)現(xiàn)其他功能時還可以調(diào)用其他庫文件,如LCD控制程序庫LiquidCrystal、舵機(jī)控制程序庫Servo等,初學(xué)者即使不了解器件的驅(qū)動原理,也能夠利用庫文件實(shí)現(xiàn)相關(guān)功能。
4 總結(jié)
本文設(shè)計(jì)了一種面向初學(xué)者的編程教具小車,基本構(gòu)造以Arduino UNO開發(fā)板為控制中心,L293D芯片驅(qū)動四個直流電機(jī)。在此基礎(chǔ)上可以安裝紅外傳感器實(shí)現(xiàn)循跡的功能,還可以安裝光敏電阻、LM35溫度傳感器、超聲波傳感器等傳感器模塊測量數(shù)據(jù)并通過七段數(shù)碼管或LCD1602顯示器顯示。讓學(xué)生通過編寫程序?qū)崿F(xiàn)相關(guān)功能的過程,提高對編程學(xué)習(xí)的興趣,掌握基礎(chǔ)編程知識。
參考文獻(xiàn):
[1]張曉東.基于計(jì)算思維培養(yǎng)的小學(xué)編程教學(xué)模式研究——以Scratch編程教學(xué)為例[J].中國信息技術(shù)教育,2019(24):35-37.
[2]謝麗華.C語言程序設(shè)計(jì)教學(xué)中如何培養(yǎng)學(xué)生的邏輯思維能力[J].電腦知識與技術(shù),2020,16(2):171-172.
[3]劉天陽,基于STEAM教育的可拼裝編程機(jī)器人調(diào)查與分析[J].中國農(nóng)村教育,2019(15):75-77.
[4]張本任,熊勇,張加,等.基于Arduino開發(fā)環(huán)境的無人艇控制系統(tǒng)設(shè)計(jì)[J].艦船科學(xué)技術(shù),2019,41(5):83-87.
[5]黃海來.新型智能消防小車的研究與實(shí)現(xiàn)[J].華東交通大學(xué)學(xué)報(bào),2018,35(3):127-133.
[6]呂淑芳.基于STC89C52單片機(jī)的汽車倒車防撞警報(bào)系統(tǒng)[J].電子技術(shù)與軟件工程,2020(1):70-71.
【通聯(lián)編輯:朱寶貴】
收稿日期:2020-01-15
作者簡介:楊鎧睿(1999-),男,吉林安圖人,本科在讀,主要研究方向?yàn)榛煦鐒恿W(xué);姜銳函(2001-),男,吉林德惠人,本科在讀,主要研究方向?yàn)榛煦鐒恿W(xué);通信作者:徐紅梅(1975-),女,博士,副教授,主要研究方向?yàn)榛煦鐒恿W(xué)。