Picot チュートリアル22

■アニメーション

サーボ駆動のタイマーを利用してアニメーションさせてみます。ランダムなタイミングで瞬きするように、サーボ更新のタイミングでランダムに目を消します。whileループの中のサーボ駆動のコードの下に追加します。

リスト22-1 robot_blink.py(部分)

import random
# ***** 省略 *****
blink = 0
while True:
    # *** Remote ***
    # 省略
    # *** Servo ***
    if servo_flag == True:
        servo_flag = False
        # サーボ駆動
        for i in range(12):
            servo[i].duty_u16(get_pulse_width(int(temp_angle[i]) + correction[i]))
        if random.randrange(100) == 0: #100回に1回の確率で
            blink = 1           #目を閉じた
            fill_circle(32,22,15,0)     #目を黒く塗りつぶす
            fill_circle(96,22,15,0)
            display.show()
        if blink == 1:                     #目を閉じていたら
            blink = 0
            fill_circle(32,22,15,1)     #目を描く
            fill_circle(96,22,15,1)
            display.show()

random.randrange(x)は0からx-1までの整数をランダムに返しますので、

        if random.randrange(100) == 0:

は100回に1回の確率で成立して中身が実行されます。この時は「blink」変数を1にして、次回(30ミリ秒後)下のif文が実行されて目を再描画します。

Picot チュートリアル インデックス >>
Picot チュートリアル 23 情報を表示 >>

コメント

タイトルとURLをコピーしました