SSブログ

SPRESENSE用”CircuitPython”のビルド環境を作ろう!(CircuitPythonビルド編) [SPRESENSE]

いよいよ SPRESENSE向け "CircuitPython" のビルドを行います!このシリーズの完結編になります。ここでは、CircuitPython のイメージをビルドし、SPRESENSEに書き込み、PythonコードによるSPRESENSE のLチカまで行います。


python-spresense.png


【STEP1】 MicroPython のビルド


最初に”CircuitPython”のベースとなっているクロスプラットフォーム向け "MicroPython" のビルドを行います。環境の設定を失敗していなければ何事もなく終わるはずです。


$ cd circuitpython
$ make -C mpy-cross




【STEP2】 CircuitPython のビルド


次にいよいよ SPRESENSE用の CircuitPython のビルドを行います。ここが少しハマるポイントですね。SPRESENSE用のコードはなんと、cxd56 ディレクトリ配下にあります。(grep すればすぐに見つけられますが)



... @circuitpython directory から ...

$ cd ports/cxd56
$ make BOARD=spresense



SPRESENSEのプロセッサの名前は cxd5602 なので cxd56 ディレクトリにあるみたいです。これは普通分からないですよねぇ。


【STEP3】ブートローダのダウンロード(必要なひとのみ)


新たに購入した人や久しぶりにSPRESENSEを引っ張り出してきた人は、ブートローダーの更新を行う必要があります。すでに、Arduino Library や SDK で最新のブートローダーの書き込みを行っている人は必要ありません。

現在の最新のブートローダー V1.5.1 は次のURLにありますので、そこから "spresense-binaries-v1.5.1.zip" がダウンロードできます。(バージョンによってURLは異なります)


2020-05-14 (7).png
https://developer.sony.com/file/download/download-spresense-firmware-v1-5-001


ここでは仮に "C:\Users\Default\Downloads"にダウンロードしたと仮定します。

書き込みを行うために、ダウンロードしたブートローダのZIPファイルを "circuitpython/spresense-exported-sdk/firmware" に展開します。


... @circuitpython/ports/cxd56 directory から ...

$ cd spresense-exported-sdk
$ mkdir firmware
$ cd firmware
$ cp /mnt/c/Users/Default/Downloads/spresense-binaries-v1.5.1.zip .
$ sudo apt install unzip
$ unzip spresense-binaries-v1.5.1.zip
$ cd ../..




【STEP4】SPRESENSEへイメージの書込み


ここで、PCに接続したUSBケーブルをSPRESENSEをメインボード側に挿します。


DSC_0991.JPG


この時、COMの何番にSPRESENSEが接続されているか確認してください。ここでは、仮に"COM7"に接続されたとします。次のコマンドで、必要な人はブートローダーの書き込みと、CircuitPython イメージの書き込みが行えます。



... @circuitpython directory にて ...

SPRESENSEが「COM7」に接続されている前提
$ make BOARD=spresense SERIAL=/dev/ttyS7 flash-bootloader (必要な人のみ)
$ make BOARD=spresense SERIAL=/dev/ttyS7 flash 



Linuxですので、"COMxx"という名称ではハードウェアにアクセスできません。"/dev/ttySxx" と読み替えます。今回は "COM7" ですので "/dev/ttyS7" になります。これで CircuitPython の書き込みが完了しました。


【STEP5】PythonコードをSPRESENSEで動かす


USBケーブルを今度は拡張ボード側に挿しましょう。


2020-05-09.png


すると、PCに新しく "CIRCUITPY:" というドライブが見えます。


2020-05-08 (3).png


そのドライブの中に code.py というものがありますので、次のようにコードを編集し保存します。


import board
import digitalio
import time

led = digitalio.DigitalInOut(board.LED0)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)



すると、あら不思議!コードを保存したとたんにLEDが光りだします。これはお手軽ですね!





ぜひ試してみてください!😉
(^^)/~





SONY SPRESENSE メインボード CXD5602PWBMAIN1

SONY SPRESENSE メインボード CXD5602PWBMAIN1

  • 出版社/メーカー: スプレッセンス(Spresense)
  • メディア: Tools & Hardware



SONY SPRESENSE 拡張ボード CXD5602PWBEXT1

SONY SPRESENSE 拡張ボード CXD5602PWBEXT1

  • 出版社/メーカー: スプレッセンス(Spresense)
  • メディア: Tools & Hardware







nice!(22)  コメント(1) 
共通テーマ:趣味・カルチャー

nice! 22

コメント 1

ななし

... @circuitpython directory にて ...

SPRESENSEが「COM7」に接続されている前提
$ make BOARD=spresense SERIAL=/dev/ttyS7 flash-bootloader (必要な人のみ)
$ make BOARD=spresense SERIAL=/dev/ttyS7 flash

の部分ですが

user@host:~/circuitpython$ make BOARD=spresense SERIAL=/dev/ttyS3 flash
make: *** ターゲット 'flash' を make するルールがありません. 中止.

でした。

user@host:~/circuitpython/ports/cxd56$ make BOARD=spresense SERIAL=/dev/ttyS3 flash

で成功しました。

by ななし (2021-05-28 14:05) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。