撮影傾向を調べるのに EXIF の一覧ができればなと思いはじめて、Python でできるかなってやってみました。EXIF.py (sudo pip install exifread) を使って、
./exiflist.py *.JPG
とすると1ファイルに付き一行に
ファイル名,撮影日時,カメラ,レンズ,焦点距離,シャッター速度,F値
が出てきます。メーカーごとに違う部分(Makernote)を読めていないので、レンズ名はカメラによって出ませんが、とりえあずできました。Makernote を読むにはhttps://github.com/liberation/pyexiv2 がよさそうです。
2017/09/28
ニコンの AF-P レンズ雑感
Nikon の AF-P レンズ、絞りが機械連動のGタイプと、電磁絞りのEタイプの2種類あってややこしいですが、それはおいておいてこれまでの Nikkor と違うところがあります。Nikon の AF レンズは大きく分けると、ボディ側のモータを使うレンズ、レンズ内のモータを使うレンズ(AF-S, AF-P)に分かれます。古くからあるのがボディ側のモータを使うレンズですが、最近はレンズ側にモータを内蔵することが多くなっていて下位機種(D3000シリーズ, D5000シリーズ)ではボディにモータを内蔵していません。一方でボディ側にモータをもつレンズ、AF-Sレンズ共に共通していたのは、距離環(MF時に距離あわせをするためのリング)がMF時にはレンズとダイレクトにつながっていました。AF-Pレンズの距離環は直接つながらず、MF時にもAF時と同様にモータでレンズを動かしています。
Nikon D5600買いました
D5600 ダブルズームキットを最近買いました。キットレンズの AF-P DX NIKKOR 70-300mm f/4.5-6.3G ED VR で撮った写真が解像感が高くて買う前に思っていた以上に気に入りました。ダブルズームキットを買って、レンズだけ売る人もいるようですが、このレンズ使わないともったいないです。AF-P DX NIKKOR 18-55mm f/3.5-5.6G VR も十分優秀です。
2017/08/26
2016/06/11
Nucleo-F103RB を Arduino IDE から使う
ST micro の Nucleo-F103RB (http://akizukidenshi.com/catalog/g/gM-07724/ )は開発環境に mbed が使えます。Arduino IDE (1.6.9)についても、次のような方法で使えました(F103RB以外のボードは今のところ使えないようです)。
まず、開発している Roger さんの書いている文章(https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki の Installation)にしたがって、Arduino Due 用のコンパイラを入れて、hardware フォルダにファイルを展開します。
MacOS Xの場合、dfu-util は入っているからインストールが要らないとありますが、libusb 周りが不足するので、Homebrew から dfu-util をインストールするといいと思います。
それで Nucleo の開発はできるはずなのですが、ちょっと気になるところがありました。一つはシリアルポートです。Serial でなくて Serial1 を使わないとPC(Mac)のUSB側と通信できません。Serial を使いたいときはSTM32F1/variants/nucleo_f103rb/board.cppを次のように書き換えます。
この変更をしても TX/RX(D1/D0)ピンに信号が出ていないようです。Serial(上記の変更したときはSerial1)はPC10/PC11 のピンで TX/RX で使えるようです。
-------------------------------------------------------------------------------------------------
マニュアルを見るとデフォルトでは
になっていて、
だそうです。USART3 (PC10: TX, PC11: RX) を CN10 の 35, 37 につないで、こちらをD0, D1ピンに出した方がよいのかもしれません。
-------------------------------------------------------------------------------------------------
それから I2C についても、Wire が使えません。これは
TwoWire Wire1(PB8, PB9, SOFT_STANDARD);
として Wire1 を宣言してWire1を使うか、STM32F1/libraries/Wire/Wire.cppとSTM32F1/variants/nucleo_f103rb/board/board.hを次のように書き換えます。
まず、開発している Roger さんの書いている文章(https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki の Installation)にしたがって、Arduino Due 用のコンパイラを入れて、hardware フォルダにファイルを展開します。
MacOS Xの場合、dfu-util は入っているからインストールが要らないとありますが、libusb 周りが不足するので、Homebrew から dfu-util をインストールするといいと思います。
- Homebrew のインストール:http://brew.sh/index_ja.html
- dfu-util のインストール:
brew install dfu-util を実行
それで Nucleo の開発はできるはずなのですが、ちょっと気になるところがありました。一つはシリアルポートです。Serial でなくて Serial1 を使わないとPC(Mac)のUSB側と通信できません。Serial を使いたいときはSTM32F1/variants/nucleo_f103rb/board.cppを次のように書き換えます。
--- board.cpp.orig 2016-06-07 21:11:32.000000000 +0900 +++ board.cpp 2016-06-10 17:43:40.000000000 +0900 @@ -253,7 +253,7 @@ DEFINE_HWSERIAL(Serial2, 2); DEFINE_HWSERIAL(Serial3, 3); #else - DEFINE_HWSERIAL(Serial, 3);// Use HW Serial 2 as "Serial" - DEFINE_HWSERIAL(Serial1, 2); + DEFINE_HWSERIAL(Serial, 2);// Use HW Serial 2 as "Serial" + DEFINE_HWSERIAL(Serial1, 3); DEFINE_HWSERIAL(Serial2, 1); -#endif \ No newline at end of file +#endif
この変更をしても TX/RX(D1/D0)ピンに信号が出ていないようです。Serial(上記の変更したときはSerial1)はPC10/PC11 のピンで TX/RX で使えるようです。
-------------------------------------------------------------------------------------------------
マニュアルを見るとデフォルトでは
- USART2(PA2, PA3)はST-LINK MCUに接続(SB13, SB14をショートしてSB62, SB63をオープン)
になっていて、
- USART2(PA2, PA3)をCN9のTX/D1, RX/D0ピンに接続するには SB13, SB14 をカットして、SB62, SB63をショート
だそうです。USART3 (PC10: TX, PC11: RX) を CN10 の 35, 37 につないで、こちらをD0, D1ピンに出した方がよいのかもしれません。
-------------------------------------------------------------------------------------------------
TwoWire Wire1(PB8, PB9, SOFT_STANDARD);
として Wire1 を宣言してWire1を使うか、STM32F1/libraries/Wire/Wire.cppとSTM32F1/variants/nucleo_f103rb/board/board.hを次のように書き換えます。
--- Wire.cpp.orig 2016-06-07 21:11:32.000000000 +0900 +++ Wire.cpp 2016-06-10 17:42:26.000000000 +0900 @@ -191,4 +191,4 @@ // Declare the instance that the users of the library can use //TwoWire Wire(SCL, SDA, SOFT_STANDARD); -TwoWire Wire(PB6, PB7, SOFT_STANDARD); +TwoWire Wire(BOARD_I2CSOFT_SCL_PIN, BOARD_I2CSOFT_SDA_PIN, SOFT_STANDARD);
--- board.h.orig 2016-06-07 21:11:32.000000000 +0900 +++ board.h 2016-06-10 17:39:43.000000000 +0900 @@ -51,8 +51,8 @@ #define A4 20 #define A5 21 // Wire.h Soft I2C standard pins for custom boards: - #define BOARD_I2CSOFT_SCL_PIN PC0 - #define BOARD_I2CSOFT_SDA_PIN PC1 + #define BOARD_I2CSOFT_SCL_PIN PB8 + #define BOARD_I2CSOFT_SDA_PIN PB9 #define BOARD_NR_USARTS 3 //#define SERIAL_ORDER1 3 // HW Serial order for custom boards
登録:
投稿 (Atom)