#ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#■出典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)