《使用PYNQ-Z2开发板完成超声测距》

本文介绍了使用PYNQ-Z2开发板完成超声波测距的课程设计,包括系统设计思路、具体模块实现方法及测试效果。通过编程实现了超声波传感器的连接、距离计算以及根据距离控制LED灯亮度的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.实验要求

利用PYNQ-Z2上的Arduino接口,获取超声波测距模块的信息。基本配置如下:

f02f30e8357a4eafad8a66f9333743f6.png


在实现的过程中,你需要参考PYNQ社区的技术博客【1】的内容,完成以下任务:
任务一:在PYNQ-Z2开发板上对处理器核进行编程,打印出“Helloworld”;
任务二:完成传感器与开发板的连接,向超声波传感器发送脉冲信号,并计算测量距离;
任务三:将测量距离以LED灯亮度的形式进行显示,距离越长,亮灯越多。

评分说明:三个任务中完成前两个最高可获得成绩“良”;完成前三个任务最高可获得成绩“优”。

2. 系统设计思路

2.1 线路连接

ba7abdceb9a94b19921845df59397b4f.jpeg

图3-1 连接图

2.2 交互代码

    在该实验当中,我们需要对开发板进行编程交互,其中交互平台为jupyter,由于网站只能用python,所以编程语言为python ,这里这是将代码列出来,具体的分析在“3.3具体模块实现方法”处

第一个任务:打印出“Helloworld”

代码如下:

print("Hello World")

第二个任务:向超声波传感器发送脉冲信号,并计算测量距离

代码如下:

首先要定义头文件访问库,以及连接方式:

from pynq.overlays.base import BaseOverlay
from time import sleep
from pynq_peripherals import ArduinoSEEEDGroveAdapter, PmodGroveAdapter

base = BaseOverlay('base.bit')
adapter = ArduinoSEEEDGroveAdapter(base.ARDUINO, D6='grove_usranger')
usranger = adapter.D6

接下来是测距代码:

data_count = 0
while data_count < 10:
print('distance: {:.2f} cm'.format(usranger.get_distance()))
    sleep(1)
data_count += 1

接下来是任务三:将测量距离以LED灯亮度的形式进行显示,距离越长,亮灯越多。

代码如下:

from pynq.overlays.base import BaseOverlay
from time import sleep
from pynq_peripherals import ArduinoSEEEDGroveAdapter, PmodGroveAdapter

base = BaseOverlay('base.bit')
adapter = ArduinoSEEEDGroveAdapter(base.ARDUINO, D6='grove_usranger')
usranger = adapter.D6

leds = [base.leds[i] for i in range(4)]
data_count = 0
while data_count < 10:
    try:
        print('distance: {:.2f} cm'.format(usranger.get_distance()))
        distance = usranger.get_distance()
        if distance <= 10:
            brightness = 0
        elif distance <= 20 and distance > 0:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值