產品發表 包羅萬象 模型拍賣 綜合討論 直昇機 飛機 同協會 回首頁

台灣遙控模型-RCTW

 找回密碼
 申請
查看: 3029|回復: 9

分享一個CHDK控制Canon相機拍照的小程式

[複製鏈接]
發表於 2017年1月20日 04:57 PM | 顯示全部樓層 |閱讀模式

APM社群常常用Canon相機來照相,因為有達人發展出破解版韌體 Canon Hack Development Kit (CHDK),可以很有彈性的控制相機。配合Arducopter和Mission Planer的自動模式和航點設定,功能可以取代昂貴的商業無人機。

CHDK網站 http://chdk.wikia.com/wiki/CHDK
也有正體中文版  http://chdk.wikia.com/wiki/Language:_TChinese_(%E6%AD%A3%E9%AB%94%E4%B8%AD%E6%96%87)
AMP網站關於CHDK的網頁
http://ardupilot.org/copter/docs ... -link-tutorial.html

這裡有位達人的教學網頁,不同的Canon相機大同小異。http://chiayuko.blogspot.tw/2013/08/canon-sx50hs-chdk.html

在CHDK官網可以下載一個kap_uav.lua的程式,功能完備,幾乎涵蓋所有空拍的需求。但問題也在這裡。因為lua跟BASIC一樣,不是用compiler轉成執行檔,而是每次以interpreter來翻譯,所以速度慢。kap_uav.lua程式太大,速度很慢。我的經驗是,定時照相的時候只能在間隔5秒以上,設為每4秒照一張,還是5秒照一張,因為翻譯時間花太多。

下載kap_uav.lua的連結
http://chdk.wikia.com/wiki/KAP_UAV_Exposure_Control_Script

CHDK官網下載、解壓縮之後,在Scripts檔案夾裡有一個簡短的interval.lua和interval.bas程式,基本上是一樣的,只是分別用lua或uBASIC寫的。如果不要複雜的功能,只要定時拍照,這個比kap_uav.lua簡單好用。但是定時拍照有個問題,就是有風的時候,無人機在順風和逆風的速度不一樣,相片的間距就不一樣。這對航照測量的用途來說,會影響拼圖的效果。所以ArduCopter在忘了第幾版之後,就有依照距離照相的指令DO-CAM-Trigg-Dist,每隔幾公尺(由你設定),就透過pixhawk或APM送出(如果是pixhawk的話由RC 10)信號給相機的microusb,拍一張。(連接pixhawk和相機的方法 http://www.tuffwing.com/support/pixhawk_camera_trigger_cable.html,還有http://ardupilot.org/copter/docs ... -link-tutorial.html

由距離控制照相是比較理想的方式,可是由於某種不明的原因(畢竟不是Canon自己做的,只是默許破解而已),有時候會漏拍一、兩張。有時候拍到半途就罷工(我碰過一次,DIY Drones網站上也有國外飛友報告過類似的情形),不如定時拍攝可靠。(定時拍攝不需要連接飛控和相機)

為了兼顧等距照相和定時照相的優點,我們寫了一個簡短的CHDK程式,以等距照相為主,DO-CAM-Trigg-Dist漏拍的時候,超過幾秒(自定),就不待命令拍一張,再繼續待命。

rem trigger by usb signal
rem if usb-triggering not working then intervalometer

@title Trigger first by distance then by intervalometer
@chdk_version 1.3
@param a = interval (sec)
@default a 10

s = get_tick_count
shoot

do
  p = get_usb_power
  if p > 0 then
    press "shoot_full"
    sleep 50
    release "shoot_full"
    s = get_tick_count      
  else
    t = get_tick_count - s
    if (t/a) >= 1000 then
      shoot
      s = get_tick_count
      print t/a
    else
      print t/a
    endif
  endif
until ( 0 )


只要放在CHDK的SD卡中SCRIPT檔案夾即可。在CHDK選單usb shot control?選pixhawk。然後選usb or distance .bas (或者你自己取個檔名),問你要間隔幾秒的時候,設定秒數(以你設定的相片間距和飛行速度推算的時間再加兩、三秒)就可以了。其中兩個print t/a,只是為了測試、除蟲方便,拿掉也可以。

附圖是測試時候相片的分布,每一點代表一張相片。圖下方是等距拍照,可以看到DO-CAM-Trigg_Dist偶而會延遲,間距就比較大。任務中途停掉等距拍照(用DO-CAM-Trigg_Dist指令),結果相機自動改為定時照相。我們為了區別,故意設為10秒,實際運用,不必設這麼久。右下方那一團是起飛和降落時照的相片。這是附加的好處,因為還沒有到任務區,DO-CAM-Trigg_Dist還沒啟動。先拍一些起降的相片當工作記錄也不錯。

歡迎APM和CHDK的同好分享使用,並提供意見。

2017_01_19_distance or interval_test_北屯.jpg

點評

給星星: 5.0
給星星: 5
謝謝 專業分享  發表於 2018年4月10日 09:36 PM




上一篇:超級新手想玩穿越機
下一篇:自組多軸可以定高+自穩+一鍵返航飛控板 CP 值最高為何?
發表於 2017年1月21日 06:05 AM | 顯示全部樓層
有專業到!
發表於 2017年1月23日 07:30 PM | 顯示全部樓層
發表於 2017年1月26日 08:20 PM | 顯示全部樓層
遙控canon 相機可以用 arduino + usb 套件就可以遙控相機,或許會更快更穩定一點.

點評

給星星: 5.0
可以提供用 arduino + usb 套件遙控canon 相機的進一步訊息嗎?  詳情 回復 發表於 2017年2月10日 05:22 PM
給星星: 5
  發表於 2017年2月10日 05:21 PM
 樓主| 發表於 2017年2月10日 05:22 PM | 顯示全部樓層
macgyver64 發表於 2017年1月26日 08:20 PM
遙控canon 相機可以用 arduino + usb 套件就可以遙控相機,或許會更快更穩定一點. ...

可以提供用 arduino + usb 套件遙控canon 相機的進一步訊息嗎?

點評

Hi 可以參考:https://www.instructables.com/id/Building-the-YaNis-EOS-Controller/ 這個是我參考以上網站另外寫出來的遙控介面:https://www.youtube.com/watch?v=Q02QrQ6uEKk  詳情 回復 發表於 2017年2月13日 10:17 AM
發表於 2017年2月13日 10:17 AM | 顯示全部樓層
sygong 發表於 2017年2月10日 05:22 PM
可以提供用 arduino + usb 套件遙控canon 相機的進一步訊息嗎?

Hi

可以參考:https://www.instructables.com/id ... Nis-EOS-Controller/
這個是我參考以上網站另外寫出來的遙控介面:https://www.youtube.com/watch?v=Q02QrQ6uEKk


點評

給星星: 5.0
給星星: 5
  發表於 2017年7月11日 11:25 AM
您需要登錄後才可以回帖 登錄 | 申請

本版積分規則

世界各國訪RCTW統計

手機版|台灣遙控模型-RCTW

GMT+8, 2024年4月25日 01:19 PM

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表