PYNQ Z1原厂官方入门指导手册_v2.0



    海浦东新区张东路 1387 号 45 幢
    电话:+862158893151
    邮箱:chinasales@digilentcomcn

    wwwdigilentcomcn
    PYNQZ1 官方入门指导手册

    份指导手册中说明配置硬件软件台通四实例学
    Python PYNQZ1 开发板编程指导手册容包括:
    • 软硬件准备
    • PYNQZ1 硬件设置
    • 连接 Jupyter 进行线编程
    • 4 PYNQ 入门例程实践

    PYNQZ1 程中问题欢迎访问:
    wwwDIGILENTcomcncommunity (中文) wwwPYNQio(英文)进行 反馈寻求
    支持




    2

    指导手册目录
    指导手册目录 2
    1 PYNQ 简介 3
    2 Jupyter Notebook 简介 4
    3 软硬件准备 4
    4 PYNQZ1 硬件设置 5
    5 连接 Jupyter 进行线编程 7
    6 PYNQ 入门例程实践 14
    实验:键控制 LED 14
    实验二:录音音频处理 16
    实验三: PmodOLED 19
    实验四:面部识 21









    3

    1 PYNQ 简介
    PYNQZ1 开发板支持 PYNQ 项目新开源框架嵌入式编程员够
    需设计编程逻辑电路情况充分发挥 Xilinx Zynq All Programmable SoC(APSoC)
    功常规方式通 PYNQ户 Python 进行 APSoC 编程
    代码直接 PYNQZ1 进行开发测试通 PYNQ编程逻辑电路作硬件
    库导入通 API 进行编程方式导入编程软件库基相

    PYNQZ1 开发板 PYNQ 开源框架硬件台 ARM A9 CPU 运行软件包括:
    • 载 Jupyter Notebooks 设计环境网络服务器
    • IPython 核程序包
    • Linux
    • FPGA 基硬件库 API




    4

    2 Jupyter Notebook 简介
    Jupyter Notebook 基浏览器交互式编程计算环境 Jupyter Notebook 编
    程时文件里包含代码画图注释公式图片视频 PYNQ 开发板安装
    镜文件 Jupyter Notebook 里轻松 Python 编程硬件库 Overlay
    控制硬件台交互

    3 软硬件准备
    1) 硬件准备
     PYNQZ1 开发板
     太网线
     Micro USB 数线
     空白 Micro SD 卡(少 8GB 容量)

    2) 软件准备
     电脑安装支持 Jupyter 浏览器

    提示:浏览器新稳定版支持 Jupyter Notebook*:
    ✓ Chrome
    ✓ Safari
    ✓ Firefox

    * Jupyter Notebook WebSockets 变沙箱模型决定

    支持 Jupyter 浏览器:
     Safari低版 5
     Firefox低版 6
     Chrome低版 13
     全部 Opera:CSS 渲染原导致执行时
     Internet Explorer 浏览器低版 10
     Internet Explorer 浏览器版 10 ( Opera)
     基 IE 360 浏览器

    * 请注意Safari HTTPS(SSL 安全加密超文链接协议)信证书法正
    常工作( WebSockets 法正常工作)


    5
     获取镜文件
     载 PYNQZ1 镜文件解压
     空白 SD 卡插入电脑(需 8GB 容量)烧写镜文件
     Windows 系统: win32DiskImager 烧写Image File 选择载
    镜文件Device 选择 SD 卡位置般会动分配 E 盘 F 盘
     Linux 系统MacOS:系统带 dd 命令操作系统烧写
    Micro SD 操作细节参考教程 Writing the SD card image
    4 PYNQZ1 硬件设置
    1 图示跳帽插边两排针设置 boot 跳线(板标记 JP4) SD
    位置选择 SD 卡驱动
    2 想通 Micro USB 线 PYNQZ1 进行供电需图示跳帽插边两
    排针设置电源跳线(JP5) USB 位置( 12V 外部电源 PYNQ

    6

    Z1 进行供电跳帽插边两排针设置电源跳线(JP5) REG 位
    置)
    3 已安装镜文件 SD 卡插入 SD 卡槽(图示SD 卡槽开发板方右侧边缘)
    4 Micro USB 线 PYNQ 开发板 PROG UART(J14)接口连接电脑
    PYNQ 供电作串口通信
    5 网线 PYNQ 开发板连接路器电脑(根网线端口选择续操作会
    )*
    6 开关拨 ON 开 PYNQ等系统启动约分钟两蓝色 LED
    四黄绿色 LED 时闪动蓝色 LED 关闭四黄绿色 LED 灯亮时系统
    启动完毕

    * 关板载太网连接详细说明
    PYNQZ1 太网接口设备连接:
     连接路器者交换机电脑网络
     直接连电脑太网接口

    话请开发板连接具太网访问网络更新板子
    软件安装新软件包

    • 连接网络
    果通 DHCP 服务器连接局域网络板子会动获取 IP 址必
    须保证足够权限通网络访问设备否板子法正常访问

    路器网络交换机(DHCP)
    1 板载太网接口连接路器交换机
    2 通浏览器访问 httppynq9090
    3 更改机名称(根身需求)
    4 配置代理(根身需求)

    • 直接连接电脑
    时需台太网接口电脑时需拥配置网络接口权限通直接
    相连访问 PYNQZ1 里需注意非太网电脑

    7

    具 Internet 访问连接进行桥接否 PYNQZ1 法访问 Internet 没
    Internet 连接情况更新者加载新软件包

    直接连接电脑(静态 IP)
    1 电脑配置静态 IP
    2 板载太网接口电脑直接相连
    3 访问 http1921682999090
    *配置静态 IP 请参见 Assign your PCLaptop a static IP address

    5 连接 Jupyter 进行线编程
    果PYNQ 通网线连接路器PYNQ 动分配址开 httppynq9090
    户名密码 xilinx输入进入界面

    果 PYNQ 通网线连接电脑需先设置电脑 IP 址参考 Assign your
    PCLaptop a static IP address然开 http1921682999090样输入户名
    密码 xilinx进入界面



    8

    默认机名 pynq默认静态 IP 址 192168299果改变机名称者板
    子静态 IP 址需改变访问址第次连接时电脑会花费秒钟时
    间确定机名 IP 址

    PYNQ 通 Jupyter Notebook 形式提供种示例文档网页形式浏览示
    例项目文档者果正运行 PYNQ 镜板子交互式查运
    行 Notebook 文档

    Jupyter 页 Getting_Started 文件夹中找 Notebook 文档
    里许示例文档展示种板载设备

    外提供样例展示板载外围设备



    9

    目前已示例文档进行分类:
     common 针性 overlay 示例项目
     base PYNQZ1 base overlay 相关示例项目
     logictools PYNQZ1 logictools overlay 相关示例项目
    开笔记作出修改者执行代码片段notebook 文档会更改
    需开新 notebook 时做备份果需恢复原始版
    PYNQ Github 项目页面载全部笔记

    Running 栏正运行项目


    • 访问板载文件
    PYNQ 板运行文件享服务:Samba通板子目录作网
    络驱动器访问时文件板子电脑间传递

    Windows 访问 PYNQ 目录键入:
    \\pynq\xilinx # If connected to a NetworkRouter with DHCP

    \\192168299\xilinx # If connected to a Computer with a Static IP

    者 Linux :
    smbpynqxilinx # If connected to a NetworkRouter with DHCP

    smb192168299xilinx # If connected to a Computer with a Static IP




    10

    然会跳出图:

    Samba 服务器户名密码 xilinx
    注意:果必请修改机名IP 址

    • 更改 hostname
    果连接 PYNQZ1 开发板已连接入网络建议立更改
    机名称通常种情况工作者校园环境会较常见PYNQ 默认 hostname
    pynq 终 端 嵌 Jupyter 中 Jupyter 页 pynq9090 界面中 开
    New>>Terminal root 权限浏览器中开终端:

    Terminal 里输入指令更改 hostname(希板子设置机名换
    NEW_HOST_NAME 位置):
    sudo homexilinxscriptshostnamesh NEW_HOST_NAME


    11


    然需重启 PYNQ 生效(新机名重新连接):
    sudo shutdown r now

    注意:果 root 权限登录需 sudo果 xilinx 进行登录sudo
    必须添加命令前果访问板子浏览面步骤通 micro USB
    线开终端

    • 通 USB 接口连接电脑终端
    果需修改板载设置法访问通 Jupyter 访问终端助 USB 接口
    通电脑终端控制 PYNQ时需安装终端工具 PuTTY 者 Tera Term
    开终端需知道开发板 COM 端口

    Windows 控制面板开 Windows 设备理器进行查
     开设备理器展开端口项
     找 USB 串口 COM 端口例 COM5

    旦知道 COM 端口开 PuTTY 列设置:
     选择 Serial
     输入 COM 端口号
     输入波特率
     然点击 Open 启动

    终端窗口中 Enter(回车)确保命令行:
    xilinnx@pynqhomexilinx#

    12

    完整终端设置:
    • 115200 baud
    • 8 data bits
    • 1 stop bit
    • No Parity
    • No Flow Control

    终端中回车键出现 xilinx@pynq~输入指令控制 pynq输入 hostname
    查名称输入 ifconfig 查 IP 址等
    < 端口

    13



    • 设置代理
    果开发板连接代理网络中需板设置代理服务器方
    教程开终端输入列命令my_http_proxy8080my_https_proxy8080更改
    设置:
    set http_proxymy_http_proxy8080
    set https_proxymy_https_proxy8080















    14

    6 PYNQ 入门例程实践
    面四实验作例子简单介绍 Jupyter 线编程工具
    python 语言 PYNQ 编程需更资料示例项目查:wwwpynqio

    实验:键控制 LED
    开 base>board 文件夹中 board_btn_ledsipynb 文件点击工具栏 run 图标者选
    择 Cell>Run 运行代码


    项目中 PYNQ 开发板键 0 改变彩色 LED 颜色键 1 开启右
    左流水灯键 2 开启左右流水灯键 3 结束运行

    代码:
    #导入 PYNQ 开发板支持文件
    from time import sleep
    from pynqoverlaysbase import BaseOverlay

    base BaseOverlay(basebit)

    Delay1 03
    Delay2 01
    color 0
    #定义寄存器
    rgbled_position [45]

    for led in baseleds
    ledon()
    while (basebuttons[3]read()0)
    if (basebuttons[0]read()1)

    15

    color (color+1) 8
    for led in rgbled_position
    basergbleds[led]write(color)
    basergbleds[led]write(color)
    sleep(Delay1)

    elif (basebuttons[1]read()1)
    for led in baseleds
    ledoff()
    sleep(Delay2)
    for led in baseleds
    ledtoggle()
    sleep(Delay2)

    elif (basebuttons[2]read()1)
    for led in reversed(baseleds)
    ledoff()
    sleep(Delay2)
    for led in reversed(baseleds)
    ledtoggle()
    sleep(Delay2)

    print('End of this demo ')
    for led in baseleds
    ledoff()
    for led in rgbled_position
    basergbleds[led]off()





    16

    实验二:录音音频处理
    进入 base>audio 文件夹点击 audio_playbackipynb

    代码分成代码块段代码前解释段功点击工具栏 run 图标
    者选择 Cell>Run 次运行面代码块运行中代码块会标[*]图时应
    该等运行结束进行步操作运行结束[*]会变成数字表示第段
    运行代码记录序



    17

    Python 代码:
    #创建新音频象
    from pynqoverlaysbase import BaseOverlay
    base BaseOverlay(basebit)
    pAudio baseaudio
    # 录制三秒音频文件保存
    pAudiorecord(3)
    pAudiosave(Recording_1pdm)
    # 播放刚录制音频文件
    pAudioplay()

    # 加载预先录制音频文件播放
    pAudioload(homexilinxpynqlibtestspynq_welcomepdm)
    pAudioplay()

    #预处理
    #首先 32 位整型缓器转换位 16 位然 16 位字分带位采样 8 位字
    import time
    import numpy as np

    start timetime()
    af_uint8 npunpackbits(pAudiobufferastype(npint16)
    byteswap(True)view(npuint8))
    end timetime()

    print(Time to convert {d} PDM samples {02f} seconds
    format(npsize(pAudiobuffer)*16 endstart))
    print(Size of audio data {d} Bytes
    format(af_uint8nbytes))

    #通抽取方式 PDM 信号转换 PCM 格式采样率 3MHz 降 32kHz
    import time
    from scipy import signal

    start timetime()
    af_dec signaldecimate(af_uint88zero_phaseTrue)
    af_dec signaldecimate(af_dec6zero_phaseTrue)
    af_dec signaldecimate(af_dec2zero_phaseTrue)
    af_dec (af_dec[1010]af_dec[1010]mean())
    end timetime()
    print(Time to convert {d} Bytes {02f} seconds
    format(af_uint8nbytes endstart))
    print(Size of audio data {d} Bytes
    format(af_decnbytes))
    del af_uint8

    #浏览器中播放转换完音频信息
    from IPythondisplay import Audio as IPAudio
    IPAudio(af_dec rate32000)


    18

    #绘制 PCM 数
    # 信号时间推移振幅
    matplotlib inline
    import numpy as np
    import matplotlibpyplot as plt

    pltfigure(numNone figsize(15 5))
    time_axis nparange(0((len(af_dec))32000)132000)
    plttitle('Audio Signal in Time Domain')
    pltxlabel('Time in s')
    pltylabel('Amplitude')
    pltplot(time_axis af_dec)
    pltshow()

    #绘制信号频谱(振幅)
    from scipyfftpack import fft

    yf fft(af_dec)
    yf_2 yf[1len(yf)2]
    xf nplinspace(00 320002 len(yf_2))

    pltfigure(numNone figsize(15 5))
    pltplot(xf abs(yf_2))
    plttitle('Magnitudes of Audio Signal Frequency Components')
    pltxlabel('Frequency in Hz')
    pltylabel('Magnitude')
    pltshow()

    #绘制传统时间推移信号频谱图
    import matplotlib

    npseterr(divide'ignore'invalid'ignore')
    matplotlibstyleuse(classic)
    pltfigure(numNone figsize(15 4))
    plttitle('Audio Signal Spectogram')
    pltxlabel('Time in s')
    pltylabel('Frequency in Hz')
    _ pltspecgram(af_dec Fs32000)








    19

    实验三: PmodOLED
    base>pmod 文件夹里提供种 Pmod 设备程序里 PmodOLED 例

    PYNQ 处关闭状态时 PmodOLED 插入 PYNQ JA 接口图然电等
    四黄绿色 LED 亮起说明已启动

    然开 pynq9090找 base>pmod 文件夹 pmod_oledipynb 文件运行

    代码:
    #导入 io 定义
    from pynqoverlaysbase import BaseOverlay
    from pynqlib import Pmod_OLED

    base BaseOverlay(basebit)

    20

    #初始化连接 PmodOLED PmodA
    pmod_oled Pmod_OLED(basePMODA)

    #清屏输出字符
    pmod_oledclear()
    pmod_oledwrite('Welcome to the\nPynqZ1 board')

    #清屏输出新字符(尝试输出信息)
    pmod_oledclear()
    pmod_oledwrite('Python and Zynq\nproductivity & performance')

    #读取 ip 址输出
    def get_ip_address()
    ipaddr_slist hostname I
    ipaddr (ipaddr_slists)split( )[0]
    return str(ipaddr)

    pmod_oledclear()
    pmod_oledwrite(get_ip_address())












    21

    实验四:面部识
    PYNQ 开发板 HDMI IN 连接电脑 HDMI 接口PYNQ 开发板 HDMI OUT 连接
    显示器

    开 base>video 文件夹 opencv_face_detect_hdmiipynb提示次运行代码

    from pynqoverlaysbase import BaseOverlay
    from pynqlibvideo import *

    base BaseOverlay(basebit)
    hdmi_in basevideohdmi_in
    hdmi_out basevideohdmi_out

    #初始化
    hdmi_inconfigure(PIXEL_RGB)
    hdmi_outconfigure(hdmi_inmode PIXEL_RGB)

    hdmi_instart()
    hdmi_outstart()

    #输入检测图片(截屏)
    import PILImage
    frame hdmi_inreadframe()
    img PILImagefromarray(frame)
    imgsave(homexilinxjupyter_notebooksbasevideodataface_detectjpg)

    img

    # opencv 进行面部检测
    import cv2
    import numpy as np

    frame hdmi_inreadframe()

    face_cascade cv2CascadeClassifier(
    'homexilinxjupyter_notebooksbasevideodata'
    'haarcascade_frontalface_defaultxml')
    eye_cascade cv2CascadeClassifier(
    'homexilinxjupyter_notebooksbasevideodata'
    'haarcascade_eyexml')

    22


    gray cv2cvtColor(frame cv2COLOR_BGR2GRAY)
    faces face_cascadedetectMultiScale(gray 13 5)

    for (xywh) in faces
    cv2rectangle(frame(xy)(x+wy+h)(25500)2)
    roi_gray gray[yy+h xx+w]
    roi_color frame[yy+h xx+w]

    eyes eye_cascadedetectMultiScale(roi_gray)
    for (exeyeweh) in eyes
    cv2rectangle(roi_color(exey)(ex+ewey+eh)(02550)2)

    # OpenCV 面部识结果输出显示器
    hdmi_outwriteframe(frame)

    # Jupyter 中显示 OpenCV 面部识结果保存 JPEG 格式图片
    img PILImagefromarray(frame)
    imgsave(homexilinxjupyter_notebooksbasevideodataface_detectjpg)

    img

    #关闭 HDMI
    hdmi_outstop()
    hdmi_instop()
    del hdmi_in hdmi_out

    PYNQ 面部识输出结果:


    23


    意思手机拍摄 PYNQ 识结果时手机动图片进行面部识
    蓝色框 PYNQ 识结果黄色框 Iphone 识结果项目算
    法似略胜筹


    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载pdf到电脑,查找使用更方便

    pdf的实际排版效果,会与网站的显示效果略有不同!!

    需要 3 香币 [ 分享pdf获得香币 ]

    下载pdf

    相关文档

    基于PYNQ平台的手写数字识别

    PYNQ全称为Python Productivity for Zynq,即在原有Zynq架构的基础上,添加了对python的支持。Zynq是赛灵思公司推出的行业第一个可扩展处理平台系列,在芯片中...

    5年前   
    8721    0

    PLC试验指导手册

     实验一 与、或、非基本逻辑实验一、 实验目的1、 熟悉和掌握常用的基本指令的使用方法2、 熟悉编程器的使用方法3、 学会PLC-2型实验平台的使用方法二、 实验器材1、 PLC-2...

    3年前   
    653    0

    绩效管理指导手册

    《某某绩效管理--员工手册》 目录 前言:共建某某高绩效文化 第一部分 什么是某某的绩效管理 一、 目标 二、 原则 三、 核心内容 四、 各项工作时间表 五、 某某核心...

    13年前   
    30410    0

    手袋厂员工手册

    手袋厂员工手册 XX手袋厂行政部编制 目    录  公司简介 ……………………………………………………1 第一章   人事规章 1、      聘用与试用 ……………………………...

    10年前   
    10500    0

    领导通御指导手册

    目 录上级压制下属,一个永远无法解开的死结…………………………1保罗·盖蒂的用人术…………………………………………………5处理员工八个不要……………………………………………………15怎样使员...

    12年前   
    716    0

    管理指导工作手册

    第一部分   职能职责 项目经理岗位职责 1、项目经理是施工企业法人代表的代理人,代表企业对工程项目 全面负责。 2、遵守国家和地方政府的政策、法规,执行有关规章制度和上级指令,代表...

    8年前   
    5920    0

    TCL新员工指导手册

    Company Orientation新员工指导目 录1. TCL集团发展简介 31.1. 企业理念/战略目标 31.2. TCL集团组织结构 31.3. TCL集团大事记 42. TCL海...

    12年前   
    858    0

    领导通御指导手册

    目 录 上级压制下属,一个永远无法解开的死结…………………………1 保罗·盖蒂的用人术…………………………………………………5 处理员工八个不要………………………………………………...

    7年前   
    14954    0

    面试指导手册

    面试指导手册——供用人部门面试官使用行 政 中 心 编制2007年X月X日目 录第一部分 面试要项(1-3)一、 面试前二、 面试中三、 面试后第二部分 如何判断应聘者表述的真实性(4)第...

    3年前   
    759    0

    2018年大学毕业论文格式新手入门指导

    大学毕业论文格式新手入门指导  本文是毕业论文格式新手入门指导  1、论文格式的论文题目:(下附署名)要求准确、简练、醒目、新颖。  2、论文格式的目录  目录是论文中主要段落的简表。(短篇论...

    5年前   
    408    0

    ITOS DB Procedure V2.0

    ITOS DB运作办法(V2.01. 目的 ...

    10年前   
    537    0

    ITOS项目运作办法V2.0

    ITOS项目运作办法(V2.0) 1. 目的 ...

    12年前   
    596    0

    东莞某某电子厂员工手册

    东 莞**电 子 厂《 员 工 手 册 》(适用版)起用日期:2008年1月1日目录第一章:公司简介.................................................

    9年前   
    484    0

    XXXXXX印刷厂质量手册

    文件编号:FL/SC-A0******印刷厂 质 量 手 册(含程序文件)第A版编制:审核:批准:日期:文件发放号:颁 布...

    3年前   
    494    0

    《OTC经理营销战术指导手册

     严敬华 OTC经理营销战术指导手册 一、OTC区域市场规划区隔 (一)规划公司的区域市场 将目标市场依照地理条件加以分割为不同的区域市场。基于消费者需求大致相同为考虑范围,...

    13年前   
    5960    0

    党支部换届选举工作指导手册

     党支部换届选举工作 指导手册 党委组织宣传部 2019年3月 目 录 一、党支部换届选举工作程序...

    5年前   
    2595    0

    客户服务手册(终端建设指导教材)

     客户服务手册 第一章 你的职责 学习目标: 1、 懂得如何使用本手册; 2、 逐步熟悉你个人和工作职责 ...

    14年前   
    13995    0

    三会一课记录指导手册

    “三会一课”记录(指导手册)中共XX街道工作委员会印2020年1月目录支委会所记录的内容和要求 1支委会记录本格式 2(确定积极分子)支委会记录 3(确定发展对象)支委会记录 4(预备党员转正...

    3年前   
    847    0

    某公司销售指导手册

     销 售 指 导 手 册 目 录...

    7年前   
    20715    0

    面试者面试指导手册

    面试考官指导手册 面试指导手册 面试时间: 面试地点: 面试岗位: 、 ...

    9年前   
    20619    0