Spresense初体験。まずは初期設定

Spresenseを使うと手軽にGPSのログが取れるということを知り、早速手に入れてみました。チュートリアルを試して、少し出力をアレンジしてみた程度のところですが、面白いです!

最初のサンプル(Lチカ)を動かすまで

 基本的に以下の公式ドキュメントにある内容の劣化コピーです。自分でやったことの記録として書くものなので、通常は公式ドキュメントを読んでいただくほうが確実かと思います。
https://developer.sony.com/spresense/development-guides/arduino_set_up_ja


私の環境
ツール・ドライバ類のインストール

から CP210xドライバ(USBドライバ)をダウンロード

  • 同 インストール
    • zipファイルを展開し、silabser.infで右クリックから「インストール」選択でインストールできる
Arduino IDE でSpresenseを使えるようにする

Arduino IDEを起動して以下の作業を実施。

  • まず日本語化
    • File - Preferences
    • Settingsタブ内の Languageを「日本語」に
    • OK
  • Spresense Arduino board packageをインストール
    • ファイル - 基本設定(公式ガイドでは「環境設定」でしたが私がやったときは「基本設定」という名前になっていました)
    • 設定タブ内の 追加のボードマネージャのURL にて以下の内容を記述(コピペ)。実施される際は最新情報を公式サイトで確認ください。
https://github.com/sonydevworld/spresense-arduino-compatible/releases/download/generic/package_spresense_index.json
    • OK
  • ツール - ボード - ボードマネージャ..
    • ボードメニューが2つあるなぁとよく見たら、ひとつはポートでした(笑)
    • 検索窓に「spresense」と入力して検索。出てきた Spresense Reference Board を「インストール」
    • 完了が分かりにくかったけど、出力に「Platform SPRESENSE:spresense@3.4.2 installed」と出たり、検索結果の「インストール」の表示が「削除」になったり、その上部の表示に「3.4.2 installed」みたいなのが出ていたりしたらインストール完了している


Spresense本体の初期設定

最初にブートローダーをインストールする必要があるようです。私はとりあえず(拡張ボード等なしの)Spresense本体のみをUSBケーブルで接続して設定を行いました(この後もしばらくは本体の能力を知りたくて、これを書いている時点でまだ拡張ボード類は一切接続していません。はやくいじりたい)。

  • ボード - Spresense Reference Board - Spresense (公式ガイドと微妙に階層が異なります)

  • ボードを選ぶと、メニューが少し変わります(ポイントは、「ボード」のところが「ボード "Spresense"」になって、選択されていることがわかること)


  • ツール - ポート(Portです!)から、COMx(Spresense)的な表示になっているものを選択
    • 私は最初のマシンでやったときは COM3、新たなマシンでやったときにはCOM4でした
  • ツール - 書込装置 - Spresense Firmware Updater で書込装置を指定してから、同メニュー内「ブートローダーを書き込む」
    • agreement表示されるので内容を隅々まで確認し、本当にAgreeして良い場合のみacceptする(何その持って回った言い方w)
    • 書き込みが完了しました、と出れば、最初の設定は完了。いよいよ触れるぞ!!
Lチカ

公式ガイドにあるとおりの以下のコードをコードエディタの画面に貼り付けて、実行。左上の「→」のボタンを押すとコンパイルして書き込みをしてくれます。まだSpresense(というかArduino一般の?)お作法が分かっていないのですが、書き込み後に再起動されて、自動でプログラムが実行されるということなのかな。つまり、1枚のボードには1つしかプログラムを置いておけない(そのプログラムが起動時に自動起動される)ということ? まぁそのうち少しずつ分かってくることでしょう。
Spresenseには4つのLEDが乗っていますが、それが順番に点いて、順番に消えます。

void setup() {
    pinMode(LED0, OUTPUT);
    pinMode(LED1, OUTPUT);
    pinMode(LED2, OUTPUT);
    pinMode(LED3, OUTPUT);
}

void loop() {
    digitalWrite(LED0, HIGH);
    delay(100);
    digitalWrite(LED1, HIGH);
    delay(100);
    digitalWrite(LED2, HIGH);
    delay(100);
    digitalWrite(LED3, HIGH);
    delay(1000);

    digitalWrite(LED0, LOW);
    delay(100);
    digitalWrite(LED1, LOW);
    delay(100);
    digitalWrite(LED2, LOW);
    delay(100);
    digitalWrite(LED3, LOW);
    delay(1000);
}

これだけでは何なので、sleep(delay)する時間を変えてみたり、点滅の順番やタイミングを変えて、4bitで何かメッセージを出した風にしてみたりと簡単な改造をして楽しみました。いいオトナが「幼稚な」改造ですが、こういちょっとしたことで「書いた通りに動いてくれる」のが楽しさの原点だよなぁと、久々に感覚を味わいました。

この後、早速GPS機能をトライしてみますが、いったんブログはここまでで。これは楽しい。オールインワンなのが良い。

Spresense Document home
https://developer.sony.com/spresense/development-guides/home_ja

欲しいもの

カメラ(HDRのほうじゃなくてもいいけど)

リンク貼れないのだけど、最近話題のジャイロセンサーって値を色々取れて楽しそう

イムリーに出る本

トラ技が、なんと私に合わせてくれたかのように(笑)次号で Spresenseの特集を組んでくれます。待ちきれないw


今後知りたい情報など

  • やはりとりあえず簡易的なものでいいからディスプレイ欲しいなぁ。ずっとPCつないでいるわけにもいかないし
  • 検索していくつか見たのだけど「ケーブルでつなぐだけ」よりはもう少し複雑っぽい情報ばかりで、、詳しくないので「ただ繋いで、ただ見たい」です
  • 入力系も何か手に入れると、実行のオンオフとかモードの変更とか、内容確認指示とか色々「会話」ができるようになって楽しそうだなぁ。どうやるのだろう
  • そもそもSpresense内の情報をPCから見たい場合(ファイルにロギングしたものを見るとか)って、線を繋ぐかmicroSDカードを抜き差しするしかないのかな。wifiBluetoothの拡張ボードはあるようなので、それを使うのが常套手段なのだろうか。


楽しいオモチャを手に入れてしまいました。この手のお話できるオトモダチも欲しいなぁ。ブログ等でいっぱい発信している人もいてとても参考にさせてもらったり楽しんだりしているのだけど、やっぱりオモチャを手に入れたら会話したいですよね。(ある程度レベル感が会わないと、初心者として申し訳なくて、ツヨツヨの方々には声をかけられないでいます)

追記:Spresenseの名前の由来

 やっぱり名前の由来って気になるじゃないですか。
ちゃんとソニーの公式に説明がありました。


・・・ないんかい!!! ないんかい!!! ナインカイ!!!! ...........

https://developer.sony.com/spresense/development-guides/faq_ja#_spresense_%E3%81%AE%E5%90%8D%E5%89%8D%E3%81%AE%E7%94%B1%E6%9D%A5%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B