• 
    

    
    

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

      基于Arduino的眼睛調(diào)節(jié)演示器的設(shè)計(jì)與實(shí)現(xiàn)

      2021-05-08 04:06:40黃世祥
      關(guān)鍵詞:光屏變焦透鏡

      顧 艷 黃世祥 馬 慧

      (1.貴州醫(yī)科大學(xué)生物與工程學(xué)院,貴州 貴陽(yáng) 550004;2.貴州醫(yī)科大學(xué)物理教研室,貴州 貴陽(yáng) 550004)

      0 引言

      目前,在中學(xué)物理和醫(yī)科院校醫(yī)學(xué)物理的教學(xué)中,眼睛調(diào)節(jié)功能的教學(xué)演示基本是使用手動(dòng)變焦的方法,該方法仿真度不高,受外界影響大,不易得到清晰的像[1]。該文以Arduino單片機(jī)為核心主控板,設(shè)計(jì)并制造了1款能自動(dòng)模擬眼睛調(diào)節(jié)功能的演示器。該演示器用自動(dòng)變焦透鏡來(lái)模擬晶狀體,可以形象、精準(zhǔn)地模擬和演示眼睛自動(dòng)調(diào)節(jié)的功能,還可以達(dá)到自動(dòng)矯正近視眼和遠(yuǎn)視眼的目的。

      1 系統(tǒng)總體設(shè)計(jì)

      該眼睛調(diào)節(jié)演示器通過(guò)Arduino系統(tǒng)、可變焦透鏡、HC-SR04超聲波傳感器測(cè)距以及步進(jìn)電機(jī)板塊去模擬眼睛的自動(dòng)化調(diào)焦過(guò)程。單片機(jī)選用Arduino UNO,用Arduino IDE編程控制整個(gè)系統(tǒng),采用軟硬件結(jié)合的方式全自動(dòng)、精準(zhǔn)地模擬眼球成像。

      該系統(tǒng)的工作原理如下:所視物與可變焦透鏡(用自制水透鏡模擬,自制方法成熟且易實(shí)現(xiàn))的距離為物距,視網(wǎng)膜與可變焦透鏡的距離為像距,Arduino調(diào)用超聲波測(cè)出的物距u、像距v以及可變焦透鏡當(dāng)前前后表面的曲率半徑r01、r02,并將結(jié)果顯示在LCD上。首先,根據(jù)物距u和像距v調(diào)用程序計(jì)算“晶狀體”的焦度,從而確定透鏡前后曲面的曲率半徑r1、r2;其次,用超聲波(結(jié)合二倍焦距法)測(cè)出透鏡當(dāng)前r01、r02的值,與所需要的值r1、r2進(jìn)行比較,程序計(jì)算出可變焦透鏡需要抽注液體的量;最后,由Arduino驅(qū)動(dòng)電機(jī)推動(dòng)螺桿,螺桿推動(dòng)注射器通過(guò)管子給透鏡抽注液體以達(dá)到所需要的r1、r2的值,進(jìn)而滿足所需要的屈光度,使“視網(wǎng)膜”上呈現(xiàn)出清晰的像[1]。系統(tǒng)的工作原理如圖1所示。

      圖1 系統(tǒng)工作原理圖

      1.1 演示器主要模塊的功能

      1.1.1 Arduino

      以Arduino為核心,控制超聲波傳感器開展測(cè)距的工作,并對(duì)測(cè)量得到的數(shù)據(jù)進(jìn)行計(jì)算和比較,再將比較的結(jié)果反饋給步進(jìn)電機(jī),使其驅(qū)動(dòng)注射器對(duì)透鏡里的液體進(jìn)行抽注,從而達(dá)到自動(dòng)調(diào)焦的目的。

      1.1.2 可變焦透鏡

      可變焦透鏡在整個(gè)過(guò)程中模擬眼睛的晶狀體,通過(guò)改變透鏡內(nèi)的液體來(lái)實(shí)現(xiàn)自動(dòng)變焦,從而達(dá)到所需要的的屈光度。

      1.1.3 超聲波傳感器

      通過(guò)超聲波傳感器將測(cè)得的物距、像距和透鏡兩球面曲率半徑的距離反饋給Arduino。

      1.1.4 LCD1602A

      LCD1602A將獲得的距離值顯示在LCD顯示屏上。

      1.1.5 步進(jìn)電機(jī)

      通過(guò)步進(jìn)電機(jī)驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī)控制注射器工作,達(dá)到透鏡所需要的屈光度,從而實(shí)現(xiàn)眼睛自動(dòng)調(diào)節(jié)成像的功能。

      2 各模塊分析

      2.1 Arduino UNO板塊

      該演示器可以用Arduino、51單片機(jī)、MSP430、PIC以及AVR等單片機(jī)進(jìn)行控制,從而實(shí)現(xiàn)自動(dòng)化。51系列的單片機(jī)運(yùn)行速度過(guò)慢,保護(hù)能力很差,很容易燒壞芯片;MSP430不適合初學(xué)者入門,占的指令空間較大;PIC的瓶頸比51還嚴(yán)重;AVR沒(méi)有位操作。而Arduino是1種便捷靈活、極易上手的軟硬件一體化平臺(tái),通過(guò)Arduino IDE對(duì)Arduino UNO進(jìn)行編程,Arduino IDE可以在Windows、Macintosh OSX以及Linux 3個(gè)主流操作系統(tǒng)中運(yùn)行,對(duì)初學(xué)者來(lái)說(shuō),它極易掌握,同時(shí)有足夠的靈活性[2]。綜上所述,該演示器選用Arduino UNO作為硬件控制的核心,Arduino軟件作為整個(gè)項(xiàng)目的編程環(huán)境。

      2.2 超聲波測(cè)距板塊

      測(cè)量距離的傳感器有超聲波測(cè)距傳感器、激光測(cè)距傳感器、紅外線測(cè)距傳感器、24 GHz雷達(dá)傳感器等。紅外線測(cè)距傳感器的精度較低,適用于遠(yuǎn)距離測(cè)量;激光測(cè)距傳感器的原理簡(jiǎn)單,但是其成本較高,且激光容易對(duì)眼睛造成傷害;24 GHz雷達(dá)傳感器的方向性差、成本高。超聲波傳感器是將超聲波信號(hào)轉(zhuǎn)換成電信號(hào)的傳感器,由于其方向性好、成本低,因此,采用超聲波傳感器來(lái)實(shí)現(xiàn)演示器測(cè)量物距、像距及透鏡前后曲面曲率半徑的功能,超聲波傳感器的實(shí)物圖如圖2所示。

      圖2 超聲波傳感器實(shí)物圖

      在測(cè)距時(shí),需要F光源、可變焦透鏡和光屏的光軸在同一條直線上且三者互相平行,這樣才有利于成像,還需要注意F光源、可變焦透鏡和光屏的間隔距離要恰當(dāng),固定可變焦透鏡和光屏,保證F光源處于活動(dòng)狀態(tài)[3]。將與Arduino UNO連接的其中一個(gè)HC-SR04超聲波傳感器與F光源固定在一起 ,就可以保證在移動(dòng)F光源時(shí)不用移動(dòng)傳感器,測(cè)得的數(shù)據(jù)也更加準(zhǔn)確。通過(guò)代碼對(duì)超聲波傳感器發(fā)出超聲波,當(dāng)發(fā)出的超聲波遇到可變焦透鏡時(shí),就會(huì)收到反射回來(lái)的超聲波,那么就可以得到F光源與可變焦透鏡之間的距離,即物距u。將與Arduino UNO連接的另一個(gè)超聲波傳感器和光屏置于同一水平位置,通過(guò)程序?qū)Τ暡▊鞲衅靼l(fā)出超聲波,當(dāng)超聲波遇到可變焦透鏡后也會(huì)反射超聲波,這時(shí)程序里便會(huì)獲得可變焦透鏡與光屏的距離,即像距v。同時(shí),測(cè)得的距離也會(huì)顯示LCD上,在經(jīng)過(guò)超聲波傳感器的測(cè)距后,電腦上運(yùn)行的代碼便會(huì)收到反射回來(lái)的距離,然后通過(guò)空氣中的成像公式就可以確定透鏡前后曲面的曲率半徑r1、r2(為了簡(jiǎn)便理解,可以將可變焦透鏡前后曲率半徑的數(shù)值視為相等,從而可以算出曲率半徑r1、r2)[1],如公式(1)所示。

      再結(jié)合二倍焦距法,通過(guò)超聲波測(cè)出現(xiàn)有透鏡的焦距,從而確定可變焦透鏡當(dāng)前前后表面的曲率半徑r01、r02。每獲得一次數(shù)據(jù)后就改變F光源的位置,依次循環(huán)獲取所需要的數(shù)據(jù)。整個(gè)過(guò)程除改變F光源的位置是通過(guò)手動(dòng)完成的(測(cè)透鏡現(xiàn)有焦距時(shí),需要手動(dòng)移動(dòng)光屏外),其余的都是Arduino通過(guò)程序自動(dòng)完成的。

      2.3 可變焦透鏡板塊

      目前,可以通過(guò)驅(qū)動(dòng)水泵或者注射器來(lái)給可變焦透鏡抽注液體,從而實(shí)現(xiàn)可變焦透鏡變焦的功能。由于注射器操作便捷且價(jià)格便宜,也更適合新手;因此該演示器采用注射器來(lái)實(shí)現(xiàn)變焦的功能。通過(guò)向內(nèi)推動(dòng)注射器的活塞來(lái)增加透鏡內(nèi)的液體量,透鏡的曲度變大、焦距變?。煌?,通過(guò)向外拉動(dòng)注射器的活塞來(lái)減少透鏡內(nèi)的液體量,透鏡的曲度變小、焦距變大[3]。用止水夾夾住注射器與水透鏡之間的軟管可以臨時(shí)固定透鏡的曲度和焦距,這就是可變焦透鏡[3]。目前,可變焦透鏡的具體制作方法已經(jīng)相當(dāng)成熟。

      該方案使用步進(jìn)電機(jī)和伺服電機(jī)驅(qū)動(dòng)注射器,從而對(duì)可變焦透鏡內(nèi)的液體進(jìn)行抽注。伺服電機(jī)可以在受水或油滴侵襲的場(chǎng)所中應(yīng)用,但它不是完全防水、防油的。而可變焦透鏡內(nèi)的液體需要隨時(shí)被抽出或注入,因此伺服電機(jī)不合適。因?yàn)椴竭M(jìn)電機(jī)步矩值不受各種干擾因素的影響,例如電壓的大小、電流的數(shù)值、波形以及溫度的變化等,且與注射器連接簡(jiǎn)單,易于驅(qū)動(dòng)注射器工作,所以該演示器選用步進(jìn)電機(jī)實(shí)現(xiàn)對(duì)透鏡內(nèi)的液體進(jìn)行抽注。

      2.4 步進(jìn)電機(jī)板塊

      步進(jìn)電機(jī)是1種將電脈沖控制信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的常用數(shù)字控制執(zhí)行元件,數(shù)字信號(hào)剛好是計(jì)算機(jī)擅長(zhǎng)處理的數(shù)據(jù)類型[4]。

      在使用超聲波傳感器測(cè)量物距后,調(diào)用Arduino編寫好的程序計(jì)算出透鏡所需要的曲率半徑,并將數(shù)據(jù)反饋給步進(jìn)電機(jī);步進(jìn)電機(jī)驅(qū)動(dòng)注射器給可變焦透鏡里抽出或注入液體,從而模擬眼睛調(diào)節(jié)的功能。

      將步進(jìn)電機(jī)連接到Arduino控制板的相應(yīng)端口,用編寫好的程序測(cè)試步進(jìn)電機(jī)能否正常工作,如果步進(jìn)電機(jī)可以正常工作,就將步進(jìn)電機(jī)連接到注射器的活塞。該文已經(jīng)介紹了透鏡曲率半徑的計(jì)算方法,將計(jì)算得到的值與正常人眼所需要的曲率半徑做比較,并用程序計(jì)算出可變焦透鏡需要抽注液體的量,然后由Arduino驅(qū)動(dòng)電機(jī)推動(dòng)螺桿,螺桿推拉注射器活塞改變可變焦透鏡內(nèi)液體的量,從而改變可變焦透鏡的曲度和焦距,直到在光屏上看到1個(gè)倒立的F像,進(jìn)而使“視網(wǎng)膜”上呈現(xiàn)出清晰的像。

      3 程序?qū)崿F(xiàn)部分

      該演示器部分程序如下。

      3.1 超聲波測(cè)距程序設(shè)計(jì)

      3.1.1 實(shí)物圖

      在實(shí)際連接的過(guò)程中,將超聲波傳感器的GND接到Arduino擴(kuò)展板的GND上,VCC接到擴(kuò)展板的5 V電源,Trig接到擴(kuò)展板的2號(hào)管腳,Echo接到擴(kuò)展板的3號(hào)管腳。

      3.1.2 算法描述

      相關(guān)算法的描述如下:1) 控制口發(fā)出1個(gè)10 μs以上的高電平,就可以在接收口等待輸出高電平[5]。當(dāng)有高電平輸出時(shí),就可以打開定時(shí)器計(jì)時(shí);當(dāng)該接收口的電平為低電平時(shí),就可以讀取定時(shí)器的值,根據(jù)得到的時(shí)間,就可以算出距離。2) 測(cè)試距離=(高電平時(shí)間×聲速(340 m/s))/2 ,計(jì)算得出的距離在LCD1602上顯示;需要注意的是,LCD1602在顯示之前需要清屏,否則液晶會(huì)有殘影,顯示的數(shù)字就不正確[6]。3) 在setup()函數(shù)中定義波特率,并在引腳的輸入/輸出功能之間進(jìn)行選擇。這里定義LCD的型號(hào)為1602A,還定義了最初幾個(gè)用于清除 LCD的命令。loop()函數(shù)包括指令的主體,只要MCU在運(yùn)行,它就會(huì)不斷迭代。該文使用多個(gè)命令處理超聲波測(cè)距的整個(gè)機(jī)制,并使用命令在LCD上顯示計(jì)算后的計(jì)算距離[7]。

      3.1.3 主要程序

      基于Arduino的超聲波傳感器測(cè)距的主要代碼如下。

      將模塊與Arduino連接好,再把程序?qū)懞貌⑾螺d到Arduino中運(yùn)行,就可以看到有數(shù)據(jù)在屏幕上輸出。

      3.2 步進(jìn)電機(jī)程序?qū)崿F(xiàn)

      3.2.1 硬件仿真模擬

      由于步進(jìn)電機(jī)和Arduino的連接過(guò)程中需要驅(qū)動(dòng),且連接管腳比較多,實(shí)物圖相對(duì)復(fù)雜;因此,用Proteus 8軟件進(jìn)行模型仿真,Arduino與步進(jìn)電機(jī)的仿真圖如圖3所示。

      3.2.2 關(guān)鍵程序

      Arduino有專門的Stepper庫(kù)來(lái)驅(qū)動(dòng)步進(jìn)電機(jī),編寫時(shí)直接調(diào)用即可,部分程序如下。

      Stepper.step函數(shù)的作用是控制電機(jī)轉(zhuǎn)多少步,當(dāng)setps為正數(shù)時(shí),步進(jìn)電機(jī)正轉(zhuǎn)。該文就是通過(guò)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn)去控制注射器的運(yùn)動(dòng),當(dāng)步進(jìn)電機(jī)得到超聲波傳感器的測(cè)距反饋后,就會(huì)驅(qū)動(dòng)注射器運(yùn)行,通過(guò)編程計(jì)算液體的體積,步進(jìn)電機(jī)給注射器1個(gè)動(dòng)力,該動(dòng)力驅(qū)動(dòng)注射器工作,改變晶狀體的形狀,從而調(diào)節(jié)眼睛成像。

      圖3 Arduino與步進(jìn)電機(jī)的仿真圖

      4 結(jié)語(yǔ)

      該文以Arduino單片機(jī)為核心主控板,設(shè)計(jì)并制造了1款能模擬眼睛調(diào)節(jié)功能的演示器。該演示器不僅能演示正常眼睛成像的過(guò)程,還能演示遠(yuǎn)視眼和近視眼的看物情況,并且還能自動(dòng)調(diào)節(jié)近視眼和遠(yuǎn)視眼使其正常成像;這樣不僅可以達(dá)到眼睛調(diào)節(jié)的作用,而且還簡(jiǎn)化了眼睛矯正的過(guò)程,便于學(xué)生在演示過(guò)程中觀察,且具有使用簡(jiǎn)單、功能多樣以及價(jià)格較便宜等優(yōu)點(diǎn)。該演示器在設(shè)計(jì)過(guò)程中存在忽略瞳孔調(diào)節(jié)光量的作用和忽略角膜的折光能力等缺陷;在未來(lái)的研究中,需要多從瞳孔和角膜的角度出發(fā),使演示器更加完善、更加接近真實(shí)。

      猜你喜歡
      光屏變焦透鏡
      “透鏡及其應(yīng)用”知識(shí)延伸
      光屏和蠟燭的移動(dòng)問(wèn)題解題策略
      光屏的作用
      “透鏡”知識(shí)鞏固
      “透鏡及其應(yīng)用”知識(shí)拓展
      “透鏡”知識(shí)鞏固
      大變焦比鏡頭
      合理變焦拍遠(yuǎn)景
      大眾攝影(2016年12期)2016-12-07 18:32:41
      寬譜段、動(dòng)態(tài)局部高分辨離軸主動(dòng)反射變焦系統(tǒng)
      掃描型長(zhǎng)波紅外連續(xù)變焦光學(xué)系統(tǒng)
      石景山区| 永定县| 连南| 伊吾县| 香河县| 金乡县| 白水县| 阜康市| 海口市| 呼伦贝尔市| 双城市| 会理县| 临武县| 勐海县| 怀集县| 商水县| 浦县| 新沂市| 固镇县| 泸溪县| 龙胜| 大化| 思南县| 安国市| 时尚| 中山市| 土默特左旗| 封丘县| 和平县| 确山县| 肥乡县| 广平县| 东安县| 肃南| 武汉市| 江华| 呼和浩特市| 额济纳旗| 竹山县| 河东区| 淳安县|