Seeeduino Nanoのドライバ関連について追記しました(2021.04.18)
購入してから長らく使用していなかったSeeeduino Nano
をしようしてみました。購入は昨年の夏なのですが、それ以降全く死蔵していました。
個人的には基板サイズも小さいので割といいものだなとは思っていましたが、ブレッドボードに挿して回路作るのもだるいなと思ってしまい、なかなか使用までには手が出ませんでした。
最近、別の買い物をする際に、同時に購入したGrove Shield for Arduino Nano
を他の買い物と同時に購入したこともあり、触ってみることにしました。
シールド込のサイズでもArduino
サイズより小さいので非常にいいボードだと思います。
【参考】 www.seeedstudio.com
外観
Seeeduino Nano
の外観は以下のような感じです。
特徴としてはArduino Nano
との完全互換で、書き込みと電源はUSB Type C
経由、ボード上にI2C
のGrove
コネクタがある点です。
そのままブレッドボードに挿して使用することもできますが、Grove
のセンサーとの接続にはGrove Shield for Arduino Nano
というシールドがあるので
こちらに乗せて使用すると便利です。
Seeeduino Nano
をGrove Shield for Arduino Nano
に乗せると以下のような形状になります。シールドを使用してもかなり小さい(名刺サイズよりも小さい)ので持ち運びには便利です。
購入は以下から行うこともできますが、スイッチサイエンスさんでの購入が在庫も豊富なので良いかなと思います。
Windows PCとの接続
では接続を行います。PCとの接続はUSB Type C
タイプのUSBケーブルを使用します。USBケーブルでWindows10
のPCと接続するとトーストが表示されて自動的にドライバーがインストールされます。特にドライバのインストールは必要ないようです。(Seeeduinoの使用していたからかも?)
ーー追記(2021.04.18)ーー
デフォルトではドライバはないようです。以下のリンクからドライバをダウンロードし、インストールを行います。
Windows10であれば、Universal Windows Driver
をインストールすることで使用することができます。
ーー追記終わりーー
インストール後は、デフォルトで書き込まれていたプログラムが起動してボード上のLEDが点滅します。
無事に動作認識ができました。続いてはArduino IDE
を起動して、書き込みを行ってみます。
Arduino IDE
の設定を行う
Arduino IDE
を起動します。(今回使用したバージョンは1.8.12となります)
起動したらボードマネージャーを起動してパッケージをインストールします。メニューから【ツール】→【ボード:”〇〇”】→【ボードマネージャー】(○○の部分は最後に指定したものが入っていると思います)を選択してボードマネージャーを起動します。
パッケージを未インストールの場合
ダイアログの中にある検索ボックスに
Seeeduino AVR
と入力して、絞り込みを行います。
すると、パッケージが一つに絞り込まれるので、【インストール】ボタンをクリックします。
インストールが完了したら【閉じる】ボタンをクリックして、ボードマネージャーを終了させます。
既にパッケージをインストール済みの場合
すでにインストールしている場合には以下の様な画面になります。その場合には【閉じる】ボタンをクリックして、ボードマネージャーを終了させます。
ボードとシリアルポートの設定
メニューから【ツール】→【ボード:”〇〇”】→【Seeeduino Nano】を選択します。かなり下の方にあります。
選択すると、メニュー上のボードがが以下のように変更するので確認をします。
続いて、シリアルポートの選択をします。メニューから【ツール】→【シリアルポート】を選択して接続しているCOMポートを選択します。今回はCOM9
で認識されていたので、それを選択します。
選択すると、メニュー上のシリアルポートが以下のように変更するので確認をします。
あとは標準のBlinkサンプルを読み込ませてみます。メニューから【ファイル】→【スケッチ例】→【01.Basics】→【Blink】を選択すると読み込みできます。
読み込みが終わったら、IDEの【→】ボタンで書き込みを行います。設定が正常であれば無事に書き込みができます。ボード上のLEDが点滅するだけなので、デフォルトと変化がないので微妙かもしれません。
Grove - Chainable RGB LED
で少し違ったLチカしてみる
いつもはLEDをブレッドボード挿して、IOピンと接続してLチカを行うことが多いのですが、せっかくGroveシールドもあることなので、手元にあったGrove - Chainable RGB LED
を使用してみることにします。
このGrove - Chainable RGB LED
はI2Cを使って、ユニット間で接続しチェーン上つなげていくことができるようになっているのが特徴です。
詳細は以下のページを確認してください。
Note: This product will EOL soon, please click here for Grove - Chainable RGB LED V2.0.
となっているので、今後入手を考えられる方は以下を購入することになると思います。こちらのほうがコンパクトで奥行きが小さいのでいいかもしれません。(V2.0のほうがコネクタの向きが良いです)
こちらのモジュールはI2C接続ですが、ライブラリがあるので導入は容易です。以下のサイトに導入方法が書いてあります。(SeeedさんのWikiにも記載されています)
基本的には最新版のリリースのZIPファイルを取得して、Arduino IDE
でライブラリインストールをしていくことになります。以下のリンクで最新バージョンを取得することができます。現在のバージョンはv1.3
ここにあるZIPファイルをダウンロードしたら次に進みます。
Arduino IDE
をメニューから【スケッチ】→【ライブラリをインクルード】→【.ZIP形式のライブラリをインストール…】をクリックします。インストールに使用するファイルダイアログが開くので、先程のZIPファイルを選択します。
インストールが終わると先ほどのメニューにChainableLED
が追加されています。
これを選択するとソースファイルにインクルード行が追加されます。
ここまできたらGithubにあるサンプルファイルを使用すれば実験ができます。サンプルページは以下になります。
【サンプルページ】
ただ、公式のサンプルはI2Cで接続されたチェーン接続された状態を想定した点灯になるので、1つのモジュールを接続した状態ではあまりテスト的な意味合いはありません。そこで公式のサンプルを少し手をいれて以下の様にしてみました。
LEDをRGBで順番にレベルを変化させて色を変える感じのものです。
#include <ChainableLED.h> #define NUM_LEDS 1 ChainableLED leds(SCL, SDA, NUM_LEDS); void setup() { leds.init(); } byte pos = 0; void loop() { for (int r = 0 ; r < 256 ; r+=16) { for (int g = 0 ; g < 256 ; g+=16) { for (int b = 0 ; b < 256 ; b+=16) { leds.setColorRGB(pos, r, g, b); } } } }
Classのメソッドは以下の通りです。I2Cのクロックピンとデータピンのを知っていれば、使用は難しくない感じです。
class ChainableLED { public: ChainableLED(byte clk_pin, byte data_pin, byte number_of_leds); void init(); void setColorRGB(byte led, byte red, byte green, byte blue); void setColorHSL(byte led, float hue, float saturation, float lightness); }
Seeeduino Nano
の場合には以下のように指定しています。引数NUM_LEDSには接続したモジュールの個数を与えます。接続が1つの場合には1
となります。
ChainableLED leds(SCL, SDA, NUM_LEDS);
点灯はRGBかHSLで指定することになります。今回はRGBで設定します。引数のposは接続したモジュールの何番目かを示しています。接続が1つの場合には0
となります。
leds.setColorRGB(pos, r, g, b);
実行すると以下のようになります。
輝度が高いので、色の変化が細かいとパット見た感じでは変化はよくわからないかもしれません。
おわりに
ようやく死蔵していたSeeeduino Nano
を使用できるようになりました。シールドを使用するとコンパクトなサイズでいろいろな接続ができるようになるのでかなり便利です。電源がUSB Type C
なのも今っぽいのでいい感じですね。