如何在ZYBO平台上构建Wi-Fi机器人

电子说

1.2w人已加入

描述

步骤1:组装机器人机箱

组装阴影底盘并将减速电机和编码器连接到底部框架。 ZYBO,面包板和超声波传感器可以使用提供的部件进行安装,可以使用支架和双面胶带进行3D打印和固定到机箱。电池应安装在机器人背面附近,最好安装在顶部和顶部之间。底部框架。将路由器靠近ZYBO和DC/DC转换器靠近面包板。将轮子连接到最后的减速电机。

步骤2:电线电子设备

ZYBO

将DC/DC转换器的输入和输出分别连接到面包板上的两个电源轨。这些将用作系统的12V和5V电源。将ZYBO连接到5V导轨,如图所示。使用USB Micro-B电源线将路由器连接到5V电源轨。 XT60电缆应连接到12V导轨。在其余电子设备正确接线之前,请勿插入电池。超声波传感器应连接到5V导轨。使用ZYBO上的Pmod端口JC的引脚6在面包板上创建3.3V电压轨。逻辑转换器的高压输入应连接到5V轨,而逻辑转换器的低压输入应连接到3.3V轨。将电机编码器连接到3.3V电压轨。将电机驱动器的VCC1连接到5V导轨,并将VCC2连接到12V导轨。将所有EN引脚连接到5V并将所有GND引脚接地。

将超声波传感器的TRIG和ECHO引脚分别连接到逻辑转换器的HV1和HV2。 LV1应连接到JC4,LV2应连接到JC3。请参阅Pmod引脚分布图。将电机连接到电机驱动器。 Y1应连接到右电机的正极端子,Y2应连接到右电机的负极端子。同样,Y3应连接到左电机的正极端子,Y4应连接到左电机的负极端子。 A1,A2,A3和A4应分别映射到JB2,JB1,JB4和JB3。有关引脚编号,请参阅原理图。将JC2连接到右侧编码器,将JC1连接到左侧编码器。确保使用上拉电阻将这些信号连接到3.3V电压轨。非常,使用以太网电缆将ZYBO连接到路由器。

步骤3:在Vivado中创建框图

ZYBO

创建Vivado新的RTL项目。确保此时不指定任何来源。搜索“xc7z010clg400-1”并点击完成。下载encoder_driver.sv和ultrasonic_driver.sv。将它们放在自己的文件夹中。打开“工具”下的IP打包程序,然后选择打包指定的目录。将路径粘贴到包含编码器驱动程序的文件夹,然后单击“下一步”。单击“包IP”并重复超声波传感器驱动程序的过程。然后,导航到设置菜单中IP子部分下的存储库管理器。将路径添加到驱动程序文件夹,然后单击“应用”将它们包含在IP库中。

创建新的程序框图并添加“ZYNQ7处理系统”。双击该块并导入提供的ZYBO_zynq_def.xml文件。在“MIO Configuration”下,启用Timer 0和GPIO MIO。点击“确定”保存配置。添加3个“AXI GPIO”模块和4个“AXI Timer”模块。运行块自动化,然后是S_AXI的连接自动化。双击GPIO块以配置它们。一个模块应该是双通道,具有4位输入和4位输出。将这些连接外部连接并将其标记为SW用于输入,LED标记为输出。第二个块也应该是双通道,带有2个32位输入。最后一个GPIO块将是一个32位输入。使每个定时器模块的pwm0输出为外部。将它们标记为PWM0,PWM1,PWM2和PWM3。

将编码器驱动程序添加到程序框图中,并将CLK连接到FCLK_CLK0。将OD0和OD1连接到第二个GPIO模块的输入通道。使ENC外部并将ENC_0重命名为ENC。添加超声波传感器块并将CLK连接到FCLK_CLK0。使TRIG和ECHO外部并将TRIG_0重命名为TRIG,将ECHO_0重命名为ECHO。将RF连接到第三个GPIO模块。请参阅提供的框图以供参考。

在“源”窗格中右键单击您的程序框图文件,然后创建一个HDL包装器。务必允许用户编辑。添加提供的ZYBO_Master.xdc文件作为约束。点击“生成比特流”并休息一下。

步骤4:设置软件开发环境

