SpresenseでLチカから始める (1) Lチカは簡単か

Arduino IDEでSpresenseを使えるようにする

 Arduino IDEでスケッチがかけても、実際にコンパイルができない、コンパイルはするが正しく動作しないマイコン・ボードはいくつもあります。ソフト・シリアルやサーボ・モータのライブラリが思ったように動かないことがありました。ここでは、絶対に動くと思われるLEDの点灯を試します。

対応ライブラリの導入

 次に示す解説にそって、多くのマイコン・ボードの開発関連ソフトウェアをArduino IDEに追加するのと同じ手順でライブラリを追加します。

  1. Spresense Arduino Library のインストールの仕方

 使用環境はWindows 10です。Arduino IDEは1.8.5です。IDEの上部にあるメイン・メニューのファイルから環境設定をクリックします。環境設定画面の下のほうにある「追加のボードマネージャのURL」に、下記のURLを追加します。ほかのボードが書かれていたときは、「,」を入れてからコピペします。

  https://github.com/sonydevworld/spresense-arduino-compatible/releases/download/generic/package_spresense_index.json

 OKでこの画面を閉じます。

 メイン・メニューのツールから、真ん中付近にあるボード何がしをクリックして、ボードマネージャを開きます。

 検索のところに「Spresense 」を入れ、見つかったら、More info付近をクリックすると右側にinstallボタンが出てくるのでクリックします。次の画面は既にインストールが終わった状態です。インストールは数分かかります。

ボードのセットアップ

 Spresense は、メイン・ボードを拡張ボードの上に接続します。メイン・ボードのI/O電圧は1.8Vと低すぎて通常のセンサなどを直接つなげられません。拡張ボードではロジック・レベルを5V(ジャンパJP1で3.3Vも可能)に変換してくれています。取り出せる電流は数mAと書かれているので、3mA程度と想像されます(デフォルトは2mAのようだ)。けれど、プルアップされているので、初期状態はHIGHなので、こちらで調べたようにArduino UNOとは異なります。ピンを初期設定するまでの短い間、リレーの駆動のように挙動が異なることを気にかける必要なアプリケーションもあります。

 USB-シリアル変換デバイスはCP201xが使われています。CH34xと並んでよく使われるデバイスなので、ドライバが入っている方も多いでしょう。Windows 10ならば、初めてでも自動でインストールされる場合が多いです。

  マイクロUSBケーブルでPCとつなぎます。電源配給確認はメイン・ボードの青色LEDです。

Arduino IDEの起動

 メイン・メニューのツールから、ボード-Spresense を選択します。

 シリアル・ポートのCOMXX(利用者によって異なる。ここではCOM17)は自動で選択されるはずですが、選択されなかったので手動で選びました。

 通常はこれでボードとシリアル・ポートの設定は終了ですが、資料によると、ファームウェアをアップデートするように説明されています。ツール > 書き込み装置 でSpresense Firmware Updater を選択します。

 ツール > ブートローダを書き込む を選択します。これでブートローダとバイナリ・ライブラリがインストールされます。バイナリ・ライブラリはEnd User License Agreementに同意するとspresense-binaries-v1.0.000.zipファイルがダウンロードできます。

 ダウンロードしたZIPファイルを、Welcome to Spresense Bootloader updaterの画面にドラッグ&ドロップします。 

 画面の下の黒字に赤い文字で進行している様子がわかります。

 ブートローダの書き込みが終了するとリセットがかかります。

Lチカのスケッチ

 こちらの記事で使った電流制限抵抗入りのLEDを、12番ピンとGNDに挿しこみ、スケッチのBlinkを読み込みます。スケッチのなかで、I/Oポートを指定している LED_BUILTINを12に修正します。

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(12, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

 Arduino IDEの画面上にある「→」をクリックして、コンパイルとボードへの実行ファイルの書き込みを行います。Arduino UNOのようにTx/RxのLEDが点滅するようなギミックはありません。

 1秒ごとに点滅したでしょうか。ディジタルI/O側のソケットにはシルク印刷が何もないので、Arduino UNOを横に並べて、ピン番号を間違えないようにしました。

前へ

距離を正確に測る その5 LIDAR-Lite v3HP

次へ

SpresenseでLチカから始める (2) アナログ・ポート