Arduinoを始めて3ヶ月になったが、色々なトラブルに遭遇した。特にライブラリーについてのトラブルが目立つ。そこで経験したライブラリーに関してまとめておくこととした。
尚、以下のことはArduinoIDE1.6.5においての内容である。
【ライブラリーのインストール】
以前のバージョンでは手動のようであったが、現バージョンでは、IDEの中でインストールが出来るようになっている。標準の手順は以下の通り。
然しながらこれで旨くいかない場合がある。登録時にエラーが出るときもあれば、インストールされ、リストに出るが、コンパイル時にエラーとなることがある。
又、Windowsのバージョンによっても挙動が違う。
どうもライブラリーの作り方、特にZIPの作り方で問題があるような気がする。
そこで私は、以下の手順としている。
【ライブラリーについて】
ライブラリーには色々なものがある。どれを選択するかが難しい。使用例などを見て選択するといいと思う。同じライブラリーでも、arduino用とそうでないものがある。注意を要する。
スケッチを作る場合、これら使用ライブラリーの入手先を明示することが親切である。私もスケッチ内に記述するよう心がけることとした。
また、該当ライブラリーでコンパイル時にエラーとなることがある。
以下にいままで使用したライブラリーでの注意点をまとめておく。
尚、以下のことはArduinoIDE1.6.5においての内容である。
【ライブラリーのインストール】
以前のバージョンでは手動のようであったが、現バージョンでは、IDEの中でインストールが出来るようになっている。標準の手順は以下の通り。
- 必要なライブラリーZIPをダウンロードし、適当なフォルダーに保存
- メニューバーの「スケッチ」をクリック
- 「Include Library」をクリック
- 「Add ZIP Libraly」をクリック
- 表示されたダイアログで、保存したフォルダーに移動し、該当のライブラリーZIPを選択
- ArduinoIDEを一旦終了し、立ち上げなおす。
然しながらこれで旨くいかない場合がある。登録時にエラーが出るときもあれば、インストールされ、リストに出るが、コンパイル時にエラーとなることがある。
又、Windowsのバージョンによっても挙動が違う。
どうもライブラリーの作り方、特にZIPの作り方で問題があるような気がする。
そこで私は、以下の手順としている。
- 必要なライブラリーZIPをダウンロードし、適当なフォルダーに保存
- ZIPファイルを解凍する。
- 解凍されたライブラリーフォルダーをドキュメント→arduinoフォルダー→Library内に移動
- ArduinoIDEを立上ライブラリーがリストにあることを確認する。
【ライブラリーについて】
ライブラリーには色々なものがある。どれを選択するかが難しい。使用例などを見て選択するといいと思う。同じライブラリーでも、arduino用とそうでないものがある。注意を要する。
スケッチを作る場合、これら使用ライブラリーの入手先を明示することが親切である。私もスケッチ内に記述するよう心がけることとした。
また、該当ライブラリーでコンパイル時にエラーとなることがある。
以下にいままで使用したライブラリーでの注意点をまとめておく。
- ロータリーエンコーダ用ライブラリー
「rotary.h」と「Rotary.h」と2種類ある。内容は同じであるが「r」と「R」の違いである。使用するときに大文字小文字を間違えないようにする。Arduinoは大文字小文字を明確に判定する。 - DDS AD9851用ライブラリー「EF_9851.h」と「AD9851.h」と2種類ある。命令の書き方も違うのでサンプルファイルで確認のこと。 いままでのVFOでは「EF_AD9851.h」を使用してきた。このライブラリーにも注意事項がある。そのままでは、コンパイル時にエラーが出る。以下の対応が必要である。ライブラリー内のEF_AD9850.hをテキストエディター等で開き以下のように修正する。
27行目 #include "WProgra.h" →#include "Arduino.h" - TFT LCD用ライブラリー(ILI9163C)
「TFT_ILIILI9163C.h」という1.44inchTFT LCD用ライブラリーであるが、1.44inch (128x128)LCDにおいて、そのまま使用すると画面が32dotずれて表示される。これは、(128x160)のTFT LCDと(128x128)との違いと思われる詳しくは分からない。対応としては以下のように変更を行う。
TFT-ILI9163CLibrary内の「-settings」フォルダー内の「TFT_ILI9163C_settings.h」ファイルをワードパット等TEXTエディタで開き下記赤字32を0にする。
#define _TFTWIDTH 128//the REAL W resolution of the TFT
#define _TFTHEIGHT 128//the REAL H resolution of the TFT
#define _GRAMWIDTH 128
#define _GRAMHEIGH 160//160
#define _GRAMSIZE _GRAMWIDTH * _GRAMHEIGH//*see note 1
#define __COLORSPC 1// 1:GBR - 0:RGB
#define __GAMMASET3 //uncomment for another gamma
#define __OFFSET 032//*see note 2 //32を0 にする - TFT LCD用ライブラリー(Ucglib.h)
2.2inchTFT VFOで採用したucglib.hというライブラリーであるが、ILI9163Cと同様1.44inchTFTで使用すると、32dotのずれが発生する為、やはりライブラリーの中のファイルを一部修正する必要がある。修正箇所は以下の通り
Ucglib_Arduino-master → src → clib → 「ucg_dev_ic_ili9163.c」ファイルをワードパット等TEXTエディターで開き 32を0に変更する。
134行目
ucg->arg.pixel.pos.y +=032;
ucg_com_SendCmdSeq(ucg, ucg_ili9163_set_pos_dir0_seq);
ucg->arg.pixel.pos.y -=032;
以下同様の32とある部分を総て0に変更する(14箇所ある)
もし分からなければ、変更したものをメールで送ることも可
0 件のコメント:
コメントを投稿