<button id="ioseo"><source id="ioseo"></source></button>
  • <rt id="ioseo"><delect id="ioseo"></delect></rt>
    <rt id="ioseo"></rt>
  • <li id="ioseo"></li>
  • 當前位置首頁 > 新聞資訊  > 支持中心 返回

    通過RasPi 實現 PWM 控制

    來源:馬普科技(福州)有限公司  |  發布時間:2023年08月30日

    來自 RasPi 的 PWM 控制

    使用 Raspberry Pi 計算機控制 Survey3 的 Python 腳本

    使用我們的HDMI PWM 觸發電纜,您可以將 PWM 命令發送到 Survey3 相機以執行一些操作。

    樹莓派設置

    將 HDMI 電纜連接到相機,將單伺服連接器連接到 RasPi GPIO 接頭上相應的 GPIO 引腳,如下所示:

    RASPI 上 GPIO 接頭的引腳圖

    對于下面的代碼示例,我們將白色信號連接器連接到引腳 12 (GPIO18),將黑色接地連接器連接到引腳 14。

    我們還將隨附的 Survey3 USB 電纜連接到 RasPi USB 端口之一。如果您不需要安裝/卸載 SD 卡或使用 USB 為相機供電,則可以將其保持斷開狀態。


    如果 RasPi 無法啟動且 USB 電纜已連接,則可能需要太多電流來為內部相機電池充電。我們建議將相機電池取出,然后當 USB 線通電啟動時,它會自動打開相機。

    所需的 PWM 信號需要始終發送“什么都不做”脈沖寬度。然后,僅當我們想要執行特定命令時才更改脈沖寬度。它只需要一個寬度較長的脈沖來執行每個命令。

    脈寬調制指令:

    • 1000us:什么都不做

    • 1500us:安裝/卸載 uSD 存儲卡(在 Survey3 相機內)

    • 2000us:觸發拍照

    發送一次 1500us 命令以卸載(在軟件中)相機內的 uSD 存儲卡,然后安裝到連接的 USB 計算機 (RasPi),然后再次發送 1500us 以將 uSD 安裝回相機。這通常用于將捕獲的照片傳輸到 RasPi 或對圖像進行后期處理。


    當 uSD 從相機上卸下時,它無法保存新拍攝的圖像。要在安裝時查看圖像,您需要使用WIFI 連接和相應的 url 命令

    脈寬調制代碼:

    要發送 PWM 信號,您需要始終發送 1000us 的“無操作”脈沖寬度,然后當您想要執行命令時,您需要發送一個瞬時 1500us 或 2000us 寬度的脈沖。

    pin = 18  #set (BCM) GPIO pin to send GPIO.HIGH pulse


    GPIO.setmode(GPIO.BCM)

    GPIO.setup(pin, GPIO.OUT)

    time.sleep(0.001) #1000us pulse width (do nothing)

    GPIO.cleanup()


    time.sleep(0.1)


    GPIO.setmode(GPIO.BCM)

    GPIO.setup(pin, GPIO.OUT)

    GPIO.output(pin, GPIO.HIGH)

    time.sleep(0.002) #2000us pulse width

    GPIO.cleanup()

        

    time.sleep(0.1)

        

    GPIO.setmode(GPIO.BCM)

    GPIO.setup(pin, GPIO.OUT)

    time.sleep(0.001) #1000us pulse width (do nothing)

    GPIO.cleanup()


    上面的代碼將 PWM 設置為無操作 1000us,然后發送 2000us 觸發命令拍攝照片,然后返回發送無操作 1000us。最快的 2000us 命令應該是大約每 1.5 秒發送一次,因為相機無法以超過 1.5 秒的速度捕獲 JPG 圖像。對于 RAW+JPG 模式,我們建議等待時間為 2.5-3.0 秒。

    代碼可以設置為循環直到用戶退出(CTRL+Z),每 1.5 秒觸發一次捕獲命令:


    import RPi.GPIO as GPIO

    import time


    GPIO.setwarnings(False)


    pin = 18  #set (BCM) GPIO pin to send GPIO.HIGH pulse


    try:

        while True:

        

            print("Command Sent\n")        

        

            GPIO.setmode(GPIO.BCM)

            GPIO.setup(pin, GPIO.OUT)

            GPIO.output(pin, GPIO.HIGH)

            time.sleep(0.002) #2000us pulse width

            GPIO.cleanup()

        

            time.sleep(0.1)

        

            GPIO.setmode(GPIO.BCM)

            GPIO.setup(pin, GPIO.OUT)

            time.sleep(0.001) #1000us pulse width (do nothing)

            GPIO.cleanup()

        

            time.sleep(1.5) #time delay between GPIO.HIGH pulses, >1.5s recommended


    #to exit type CTRL+Z

    except KeyboardInterrupt:

        pass




    二進制

    您還可以將其設置為接受用戶鍵盤輸入:

    import RPi.GPIO as GPIO

    import time


    GPIO.setwarnings(False)


    pin = 18  #set (BCM) GPIO pin to send GPIO.HIGH pulse


    GPIO.setmode(GPIO.BCM)

    GPIO.setup(pin, GPIO.OUT)

    time.sleep(0.001)

    GPIO.cleanup()


    print("\nCommands:")

    print("t + Enter: Trigger (2000us)")

    print("s + Enter: SD Card Mount/Unmount (1500us)")

    print("e + Enter: Exit\n")


    while True:

        key = input(">")

        if key == "t":

            GPIO.setmode(GPIO.BCM)

            GPIO.setup(pin, GPIO.OUT)

            GPIO.output(pin, GPIO.HIGH)

            time.sleep(0.002)

            GPIO.cleanup()

            

            time.sleep(0.1)

            print("Trigger")        

            

            GPIO.setmode(GPIO.BCM)

            GPIO.setup(pin, GPIO.OUT)

            time.sleep(0.001)

            GPIO.cleanup()


        if key == "s":

            GPIO.setmode(GPIO.BCM)

            GPIO.setup(pin, GPIO.OUT)

            GPIO.output(pin, GPIO.HIGH)

            time.sleep(0.0015)

            GPIO.cleanup()

            

            time.sleep(0.1)

            print("SD Mount/UnMount")

            

            GPIO.setmode(GPIO.BCM)

            GPIO.setup(pin, GPIO.OUT)

            time.sleep(0.001)

            GPIO.cleanup()


        if key == "e":

            print("Exiting\n")

            break

                    

        else:        

            GPIO.setmode(GPIO.BCM)

            GPIO.setup(pin, GPIO.OUT)

            time.sleep(0.001)

            GPIO.cleanup()


    二進制

    上面的代碼允許您輸入字母“t”,然后按“Enter”鍵,它會拍照。您可以鍵入“s + Enter”,它將從相機上卸載 uSD 卡,然后 RasPi 會將其顯示為可移動驅動器。再次鍵入“s + Enter”將從 RasPi 卸載并將 uSD 安裝回相機。

    主站蜘蛛池模板: 久久久久久AV无码免费网站下载| 国产成人女人在线视频观看| 精品国产三级a| 99蜜桃在线观看免费视频网站| 久久午夜无码鲁丝片| 偷天宝鉴在线观看国语| 国产内射爽爽大片视频社区在线 | 男女性高爱潮免费网站| 亚洲人成网男女大片在线播放| 中文字幕第30页| 亚洲成色www久久网站| 国产亚洲婷婷香蕉久久精品| 天天摸天天做天天爽天天弄| 校花被扒开尿口折磨憋尿| 精品欧美日韩一区二区| 麻豆亚洲av熟女国产一区二| eeuss影影院www在线播放| 中文天堂在线www| 亚洲五月激情网| 免费高清a级毛片在线播放| 国产成人无码免费视频97 | 亚洲国产精品综合久久久 | 国产在线一区二区杨幂| 天堂а√在线最新版在线8| 晓青老师的丝袜| 男人j桶女人j免费视频| 香蕉狠狠再啪线视频| 67194在线午夜亚洲| 一级特黄a视频| 久久精品无码一区二区三区不卡| 免费人妻无码不卡中文字幕系| 国产天堂在线一区二区三区| 国产精品2018| 在线免费视频一区二区| 岛国片免费在线观看| 日韩成全视频观看免费观看高清| 最近免费中文字幕mv在线电影| 永久久久免费浮力影院| 毛片视频在线免费观看| 毛片高清视频在线看免费观看| 亚洲人成777|