#ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#■出典0: NeoPixel の制御(これが最新かつこれだけで情報として十分足りる)
#https://micropython-docs-ja.readthedocs.io/ja/latest/esp8266/tutorial/neopixel.html
#ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
from machine import Pin
#NeoPixelライブラリ
from neopixel import NeoPixel
#乱数
import random
import time
#8行のLEDを2行ずつのZoneに分けて点灯させる
num_row_matrix = 8
num_column_matrix = 8
num_row_zone = 2
total_zone = 4
# 8ピクセル用の NeoPixel インスタンスを GPIO 28 で作成
pin_np = Pin(28, Pin.OUT) # NeoPixel 駆動のための GPIO 28 を出力に設定
np = NeoPixel(pin_np,num_row_matrix*num_column_matrix )
#8色RGBをリスト化[番号、R,G,B、色名]
colour_neopixel = [
[0,8,8,8,"white"],
[1,0,0,0,"black"],
[2,8,0,0,"red"],
[3,0,0,16,"blue"],
[4,8,8,0,"yellow"],
[5,0,8,0,"green"],
[6,8,3,0,"orange"],
[7,8,2,6,"pink"]
]
# 1万回くりかえし、各ゾーン毎に色ランダム
for n in range(10000):
colour_zone_0 = random.randint(0,7)
colour_zone_1 = random.randint(0,7)
colour_zone_2 = random.randint(0,7)
colour_zone_3 = random.randint(0,7)
#ゾーンの色をリストセット
num_colour_zone = [colour_zone_0,colour_zone_1,colour_zone_2,colour_zone_3]
#ゾーン毎にリストにセットした色を各ピクセルに設定
for num_zone in range (0,total_zone):
num_colour = num_colour_zone[num_zone]
total_pixcel_zone = num_row_matrix*num_row_zone
start_pixel = num_zone*total_pixcel_zone
end_pixel = start_pixel + total_pixcel_zone
for num_pixel in range (start_pixel,end_pixel):
np[num_pixel] = (colour_neopixel[num_colour][1],colour_neopixel[num_colour][2],colour_neopixel[num_colour][3])
#発光
np.write()
print (n)
time.sleep(0.2)
#おまけ
colour_r, colour_g, colour_b = np[0] # 第1ピクセルの色を取得
print(colour_r,colour_g,colour_b)