2014年3月16日 星期日

用 nRF24L01 自製無線閃光燈

本實驗室花了相當多的時間在搞相機週邊, 而這項計畫終於來到了終點
年初時把所有功能整合上一張板並送廠, 期望二月初能完成測試就結案
結果可惜遇上廠商過年機台維護延遲出貨, 接著又發現設計上的問題, 於是就拖到現在
這次的功能最早可以向前追溯到去年三月的文章  SONY NEX-5N 外接閃光燈
一年前知道閃燈外接的方法以後就想搞無線, 不過當時有其他計畫進行所以就一直延後
料則是前年的遙控音量文章裡有人回覆就決定了 (搬家後回覆消失)
這個想法在我腦袋中存了一年才實現, 不管怎麼說, 至少就是做完了

整套系統功能是這樣的:

控制 EF 鏡頭, 定期檢查當前焦距, 若有改變就查詢最大光圈值, 然後調整當前光圈大小
控制 E-TTL 閃光燈, 這只有按按鈕時才檢查, 因為閃燈觸發無法預測
若定期去探, 遇上剛好觸發就可能會有麻煩
每次設定閃燈或是有觸發時就透過 SPI 發出無線封包, 不論無線模組是否接上
可透過 UART 傳送無線的位址和通道, 供設定閃燈用, 當遇到干擾時可切換通道再試試
位址和通道設定寫入 AVR 內部的 EPROM, 關機後不消失

做的事情蠻多的, 已經用掉我這顆 AVR 的 8K 程式空間的 95%
所以把中文字型刪了節省空間, 想不到會被逼到走這步XD
拜託不要叫我用 assembly 寫最佳化, 我只是業餘搞好玩的, 不要這樣專業XD
或許可以換顆 16K 的 MCU 來測, 我選這顆是有許多接腳相容但硬體配置不同的 MCU
以上技術除了無線部份外統統有前文可參考, 也是一整合所學的板子
可點選 Camera 標籤來列出所有關聯的文章