4. znzpi IDE¶
现在我们来谈谈znzpi ide。znzpi ide是您用来编程znzpi AI相机的工具。它具有一个功能强大的文本编辑器, 一个实时图传客户端,直方图显示器,以及一个用于znzip AI 相机调试输出的集成串行终端。
无论如何,IDE或多或少都会被用到。我们在IDE中放入了许多东西,您应该堆IDE有所了解。
4.2. 文本编辑¶
znzpi IDE有一个专业的文本编辑器。 您可以对所有打开的文件进行无限撤消和重做,空格可视化(对于MicroPython非常重要),字体大小的控制以及查找和替换等。 查找和替换功能正则表达式与查找过程中捕获文本的能力相匹配,并使用捕获的文本进行替换。此外, 它也可以在更换时保存大小写。最后,查找和替换功能不仅在当前文件上起作用,而且还可以在文件夹中 的所有文件或znzpi IDE中的所有打开的文件上起作用。
除了漂亮的文本编辑环境之外,znzpi IDE还提供关于关键字的自动完成支持悬停工具提示。因此, 例如在znzpi IDE中用python输入 . 后,将会检测到您即将编写函数或方法名称,并会显示一个自动完成文本框。 一旦你写了函数/方法的名字,它也将引导你写入参数。最后,如果将鼠标光标悬停在任何关键字上, znzpi IDE将在工具提示中显示该关键字的文档。这两个特性使编辑脚本变得愉快!
4.3. 连接到您的znzpi AI相机¶
连接到您的znzpi AI相机在上一个教程页面 Hardware Setup
有详细介绍 。一旦解决了所有涉及编程固件等的启动问题, 只需点击znzpi IDE相机菜单中的连接按钮即可连接到您的znzpi AI相机。
znzpi IDE智能地连接并自动过滤所有不是znzpi AI相机的串行端口。如果只有一个znzip AI相机连接到您的电脑, 它会发现它,并立即连接。如果您有两个znzpi AI相机,它会询问您连接到哪个串行端口。请注意,znzpi IDE将记住您的选择, 以便下次如果连接znzpi AI相机的串行端口,您想连接的那个串行端口已经被选中。
连接到您的znzpi AI相机的串行端口后,znzpi IDE将尝试确定与您的znnpi AI相机相关的计算机上的USB闪存驱动器。 znzpi IDE会对USB闪存驱动器进行一些智能过滤,以便在可能的情况下自动连接到正确的USB闪存驱动器。 然而,它可能无法自动确定正确的一个,并会要求你帮忙,如果不行的话。与上面的串口一样, znzpi IDE将记住您的选择,因此下次连接时会自动突出显示您以前的选择。
备注
znzpi IDE需要将znzpi AI相机上的USB闪存与您的znzpi AI相机的虚拟串行端口相关联, 以便它可以解析编译错误消息并轻松打开带有错误的文件。它也需要 Save open script to znzpi Cam
命令的驱动信息。这就是说, znzpi IDE仍然可以在不知道znzpi Cam的USB闪存驱动器的情况下运行, 并且只会禁用依赖于此支持的功能。
最后,连接到znzpi AI 相机后,连接按钮将被替换为断开按钮。点击断开连接按钮,断开您的znzpi Ai相机。 请注意,断开连接会停止znzpi AI相机上正在执行的任何脚本。您也可以直接从电脑上拔下znzpi AI相机, 而无需断开连接,而znzpi IDE将检测到并自动断开您的znzpi AI相机。如果您的znzpi AI相机的程序崩溃, znzpi IDE也会检测到这一点,并断开您的znzpi AI相机。
备注
如果您的znzpi AI相机无响应,可能是在Windows / Mac / Linux上的串口驱动程序崩溃。 在Windows上,您将注意到这是一个不可操作的znzpi IDE进程,在任务管理器中没有任何窗口。 如果发生这种情况唯一的办法是重新启动计算机,因为杀不死的进程将阻止任何znzpi IDE的新实例连接到任何znzpi AI相机。 这个问题的存在是因为自Windows XP以来一直存在的未修复Windows bug。 在Mac / Linux上,同样的问题可能会发生,但更难遇到。基本上,至少在Windows上发生的事情是, 当USB虚拟串行端口驱动程序从znzpi AI相机程序崩溃变为无响应时,永远不会让znzpi IDE的串行线程从内核函数调用中返回, 这使得znzpi IDE的串行线程不可用。无论如何,我们做了大量工作来确保它不会发生,但要注意它仍有发生的可能。
4.4. 运行脚本¶
完成编辑代码并准备运行脚本后,只需单击znzpi IDE的程序菜单的上传按钮即可。 该脚本将被发送到您的znzpi AI程序编译成Python字节码,并由您的znzpi AI相机被触发的时候执行。
如果您的脚本中有任何错误,您的znzpi AI相机将发回编译错误显示在串口终端中,znzpi IDE将自动解析查找错误。 当znzpi IDE检测到错误时,它会自动打开错误的文件,并突出显示错误的行,同时显示一个错误消息框。这个功能可以节省大量的时间修复错误。
无论如何,如果你想停止脚本,只需点击停止按钮(在脚本运行时替换运行按钮)。请注意,由于程序运行结束或编译错误,脚本可以自动停止。 无论哪种情况,运行按钮都会再次出现。
备注
单击运行按钮时,znzpi IDE会自动扫描脚本中的导入,并复制znzpi AI相机中缺少的任何外部所需脚本。 当您单击“运行”按钮时,znzpi IDE还将自动更新znzpi AI相机上任何过时的外部模块。 znzpi IDE首先在您的个人“znzpi”文档文件夹中查找外部模块,然后查找示例文件夹。 znzpi IDE能够解析单个文件模块和目录模块。
4.5. 实时图传¶
znzpi IDE的特别之处在于实时图传客户端。这让你在处理你的代码的时候可以很容易地看到你的znzpi AI相机的实时视频。
在 sensor.snapshot()
调用时,znzpi AI相机会对当前图像进行快照,这并不会影响实时图传。
znzpi IDE的相机菜单中开始录像
Reocord
会对实时图传的视频进行保存。可以使用它来快速制作您的znzpi AI相机所看到的视频。 请注意,录制工作以30 FPS记录znzpi AI相机的实时图传视频。并且这些视频是以h.264协议压缩,并使用MP4作为封装的。使用停止录像后,可以使用系统的播放器播放,也可以用其他的工具进行格式转换。znzpi IDE的的
Zoom
按钮控制图传图像的缩放。根据您的需要启用或禁用该功能。znzpi IDE相机菜单中的断开
Disable
用来停止实时图传。 在实时图传时,您的znzpi AI相机会不断推送压缩的视频流到znzpi IDE。不用担心,这不会影响znzpi AI相机的性能。如果你想看看你的脚本在znzpi AI相机没有连接到你的电脑的情况下运行得有多快, 只需点击 断开Disable
按钮即可。当实时图传被禁用时,您将无法看到您的znzpi AI相机正在查看的内容, 但您仍然可以在串行终端中看到来自znzpi AI相机的调试输出。
最后,您可以右键单击在实时图传查看器中看到的任何图像,以将该图像保存到磁盘。此外, 如果通过单击并拖动来选择图传视频的区域,则可以将该区域保存到磁盘。请注意,在尝试将图传视频保存到磁盘之前, 应该停止脚本。否则,你可能得不到你想要的确切图像。
要取消选择实时图传中的某个区域,只需单击任意位置,而无需拖动即可删除选择。 但是,取消选择时可能创建一个像素选择区域,所以尝试单击帧缓冲区中的空白区域。
4.6. 直方图显示¶
znzpi IDE中的集成直方图显示主要是为了填充帧缓冲区查看器下的空白空间,并为您提供一些视觉效果。 然而,对于得到关于房间中照明质量的反馈,确定颜色跟踪设置,以及通常只是给你关于znzpi AI相机所查看的图像质量的想法,这也是非常有用的。
您可以在直方图中选择四个不同的颜色空间。RGB,灰度,LAB和YUV。只有灰度和LAB在以编程方式控制您的znzpi AI相机时是有用的。 RGB很直观。因为我们使用jpeg,h.264和h.265,所以我们可能会加上YUV。
无论如何,默认情况下直方图显示整个图像的信息。但是,如果通过单击并拖动图传视频来选择一个区域, 那么直方图将只显示该区域中的颜色分布。 这种特性使得直方图显示在你需要在 Image.find_blobs()
和 Image.binary()
脚本中使用正确的灰度和LAB颜色通道设置时是很有用的。
最后,图像分辨率和你在图像上选择的边界框ROI(x,y,w,h)将显示在直方图的上方。
4.7. 串行终端¶
要显示串行终端,请点击位于znzpi IDE底部的串行终端按钮。串行终端内置在主窗口中,更易于使用。它只是与您的文本编辑窗口分开。
无论如何,由您创建的znzpi AI相机中的所有调试文本 print 都将显示在串行终端中。除此之外,python程序运行中的一些与系统有关的关键信息也可能会被显示。
请注意,串行终端或多或少会无限缓冲文本。它将在RAM中保留最后一数行的文本。所以,你可以使用它来缓冲大量的调试输出。 此外,如果您在Windows / Linux按ctrl+f或Mac上等效的快捷键,则可以搜索调试输出。 最后,串行终端是足够智能的,如果你想查看以前的调试输出它非常好用,不会自动滚动。如果滚动到文本输出的底部,自动滚动将再次打开。
4.8. 状态栏¶
在状态栏上,znzpi IDE将显示您的znzpi AI相机的固件版本,串行端口,驱动器和FPS。固件版本标签实际上是一个按钮, 如果您的znzpi AI相机的固件已过时,您可以单击以更新您的znzpi AI相机。串行端口标签只显示您的znzpi AI相机的串行端口,没有别的。 Drive标签是另一个按钮,您可以点击更改链接到znzpi AI相机的驱动器。最后,FPS标签显示 znzpi IDE正在从您的znzpi AI相机中获取的fps。
备注
znzpi IDE显示的FPS可能与znzpi AI相机的FPS不匹配。znzpi IDE上的FPS标签是从您的znzpi AI相机获得的FPS。 但是,您的znzpi AI相机实际上可能比znzpi IDE运行得更快,无论如何,做女装癖 IDE的FPS永远不会比znzpi AI相机的FPS更快,但速度可能会更慢。
4.9. 工具¶
您可以在znzpi IDE的“工具”菜单下找到适用于znzpi AI相机的有用工具。特别是,Upload script to your znzpi
和 Reset znzpi Cam
工具使用znzpiAI相机开发应用程序时很有用。
使用znzpi IDE的
Configure znzpi Cam Settings file
将允许你修改存储在您的znzpi AI相机中的.json
文件,您znzpi AI相机将在启动时针对特定硬件配置读取。
Upload script to your znzpi Cam
该命令将当前正在查看的任何脚本保存到您的znzpi AI相机。此外,它还可以自动清除脚本中的空白和注释, 从而占用更少的空间。一旦您认为您的程序已准备好在没有znzpi IDE的情况下进行部署,请使用此命令。 请注意,该命令会将您的脚本作为init.py
保存在您的znzpi AI相机的USB闪存驱动器上。init.py
是您的znzpi AI相机将在完成启动后运行的脚本。
Reset znzpi Cam
该命令重置,然后断开您的znzpi AI相机。如果您运行在znzpi AI相机上创建文件的脚本, 您将需要使用此选项,因为在znzpi AI相机的USB闪存驱动器安装之后,Windows / Mac / Linux不会显示在您的znzpi AI相机上以编程方式创建的任何文件。
接下来,在Tools菜单下,您可以重新编程您的znzpi AI相机。启动加载程序只能在您的znzpi AI相机的znzipi IDE断开连接时调用。 引导加载程序功能仅适用于计划更改默认znzpi AI相机固件的高级用户。
4.10. WiFi调试¶
znzpi AI相机自身支持wifi和蓝牙,您可以使用 工具->配置 znzpi AI相机 设置文件 对话框 来设置 znzpi AI相机 以通过 WiFi 连接到 IDE(请先确保您的znzpi AI相机已经以运行,并且在启用 WiFi 调试之前,您的固件和 WiFi 模块固件是最新的)。
启用 WiFi 调试后,您的znzpi相机 将在打开时连接到您的 WiFi 网络(或创建一个)。 连接后 znzpi IDE 将在连接按钮上显示一个 WiFi 图标。 当您单击连接时,znzpi IDE 将为您提供通过 WiFi 连接到 znzpi AI相机的选项。
当通过 WiFi 连接时,除了使用 znzpi AI相机上的文件系统外,您可以做任何事情(包括您的znzpi AI相机 仍然通过 USB 连接到您的计算机)。
4.11. 使用串口终端¶
打开终端功能允许您创建新的串行终端,使用znzpi IDE远程调试未连接到计算机的znzpi AI相机。开放终端功能也可以用来编程任何MicroPython开发板。
您可以使用“打开终端”功能打开连接到串行端口,tcp端口或udp端口的终端。请注意,串行端口可以是用于无线连接的蓝牙端口。
4.12. 机器视觉¶
机器视觉子菜单包含许多用于znzpi AI相机的机器视觉工具。例如,您可以使用颜色阈值编辑器来获取最佳的 颜色跟踪 image.find_blobs()
阈值。我们会定期提供新的机器视觉工具,让您的生活更轻松。
4.13. 视频工具¶
如果您需要压缩由znzpi AI相机生成的 .gif 文件或将 .mjpeg 或ImageIO的 .bin 视频文件转换为 .mp4 , 则可以使用转换视频文件操作来执行此操作。或者,如果您只想播放这些视频, 则也可以使用播放视频文件操作执行此操作。
请注意,在播放视频之前,请先将视频文件从znzpi AI相机的闪存驱动器复制到电脑上,因为znzpi AI相机上的磁盘I / O通过USB是缓慢的。
最后,FFMPEG用于提供转换和视频播放支持,可用于任何您喜欢的非znzpi AI相机活动。FFMPEG可以转换/播放大量的文件格式。
要将视频文件转换为一组图片,请选择视频文件作为源,并使目标为“%07d.bmp”/“%07d.jpg”/等文件名。 FFMPEG理解
printf()
就像带有图像文件格式扩展名的格式语句,意味着它应该将视频文件分解为目标格式的静止图像。要将一系列静止图像转换为视频,请将源文件名设置为“%7d.bmp”/“%7d.jpg”/等。 其中目录中的所有图像都有一个类似的名称,如
1.bmp
,2.bmp
等. FFMPEG理解printf()
就像带有图像文件格式扩展名的格式语句一样,意味着应该将这些图像文件一起加入视频中。要将
ImageIO
文件转换为任何其他视频格式,请选择文件作为源和目标,使其成为您想要的任何文件格式。要将任何格式的视频文件转换为
ImageIO
文件,请选择要转换为源的视频文件,并将目标设置为.bin
文件。 然后,FFMPEG将视频分解为JPG,znzpi IDE将使用 ImageWriter 文件格式将这些JPG转换为RAW灰度或RGB565帧保存到.bin
ImageIO
文件。要将znzpi AI相机保存的MP4文件转换为另一种格式,请将MP4文件设置为源,将另一种格式(如 .mp4 )设置为目标。
4.14. 选项¶
在工具菜单下(或关于Mac菜单),您可以访问znzpi IDE的选项对话框。
你可以配置编辑器的字体,大小,缩放,tab,自动清理空白,列边距,等等。