あらすじ
とりあえずセットアップまでやりました
その後とりあえずの目標の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)