LoginSignup
1
1

More than 3 years have passed since last update.

チラ裏PYNQ 1.Lチカ*

Last updated at Posted at 2020-02-02

あらすじ

とりあえずセットアップまでやりました
その後とりあえずの目標のLチカをすべく公式の文書を読み進めていたのですが

全然わからん

オーバーレイがうんたらかんたら言っていますが正直全く理解できなかった

というわけで分かりやすい文書を探したところ
このPYNQ_Workshopなるものが分かりやすそうなきがしたので

これを進めることにしました

ワークショップ開始

とりあえずgithubからWorkshopのデータを落として
エクスプローラで
\\pynq
を検索すればpynqのデータにアクセスできるので 
Workshopのデータを転送

あとはpdfとノートをよみすすめればOK 

Session1

session1 の大半はpythonやlinuxの話でPYNQ独自の話はないですね

がSession1の最後にはLEDの操作があります、
目標達成と思いきや

あれ

これ

CPUから操作してるだけじゃん
これじゃあ、ラズパイいじっているのと変わらん

最後に問題があったのでとりあえず解きましたが
ただのpython の練習じゃん

Session1はお前らこのくらいは知っているよなというのを確認するためのモノでした
次のsessionに期待しましょう

4_Programming_onboard_peripherals
from pynq.overlays.base import BaseOverlay
base = BaseOverlay("base.bit")
from pynq.lib import LED, Switch, Button

import time

# Set the number of Switches
MAX_LEDS =4
MAX_SWITCHES = 2
MAX_BUTTONS = 4

leds = [base.leds[index] for index in range(MAX_LEDS)]
switches = [base.switches[index] for index in range(MAX_SWITCHES)] 
buttons = [base.buttons[index] for index in range(MAX_BUTTONS)] 

led_ON = 0
led_addr = 0
led_mode = 0
toggle_speed = 1 

for i in range(1000):
    # ボタンを認識する
    if buttons[0].read():
        led_ON = led_ON ^ 1

    if buttons[1].read():
        if switches[0].read():
            if led_addr == 3:
                led_addr = 0
            else:
                led_addr += 1
        else:
            if led_addr == 0:
                led_addr = 3
            else:
                led_addr -= 1

    if buttons[2].read():
        led_mode = led_mode ^ 1

    if buttons[3].read():

        if toggle_speed == 4:
            toggle_speed = 1
        else:
            toggle_speed += 1

    # 指定したLED以外をOFF
    for j in range(MAX_LEDS) :
        if j != led_addr:
            leds[j].off()

    # モードに応じてLEDを操作
    if led_ON == 0:
        leds[led_addr].off()
    elif led_mode == 0:
        leds[led_addr].on()
    elif i%toggle_speed == 0:
        leds[led_addr].toggle()

    time.sleep(.1)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1