999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Arduino的眼睛調節演示器的設計與實現

2021-05-08 04:06:40黃世祥
中國新技術新產品 2021年4期

顧 艷 黃世祥 馬 慧

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

0 引言

目前,在中學物理和醫科院校醫學物理的教學中,眼睛調節功能的教學演示基本是使用手動變焦的方法,該方法仿真度不高,受外界影響大,不易得到清晰的像[1]。該文以Arduino單片機為核心主控板,設計并制造了1款能自動模擬眼睛調節功能的演示器。該演示器用自動變焦透鏡來模擬晶狀體,可以形象、精準地模擬和演示眼睛自動調節的功能,還可以達到自動矯正近視眼和遠視眼的目的。

1 系統總體設計

該眼睛調節演示器通過Arduino系統、可變焦透鏡、HC-SR04超聲波傳感器測距以及步進電機板塊去模擬眼睛的自動化調焦過程。單片機選用Arduino UNO,用Arduino IDE編程控制整個系統,采用軟硬件結合的方式全自動、精準地模擬眼球成像。

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

圖1 系統工作原理圖

1.1 演示器主要模塊的功能

1.1.1 Arduino

以Arduino為核心,控制超聲波傳感器開展測距的工作,并對測量得到的數據進行計算和比較,再將比較的結果反饋給步進電機,使其驅動注射器對透鏡里的液體進行抽注,從而達到自動調焦的目的。

1.1.2 可變焦透鏡

可變焦透鏡在整個過程中模擬眼睛的晶狀體,通過改變透鏡內的液體來實現自動變焦,從而達到所需要的的屈光度。

1.1.3 超聲波傳感器

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

1.1.4 LCD1602A

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

1.1.5 步進電機

通過步進電機驅動器驅動步進電機控制注射器工作,達到透鏡所需要的屈光度,從而實現眼睛自動調節成像的功能。

2 各模塊分析

2.1 Arduino UNO板塊

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

2.2 超聲波測距板塊

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

圖2 超聲波傳感器實物圖

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

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

2.3 可變焦透鏡板塊

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

該方案使用步進電機和伺服電機驅動注射器,從而對可變焦透鏡內的液體進行抽注。伺服電機可以在受水或油滴侵襲的場所中應用,但它不是完全防水、防油的。而可變焦透鏡內的液體需要隨時被抽出或注入,因此伺服電機不合適。因為步進電機步矩值不受各種干擾因素的影響,例如電壓的大小、電流的數值、波形以及溫度的變化等,且與注射器連接簡單,易于驅動注射器工作,所以該演示器選用步進電機實現對透鏡內的液體進行抽注。

2.4 步進電機板塊

步進電機是1種將電脈沖控制信號轉變為角位移或線位移的常用數字控制執行元件,數字信號剛好是計算機擅長處理的數據類型[4]。

在使用超聲波傳感器測量物距后,調用Arduino編寫好的程序計算出透鏡所需要的曲率半徑,并將數據反饋給步進電機;步進電機驅動注射器給可變焦透鏡里抽出或注入液體,從而模擬眼睛調節的功能。

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

3 程序實現部分

該演示器部分程序如下。

3.1 超聲波測距程序設計

3.1.1 實物圖

在實際連接的過程中,將超聲波傳感器的GND接到Arduino擴展板的GND上,VCC接到擴展板的5 V電源,Trig接到擴展板的2號管腳,Echo接到擴展板的3號管腳。

3.1.2 算法描述

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

3.1.3 主要程序

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

將模塊與Arduino連接好,再把程序寫好并下載到Arduino中運行,就可以看到有數據在屏幕上輸出。

3.2 步進電機程序實現

3.2.1 硬件仿真模擬

由于步進電機和Arduino的連接過程中需要驅動,且連接管腳比較多,實物圖相對復雜;因此,用Proteus 8軟件進行模型仿真,Arduino與步進電機的仿真圖如圖3所示。

3.2.2 關鍵程序

Arduino有專門的Stepper庫來驅動步進電機,編寫時直接調用即可,部分程序如下。

Stepper.step函數的作用是控制電機轉多少步,當setps為正數時,步進電機正轉。該文就是通過電機的正轉與反轉去控制注射器的運動,當步進電機得到超聲波傳感器的測距反饋后,就會驅動注射器運行,通過編程計算液體的體積,步進電機給注射器1個動力,該動力驅動注射器工作,改變晶狀體的形狀,從而調節眼睛成像。

圖3 Arduino與步進電機的仿真圖

4 結語

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

主站蜘蛛池模板: 国产专区综合另类日韩一区| 色综合久久无码网| 国产一级在线观看www色| 亚洲日本韩在线观看| 国产精品免费露脸视频| 国产精品久久久久无码网站| 久久精品人人做人人| av午夜福利一片免费看| 免费不卡在线观看av| 71pao成人国产永久免费视频| 欧美日韩国产高清一区二区三区| 成人免费视频一区| 国产精品毛片在线直播完整版 | 波多野结衣爽到高潮漏水大喷| 无码免费的亚洲视频| 欧美精品成人| 亚洲色图狠狠干| 国产真实乱人视频| 综合天天色| 亚洲av中文无码乱人伦在线r| 精品欧美日韩国产日漫一区不卡| 欧美无遮挡国产欧美另类| 国产精品福利在线观看无码卡| 欧美高清国产| 国产主播喷水| 99免费视频观看| 97人人模人人爽人人喊小说| 98精品全国免费观看视频| 中文字幕无码电影| 亚洲男人天堂网址| 国产成年女人特黄特色毛片免| av在线人妻熟妇| 自慰高潮喷白浆在线观看| 六月婷婷激情综合| 国产欧美在线观看精品一区污| 67194亚洲无码| 国产精品自在线天天看片| 国产特一级毛片| 97无码免费人妻超级碰碰碰| 一本二本三本不卡无码| 久久狠狠色噜噜狠狠狠狠97视色| 欧美视频二区| 91久久精品日日躁夜夜躁欧美| 黄色网址手机国内免费在线观看| 无码 在线 在线| jizz亚洲高清在线观看| 精久久久久无码区中文字幕| 久久久受www免费人成| 成人亚洲天堂| 欧美日韩资源| 国产成人综合网| 国产成人啪视频一区二区三区| 国产精品亚洲欧美日韩久久| 91在线视频福利| 国产97公开成人免费视频| 国产精品亚洲αv天堂无码| 青青青视频蜜桃一区二区| 久久久精品国产SM调教网站| 欧美国产成人在线| 国产经典在线观看一区| 999国内精品久久免费视频| 伊人久久久大香线蕉综合直播| 亚洲国模精品一区| 亚洲最大福利视频网| 久久永久免费人妻精品| 青青草一区| 青青操国产视频| 国产一区亚洲一区| 亚洲欧洲日本在线| 国产在线精品99一区不卡| AV不卡在线永久免费观看| 中文字幕第1页在线播| 久久精品中文无码资源站| 国产日本一区二区三区| 午夜国产大片免费观看| 无码日韩视频| 丰满少妇αⅴ无码区| 国产精品美女免费视频大全| 亚洲性影院| 亚洲AⅤ综合在线欧美一区| 精品国产91爱| 国产精品女在线观看|