PCA9685用のライブラリ

# はじめに
ここでは，Arduino IDEを使って「PCA9685 PWM & Servoシールド」のライブラリのインストールをします．

目次へ戻るには [ここ](https://qiita.com/hsgucci/items/5e3772c6e93bbfee74f7) をクリック

※本ページは実験のテキストです．

# ライブラリとは

「ライブラリ」というと，普通は図書館の事かと思ってしまいます．プログラミングの世界では，ライブラリとは「便利な関数の詰め合わせ一式」のようなものです．

今回のPCA9685に限らず，またI2Cデバイスに限った話でもありませんが，昔は何かの機能をもったICを使う場合は，自分でデータシート(ほとんどが英語)を読んで，自分でゼロからプログラムを書いて使いこなす必要がありました．
そのICに使う関数を一纏めにしてライブラリという形にしてけば，次回同じICを使う必要が生じた際にはライブラリから関数を呼び出せば，かなり楽ができます．

# Arduinoのライブラリ

Arduinoが有名になっている理由は，「ライブラリの豊富」さです．
世界中のプログラマが自分の作ったライブラリを無償で公開してくれているので，初めて使うICでもすぐに動かすことができます．
ライブラリのインストールも簡単です．

ただし，同じICを使うためでも，違う人が作れば違う名前のライブラリで公開されます．
どのライブラリが使いやすいのかは，それぞれ試しに使ってみないことにはわかりません．
便利になったけれども，選択肢が沢山ありすぎて困ってしまうこともあるのが現状です．

# ライブラリマネージャの起動

Arduino IDEのメニューバー[スケッチ]-[ライブラリをインクルード]-[ライブラリを管理]をクリックします．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/720bbcf6-46cc-55bf-0d4d-653d97c5d169.png)

ライブラリの管理をする「ライブラリマネージャ」が表示されます．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/bb971527-f9ae-0da9-2c30-4d0c40af5867.png)

このマネージャが表示されている間は，プログラムを書くことが出来なくなるので注意してください．

# ライブラリのインストール

右上の検索バーの部分にキーワードを打ち込んで，自分の使いたいライブラリを探すことができます．

今回はPCA9685のライブラリを探すので，「PCA9685」と打ち込みたくなってしまいますが，
ここでは「 **adafruit pwm** 」と入力してみてください．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256470/3d8808a9-57b0-abdf-1eaf-96078aa6555c.png)

すると，「 **Adafruit PWM Servo Driver Library** 」 がヒットするはずです．
それ以外にも沢山の候補が結果表示されているのがわかると思います．

今回は「Adafruit PWM Servo Driver Library」ライブラリを使用します．
Adafruit社が作って公開してくれているライブラリです．

　参考：[Adafruit社の解説ページ](https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield/using-the-adafruit-library) 


本来はここで[インストール]ボタンをクリックしてライブラリをインストールするのですが，
この実験では，以前の受講生が既にインストールしてしまっています．
なので 「**<font color=#00BBaa>INSTALLED</font>** 」になっていることを確認だけしてください．


Adafruit PWM Servo Driver Libraryを使ってPCA9685でラジコンサーボを動かす記事は，日本語でも沢山あります．
是非一度，検索して，読んでみてください．

　参考：　[【Arduino入門編㉓】PCA9685 16チャンネルPWMサーボモータードライバを使って複数のサーボモーターを同時に制御してみる！(最大16台)](https://burariweb.info/electronic-work/arduino-learning/arduino-pca9685-servo-motor-driver.html)


# まとめ

今回は，ライブラリマネージャを使って，ライブラリをインストールする方法を紹介しました．

今後，卒業研究などで使いたいICがあったら，ここで検索して便利なライブラリを探すと良いでしょう．
どのライブラリが良いかは，様々なネットの記事を読んで選ぶことになります．

# (余談)オープンソースマインド

ほとんどのプログラマは会社に勤めているものです．
わざわざ給料を払って作ったプログラムやライブラリは会社の資産であり，赤の他人に無償で公開するなんてことは有り得ない話です．
もしも公開して同じ製品を作られてしまったら会社の損害です．
そうやってそれぞれの会社がプログラムやライブラリを秘匿していたので，電子工作やマイコンの入門者は，誰からも使い方を教わることはできず，ゼロからプログラムを書く必要がありました．

これでは開発の効率が悪い，と一部のプログラマ達は考えました．
社内の人間だけでコソコソと開発するのではなく，ソースプログラムを公開(オープンに)し，世界中の皆でバグ取りやダメ出しをして改善しよう，という考え方が「オープンソースマインド」です．

公開されたものがプログラムのようなソフトウェアなら「オープンソースソフトウェア」と呼び，回路図やCAD図なら「オープンソースハードウェア」と呼びます．

今では，世界中の人達が [Github](https://github.com/) などの管理サイトに自分のプログラムや設計図をアップロードし，誰でも読めるように公開しています．
また，そのデータに不備や改善すべき点があれば，製作者にチャットのような形で提案することもできるようになっています．

このQiitaというサイトに投稿されている記事も同様のオープンソースマインドです．
本来は書籍にして金儲けしても良いようなハイレベルな記事も沢山あります．
そんな内容でも誰でも見られるように公開してくれています．

オープンにすることで，全体で，皆で一緒にスキルのレベルを上げていこう，お互いに助け合って開発をしていこうというマインド(精神)なのです．



# おわりに

これで「 **Adafruit PWM Servo Driver Library** 」がインストールされていることを確認できました．

次はこのライブラリを使ってロボットアームを動かしてみます．

[目次](https://qiita.com/hsgucci/items/5e3772c6e93bbfee74f7#%E5%AE%9F%E9%A8%93%E6%89%8B%E9%A0%86) へ戻って次の作業を行ってください。