• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Arduino和Ardu Block的單片機(jī)教學(xué)研究

      2018-01-16 02:43:50燕哲
      職業(yè)·中旬 2018年9期
      關(guān)鍵詞:圖形化數(shù)碼管子程序

      燕哲

      摘要:隨著電子技術(shù)的不斷發(fā)展,單片機(jī)技術(shù)顯得越來越重要,很多技工學(xué)校都把單片機(jī)技術(shù)作為電子專業(yè)或者自動化控制專業(yè)的一門必修課程。但是在單片機(jī)的教學(xué)中,也存在著很多困難,尤其是對于技工類學(xué)校,學(xué)生多為初中畢業(yè)生,英文基礎(chǔ)較為薄弱,學(xué)習(xí)起來難度較大,老師教起來也頗為費(fèi)勁,教學(xué)效果不是很理想。Arduino作為一款開源軟件,簡單靈活,使用方便,配合ArduBlock的圖形化編程,可以極大地降低單片機(jī)學(xué)習(xí)的難度。本文以七段數(shù)碼管的顯示為例,結(jié)合技工院校學(xué)生的實(shí)際情況,探索單片機(jī)教學(xué)的新思路,僅供大家參考。

      關(guān)鍵詞:單片機(jī)教學(xué) Arduino ArduBlock ArduBlock圖形化編程

      一、技工院校中單片機(jī)教學(xué)的現(xiàn)狀

      筆者是一名技工院校教師,從事單片機(jī)教學(xué)也有幾年時(shí)間。單片機(jī)作為電子或者自動化控制專業(yè)的一門必修課程,在很多學(xué)校都有開設(shè)。在多數(shù)技工院校,生源多為初中畢業(yè)生,且經(jīng)過優(yōu)秀普通高中的篩選后,進(jìn)入到學(xué)校就讀的學(xué)生基礎(chǔ)并不扎實(shí),學(xué)習(xí)主動性也不是很高,而單片機(jī)作為一門需要語言編程,需要英文基礎(chǔ)又需要邏輯思維能力的課程,在實(shí)際教學(xué)中學(xué)生學(xué)習(xí)起來頗有難度。學(xué)生即便剛開始有興趣,但是碰到編程就不會,看到英文就頭疼,久而久之,對學(xué)生的學(xué)習(xí)積極性造成很大影響,教學(xué)效果也不盡如人意。

      以筆者的實(shí)際教學(xué)效果為例,筆者學(xué)校學(xué)生多為初中畢業(yè)生,根據(jù)專業(yè)方向的區(qū)別一般在二年級或者三年級開設(shè)單片機(jī)課程。學(xué)生在剛開始流水燈教學(xué)時(shí)基本上都能熟練掌握;當(dāng)加入定時(shí)器,進(jìn)入數(shù)碼管學(xué)習(xí)后,只有一半學(xué)生能夠掌握;繼續(xù)進(jìn)行到中斷,點(diǎn)陣液晶顯示后只能有四分之一的學(xué)生能夠跟上了;到了后期的各種傳感器控制、雙機(jī)通信等學(xué)生更是一頭霧水,只有極少數(shù)學(xué)生能夠跟上進(jìn)度。因此越往后進(jìn)行就越難教學(xué),多數(shù)學(xué)生只是機(jī)械地把老師給出的程序敲進(jìn)去進(jìn)行驗(yàn)證,并不理解。課程學(xué)完后,學(xué)生只能說是了解了單片機(jī),并不能夠掌握。因此,在多數(shù)技工院校中,單片機(jī)課程變成了極少數(shù)精英學(xué)生才愿意學(xué)、學(xué)得懂的課程,多數(shù)老師也不愿意承擔(dān)該課程的教學(xué)工作。

      二、Arduino和ArduBlock圖形化編程軟件介紹

      1.Arduino介紹

      Arduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬件(各種型號的Arduino板)和軟件(Arduino IDE)。它是由一個歐洲開發(fā)團(tuán)隊(duì)于2005年冬季開發(fā)的,目前可以說還處于起步階段,市場上的應(yīng)用還不是很多。Arduino包含兩個主要的部分:硬件部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,計(jì)算機(jī)中的程序開發(fā)環(huán)境。

      2.ArduBlook圖形化編程軟件

      ArduBlock是一款專門為Arduino設(shè)計(jì)的圖形化編程軟件,由上海新車間創(chuàng)客開發(fā)。ArduBlock軟件是一款A(yù)rduino官方編程環(huán)境的第三方軟件,目前必須依附于Arduino軟件下運(yùn)行,區(qū)別于Arduino傳統(tǒng)的文本式編程環(huán)境。ArduBlock是以圖形化積木搭建的方式編程的。這樣的方式會使編程的可視化和交互性加強(qiáng),編程門檻大大降低,即使沒有編程經(jīng)驗(yàn)的人也可以輕松嘗試給Arduino控制器編寫程序。具體的軟件界面在后面應(yīng)用實(shí)例中大家會看到。

      Arduino結(jié)合ArduBlock可以讓教師非常方便地完成程序編寫,下載調(diào)試,對于沒有語言基礎(chǔ)的技工院校學(xué)生是非常方便的。因?yàn)槊馊チ藗鹘y(tǒng)單片機(jī)的C語言或者匯編語言的學(xué)習(xí),不需要英文基礎(chǔ),同時(shí)加入了圖形化編程,學(xué)生學(xué)習(xí)起來會非常直觀,也可以大大激發(fā)學(xué)生的學(xué)習(xí)興趣。下面本人通過實(shí)際教學(xué)中的案例(七段數(shù)碼管的控制)來為大家介紹下這兩款軟件的使用。

      三、教學(xué)實(shí)例:控制七段數(shù)碼管顯示器

      在此例子中,教師選用的是Arduino Uno。這是一款基于ATmega328P芯片的單片機(jī)開發(fā)板,ATmega328P具有32KB閃存(其中0.5KB被啟動加載器占用),它還具有2KB SRAM和1KB EEPROM(可以利用EEPROM庫讀取和寫入)。該開發(fā)板由14路數(shù)字輸入/輸出引腳(其中6路可以用作PWM輸出)、6路模擬輸入、1個16MHz的石英晶體振蕩器、一個USB接口、1個電源接頭、1個ICSP數(shù)據(jù)頭以及1個復(fù)位按鈕組成。Arduino Uno包含了單片機(jī)運(yùn)行所需的所有要素,只需要用USB連接線將其連接到計(jì)算機(jī),或利用AC-DC適配器或者電池供電后即可啟動。Arduino Uno的特色在于將Atmega16U2編程為一個USB-to-serial轉(zhuǎn)換器,以便能簡單、輕松和自由地安裝驅(qū)動程序。目前,Arduino Uno已成為Arduino主推的產(chǎn)品。

      七段數(shù)碼管顯示器是人們生活中常用的顯示器件,也是單片機(jī)教學(xué)中非常重要的一部分,具體原理我們在此就不再介紹。在此教學(xué)案例中教師選用單個七段共陽型數(shù)碼管(不控制小數(shù)點(diǎn))。分析電路圖可知我們需要用到Arduino的6個數(shù)字引腳,在此我們使用引腳3-8。因?yàn)槠叨螖?shù)碼管顯示器也是LED顯示的一種,因此我們需要加上1kΩ的限流電阻。

      因?yàn)檫x用的數(shù)碼管為共陽型,根據(jù)數(shù)碼管顯示原理,只有當(dāng)Arduino的引腳輸出低電位時(shí),對應(yīng)的LED才會點(diǎn)亮。因此,教師需要在程序的初始化中將每個針腳都輸出高電平,然后再將需要的引腳降低為低電平,以便確保數(shù)碼管能夠穩(wěn)定顯示。在此先嘗試顯示單個數(shù)字6,然后再擴(kuò)展0到9循環(huán)顯示。根據(jù)數(shù)碼管的顯示原理可知,教師要將數(shù)碼管的a、c、d、e、f、g置為低電平,對應(yīng)的需要將Arduino的3-8腳改變?yōu)榈停ǔ跏蓟癁楦撸?。在此因?yàn)橛∷栴},圖不再此文顯示。

      在ArduBlock軟件中,各個函數(shù)命令被做成了一個個的功能方塊,需要什么命令教師只需要從左邊找到對應(yīng)的方塊拖到右邊編輯區(qū)即可。若是想要移除某個功能,直接拖到左半邊即可,使用起來非常方便。數(shù)字6的數(shù)碼管顯示程序編輯完成后點(diǎn)擊界面上方的“上載到Arduino”按鈕,程序便會被上傳到Arduino開發(fā)板中,同時(shí)軟件會自動生成對應(yīng)的程序代碼,不需要手動編寫。上傳后自動生成的程序代碼如下圖所示。

      從圖中可以看出,即便是語言編程,Arduino也并不復(fù)雜,看起來也是簡單明了。以上例子是單獨(dú)顯示一個數(shù)字6的程序,那么如果要顯示0到9,是不是程序會很長效率又很低呢?當(dāng)然不是,C語言中教師經(jīng)常會用到子程序來簡化程序,主程序中我們只需要調(diào)用相應(yīng)的子程序即可。在ArduBlock軟件中,教師同樣可以引入子程序,該功能模塊也在“控制”中,名稱即為“子程序”,點(diǎn)擊該模塊教師可以對它進(jìn)行重命名。在此教師將剛剛設(shè)置好的初始化程序命名為reset子程序,數(shù)字6的函數(shù)命名為set6子程序。以此類推,我們分別寫出數(shù)字0到9的子程序,分別命名為set0到set9。因?yàn)槭?到9循環(huán)顯示,還需要用到延遲函數(shù)。ArduBlock也把延遲函數(shù)做成了功能模塊,只需要拖出來,修改好后面的時(shí)間即可,不像傳統(tǒng)單片機(jī)還需要計(jì)算延時(shí)時(shí)間。引入子程序后整個程序看起來就簡單多了,也很容易理解。這些子程序的模塊只需要擺放到右側(cè)空余地方即可,堆疊起來也沒有關(guān)系。在此因?yàn)橛∷栴},圖不再此文顯示。

      通過這樣一個實(shí)際教學(xué)案例,相信大家對Arduino和ArduBlock都已經(jīng)有了一個初步的認(rèn)識??梢钥闯觯贏rduBlock軟件中,沒有了傳統(tǒng)的c語言出現(xiàn),各種命令都被做成了小模塊,而且可以漢化過來變成全中文界面,看起來非常直觀,搭積木的形式也可以很清楚的理清程序的流程,讓學(xué)生更加容易理解。實(shí)際教學(xué)中利用ArduBlock圖形化編程軟件配合Arduino開發(fā)板使用,可以讓學(xué)生真正做到零基礎(chǔ)學(xué)習(xí)程序控制,降低單片機(jī)學(xué)習(xí)難度,大大激發(fā)學(xué)生的學(xué)習(xí)興趣。

      四、小結(jié)

      筆者在經(jīng)過一個學(xué)期兩個班級的實(shí)際教學(xué)后,將教學(xué)效果總結(jié)如下:對于流水燈相關(guān)的程序,所有學(xué)生都能熟練掌握,而且可以自主變化;對于串口通信、馬達(dá)控制、傳感器驅(qū)動等相關(guān)的程序,絕大多數(shù)學(xué)生也可以熟練掌握。最為重要的是,學(xué)生覺得單片機(jī)不再高深莫測,而是觸手可及的東西,稍微動動腦子就可以完成很多有意思的試驗(yàn),極大地提高了學(xué)生學(xué)習(xí)單片機(jī)的興趣。

      當(dāng)然,Arduino在目前來說也有一定的局限性,筆者認(rèn)為更適合做一些小型的項(xiàng)目,市場應(yīng)用也不是很廣泛,可以作為單片機(jī)學(xué)習(xí)的入門,如果要真正深入學(xué)習(xí)單片機(jī),可能還是要去學(xué)習(xí)AVR、ARM嵌入式等。但是對于零基礎(chǔ)的技校生來說剛剛合適,當(dāng)然在實(shí)際教學(xué)中教師也可以讓學(xué)生先接觸Arduino,當(dāng)學(xué)生有了學(xué)習(xí)興趣和一定的程序基礎(chǔ)后再去學(xué)習(xí)AVR、ARM等,讓學(xué)生也有一個循序漸進(jìn)的過程,以后接受語言編程相對也會更加容易一些。正所謂師傅領(lǐng)進(jìn)門,修行在個人,作為老師,需要做的也就是幫學(xué)生打開單片機(jī)學(xué)習(xí)的大門,剩下的就是靠興趣去引導(dǎo)學(xué)生不斷探索學(xué)習(xí)。

      猜你喜歡
      圖形化數(shù)碼管子程序
      Arduino編程
      電腦報(bào)(2019年2期)2019-09-10 07:22:44
      MC9S08FL16單片機(jī)數(shù)碼管靜態(tài)顯示分析
      單片機(jī)控制的四位數(shù)碼管動態(tài)顯示編程
      基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      LKJ自動化測試系統(tǒng)圖形化技術(shù)研究
      運(yùn)用圖形化聽寫式復(fù)習(xí),構(gòu)建高效地理課堂
      淺談子程序在數(shù)控車編程中的應(yīng)用
      圖形化地區(qū)電網(wǎng)無功優(yōu)化軟件開發(fā)與應(yīng)用
      子程序在數(shù)控車加工槽中的應(yīng)用探索
      西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
      达拉特旗| 阳城县| 云南省| 黔东| 延津县| 陆川县| 沐川县| 区。| 新野县| 凤翔县| 东城区| 潢川县| 东兰县| 镇巴县| 吉林省| 马鞍山市| 南澳县| 易门县| 布尔津县| 万安县| 尖扎县| 鹤庆县| 会昌县| 麟游县| 习水县| 新民市| 临沧市| 繁昌县| 华蓥市| 永济市| 溧阳市| 舞阳县| 屏山县| 浦北县| 华坪县| 思南县| 大竹县| 新田县| 滦南县| 黔江区| 江孜县|