技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

Circuit Playground Express の各種機能を試す

環境:

  • Circuit Playground Express (Bootloader3.10.0)
  • Circuit Python v5

ボタン AB 認識

import board
import time
from digitalio import DigitalInOut, Direction, Pull

# LED definition
led = DigitalInOut(board.D13)
led.direction = Direction.OUTPUT

# A button definition
ButtonA = DigitalInOut(board.BUTTON_A)
ButtonA.direction = Direction.INPUT
ButtonA.pull = Pull.DOWN # Dont push value define.

# B BUTTON DEFINITION
ButtonB = DigitalInOut(board.BUTTON_B)
ButtonB.direction = Direction.INPUT
ButtonB.pull = Pull.DOWN

# Button change delay
delay = 0.1

# Execution loops.
while True:
    delay = 0.05 if ButtonA.value else 0.1
    delay = delay * 10 if ButtonB.value else delay
    led.value = True
    time.sleep(delay)
    led.value = False
    time.sleep(delay)

やってみると分かるけど、ボタンを押している間だけ LED の点滅速度が変化するやつ。
CircuitPython で利用できる基本 APIこのへん に落ちてた。
うんドキュメント、ないね☆

カラー LED を光らせる(簡易イルミネーション)

import time
import board
import neopixel

# neopixcel って LED の名前らしい。てか Pixcel というだけあって、RGB カラーで光らせられる
npx = neopixel.NeoPixel(board.NEOPIXEL, 10, auto_write=False)
loop = 0

# カラーテーブルを定義して
colors = [
    (128, 0, 128),
    (255, 0, 0),
    (128, 128, 0),
    (0, 255, 0),
    (0, 128, 128),
    (0, 0, 255)
]

while True:
    # カラーテーブルの順序に従って色を変える
    # 光らせる順序は反時計
    loop += 1
    loop = 0 if loop >= len(colors) else loop
    col = colors[loop]

    for pp in range(10):
        npx[pp] = col # RGB で書き込む
        npx.show()
        time.sleep(0.2)

f:id:white-azalea:20200630190229j:plain