« NUCLEO-F446REにMicropythonをインストールする(v2) | トップページ | Turtorial Examples for CircuitPython(Teensy4.0) »

2020年3月16日 (月)

Teensy4.0にCircuitPythonをインストールする

2020/3/31
2020/3/16+

Teensy4.0 CircuitPython Install

Teensy4.0 CircuitPython Install

概要

Teensy4.0にCircuitPythonをインストールする方法について記載する。 (ホストPCとしてはubuntuを想定している)

事前準備

(1)Teensyの書き込みツールのインストール

mkdir teensy_tools cd teensy_tools git clone https://github.com/PaulStoffregen/teensy_loader_cli.git cd teensy_loader_cli make # set up path export PATH=$PATH:$HOME/teensy_tools/teensy_loader_cli

(2)ampyのインストール
AMPY_PORTは、自分の環境に合わせる。

pip install adafruit-ampy export AMPY_PORT=/dev/ttyACM0 export AMPY_BAUD=115200

(3)picocomのインストール

sudo apt-get install picocom

(4)コンパイラのバージョンアップ
以下でインストールしたコンパイラが古いのでバージョンアップする。
sudo apt-get install gcc-arm-none-eabi

(1)以下のurlから最新版をダウンロードする: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads 解凍したものを以下のフォルダに置く: $HOME/Downloads/gcc-arm-none-eabi-8-2019-q3-update (2)パス設定 #古いコンパイラを削除する sudo apt-get remove gcc-arm-none-eabi #パスを設定する export PATH=$PATH:$HOME/Downloads/gcc-arm-none-eabi-8-2019-q3-update/bin

以上のうち、exportしているものは、.bashrcに登録することを勧める。

ビルド手順

以下の手順で行なう:

mkdir mp_cpy cd mp_cpy git clone https://github.com/adafruit/circuitpython.git cd circuitpython git submodule sync git submodule update --init git submodule update --recursive make -C mpy-cross cd ports/mimxrt10xx make clean BOARD=teensy40 make BOARD=teensy40 # 以上の手順で、 ./build-teensy40/firmware.hex が生成される

書き込み手順

上でビルドしたhexを以下の手順で書き込む:

teensy_loader_cli -v --mcu=imxrt1062 -w ./build-teensy40/firmware.hex # push bottom on board to upload hex # 上のコマンドを実行したら、直ぐにボードのボタンを押す。

書き込んだプログラムが実行されると、USBストレージとして、CIRCUITPYが現れる。

動作確認(REPL)

picocomを使いボードとシリアルで通信する。
以下、通信例:

$ picocom /dev/ttyACM0 -b115200 Auto-reload is on. Simply save files over USB to run them or enter REPL to disable. Press any key to enter the REPL. Use CTRL-D to reload. Adafruit CircuitPython 5.0.0-87-g3a5f79a on 2020-03-16; Teensy 4.0 with IMXRT1062DVJ6A >>> import os >>> os.uname() (sysname='mimxrt10xx', nodename='mimxrt10xx', release='5.0.0', version='5.0.0-87-g3a5f79a on 2020-03-16', machine='Teensy 4.0 with IMXRT1062DVJ6A') >>> import gc >>> gc.collect() >>> gc.mem_free() 945792 >>> list(5 * x + y for x in range(10) for y in [4, 2, 1]) [4, 2, 1, 9, 7, 6, 14, 12, 11, 19, 17, 16, 24, 22, 21, 29, 27, 26, 34, 32, 31, 39, 37, 36, 44, 42, 41, 49, 47, 46] >>> >>> help('modules') __main__ collections microcontroller supervisor _os digitalio micropython sys _pixelbuf displayio neopixel_write terminalio _time errno os time analogio fontio pulseio touchio array gamepad random ulab bitbangio gc re usb_hid board io rtc usb_midi builtins json storage busio math struct Plus any modules on the filesystem >>>

スクリプト実行

blink.py

import board import digitalio import time led = digitalio.DigitalInOut(board.D13) led.direction = digitalio.Direction.OUTPUT while True: led.value = True time.sleep(0.1) led.value = False time.sleep(0.1)

ストレージのCIRCUITPYに上のblink.pyを書き込み REPLで以下を実行すると該当のプログラムが実行される。

import blink

CIRCUITPY上のcode.pyは、電源オン時またはREPLのCtrl-D押下時に、自動実行される。

Adafruit_CircuitPython_Bundleのモジュールのインストール方法

# ホストPC上(CircuitPythonボードが接続されている前提) # パス設定 export CPY_LIB=$HOME/.local/lib/python3.5/site-packages # 上の「python3.5」の部分は、自分の使用している(ホストPCの)python3のバージョンに合わせる export CPY=/media/$USER/CIRCUITPY # MODULEというモジュールをインストールする場合、以下を実行する: pip3 install adafruit-circuitpython-MODULE # CircuitPython上でimportする場合のスクリプト import adafruit_MODULE # ダッシュ(-)とアンダースコア(_)の使い分けに注意すること # モジュールのCircuitPythonボードへのコピー(インストール) cp $CPY_LIB/adafruit_MODULE.py $CPY/lib/ # 具体例: pip3 install adafruit-circuitpython-mpl115a2 cp $CPY_LIB/adafruit_mpl115a2.py $CPY/lib/

参照URL

Teensy 4.0

Teensy Loader - Command Line Version

Build CircuitPython
Adding Frozen Modules

Adafruit CircuitPython API Reference(v4.x)

CircuitPython Essentials
Example Code

以上

|

« NUCLEO-F446REにMicropythonをインストールする(v2) | トップページ | Turtorial Examples for CircuitPython(Teensy4.0) »

linux」カテゴリの記事

MicroPython」カテゴリの記事

CircuitPython」カテゴリの記事

コメント

この記事へのコメントは終了しました。