转到“文件”下,将硬件导出到Vivado SDK。确保包含比特流。在“CORTEX_A9_Zynq_ZC702”中导入RTOSDemo项目。它将位于FreeRTOS安装目录中。创建一个新的Board Support Package,选择lwip202库。将RTOSDemo项目中引用的BSP更改为刚刚创建的BSP *。

*在编写此Instructable时,FreeRTOS似乎存在引用正确BSP的错误。要解决此问题,请使用与第一个相同的设置创建新的BSP。将引用的BSP更改为新的BSP,然后在构建失败后将其更改回旧的BSP。 FreeRTOS现在应该编译没有错误。随意删除未使用的BSP。

步骤5:修改演示程序

在“src”目录下创建一个名为“drivers”的新文件夹RTOSDemo。复制提供的gpio.h.将gpio.c,pwm.h,pwm.c,odometer.h,odometer.c,rangefinder.c,rangefinder.h,motor.h和motor.c文件放入“drivers”目录。

打开main.c并将mainSELECTED_APPLICATION设置为2.将“lwIP_Demo”下的main_lwIP.c替换为更新后的版本。 “lwIP_Demo/apps/BasicSocketCommandServer”下的BasicSocketCommandServer.c也必须使用新版本进行更新。不幸的是,导航到“FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos”并用提供的版本替换Sample-CLI-commands.c。构建项目并确保一切都成功编译。

步骤6:Flash固件到QSPI

ZYBO

使用“Zynq FSBL”模板创建一个名为“FSBL”的新应用程序项目。编译FSBL项目后,创建RTOSDemo项目的启动映像。确保在“引导映像分区”下选择“FSBL/Debug/FSBL.elf”作为引导加载程序。如果未列出该文件,请手动添加该文件的路径。

将ZYBO上的JP5跳线移至“JTAG”。使用USB Micro-B电缆将计算机连接到ZYBO。连接电池并打开ZYBO。运行Adept以确保计算机正确识别ZYBO。单击Vivado SDK中的“Program Flash”,并提供RTOSDemo中BOOT.bin文件和FSBL中FSBL.elf文件的路径。在点击“程序”之前,请务必选择“闪光后验证”。观察控制台以确保闪烁操作成功完成。然后,关闭ZYBO电源并断开USB电缆。将JP5跳线移至“QSPI”。

步骤7:配置无线接入点

电池仍然连接后,连接到路由器的Wi-Fi网络。默认的SSID和密码应位于路由器的底部。然后,导航到http://tplinkwifi.net并使用“admin”登录用户名和密码。运行快速设置向导,在启用DHCP的接入点模式下配置路由器。确保也更新设备的默认用户名和密码。完成后,路由器应自动重启进入接入点模式。

启动ZYBO并使用您指定的SSID连接到路由器。路由器很可能出现在IP地址192.168.0.100或192.160.0.101上。 ZYBO将被分配路由器没有的任何地址。要快速确定路由器的IP地址,可以从Windows的命令提示符运行“ipconfig”,或从Linux或MacOS的终端运行“ifconfig”。如果您仍然连接到路由器,您将看到其IP地址显示在无线接口旁边。使用此信息确定ZYBO的IP地址。要确认ZYBO的IP地址,您可以从命令行ping它或通过telnet连接它。

步骤8:运行Java程序

下载RobotClient.java并从命令行使用命令“javac RobotClient.java”编译该文件。运行命令“java RobotClient ”,其中“ip_address”是ZYBO的IP地址。如果在计算机和ZYBO之间建立成功连接,则将弹出控制GUI。聚焦窗口后,应使用键盘上的箭头键控制机器人。按退出按钮结束会话并断开与机器人的连接。

GUI将突出显示按下的键并在右上方显示电机输出。左侧的测距仪每2米填充一个条,最多10米。

步骤9:校准测距仪

板上的开关ZYBO可用于配置板载测距仪。最小检测距离 d 是作为开关输入 i 的函数给出的:

d = 50i + 250

输入的整数步长可在0到15之间变化。这意味着0.25米到1米的距离范围。在最小距离处,第一个LED将开始闪烁。激活的LED数量与对象的接近程度成正比。

步骤10:辅助功能

此机器人非常容易访问。由于其控制简单,只需一根手指即可完全控制。为了提高可访问性,可以添加对其他输入设备的支持。这可能允许禁用用户使用身体的不同部分来控制机器人。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分