用Arduino設(shè)計一個智能日晷_第1頁
用Arduino設(shè)計一個智能日晷_第2頁
用Arduino設(shè)計一個智能日晷_第3頁
用Arduino設(shè)計一個智能日晷_第4頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 用arduino設(shè)計一個智能日晷 劉正云 謝作如日晷是白天通過測日影定時間的儀器。利用日晷計時的方法是人類在天文計時領(lǐng)域的重大發(fā)明。但傳統(tǒng)日晷的最大不足在于要靠人工去看時間,這很不方便。如果利用arduino配合傳感器做一個可以自動判斷時間的智能日晷,能否既保留古代科技的偉大,又結(jié)合現(xiàn)代科技的神奇呢? 日晷的工作原理在設(shè)計智能日晷之前,我們首先要知道日晷的工作原理,這要從影子開始說起。當物體被太陽照射時,會有影子產(chǎn)生。在一天的不同時刻,影子的長短以及方向在不斷改變。首先,是影子長短的改變,早晨物體的影子最長,隨著時間的流逝,影子逐漸縮短,直至中午達到最短,一過中午,影子又慢慢變長;其次,是影

2、子方向的改變,在北回歸線以北的地方,早晨影子在西邊,中午影子在北邊,傍晚影子在東邊。日晷通常由晷針和晷面組成,垂直穿過圓盤中心的是晷針,與地軸平行;石制的圓盤叫做晷面,安放在石臺上,呈南高北低,與赤道平行。從原理上來說,根據(jù)影子的長度或方向都可以計時。一天當中,太陽最高位于正南,為地方時12點。根據(jù)每小時走15度的運動規(guī)律,太陽的運動軌跡每變動15度,時差就相差一小時。日影與太陽位置保持相反,太陽的位置變動多少度,影子的位置也會跟著變動多少度。早晨,影子投向盤面西端的卯時附近(如圖1);當太陽達正南最高位置(上中天)時,針影位于正北(下)方,指示著當?shù)氐奈鐣r正時刻(如圖2)。午后,太陽西移,日

3、影東斜,依次指向未、申、酉各個時辰(如圖3)。日晷的晷面有十二個刻度,即子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥,分別代表了十二個時辰,每個刻度與現(xiàn)代時間的對應(yīng)關(guān)系如圖4所示。根據(jù)日晷的運行原理,只要利用傳感器得到影子的方向,就能計算出當前的時間。那么,利用什么辦法能獲知影子的方向呢?有一個很簡單的辦法,在一個晷針或者晷盤的下方布滿光線傳感器,即光線傳感器陣列,哪個方向的傳感器數(shù)值最小,就可以得知影子的方向。但是這樣需要好多個光線傳感器,又浪費又不好看。于是,筆者采用了一個折中的方案,讓舵機帶著一個光線傳感器轉(zhuǎn)動,然后算出數(shù)值最小的角度。至于時間的顯示,可以用led來表示,發(fā)光比晷盤上的

4、數(shù)字更加明顯。 智能日晷的硬件實現(xiàn)首先要設(shè)計的是晷面和晷針。筆者使用ai設(shè)計軟件分別設(shè)計出晷面以及裝器材的盒子,用激光切割機切割出來,并在晷盤上放置七個led發(fā)光模塊,分別代表早晨6點、8點、10點,中午12點,下午2點、4點、6點這七個時間點,兩個led發(fā)光模塊的中間則對應(yīng)上午7點、9點,中午11點,下午1點、3點、5點,如圖5所示。將智能日晷的晷針根部連接舵機模塊,晷針上連接橫向結(jié)構(gòu)件,并放置光線傳感器模塊,整個智能日晷的啟動由按鈕控制。按下按鈕,程序啟動,舵機轉(zhuǎn)動并帶動晷針在晷面上方轉(zhuǎn)動180度,用光線傳感器模塊測量七個時辰十三個時間點的陰影強弱程度,光線最弱位置的時間點即為此時的具體地

5、方時間,若地方時為上午6、8、10、12時及下午2、4、6時整,則對應(yīng)led發(fā)光模塊點亮;若地方時為上午7、9、11時及下午1、3、5時整,則其左右兩邊的led發(fā)光模塊一起點亮。智能日晷用到的硬件器材清單如下:romeo控制器(可以用任何一款arduino主板)、led發(fā)光模塊、模擬環(huán)境光線傳感器、舵機、按鈕。分別將七個led發(fā)光模塊連接在arduino romeo控制器的數(shù)字針腳上,如針腳2、3、4、5、6、7、8;將光線傳感器接在arduino romeo控制器的模擬針腳上,如模擬針腳1;將舵機接在arduino romeo控制器的數(shù)字針腳,如針腳11;同時,將控制程序啟動的按鈕接在控制板

