Spresenseを使うと手軽にGPSのログが取れるということを知り、早速手に入れてみました。チュートリアルを試して、少し出力をアレンジしてみた程度のところですが、面白いです!
最初のサンプル(Lチカ)を動かすまで
基本的に以下の公式ドキュメントにある内容の劣化コピーです。自分でやったことの記録として書くものなので、通常は公式ドキュメントを読んでいただくほうが確実かと思います。
https://developer.sony.com/spresense/development-guides/arduino_set_up_ja
私の環境
ツール・ドライバ類のインストール
- https://www.arduino.cc/en/software/ からArduino IDE 2.3.6 (Windows10 and newer, 64bits)をダウンロード
- 寄付とかサブスクライブとかしたくない場合は Just Downlaod で続行可能です
- ダブルクリックしてインストール
- インストール後自動で起動される。起動すると追加のドライバ類のインストールを確認する画面が出た。どれが必要か分からなかったので全部言われるままにインストールしておいた
- https://github.com/sonydevworld/spresense-hw-design-files/raw/master/misc/usb-to-uart-bridge-vcp-drivers/CP210x_Universal_Windows_Driver-v11.1.0.zip
から CP210xドライバ(USBドライバ)をダウンロード
- 同 インストール
- zipファイルを展開し、silabser.infで右クリックから「インストール」選択でインストールできる
Arduino IDE でSpresenseを使えるようにする
- まず日本語化
- 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"」になって、選択されていることがわかること)
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
今回一緒に買ったもの
今後知りたい情報など
- やはりとりあえず簡易的なものでいいからディスプレイ欲しいなぁ。ずっとPCつないでいるわけにもいかないし
- 検索していくつか見たのだけど「ケーブルでつなぐだけ」よりはもう少し複雑っぽい情報ばかりで、、詳しくないので「ただ繋いで、ただ見たい」です
- 入力系も何か手に入れると、実行のオンオフとかモードの変更とか、内容確認指示とか色々「会話」ができるようになって楽しそうだなぁ。どうやるのだろう
- そもそもSpresense内の情報をPCから見たい場合(ファイルにロギングしたものを見るとか)って、線を繋ぐかmicroSDカードを抜き差しするしかないのかな。wifiやBluetoothの拡張ボードはあるようなので、それを使うのが常套手段なのだろうか。
楽しいオモチャを手に入れてしまいました。この手のお話できるオトモダチも欲しいなぁ。ブログ等でいっぱい発信している人もいてとても参考にさせてもらったり楽しんだりしているのだけど、やっぱりオモチャを手に入れたら会話したいですよね。(ある程度レベル感が会わないと、初心者として申し訳なくて、ツヨツヨの方々には声をかけられないでいます)
追記:Spresenseの名前の由来
やっぱり名前の由来って気になるじゃないですか。
ちゃんとソニーの公式に説明がありました。
・・・ないんかい!!! ないんかい!!! ナインカイ!!!! ...........