【朗報】SPRESENSE の CircuitPython が "GPS"をサポート! [SPRESENSE]
前回、SPRESENSEでCircuitPythonを試してみたのはだいたい3ヶ月くらい前。
■ SPRESENSE で "CircuitPython" を動かしてみた!
https://makers-with-myson.blog.ss-blog.jp/2020-05-08
■ SPRESENSE用”CircuitPython”のビルド環境を作ろう!(目次編)
https://makers-with-myson.blog.ss-blog.jp/2020-05-10
前回はまだ完成度が低く発展途上だったのでアップデートはあるだろうなと思い、時々 CircuitPythonの GitHub の IssueList をチェックしているのですが、先日こんな "Issue" を発見!
早速、最新のツリーをCloneしてビルドしてみました。ビルドの仕方はこちらを参照してください。
GNSSとSDカードの確認をするためにサンプルコードを組んで試してみました。(サンプルコードは shared-bindings のソースコードの中にコメントとして記述されています)
■ GNSSのサンプルコード
こちらのコンソール出力がこれ。おぉ、部屋の中からですが位置を補足してます。なかなか偉いですねSPRESENSE。位置情報が得られるようになると色々とアプリケーションを作る気が湧いてきます。
USBケーブルは拡張ボード側のUSBポートに接続してください。Arduino IDE と異なり、シリアル出力も拡張ボードのUSBポートから出力されます。間違ってメインボードに挿して、シリアルが出ないと慌てないようにしてください。
次はSDカードの確認です。CircuitPython 標準の "sdcardio" と実装が別になってるのはなんでじゃろ?と思ったら "sdcardio" のほうはSPIなんですね。SPRESENSEのSDカードは高速のSDIOインターフェースなので別の実装が必要だったみたいです。
■ SDIOのサンプルコード
code.py を保存するとすぐに動き出し、SDカード上に”Hello World!”が書き込まれた "tmp.txt" が出来上がりました。やった!
これで位置情報をSDカードに記録するトラッカーが出来上がりますね。拡張ボードは大きいので、スイッチサイエンスで売っている小さな拡張ボードだと小さなGPS トラッカーが出来上がりそうです。
https://www.switch-science.com/catalog/5374/
これからのアップデートをさらに期待したいところですね!
( ^ω^ )/~
■ SPRESENSE で "CircuitPython" を動かしてみた!
https://makers-with-myson.blog.ss-blog.jp/2020-05-08
■ SPRESENSE用”CircuitPython”のビルド環境を作ろう!(目次編)
https://makers-with-myson.blog.ss-blog.jp/2020-05-10
前回はまだ完成度が低く発展途上だったのでアップデートはあるだろうなと思い、時々 CircuitPythonの GitHub の IssueList をチェックしているのですが、先日こんな "Issue" を発見!
早速、最新のツリーをCloneしてビルドしてみました。ビルドの仕方はこちらを参照してください。
GNSSとSDカードの確認をするためにサンプルコードを組んで試してみました。(サンプルコードは shared-bindings のソースコードの中にコメントとして記述されています)
■ GNSSのサンプルコード
import gnss import time print("start") nav = gnss.GNSS([gnss.SatelliteSystem.GPS, gnss.SatelliteSystem.GLONASS]) last_print = time.monotonic() while True: nav.update() current = time.monotonic() if current - last_print >= 1.0: last_print = current if nav.fix is gnss.PositionFix.INVALID: print("Waiting for fix...") continue print("Latitude: {0:.6f} degrees".format(nav.latitude)) print("Longitude: {0:.6f} degrees".format(nav.longitude))
こちらのコンソール出力がこれ。おぉ、部屋の中からですが位置を補足してます。なかなか偉いですねSPRESENSE。位置情報が得られるようになると色々とアプリケーションを作る気が湧いてきます。
USBケーブルは拡張ボード側のUSBポートに接続してください。Arduino IDE と異なり、シリアル出力も拡張ボードのUSBポートから出力されます。間違ってメインボードに挿して、シリアルが出ないと慌てないようにしてください。
次はSDカードの確認です。CircuitPython 標準の "sdcardio" と実装が別になってるのはなんでじゃろ?と思ったら "sdcardio" のほうはSPIなんですね。SPRESENSEのSDカードは高速のSDIOインターフェースなので別の実装が必要だったみたいです。
■ SDIOのサンプルコード
import sdioio import storage import os print("start") sd = sdioio.SDCard(clock=board.SDIO_CLOCK, command=board.SDIO_COMMAND, data=board.SDIO_DATA, frequency=2500000) vfs = storage.VfsFat(sd) storage.mount(vfs, '/sd') fp = open("/sd/tmp.txt", "a") fp.write("hello world!") fp.close()
code.py を保存するとすぐに動き出し、SDカード上に”Hello World!”が書き込まれた "tmp.txt" が出来上がりました。やった!
これで位置情報をSDカードに記録するトラッカーが出来上がりますね。拡張ボードは大きいので、スイッチサイエンスで売っている小さな拡張ボードだと小さなGPS トラッカーが出来上がりそうです。
https://www.switch-science.com/catalog/5374/
これからのアップデートをさらに期待したいところですね!
( ^ω^ )/~
SONY SPRESENSE メインボード CXD5602PWBMAIN1
- 出版社/メーカー: スプレッセンス(Spresense)
- メディア: Tools & Hardware
SONY SPRESENSE 拡張ボード CXD5602PWBEXT1
- 出版社/メーカー: スプレッセンス(Spresense)
- メディア: Tools & Hardware
コメント 0