6、的數(shù)字針腳上,如針腳13,硬件連接如圖6所示。 智能日晷的軟件實現(xiàn)智能日晷的程序主要包含三個部分:一是獲取各個角度的光線數(shù)值;二是計算出最小的數(shù)值位置;三是顯示時間。即移動點亮相應(yīng)的led。智能日晷運行流程圖如圖7所示。在應(yīng)用啟動之初,首先,需要將七個led(針腳28)全部熄滅,將舵機轉(zhuǎn)到0度待命,同時將0度(也就是早上6點)位置上的光線值賦給最小光線值變量minlight,程序如下頁圖8所示。主程序第一部分是轉(zhuǎn)動舵機并獲取晷面上午6點到下午6點共13個時間點所在位置光線值的程序。使用數(shù)組light存放不同位置的光線值。舵機在晷面不同時間點的具體位置依次轉(zhuǎn)動,根據(jù)日晷工作原理可知,每兩個時間點

7、間隔15度。因此,舵機轉(zhuǎn)動、舵機下方對應(yīng)led點亮、光線傳感器獲取不同時間點位置的光線值并將其存儲在數(shù)組中的具體程序如下頁圖9所示,變量a為數(shù)組light的下標。根據(jù)數(shù)學運算可得知,舵機轉(zhuǎn)動角度為a15,舵機下方對應(yīng)led針腳值為a2+2。其次,也是智能日晷最重要的地方,是求出不同時間點位置光線值中最小的一個,也就是太陽陰影的所在點,哪個時間點位置光線值最小,該位置所顯示的時間點即為此時具體地方的時間。求13個數(shù)值中的最小值,可將第一個數(shù)值與后面一個數(shù)值相比較,取兩者之間較小的一個,再與下一個數(shù)值進行比較,取小者,依次循環(huán),直至將13個時間點的光線值全部比較完畢,程序中將最小光線值用minli

8、ght表示,將最小光線值時所對應(yīng)的下標a賦值給servolocation,led所在針腳值變量用ledlocation表示,ledlocation由數(shù)組的下標a換算而來,ledlocation=a2+2。minlight初始值已經(jīng)在應(yīng)用啟動準備程序中被賦值為早上6點位置的光線值,第二部分主程序如圖10所示。最后,將晷針移至光線最暗的時間點位置,并點亮此處的led發(fā)光裝置。倘若晷針正好指向led發(fā)光裝置,則點亮該led;倘若晷針指向兩個led發(fā)光裝置之間,則同時點亮其左右兩個led發(fā)光裝置。通過servolocation取余2的值,來判斷光線最暗的時間點位置是在一個led上方,還是兩個led中間

9、,其數(shù)學運算表達式為“servolocation % 2”(如圖11)。當然,整個智能日晷由按鈕按下啟動,千萬不要忘記按鈕功能實現(xiàn)的程序編寫。 拓展提升完成硬件和代碼后,現(xiàn)在可以開始測試了:按下按鈕,晷針運行180度之后,又回到光線最暗的地方,并點亮了相應(yīng)的led發(fā)光裝置。當看到日冕變得智能后,有沒有一種“老樹開花”的感覺呢?當然,要實現(xiàn)影子的智能測量還有很多方法,利用攝像頭識別也是很好的方案之一。這需要學習圖片處理方面的知識,要求較高,并且智能硬件要改為樹莓派或者lattepanda,才能完成圖像數(shù)據(jù)的運算處理。 結(jié)語智能日晷是一個非常適合中小學生的研究項目,其價值是將現(xiàn)代電子技術(shù)與古代天文科學原理相結(jié)合,通過動手造物的形式,讓學生真正理解影子、太陽和時間之間的關(guān)系。小學科學課程中本來就有相關(guān)的學習內(nèi)容,二者完全可以結(jié)合起來學習。通過現(xiàn)代電子技術(shù),重新對傳統(tǒng)工具、玩具等進行設(shè)計,可以改造成很有趣的steam項目,如使用距離傳感器制作手勢控制的二胡;使用馬達和無線遙控器制作可遙控的電動龍舟;使用蜂鳴器、led發(fā)光模塊等制作更具互動效果的舞獅;利用多個舵機、mp3模塊和激光切割

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論