PYNQ 您所在的位置:网站首页 清气在下则生飧泄浊气在上则生瞋胀的主要病机是什么 PYNQ

PYNQ

2023-04-01 02:55| 来源: 网络整理| 查看: 265

目录

 

前言

正文

结尾

前言

转眼间,接触PYNQ开发板已经将近一个月时间了,对许多东西也有了不同程度的理解。本篇主要根据官方文档的指引,对板子上外围设备的使用方法进行介绍,包括LED灯、button按钮和switch等的使用方法。此处对外围设备的操作是通过PS端python编程实现的!

正文

在开发板的pynq文件夹下,有许多相对丰富的用python编写的示例代码,我们可以参考着文档对这些代码进行学习和理解。本篇涉及的东西与python语法中的类和对象等有关,如果有遗忘的地方可以提前复习一下。

手册链接:https://pynq.readthedocs.io/en/v2.5.1/overlay_design_methodology/overlay_tutorial.html

通过共享文件夹进入开发板的pynq文件夹,进入lib文件夹,如图

一、首先,打开jupyter-notebook,并新建一个python3文件,输入如下代码。

from pynq.overlays.base import BaseOverlay #从base.py文件中导入BaseOverlay类 #base.py文件在\\192.168.0.104\xilinx\pynq\overlays目录下(192.168.0.104是我的开发板的ip,你的需要更改)

二、然后对BaseOverlay进行实例化。

base = BaseOverlay('base.bit') #BaseOverlay类的bit_file参数,我们使用base.bit #此bit文件和base.py文件在同一目录下。

三、操作外设

(1)四个单色LED

参考手册https://pynq.readthedocs.io/en/latest/pynq_package/pynq.lib/pynq.lib.led.html,打开源码(source)可知,一个名为LED的子类被定义,此子类中含有三个方法,分别是控制LED灯的on(),off(),toggle()。开、关和切换。(这里打开lib文件夹下的led.py也可以看到源码)

源码如图

下面代码演示如何使用:

base.leds[0].on() #打开第一个LED灯 base.leds[0].off() #关闭第一个LED灯 base.leds[1].toggle() #切换第二个LED灯的状态,即由亮到灭或由灭到亮

演示流水循环点亮熄灭四个LED灯:

from time import sleep while(True): for led in base.leds : led.toggle() #状态切换 sleep(0.5) #延时0.5s

(2)两个RGBLED

同上,参考https://pynq.readthedocs.io/en/latest/pynq_package/pynq.lib/pynq.lib.rgbled.html,或者lib文件夹下的rgbled.py文件。共有四个方法,分别是on(),off(),write()和rea(),其中on()和write()带参数,即颜色编号。

手册图:

源码文件:划线部分是对不同颜色进行编号

下面代码演示如何使用多色LED灯:

base.rgbleds[4].on(6) #LED4亮,并且颜色为6对应的YELLOW base.rgbleds[5].write(6) #LED5亮,并且颜色为6对应的YELLOW #此处解释一点,write方法和on的效果是一样的,都是对管脚写入颜色编号。 #read方法指,读取此时LED灯的管脚颜色编号,可自行验证

下面演示流水改变LED灯的颜色:

from time import sleep i = [0,1,2,3,4,5,6,7] #颜色编号组成的列表 while(True): for a in i : #循环读取列表中的颜色编号 base.rgbleds[5].on(a) base.rgbleds[4].on(a) sleep(0.5)

(3)四个Button

同上,参考https://pynq.readthedocs.io/en/latest/pynq_package/pynq.lib/pynq.lib.button.html,或者button.py文件。

共有两个方法,一个是read(),读取当前某一按钮的值,另一个是wait_for_value(),等待按键按下或释放。

下面简单演示如何使用:

base.buttons[0].read() #读取此时按钮0的值,如果按钮未按下,值为0,按下则为1 base.buttons[0].wait_for_value(0) #1 to wait for press or 0 to wait for release

(4)两个switch

同上,参考https://pynq.readthedocs.io/en/latest/pynq_package/pynq.lib/pynq.lib.switch.html,或者switch.py文件。

共有两个方法,一个是read(),读取当前某一开关的值,另一个是wait_for_value(),等待开关上下拨动。

下面简单演示如何使用:

base.switches[0].read() #读取当前开关0的值 base.switches[0].wait_for_value(1) #1 for the switch up and 0 for the switch down 结尾

到这里,关于这几个外设的基本使用方法就介绍完了,这些是整体项目中的一砖一瓦,很显然,借助官方的base.bit文件,我们可以很方便的操作这些外设!

本篇博客到此就结束了,文中有不严谨之处欢迎批评指正,下方评论交流,韭菜会尽快回复的!

但行努力,莫问前程,如果您觉着文章有用,请点赞鼓励,谢谢!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有