前回、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