姚世豪 楊亞男 孫嵐嵐 王瑤 高利杰
摘要:本文介紹了一款基于Arduino開源硬件,面向青少年硬件編程教育、電子創(chuàng)客愛好者、電子信息類大學(xué)生電子制作學(xué)習(xí)的綜合訓(xùn)練平臺。本平臺以Arduino Mega2560為核心板,設(shè)計基礎(chǔ)功能訓(xùn)練部分,傳感器功能訓(xùn)練部分,擴展功能訓(xùn)練部分。本文設(shè)計的Arduino綜合學(xué)習(xí)平臺降低了廣大的青少年編程學(xué)習(xí)者、電子創(chuàng)客、電子信息類大學(xué)生的初期學(xué)習(xí)門檻,且已應(yīng)用到了青少年編程比賽當(dāng)中。
關(guān)鍵詞:Arduino,開發(fā)板,青少年編程,電子創(chuàng)客
Arduino-Based Comprehensive Learning Competition Platform
YAO Shihao1 ?YANG Yanan2 ?SUN Lanlan1 ?WANG Yao1 ?GAO Lijie1
(1. School of Technology, College of Technology and Communication Kaifeng Henan, Kaifeng, Henan Province, 475002 China; 2. School of Electrical Engineering, Yellow River Conservancy Technical Institute, Kaifeng, Henan Province, 475002 China)
Abstract: In this paper, it introduces a comprehensive training platform based on Arduino open-source hardware, which is aimed at young hardware programming education, electronic maker enthusiasts, electronic information college students and electronic production learning. This platform uses Arduino Mega2560 as the core board, designing basic function training part, sensor function training part, and extended function training part. The Arduino comprehensive learning platform designed in this paper has lowered the initial learning threshold for the majority of young programming learners, electronic makers, and electronic information college students, and has been applied to youth programming competitions.
Key Words: Arduino, Development board, Youth program, E-maker
在人工智能技術(shù)、5G、物聯(lián)網(wǎng)迅猛發(fā)展的時代背景下,青少年編程能力的培養(yǎng)成為正在迅猛發(fā)展,也有越來越多的非電子類專業(yè)愛好者進行簡易的電子產(chǎn)品設(shè)計,高校電子信息類大學(xué)生也急需快速入門電子產(chǎn)品的設(shè)計與開發(fā)[1-2]。開源電子原型平臺Arduino為電子創(chuàng)客、青少年編程學(xué)習(xí)者、電子信息類大學(xué)生入門學(xué)習(xí)提供了高性價比易入門的應(yīng)用平臺。但市面上的Arduino硬件平臺多為“核心板+各種模塊”,通過連接線的方式進行學(xué)習(xí)和創(chuàng)作,對于廣大的入門級學(xué)習(xí)者,通過這種學(xué)習(xí)方式很難查找出是自己程序設(shè)計的錯誤還是硬件連接線的問題[3-4]。本文介紹了一款以Arduino Mega2560為核心板設(shè)計的綜合學(xué)習(xí)平臺,可以使入門學(xué)習(xí)者主要關(guān)注程序部分的學(xué)習(xí)、設(shè)計、開發(fā),減少硬件錯誤所帶來的困難,同時也降低了青少年編程學(xué)習(xí)者的學(xué)習(xí)門檻,且已應(yīng)用到了青少年編程比賽當(dāng)中,起到了良好的效果。
1 系統(tǒng)主要組成及開發(fā)平臺
該平臺組成部分的核心是以Arduino Mega2560板為基礎(chǔ),設(shè)計了一款全功能的學(xué)習(xí)訓(xùn)練平臺,平臺基礎(chǔ)學(xué)習(xí)部分設(shè)計有8位LED燈、1位呼吸燈,4位一體的共陰極數(shù)碼管數(shù)字顯示輸出、6位觸動按鍵輸入、1位觸摸按鍵輸入、1位搖桿控制輸入、1位蜂鳴器輸出、1個LCD1602顯示屏字符顯示等模塊,平臺傳感器學(xué)習(xí)部分設(shè)計有聲音傳感器、溫濕度傳感器、光線傳感器、滑動變阻器、陀螺儀傳感器、人體紅外傳感器、RTC時鐘等傳感器相關(guān)學(xué)習(xí)模塊,平臺擴展部分設(shè)計有2.4寸LCD觸摸顯示屏、藍牙通信、WiFi通信、步進電機、直流電機、舵機、超聲波、紅外發(fā)射和接收、繼電器、SD卡、NFC卡、IIC通信、UART通信、3.3V和5V等接口。
該平臺的軟件開發(fā)部分可以使用Arduino IDE作為開發(fā)工具,也可以采用國產(chǎn)圖形化編程開發(fā)軟件Mixly(米思齊)作為開發(fā)工具,即可滿足青少年編程愛好者的學(xué)習(xí)使用,亦可支持電子信息類大學(xué)生的入門和進階開發(fā)學(xué)習(xí)。本平臺使用一根USB轉(zhuǎn)串口的數(shù)據(jù)線通過與電腦連接即可完成程序驗證和功能實現(xiàn)。
2Arduino綜合學(xué)習(xí)平臺人機交互基礎(chǔ)學(xué)習(xí)部分硬件電路設(shè)計
2.1 燈光輸出電路設(shè)計
LED燈是日常生活中最為常見的光源,應(yīng)用在生活的方方面面。學(xué)習(xí)者對于硬件開發(fā)平臺的學(xué)習(xí)均是從LED燈的控制開始[5]。本學(xué)習(xí)平臺設(shè)計了生活中最為常用的LED電路、呼吸燈電路、全彩LED電路,幫助學(xué)習(xí)者全面對各種燈光控制的理解和學(xué)習(xí)。
結(jié)合Arduino Mega2560核心板單片機芯片I/O引腳的內(nèi)部結(jié)構(gòu),學(xué)習(xí)平臺8路LED燈采用共陽極設(shè)計,其中8個LED燈LED1-LED8的正極經(jīng)過限流電阻接系統(tǒng)電源,負極分別與Arduino Mega2560核心板的D31-D38管腳相連接,如圖1(a)所示。學(xué)習(xí)平臺采用1路呼吸燈設(shè)計,因呼吸燈需要使用PWM輸出,故呼吸燈正極通過一個限流電阻連接Arduino Mega2560核心板的PWM10引腳,負極接系統(tǒng)GND,如圖1(b)所示。開發(fā)板設(shè)計1個全彩RGB燈,可以實現(xiàn)1677萬色的調(diào)光,全彩RGB燈采用共陽極設(shè)計,公共正極端接系統(tǒng)電源VCC,3個管腳負極R、G、B分別通過限流電阻連接Arduino Mega2560核心板的PWM5、PWM6、PWM7管腳,如圖1(c)所示。
2.2 數(shù)字顯示輸出電路設(shè)計
LED數(shù)碼管是較為常用的數(shù)字顯示器件,LED數(shù)碼管的內(nèi)部是由多個發(fā)光二極管在一起組成“8”字形的器件,數(shù)碼管是由八個發(fā)光管組成8字形構(gòu)成的,其中多出來的一位為小數(shù)點顯示位[6]。本學(xué)習(xí)平臺設(shè)計一個四位一體的共陰極數(shù)碼管,供學(xué)習(xí)者進行數(shù)字顯示學(xué)習(xí)及使用。
為了配合Arduino IDE開發(fā)環(huán)境和Mixly開發(fā)環(huán)境[7],LED數(shù)碼管電路設(shè)計使用一片帶數(shù)碼管接口的LED驅(qū)動控制專用電路TM1650來驅(qū)動數(shù)碼管顯示。該芯片為IIC通信協(xié)議,把IIC傳輸?shù)臄?shù)據(jù)包解析并驅(qū)動操作數(shù)碼管進行數(shù)字顯示,該IIC通信引腳與Arduino Mega2560核心板的IIC通信引腳SDA、SLC相連接,如圖1(d)所示。
2.3 按鍵、搖桿輸入電路設(shè)計
作為人機交互的關(guān)鍵部分,按鍵是幾乎是各類產(chǎn)品設(shè)計中不可缺少的部件,本學(xué)習(xí)平臺設(shè)計為了吸引學(xué)習(xí)者的學(xué)習(xí)興趣和使用體驗,采用6位微動開關(guān)作為按鍵輸入、1位觸摸按鍵輸入、1個搖桿(游戲手柄)輸入。尤其是青少年學(xué)習(xí)者對學(xué)習(xí)中有玩游戲的興趣。
根據(jù)Arduino Mega2560核心板單片機芯片I/O引腳的內(nèi)部結(jié)構(gòu),本開發(fā)板按鍵輸入采用下拉電阻方式,即所有按鍵的其中一段通過上拉電阻連接系統(tǒng)電源,另外一端分別與Mega2560核心板的D23-D25、RX1引腳,且通過下拉電阻連接系統(tǒng)GND,沒有按鍵被下下的時候I/O引腳識別為低電平,有按鍵按下之后I/O引腳識別為高電平,如圖2(a)所示。觸摸按鍵采用PCB電路板上隔離銅皮連接觸摸感知芯片TTP223設(shè)計,TTP223芯片的輸出端連接Arduino Mega2560核心板的D29引腳,如圖2(b)所示。游戲手柄-搖桿的內(nèi)部結(jié)構(gòu)X/Y軸分別是一個滑動變阻器,Z軸是一個微動按鍵,故本學(xué)習(xí)平臺對其X/Y/Z軸分別連接Arduino Mega2560核心板的A5/A6/D39引腳,可是學(xué)習(xí)者對其進行充分的學(xué)習(xí)和應(yīng)用,設(shè)計電路如圖2(c)所示。
2.4 LCD1602顯示屏電路
本文2.2章節(jié)介紹了數(shù)字顯示器件數(shù)碼管的設(shè)計,但各種智能化的設(shè)備會經(jīng)常用到字符顯示,液晶顯示器LCD1602是廣泛使用的一種字符型液晶顯示器件,能夠顯示英文字母、阿拉伯?dāng)?shù)字、日文片假名和一般性符號等[8]。
為充分利用Arduino Mega2560核心板的I/O資源,配合Arduino IDE開發(fā)環(huán)境和Mixly開發(fā)環(huán)境,本學(xué)習(xí)平臺采用一款并口擴展芯片PCF8574,通過IIC引腳與核心板進行數(shù)據(jù)傳輸,并通過擴展的I/O口與LCD1602控制端口連接,實現(xiàn)Mega2560通過一個IIC總線進行LCD1602顯示屏的顯示通信。為確保LCD1602顯示屏背光亮度的穩(wěn)定性顯示,顯示屏背光引腳對GND端通過PCF8574的P3引腳控制一個NPN三極管的飽和截止來控制顯示屏的背光。另外通過一個10K的滑動變阻器與LCD1602顯示屏的VO引腳連接,通過滑動變阻實現(xiàn)對LCD1602顯示屏字符顯示對比度的調(diào)整。LCD1602液晶顯示屏整體設(shè)計如圖3(a)所示。
2.5 蜂鳴器電路設(shè)計
蜂鳴器是一種電子訊響器件,廣泛應(yīng)用在報警器、計算機、定時器、電子玩具、汽車電子設(shè)備等電子產(chǎn)品中作警示器件。由于蜂鳴器的發(fā)聲原理由振動裝置和諧振裝置組成,又分為無源他激型與有源自激型的內(nèi)部結(jié)構(gòu)[9]。
為了實現(xiàn)蜂鳴器效果的穩(wěn)定與多樣化,本學(xué)習(xí)平臺采用無源蜂鳴器設(shè)計,無源蜂鳴器的負極輸入端連接電路板的系統(tǒng)GND,蜂鳴器的正極端是Mega2560核心板的PWM3引腳控制一個NPN三極管的飽和截止來控制蜂鳴器的聲音、聲調(diào),電路設(shè)計如圖3(b)所示。
3Arduino綜合學(xué)習(xí)平臺傳感器部分硬件電路設(shè)計
3.1聲音傳感器
聲音傳感器的效果相當(dāng)于話筒(麥克風(fēng)),其用來接收聲波信號,輸出聲音的振動情況。在智能硬件快速發(fā)展的現(xiàn)狀下,也來越多的各種電子設(shè)備支持語音交互功能,為人們的日常生活提供了很大的方便。
本綜合學(xué)習(xí)平臺使用LM386運算放大器對話筒采集的聲音信號進行整形濾波處理,通過一個滑動變阻器可以調(diào)節(jié)聲音輸出幅值的大小。聲音信號處理后的輸出值為模擬電壓值,電路設(shè)計通過Arduino Mega2560核心板的模擬引腳A3管腳進行聲音信號的采集,電路設(shè)計如圖4(a)所示。
3.2 溫濕度傳感器
溫濕度傳感器是一種裝有熱敏和濕敏電子元件,能夠?qū)Νh(huán)境的溫度和濕度進行測量的傳感器裝置。溫濕度傳感器體積小、性能穩(wěn)定等特點,被廣泛應(yīng)用在生產(chǎn)生活的各個領(lǐng)域[8]。
本文采用的DHT11是一款有已校準(zhǔn)數(shù)字信號輸出的溫濕度傳感器,通過Onewire總線通信協(xié)議與MCU進行數(shù)據(jù)傳輸。DHT11溫濕度傳感器有4個管腳,根據(jù)DHT11傳感器手冊,其中1號引腳接系統(tǒng)電源VCC,3/4號引腳接系統(tǒng)GND,本文設(shè)計2號引腳與Mega2560核心板的D42號引腳相連接進行數(shù)據(jù)通信,為了保持信號的穩(wěn)定傳輸,D42引腳通過一個1K的上拉電阻與系統(tǒng)電源VCC相連接,電路設(shè)計如圖4(b)所示。
3.3 光線傳感器,滑動變阻器
光線傳感器的功能是用來感應(yīng)光線強弱的,然后反饋到MCU,控制器通過光纖強度的高低來執(zhí)行對其他部分的控制,如自動調(diào)節(jié)屏幕亮度、自動關(guān)閉照明燈等,從而達到省電的目的和環(huán)境的感知。滑動變阻器是生產(chǎn)生活中常用器件之一,工作原理是通過改變接入電路部分改變電阻的阻值。音響音量大小調(diào)節(jié)、臺燈燈光調(diào)節(jié)、汽車量油表、過磅秤等場所都離不開滑動變阻器。
本文設(shè)計的光線傳感器采用GL5516型光敏電阻,電阻的阻值會隨著光照強度的變化而變化,電路設(shè)計光敏電阻通過一個1K的電阻分別與系統(tǒng)電源VCC連接和系統(tǒng)GND連接,通過Mega2560核心板A4管腳測量光敏電阻分壓值來確定光照強度,電路設(shè)計如圖4(c)所示。本文設(shè)計滑動變阻器采用10K阻值方便用戶調(diào)節(jié)操作的帶帽電位器,滑動變阻器的電阻兩段分別系統(tǒng)電源VCC連接和系統(tǒng)GND連接,滑動變阻器手柄管腳與Mega2560核心板A2引腳連接,電路設(shè)計如圖4(d)所示。
3.4 陀螺儀傳感器
陀螺儀傳感器又稱為加速度、傾斜角傳感器,是基于自由空間移動和手勢的定位的控制系統(tǒng),現(xiàn)已被廣泛運用于手機等移動便攜設(shè)備。陀螺儀傳感器是現(xiàn)代航天、航空、航海、國防工業(yè)等應(yīng)用中常用的控制裝置。
本文設(shè)計加速度傳感器選用一款低功耗,三軸MEMS加速度計ADXL345芯片,該芯片支持IIC通信和SPI通信。根據(jù)ADXL345傳感器手冊及兼容Arduino IDE開發(fā)環(huán)境和Mixly開發(fā)環(huán)境的使用,本文電路設(shè)計采用IIC接口通信,ADXL345傳感器的IIC接口與Mega2560核心板的IIC接口相連接,電路設(shè)計如圖5(a)所示
3.5 人體紅外傳感器
人體紅外傳感器也即熱釋電傳感器,廣泛應(yīng)用在人體感應(yīng)開關(guān)開關(guān)、來客告知、防盜報警等非接觸開關(guān)領(lǐng)域[10]。
本文電路設(shè)計采用AM612人體紅外熱釋傳感器,根據(jù)AM612手冊可知該傳感器的1號引腳需連接系統(tǒng)電源VCC,2/3可直接連接系統(tǒng)GND,4號引腳連接Mega2560核心板的PWM11號管腳與主控MCU通信,電路設(shè)計如圖5(b)所示。
3.6 RTC時鐘
實時時鐘芯片是長身生活中不可缺少的消費類電子產(chǎn)品。實時時鐘為人們提供精確的時間,也可以為電子系統(tǒng)提供精確的時間基準(zhǔn)。
本文實時時鐘電路設(shè)計采用是一款低功耗,具有56字節(jié)非失性RAM的全BCD碼時鐘日歷實時時鐘的IIC通信器件DS1307芯片。由于上文的電路設(shè)計Mega2560核心板的IIC引腳已經(jīng)掛在多個設(shè)備,為了使用戶更為方便地學(xué)習(xí)和使用,實時時鐘芯片DS1307的通信引腳設(shè)計為PWM13/PWM12引腳,用戶可在編程時設(shè)置此引腳為虛擬IIC通信模式即可,DS1302的3號引腳連接一個CR1220的紐扣電池,以確保在學(xué)習(xí)板不通電的情況下實時時鐘可以繼續(xù)運轉(zhuǎn),電路設(shè)計如圖5(c)所示。
4 結(jié)束語
限于篇幅,本文關(guān)于平臺擴展部分的設(shè)計理念及系統(tǒng)軟件設(shè)計方面未能做詳細介紹。本文設(shè)計的Arduino綜合學(xué)習(xí)訓(xùn)練平臺,可以使相關(guān)學(xué)習(xí)者系統(tǒng)地學(xué)習(xí)電子產(chǎn)品的系統(tǒng)開發(fā)設(shè)計的一般操作流程和軟硬件設(shè)計方法,同時也大為降低入門者學(xué)習(xí)門檻。以本平臺作為教學(xué)實驗提高了學(xué)習(xí)者編程學(xué)習(xí)的主動性,鍛煉了學(xué)習(xí)者解決問題的能力,使學(xué)習(xí)者的開發(fā)實戰(zhàn)能力得到了較大的提高,同時也在青少年編程競賽中發(fā)揮著重要的作用。
參考文獻
[1]屈華炎.基于Arduino的單片機智能控制創(chuàng)新課程教學(xué)改革與實踐[J].物聯(lián)網(wǎng)技術(shù),2021,11(7):128-130.
[2]夏鄂,劉旭明.開源硬件電類專業(yè)大一新生綜合實驗設(shè)計[J].電子世界,2021(18):37-38.
[3]楊琦,張曉月,李國安,張偉.小學(xué)期Arduino課程教學(xué)內(nèi)容探索與實踐[J].工業(yè)和信息化教育,2021(10):79-82.
[4]馮潔卿,羅啟龍.基于智能小車的STEM科技教育案例的開發(fā)[J].中學(xué)課程輔導(dǎo)(教師教育),2019(12):123-124+126.
[5]王蕓蕓.基于Arduino單片機應(yīng)用的高職課程改革[J].集成電路應(yīng)用,2020,37(3):52-53.
[6]劉承橋,馬俊.基于開發(fā)板的單片機實驗教學(xué)改革與實踐[J].計算機教育,2021(1):172-176.
[7]孫亞坤.基于圖形化編程的創(chuàng)客教具設(shè)計與研究[D].南京:南京信息工程大學(xué),2021.
[8]陳雪松.Arduino多功能擴展板在小學(xué)STEM課程中的運用——一個低成本高效率的STEM課程解決案例[J].教育科學(xué)論壇,2018(32):68-72.
[9]劉萬松,劉雪飛.基于OBE理念的“單片機課程設(shè)計”的教學(xué)設(shè)計與實踐[J].電子世界,2021(17):103-105.
[10]楊偉.從行為習(xí)慣、編程意識到創(chuàng)新思維的進步觀察——圖形化編程在青少年編程能力培養(yǎng)過程中的內(nèi)涵和外延[J].中國信息技術(shù)教育,2021(15):32-34.
1872501186263