簡體   English   中英

我可以使用光傳感器來測量兩次閃光之間的時間間隔嗎? 我可以使用任何課程嗎?

[英]Can I use light sensor to measure period between flashes of light? Is there any class that I can use or

我可以使用光傳感器來測量兩次閃光之間的時間間隔嗎? 有沒有可以使用的類,還是我應該自己編寫? 誰能為我提供一些起點?

public void onSensorChanged(SensorEvent event) {


    difference = System.nanoTime() - startTime;

    if (event.values[0] >= 50) {
        newdifference = System.nanoTime() - (startTime + difference);

        if (newdifference >= 2450 && newdifference < 2550) {
            dotordash = ".";

        }

        else if (newdifference > 7450 && newdifference < 7550) {
            dotordash = "-";
        }
        code += dotordash;
    }

    show.setText(" " + code);
}

對於獲取點或哈希,對nanoTime()所做的操作基本上是完全隨機的。 您對兩件事感興趣:

  • 如果光線足夠亮,可以算作“閃光燈打開”或“閃光燈關閉”。 這在SensorEvent的值中,並且您已經通過event.values[0] >= 50 將其放在一行代碼中:

    boolean isFlashOn = (event.values[0] >= 50)

  • 其次是計算isFlashOn更改之間的時間。 只能SensorEvent本身獲取事件的實際時間,因為它可能需要一些時間才能傳遞給您。 因此,切勿嘗試與當前系統時間進行比較。

話雖如此,光傳感器仍然有機會發出噪音,這可能是閃光燈閃光時的黑暗程度。 如果是這種情況,則需要某種噪聲過濾,這可能會很棘手,尤其是對於持續時間很短的東西(例如閃光燈)。 有關噪聲和噪聲過濾的討論,請參見信號噪聲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM