CurcuitPython

2020年7月 6日 (月)

Wio-TerminalにCircuitPythonをインストールする

2020/7/6

Wio Terminal CircuitPython Install

Wio Terminal CircuitPython Install

概要

以下のWio-TerminalにCircuitPythonをインストールする方法について記載する。 (最近、α版ではあるがCircuitPythonに対応したのでインストールしてみる) (ホストPCとしてはubuntuを想定している)

Wio Terminal

事前準備

(1)picocomのインストール

sudo apt-get install picocom

bootloader mode

Wio-Terminalにfirmwareを書き込めるモードを「bootloader mode」といい、このモードでは、USBストレージとしてarduinoディレクトリが現れる。 Resetボタンを2度素早く押すことにより、このモードに入る。

CircuitPythonの書き込み

以下の手順でCircuitPythonを書き込む:

wget https://downloads.circuitpython.org/bin/seeeduino_wio_terminal/en_US/adafruit-circuitpython-seeeduino_wio_terminal-en_US-6.0.0-alpha.1.uf2 # ファイルをドラッグ&ドロップするか、以下のコマンドを実行してファイルをコピーする cp adafruit-circuitpython-seeeduino_wio_terminal-en_US-6.0.0-alpha.1.uf2 /media/USER_NAME/Arduino/ # ファームウェアの書き込みが実行されて、完了後、CIRCUITPYが現れるまで待つ

「USER_NAME」は実際の環境に合わせること。

動作確認(REPL)

以上、CircuitPythonのインストールが終わったので、picocomを使いWio-Terminalとシリアルで通信する。(REPL)

以下、通信(REPL)例:

$ picocom /dev/ttyACM0 -b115200 Press any key to enter the REPL. Use CTRL-D to reload. Adafruit CircuitPython 6.0.0-alpha.1 on 2020-07-03; Seeeduino Wio Terminal with samd51p19 >>> import os >>> os.uname() (sysname='samd51', nodename='samd51', release='6.0.0', version='6.0.0-alpha.1 on 2020-07-03', machine='Seeeduino Wio Terminal with samd51p19') >>> import gc >>> gc.collect() >>> gc.mem_free() 157856 >>> help('modules') __main__ busio math sdcardio _os collections microcontroller socket _pixelbuf countio micropython storage _time digitalio neopixel_write struct analogio displayio network supervisor array errno os sys audiobusio fontio ps2io terminalio audiocore framebufferio pulseio time audioio frequencyio random touchio audiomixer gamepad re ulab audiomp3 gc rgbmatrix usb_hid bitbangio i2cperipheral rotaryio usb_midi board io rtc vectorio builtins json samd wiznet Plus any modules on the filesystem >>>

benchmark

benchmark.py

import time import board from digitalio import DigitalInOut, Direction, Pull import storage import sys #circuit python benchmark print("\n---- CircuitPython Benchmark ----") print("Verison: " + str(sys.implementation[1][0]) + "-" + str(sys.implementation[1][1])+"-"+str(sys.implementation[1][2])) circuitpythonversion = str(sys.implementation[1][0]) + "-" + str(sys.implementation[1][1])+"-"+str(sys.implementation[1][2]) #GPIO led = DigitalInOut(board.D13) led.direction = Direction.OUTPUT start = time.monotonic() for i in range(0,100000): led.value = True led.value = False print("GPIO on/off benchmark: ", time.monotonic()-start) out = 0 start = time.monotonic() for i in range(0,100000): out= out+i+i print("Integer sum: ", time.monotonic()-start) out = 0 start = time.monotonic() for i in range(0,100000): out= out + i*i print("Integer multi: ", time.monotonic()-start) out=0.1 start = time.monotonic() for i in range(0,100000): out=out+i+0.1 print("Float sum: ", time.monotonic()-start) out=0.1 start = time.monotonic() for i in range(0,100000): out=i*0.1*out print("Float multi: ", time.monotonic()-start) out=0.1 start = time.monotonic() for i in range(0,100000): out=i/0.1 + out print("Float divide multi: ", time.monotonic()-start)

出力結果

picocom /dev/ttyACM0 -b115200 >>> import benchmark ---- CircuitPython Benchmark ---- Verison: 6-0-0 GPIO on/of>>> import test ---- CircuitPython Benchmark ---- Verison: 6-0-0 GPIO on/off benchmark: 2.65405 Integer sum: 3.53296 Integer multi: 4.71899 Float sum: 1.97998 Float multi: 2.0022 Float divide multi: 2.03687 >>> f benchmark: 2.65405 Integer sum: 3.53296 Integer multi: 4.71899 Float sum: 1.97998 Float multi: 2.0022 Float divide multi: 2.03687 >>>

Performance Test

performanceCircuitPython.py

# Peformace Test CircuitPython from time import monotonic_ns def performanceTest(): endTime = monotonic_ns() + 10000000000 # 10 sec count = 0 while monotonic_ns() < endTime: count += 1 print("Count: ", count) performanceTest()

出力結果(例):
Count: 370819

参照URL

Introducing the CircuitPython on Wio Terminal

Build CircuitPython
Adding Frozen Modules

Adafruit CircuitPython API Reference(v5.x)

CircuitPython Essentials
Example Code

以上

続きを読む "Wio-TerminalにCircuitPythonをインストールする"

| | コメント (0)